From b8bf024d6f827975e59ffbebacf79436ba175f27 Mon Sep 17 00:00:00 2001 From: Encolpe DEGOUTE Date: Thu, 14 Feb 2019 13:16:10 +0100 Subject: [PATCH 1/9] Renew assistant.xml --- assistant.xml | 3197 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 2496 insertions(+), 701 deletions(-) diff --git a/assistant.xml b/assistant.xml index cb1bfa9..3c1b5f0 100644 --- a/assistant.xml +++ b/assistant.xml @@ -1,728 +1,2523 @@ - - - Class14 - Class15 ..> Class16 - Class17 ..|> Class18 - Class19 <--* Class20 - ]]> - - "1" Class06 - ]]> - -
  • To add a label, use ":", followed by the text of the label. -
  • For cardinality, you can use double-quotes "" on each side of the relation. - - ]]> - - - Car *- Wheel : have 4 > - Car -- Person : < owns - ]]> - - - - - - - - - - - - - - > - Object <|--- ArrayList - - note top of Object : In java, every class\nextends this one. - - note "This is a floating note" as N1 - note "This note is connected\nto several objects." as N2 - Object .. N2 - N2 .. ArrayList - - class Foo - note left: On last defined class - ]]> - - every class - extends - this one. - end note - - note as N1 - This note is also - on several - words lines - And this is hosted by - end note - ]]> - - Foo : A link - note on link #red: note that is red - - Dummy --> Foo2 : Another link - note right on link #blue - this is my note on right link - and in blue - end note - ]]> - - - - - - > { - String name - } - - hide members - hide <> circle - show Dummy1 method - show <> fields - ]]> - - { - int size() - } - Foo *- Element - ]]> - - > - class Date << (D,orchid) >> - ]]> - - - - > { - class Class1 - } - - package foo2 <> { - class Class2 - } - - package foo3 <> { - class Class3 - } - - package foo4 <> { - class Class4 - } - - package foo5 <> { - class Class5 - } - - package foo6 <> { - class Class6 - } - ]]> - - - - - - - - - - - - dummyLeft - foo -right-> dummyRight - foo -up-> dummyUp - foo -down-> dummyDown - ]]> - - example\nof title - - Object <|-- ArrayList - ]]> - - - - - - - - - - - Bob: Authentication Request - Bob --> Alice: Authentication Response - - Alice -> Bob: Another authentication Request - Alice <-- Bob: another authentication Response - ]]> - - Bob: Authentication Request - Bob->Alice: Authentication Response - Bob->L: Log transaction - ]]> - - Alice: This is a signal to self.\nIt also demonstrates\nmultiline \ntext - ]]> - - Alice - Bob ->> Alice - Bob -\ Alice - Bob \\- Alice - Bob //-- Alice - - Bob ->o Alice - Bob o\\-- Alice - ]]> - - Alice : Authentication Request - Bob <- Alice : Authentication Response - ]]> - - Alice : Authentication Request - Bob <- Alice : Authentication Response - - autonumber 15 - Bob -> Alice : Another authentication Request - Bob <- Alice : Another authentication Response - - autonumber 40 10 - Bob -> Alice : Yet another authentication Request - Bob <- Alice : Yet another authentication Response - ]]> - - [000]" - Bob -> Alice : Authentication Request - Bob <- Alice : Authentication Response - - autonumber 15 "(##)" - Bob -> Alice : Another authentication Request - Bob <- Alice : Another authentication Response - - autonumber 40 10 "Message 0 " - Bob -> Alice : Yet another authentication Request - Bob <- Alice : Yet another authentication Response - ]]> - - Bob: Authentication Request - Bob --> Alice: Authentication Response - ]]> - - Bob: Authentication Request - - alt successful case - - Bob -> Alice: Authentication Accepted - - else some kind of failure - - Bob -> Alice: Authentication Failure - group My own label - Alice -> Log : Log attack start - loop 1000 times - Alice -> Bob: DNS Attack - end - Alice -> Log : Log attack end - end - - else Another type of failure - - Bob -> Alice: Please repeat + + + + + Test2 + Test2 -> Test3 + Test2 <-- Test3 + Test1 <-- Test2 + ]]> + A first simple example! + + Class14 + Class15 ..> Class16 + Class17 ..|> Class18 + Class19 <--* Class20 + ]]> + "1" Class06 + ]]> + +
  • To add a label, use ":", followed by the text of the label. +
  • For cardinality, you can use double-quotes "" on each side of the relation. + + ]]> + + + Car *- Wheel : have 4 > + Car -- Person : < owns + ]]> + + + + + + + > + Object <|--- ArrayList + + note top of Object : In java, every class\nextends this one. + + note "This is a floating note" as N1 + note "This note is connected\nto several objects." as N2 + Object .. N2 + N2 .. ArrayList + + class Foo + note left: On last defined class + ]]> + every class + extends + this one. + end note + + note as N1 + This note is also + on several + words lines + And this is hosted by + end note + ]]> + Foo : A link + note on link #red: note that is red + + Dummy --> Foo2 : Another link + note right on link #blue + this is my note on right link + and in blue + end note + ]]> + + + > { + String name + } + + hide members + hide <> circle + show Dummy1 method + show <> fields + ]]> + { + int size() + } + Foo *- Element + ]]> + > + class Date << (D,orchid) >> + ]]> + + > { + class Class1 + } + + package foo2 <> { + class Class2 + } + + package foo3 <> { + class Class3 + } + + package foo4 <> { + class Class4 + } + + package foo5 <> { + class Class5 + } + + package foo6 <> { + class Class6 + } + ]]> + + + + + + dummyLeft + foo -right-> dummyRight + foo -up-> dummyUp + foo -down-> dummyDown + ]]> + example\nof title + + Object <|-- ArrayList + ]]> + + + + + + Bob: Authentication Request + Bob --> Alice: Authentication Response + + Alice -> Bob: Another authentication Request + Alice <-- Bob: another authentication Response + ]]> + Bob: Authentication Request + Bob->Alice: Authentication Response + Bob->L: Log transaction + ]]> + Alice: This is a signal to self.\nIt also demonstrates\nmultiline \ntext + ]]> + Alice + Bob ->> Alice + Bob -\ Alice + Bob \\- Alice + Bob //-- Alice + Bob ->o Alice + Bob o\\-- Alice + ... + [-> Bob + [o-> Bob + [o->o Bob + [x-> Bob + [<- Bob + [x<- Bob + ... + Alice ->] + Alice ->o] + Alice o->o] + Alice ->x] + Alice <-] + Alice x<-] + ]]> + Alice : Authentication Request + Bob <- Alice : Authentication Response + ]]> + Alice : Authentication Request + Bob <- Alice : Authentication Response + + autonumber 15 + Bob -> Alice : Another authentication Request + Bob <- Alice : Another authentication Response + + autonumber 40 10 + Bob -> Alice : Yet another authentication Request + Bob <- Alice : Yet another authentication Response + ]]> + [000]" + + Bob -> Alice : Authentication Request + Bob <- Alice : Authentication Response + + autonumber 15 "(##)" + Bob -> Alice : Another authentication Request + Bob <- Alice : Another authentication Response + + autonumber 40 10 "Message 0 " + Bob -> Alice : Yet another authentication Request + Bob <- Alice : Yet another authentication Response + ]]> + Bob: Authentication Request + Bob --> Alice: Authentication Response + ]]> + Bob: Authentication Request + + alt successful case + + Bob -> Alice: Authentication Accepted + + else some kind of failure + + Bob -> Alice: Authentication Failure + group My own label + Alice -> Log : Log attack start + loop 1000 times + Alice -> Bob: DNS Attack end - ]]> - - Bob : hello - note left: this is a first note - - Bob->Alice : ok - note right: this is another note - - Bob->Bob : I am thinking - note left - a note - can also be defined - on several lines - end note - ]]> - - - - Bob: Authentication Request - Bob --> Alice: Authentication Response - - == Repetition == - - Alice -> Bob: Another authentication Request - Alice <-- Bob: another authentication Response - ]]> - - Bob: message 1 - Bob --> Alice: ok - ||| - Alice -> Bob: message 2 - Bob --> Alice: ok - ||45|| - Alice -> Bob: message 3 - Bob --> Alice: ok - ]]> - - A: DoWork - activate A - - A -> B: << createRequest >> - activate B - - B -> C: DoWork - activate C - C --> B: WorkDone - destroy C - - B --> A: RequestCreated - deactivate B - - A -> User: Done - deactivate A - ]]> - - A: DoWork - activate A #FFBBBB - - A -> A: Internal call - activate A #DarkSalmon - - A -> B: << createRequest >> - activate B - - B --> A: RequestCreated - deactivate B - deactivate A - A -> User: Done - deactivate A - ]]> - - Alice : hello - - create Other - Alice -> Other : new - - create String - Alice -> String - note right : You can also put notes! - - Alice --> Bob : ok - ]]> - - A: DoWork - - activate A - - A -> A: Internal call - activate A - - A ->] : << createRequest >> - - A<--] : RequestCreated - deactivate A - [<- A: Done - deactivate A - ]]> - - > - participant Alice << (C,#ADD1B2) Testable >> - - Bob->Alice: First message - ]]> - - Alice : hello - Alice -> Other : hello - ]]> - - Bob: Authentication Request - Bob --> Alice: Authentication Response - ]]> - - - - + Alice -> Log : Log attack end + end + + else Another type of failure + + Bob -> Alice: Please repeat + + end + ]]> + Bob : hello + note left: this is a first note + + Bob->Alice : ok + note right: this is another note + + Bob->Bob : I am thinking + note left + a note + can also be defined + on several lines + end note + ]]> + + Bob: Authentication Request + Bob --> Alice: Authentication Response + + == Repetition == + + Alice -> Bob: Another authentication Request + Alice <-- Bob: another authentication Response + ]]> + Bob: message 1 + Bob --> Alice: ok + ||| + Alice -> Bob: message 2 + Bob --> Alice: ok + ||45|| + Alice -> Bob: message 3 + Bob --> Alice: ok + ]]> + A: DoWork + activate A + + A -> B: << createRequest >> + activate B + + B -> C: DoWork + activate C + C --> B: WorkDone + destroy C + + B --> A: RequestCreated + deactivate B + + A -> User: Done + deactivate A + ]]> + A: DoWork + activate A #FFBBBB + + A -> A: Internal call + activate A #DarkSalmon + + A -> B: << createRequest >> + activate B + + B --> A: RequestCreated + deactivate B + deactivate A + A -> User: Done + deactivate A + ]]> + Alice : hello + + create Other + Alice -> Other : new + + create String + Alice -> String + note right : You can also put notes! + + Alice --> Bob : ok + ]]> + A: DoWork + + activate A + + A -> A: Internal call + activate A + + A ->] : << createRequest >> + + A<--] : RequestCreated + deactivate A + [<- A: Done + deactivate A + ]]> + > + participant Alice << (C,#ADD1B2) Testable >> + + Bob->Alice: First message + ]]> + Alice : hello + Alice -> Other : hello + ]]> + Bob : [[http://www.yahoo.com{Jason: {"firstName":"Bob", "lastName":"Smith"}}]] hello + ]]> + + Bob: Authentication Request + Bob --> Alice: Authentication Response + ]]> + + - + (First usecase) + (Another usecase) as (UC2) + usecase UC3 + usecase (Last\nusecase) as UC4 + ]]> - + :First Actor: + :Another\nactor: as Men2 + actor Men3 + actor :Last actor: as Men4 + ]]> (Start) - User --> (Use the application) : A small label + User -> (Start) + User --> (Use the application) : A small label - :Main Admin: ---> (Use the application) : This is\nyet another\nlabel - ]]> - + :Main Admin: ---> (Use the application) : This is\nyet another\nlabel + ]]> - + User <|-- Admin + (Start) <|-- (Use) + ]]> (Start) - User --> (Use) + User -> (Start) + User --> (Use) - Admin ---> (Use) + Admin ---> (Use) - note right of Admin : This is an example. + note right of Admin : This is an example. - note right of (Use) - A note can also - be on several lines - end note + note right of (Use) + A note can also + be on several lines + end note - note "This note is connected\nto several objects." as N2 - (Start) .. N2 - N2 .. (Use) - ]]> - + note "This note is connected\nto several objects." as N2 + (Start) .. N2 + N2 .. (Use) + ]]> > - :Main Database: as MySql << Application >> - (Start) << One Shot >> - (Use the application) as (Use) << Main >> + User << Human >> + :Main Database: as MySql << Application >> + (Start) << One Shot >> + (Use the application) as (Use) << Main >> - User -> (Start) - User --> (Use) + User -> (Start) + User --> (Use) - MySql --> (Use) - ]]> - + MySql --> (Use) + ]]> (Use case 1) - :user: -> (Use case 2) - ]]> - + :user: --> (Use case 1) + :user: -> (Use case 2) + ]]> - + (Use case 1) <.. :user: + (Use case 2) <- :user: + ]]> (dummyLeft) - :user: -right-> (dummyRight) - :user: -up-> (dummyUp) - :user: -down-> (dummyDown) - ]]> - + :user: -left-> (dummyLeft) + :user: -right-> (dummyRight) + :user: -up-> (dummyUp) + :user: -down-> (dummyDown) + ]]> Usecase\nwith one actor + title Simple Usecase\nwith one actor - usecase (Use the application) as (Use) - User -> (Use) - ]]> - + usecase (Use the application) as (Use) + User -> (Use) + ]]> (Usecase 1) - user2 --> (Usecase 2) - ]]> - + 'default + top to bottom direction + + user1 --> (Usecase 1) + user2 --> (Usecase 2) + ]]> (Usecase 1) - user2 --> (Usecase 2) - ]]> - + left to right direction + + user1 --> (Usecase 1) + user2 --> (Usecase 2) + ]]> (payment) : <> - (help) .> (checkout) : <> - (checkout) -- clerk + left to right direction + skinparam packageStyle rect + + actor customer + actor clerk + package checkout { + customer -- (checkout) + (checkout) .> (payment) : <> + (help) .> (checkout) : <> + (checkout) -- clerk + } + ]]> + + + + + HTTP : use + ]]> + HTTP : use + + note left of HTTP : Web Service only + + note right of [First Component] + A note can also + be on several lines + end note + ]]> + FTP + } + + cloud { + [Example 1] + } + + database "MySql" { + folder "This is my folder" { + [Folder 3] + } + frame "Foo" { + [Frame 4] + } + } + + [Another Component] --> [Example 1] + [Example 1] --> [Folder 3] + [Folder 3] --> [Frame 4] + ]]> + Interface1 + [Component] -> Interface2 + ]]> + + left + [Component] -right-> right + [Component] -up-> up + [Component] -down-> down + ]]> + HTTP : use + ]]> + HTTP : use + ]]> + + + artifact2 + artifact1 --* artifact3 + artifact1 --o artifact4 + artifact1 --+ artifact5 + artifact1 --# artifact6 + artifact1 -->> artifact7 + artifact1 --0 artifact8 + artifact1 --^ artifact9 + artifact1 --(0 artifact10 + ]]> + + + folder + ---- + You can use separator + ==== + of different kind + .... + and style + ] + + node node [ + This is a node + ---- + You can use separator + ==== + of different kind + .... + and style + ] + + database database [ + This is a database + ---- + You can use separator + ==== + of different kind + .... + and style + ] + + usecase usecase [ + This is a usecase + ---- + You can use separator + ==== + of different kind + .... + and style + ] + ]]> + > Red + BorderColor<> #FF6655 + FontName Courier + BorderColor black + BackgroundColor gold + ArrowFontName Impact + ArrowColor #FF6655 + ArrowFontColor #777777 + } + + () "Data Access" as DA + + DA - [First Component] + [First Component] ..> () HTTP : use + HTTP - [Web Server] << Apache >> + ]]> + > + [BB] <> + [CC] <> + + node node1 + node node2 <> + database Production + + skinparam component { + backgroundColor<> DarkKhaki + backgroundColor<> Green + } + + skinparam node { + borderColor Green + backgroundColor Yellow + backgroundColor<> Magenta + } + skinparam databaseBackgroundColor Aqua + ]]> + > Pink + backgroundColor<<2>> Green + FontColor<<1>> White + FontColor<<2>> Black + } + + package "SYSTEM1" { + + [ComponentBox] <<1>> + [AnotherCompBox] <<2>> + @enduml + ]]> + + + + + + + + + + + HTML + ==== + * Calling the method ""foo()"" is prohibited + end note + stop + ]]> + + + You can put text on arrows; + if (test) then + -[#blue]-> + :foo2; + -[#green]-> The text can + also be on several lines + and **very** long...; + :foo3; + else + -[#black]-> + :foo4; + endif + -[#gray]-> + :foo5; + ]]> + + + + + + split again + :ack(i)< + :next(o) + on several line| + :i := i + 1] + :ack(o)> + split again + :err(i)< + :nak(o)> + split again + :foo/ + split again + :i > 5} + stop + end split + :finish; + ]]> + + + + State1 + State1 --> [*] + State1 : this is a string + State1 : this is another string + + State1 -> State2 + State2 --> [*] + ]]> + NotShooting + + state NotShooting { + [*] --> Idle + Idle --> Configuring : EvConfig + Configuring --> Idle : EvConfig + } + + state Configuring { + [*] --> NewValueSelection + NewValueSelection --> NewValuePreview : EvNewValue + NewValuePreview --> NewValueSelection : EvNewValueRejected + NewValuePreview --> NewValueSelection : EvNewValueSaved + + state NewValuePreview { + State1 -> State2 + } + + } + ]]> + State1 + State1 --> State2 : Succeeded + State1 --> [*] : Aborted + State2 --> State3 : Succeeded + State2 --> [*] : Aborted + state State3 { + state "Accumulate Enough Data\nLong State Name" as long1 + long1 : Just a test + [*] --> long1 + long1 --> long1 : New Data + long1 --> ProcessData : Enough Data + } + State3 --> State3 : Failed + State3 --> [*] : Succeeded / Save Result + State3 --> [*] : Aborted + ]]> + Active + + state Active { + [*] -> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] -> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] -> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvCapsLockPressed + ScrollLockOn --> ScrollLockOff : EvCapsLockPressed + } + ]]> + First + First -right-> Second + Second --> Third + Third -left-> Last + ]]> + Active + Active --> Inactive + + note left of Active : this is a short\nnote + + note right of Inactive + A note can also + be defined on + several lines + end note + ]]> + + NotShooting + + state "Not Shooting State" as NotShooting { + state "Idle mode" as Idle + state "Configuring mode" as Configuring + [*] --> Idle + Idle --> Configuring : EvConfig + Configuring --> Idle : EvConfig + } + + note right of NotShooting : This is a note on a composite state + ]]> + > Olive + BorderColor Gray + FontName Impact + } + + [*] --> NotShooting + + state "Not Shooting State" as NotShooting { + state "Idle mode" as Idle <> + state "Configuring mode" as Configuring + [*] --> Idle + Idle --> Configuring : EvConfig + Configuring --> Idle : EvConfig + } + + NotShooting --> [*] + ]]> + + + + + + + Bob : hello --there-- + ... Some ~~long delay~~ ... + Bob -> Alice : ok + note left + This is **bold** + This is //italics// + This is ""monospaced"" + This is --stroked-- + This is __underlined__ + This is ~~waved~~ + end note + ]]> + + + + + + + + + World + ++ America|a|b + +++ Canada + +++ USA + ++++ New York + ++++ Boston + +++ ~~Mexico~~ + ++ Europe|x|y + +++ Italy + +++ Germany + ++++ Berlin + ++ Africa + } + } + ]]> + + General | Fullscreen | Behavior | Saving } + { + { Open image in: | ^Smart Mode^ } + [X] Smooth images when zoomed + [X] Confirm image deletion + [ ] Show hidden images + } + [Close] + } + ]]> + General + Fullscreen + Behavior + Saving } | + { + { Open image in: | ^Smart Mode^ } + [X] Smooth images when zoomed + [X] Confirm image deletion + [ ] Show hidden images + [Close] + } + } + ]]> + + + + Login | "MyName " + <&key> Password | "**** " + [Cancel <&circle-x>] | [OK <&account-login>] + } + ]]> + + + + node2 -> node3 + } + ]]> + + parse [weight=8]; + parse -> execute; + main -> init [style=dotted]; + main -> cleanup; + execute -> { make_string; printf} + init -> make_string; + edge [color=red]; // so is this + main -> printf [style=bold,label="100 times"]; + make_string [label="make a\nstring"]; + node [shape=box,style=filled,color=".7 .3 1.0"]; + execute -> compare; + } + ]]> + | G| "]; + node1[label = " | E| "]; + node2[label = " | B| "]; + node3[label = " | F| "]; + node4[label = " | R| "]; + node5[label = " | H| "]; + node6[label = " | Y| "]; + node7[label = " | A| "]; + node8[label = " | C| "]; + "node0":f2 -> "node4":f1; + "node0":f0 -> "node1":f1; + "node1":f0 -> "node2":f1; + "node1":f2 -> "node3":f1; + "node2":f2 -> "node8":f1; + "node2":f0 -> "node7":f1; + "node4":f2 -> "node6":f1; + "node4":f0 -> "node5":f1; + } + ]]> + left| middle| right"]; + struct2 [shape=record,label=" one| two"]; + struct3 [shape=record,label="hello\nworld |{ b |{c| d|e}| f}| g | h"]; + struct1:f1 -> struct2:f0; + struct1:f2 -> struct3:here; + } + ]]> + b; + a -> c; + b -> d; + c -> d; + } + subgraph cluster1 { + e -> g; + e -> f; + } + b -> f [lhead=cluster1]; + d -> e; + c -> g [ltail=cluster0, + lhead=cluster1]; + c -> e [ltail=cluster0]; + d -> h; + } + ]]> + a1 -> a2 -> a3; + label = "process #1"; + } + subgraph cluster1 { + node [style=filled]; + b0 -> b1 -> b2 -> b3; + label = "process #2"; + color=blue + } + start -> a0; + start -> b0; + a1 -> b3; + b2 -> a3; + a3 -> a0; + a3 -> end; + b3 -> end; + start [shape=Mdiamond]; + end [shape=Msquare]; + } + ]]> + + + | | + | Text | +-------+ |diagram| + |Document| |!magic!| | | + | {d}| | | | | + +---+----+ +-------+ +-------+ + : ^ + | Lots of work | + +-------------------------+ + ]]> + + + + + + + + + + | | | + | |document| | Pack for dispatch | | + | +--------+ | | | + | +-------------------+ | + +-----------------------------------------+ + ]]> + + PLC +<---=---------+ + | cRED | | c707 | | + +-----------+ +----+----+ | + ^ | + | | + | +----------------|-----------------+ + | | | | + v v v v + +----------+ +----+--+--+ +-------+---+ +-----+-----+ Windows clients + | | | | | | | | +----+ +----+ + | Database +<----->+ Shared +<---->+ Executive +<-=-->+ Operator +<---->|cYEL| . . .|cYEL| + | c707 | | Memory | | c707 | | Server | | | | | + +--+----+--+ |{d} cGRE | +------+----+ | c707 | +----+ +----+ + ^ ^ +----------+ ^ +-------+---+ + | | | + | +--------=--------------------------+ + v + +--------+--------+ + | | + | Millwide System | -------- Data --------- + | cBLU | --=----- Signals ---=-- + +-----------------+ + ]]> + Communication diagram from web. + + + Config +<--->+ | | +<---->+ Config +<---+ : + : | | DB cBLU | | | | | cPNK | | | DB cBLU | | | + | | +---------+ | | +----------+ | +---------------+ | +---------+ | | + | | : | | ACL cGRE | | | WAYF cGRE | | | | + | v | | +----------+ | +---------------+ : v | + |+--+--------------+ | | | ARP cGRE | | | ACL cGRE | | +--------------+--+ | + || cPNK | | | +----------+ | +---------------+ | | REST cPNK | | + || Management | | | | | | Consent cGRE | | | Management | | + || GUI | | | Group Proxy +<-------+ | +---------------+ | | GUI & API | | + || | | | cPNK | | | | ARP/AM cGRE | | | | | + || | | | +-------+ | | +---------------+ | | | | + || | | | | OAuth + | | +<---->+ | | + || | | | | cPNK | | VOOT/ | SAML Proxy | | | | | + |+----+--------+---+ | +--+--+---+---+ | OAuth +------------+----------+ | +-----------------+ | + | | ^ ^ | ^ : | + \-----------+--------/ | | v | \-----+----------------/ + ^ | | | +-----+------+ | ^ + | | VOOT/ | | | SAML2 SP 1 | | | + | | OAuth | | | cRED | | | + | | | | +-----+------+ | | + | | | | ^ | | + | | | | | | | + | | | | v | | + +-----+----------------+------+-----+------------+-----------+--------------------+ + | ^ ^ SAML2 + | | | + | v v + | +-----+-----+ +-----+-----+ + | | SAML SP 2 | | SAML SP 3 | + | | cRED | | cRED | + v +-----------+ +-----------+ + +-----+----+ + | VOOT | + | App cRED | + +----------+ + ]]> + Architecture diagram from web. + + + + + + + + plot/coordinateSystem/xAxis/grid = true + plot/coordinateSystem/xAxis/gridAttributes/lineColor = #808080 + plot/coordinateSystem/xAxis/automaticTicCalculation = false + plot/coordinateSystem/xAxis/numberOfTics = 6 + plot/coordinateSystem/xAxis/ticLabelAttributes/fontSize = 0.03 + plot/coordinateSystem/xAxis/axisLabelAttributes/fontSize = 0.05 + plot/coordinateSystem/xAxis/axisLabelAttributes/textColor = #0000aa + plot/coordinateSystem/yAxis/axisLabel = factor + plot/coordinateSystem/yAxis/axisLabelPosition = 0.85 0.1 + plot/coordinateSystem/yAxis/axisLabelAttributes/fontSize = 0.05 + plot/coordinateSystem/yAxis/axisLabelAttributes/textColor = #0000ee + plot/coordinateSystem/yAxis/axisLabelAttributes/verticalAnchor = top + plot/coordinateSystem/yAxis/ticLength = -0.006 + plot/coordinateSystem/yAxis/ticLabelPosition = 0.81 0 + plot/coordinateSystem/yAxis/ticLabelAttributes/fontSize = 0.03 + plot/coordinateSystem/yAxis/ticLabelAttributes/fontStyle = bold + plot/coordinateSystem/yAxis/ticLabelAttributes/horizontalAnchor = left + defaultDefinition/symbolFactory/className = jcckit.plot.SquareSymbolFactory + defaultDefinition/symbolFactory/size = 0.015 + defaultDefinition/symbolFactory/attributes/className = jcckit.graphic.BasicGraphicAttributes + defaultDefinition/symbolFactory/attributes/lineColor = 0 + defaultDefinition/symbolFactory/attributes/lineThickness = 0.002 + defaultDefinition/lineAttributes/className = jcckit.graphic.ShapeAttributes + defaultDefinition/lineAttributes/linePattern = 0.01 0.005 + defaultDefinition/lineAttributes/lineThickness = 0.005 + defaultDefinition/lineAttributes/lineColor = #0000ca + plot/curveFactory/definitions = def1 def2 def3 + plot/curveFactory/def1/ = defaultDefinition/ + plot/curveFactory/def1/symbolFactory/className = jcckit.plot.BarFactory + plot/curveFactory/def1/symbolFactory/size = 0.03 + plot/curveFactory/def1/symbolFactory/attributes/fillColor = #ffca00 + plot/curveFactory/def1/withLine = false + plot/curveFactory/def2/ = defaultDefinition/ + plot/curveFactory/def2/symbolFactory/className = jcckit.plot.CircleSymbolFactory + plot/curveFactory/def2/symbolFactory/attributes/fillColor = #008000 + plot/curveFactory/def2/symbolFactory/attributes/lineColor = + plot/curveFactory/def3/ = defaultDefinition/ + plot/legend/upperRightCorner = 0.84 0.54 + plot/legend/boxAttributes/fillColor = #eeeeee + plot/legend/lineLength = 0.035 + ]]> + + + + + Bob : Testing <$foo1> + note right + To encode sprite, you can use the command line like: + java -jar plantuml.jar -encodesprite 16z foo.png + where foo.png if the image file you want to use (it will + be converted to gray automatically). After -encodesprite, + you have to specify a format: 4, 8, 16, 4z, 8z or 16z. + The number indicates the gray level and the optionnal z + is used to enable compression in sprite definition. + end note + ]]> + to print the page; + ]]> + , <$bug>...) + + class Example { + Can have some bug : <$bug> + Click on <$disk> to save + } + + note left : The printer <$printer> is available + ]]> + > + class ACCOUNT << TABLE >> + class UID << SEQUENCE >> + + USER "1" -- "*" ACCOUNT + USER -> UID + ]]> + > + !define module(x,y) component x as y <> + + module(foo) + module(bar , barcode) + ]]> + b : c + + send(Alice , Bob , Hello) + send(Bob , Alice , ok) + ]]> + y : DOUBLE(hello) + y -> x : ok + !enddefinelong + + AUTHEN(Bob ,Alice) + ]]> + + + Alice : hello + Alice -> Other : hello + ]]> + Alice : hello + Alice -> Other : hello + ]]> + Bob: Authentication Request + + header + Warning: + Do not use in production. + endheader + + center footer Generated for demonstration + ]]> + Bar + + header + Runtime variables + endheader + + legend + Runtime variables will be substituted by PlantUML QEditor before image generation. + + ' + ' same on Unix and Windows: + ' - ${USER} ${CUSER} ${USERNAME} ${CUSERNAME} %USER% %CUSER% %USERNAME% %CUSERNAME% + ' - ${HOME} ${HOMEPATH} %HOME% %HOMEPATH% + ' always the same: + ' - FILE CFILE FFILE + ' - PATH CPATH FPATH + ' - DIR CDIR FDIR + ' + __Default:__ + ' Windows style + ""Username ............. : "" %USERNAME% + ""Path ................. : "" %PATH% + ""Filename ............. : "" %FILE% + ""Directory ............ : "" %DIR% + ""Date ................. : "" %DATE% + ""Time ................. : "" %TIME% + ""Timestamp ............ : "" %NOW% + ""Timestamp short....... : "" %NOW:S% + ""Timestamp long ....... : "" %NOW:L% + ""Formatted timestamp .. : "" %NOW:MMMM ''yy hh:mm ap% + __Current:__ + ' C prefix (Unix style) + ""Username ............. : "" ${CUSER} + ""Path ................. : "" ${CPATH} + ""Filename ............. : "" ${CFILE} + ""Directory ............ : "" ${CDIR} + ""Date ................. : "" ${CDATE} + ""Time ................. : "" ${CTIME} + ""Timestamp ............ : "" ${CNOW} + ""Timestamp short....... : "" ${CNOW:S} + ""Timestamp long ....... : "" ${CNOW:L} + ""Formatted timestamp .. : "" ${CNOW:MMMM ''yy hh:mm ap} + __File:__ + ' F prefix (Unix style) + ""Username ............. : "" ${FUSER} + ""Path ................. : "" ${FPATH} + ""Filename ............. : "" ${FILE} + ""Directory ............ : "" ${FDIR} + ""Date ................. : "" ${FDATE} + ""Time ................. : "" ${FTIME} + + See [[http://doc.qt.io/qt-5/qdatetime.html#toString]] for format informaton. + + You can use Unix like ${...} or Windows like %...% variable format! + endlegend + + footer + %PATH%, %USER%, %NOW:S% + endfooter + ]]> + + + + + + + + + + + Alice : hello + activate Alice + Alice -> Alice : some action + return bye + ]]> + bob ++ : hello + bob -> bob ++ : self call + bob -> bib ++ #005500 : hello + bob -> geoge ** : create + return done + return rc + bob -> geoge !! : delete + return success + ]]> + bob : hello + bob -> bob : self call + bill -> bob #005500 : hello from thread 2 + bob -> geoge ** : create + return done in thread 2 + return rc + bob -> geoge !! : delete + return success + ]]> + S2 + S1 -left[#yellow]-> S3 + S1 -up[#red,dashed]-> S4 + S1 -right[dotted,#blue]-> S5 + + X1 -[dashed]-> X2 + Z1 -[dotted]-> Z2 + Y1 -[#blue,bold]-> Y2 + ]]> + Alice : foo1 + ref over Alice, Dummy : [[http://www.google.com]] Foo2 + + Alice -> Bob : hello + + ref over Alice, Bob + [[http://www.google.com]] + this is a + reference over + Alice and Bob + end + ]]> + Mammal + url of Mammal is [[/search]] + url of Dog is [[http://www.yahoo.com{This is Dog}]] + Dog o-- Cat + Cat --|> Mammal + ]]> + - - + ]]> + + From b2678ce583ec82fe04b509b9db1c90165de29af2 Mon Sep 17 00:00:00 2001 From: Encolpe DEGOUTE Date: Thu, 14 Feb 2019 13:16:44 +0100 Subject: [PATCH 2/9] Add Activity Diagrams --- icons/Activity Diagram - Arrows.svg | 31 ++++++++++++ icons/Activity Diagram - Colors.svg | 21 ++++++++ icons/Activity Diagram - Complete example.svg | 49 +++++++++++++++++++ icons/Activity Diagram - Conditional 1.svg | 26 ++++++++++ icons/Activity Diagram - Conditional 2.svg | 30 ++++++++++++ icons/Activity Diagram - Detach.svg | 32 ++++++++++++ ...Activity Diagram - Formatted Swimlanes.svg | 24 +++++++++ icons/Activity Diagram - Grouping.svg | 27 ++++++++++ icons/Activity Diagram - Notes.svg | 28 +++++++++++ ...Activity Diagram - Parallel processing.svg | 28 +++++++++++ icons/Activity Diagram - Repeat loop.svg | 24 +++++++++ icons/Activity Diagram - SDL.svg | 38 ++++++++++++++ icons/Activity Diagram - Simple Activity.svg | 19 +++++++ icons/Activity Diagram - Start Stop.svg | 21 ++++++++ icons/Activity Diagram - Swimlanes.svg | 27 ++++++++++ icons/Activity Diagram - Title and Legend.svg | 36 ++++++++++++++ icons/Activity Diagram - While loop 1.svg | 24 +++++++++ icons/Activity Diagram - While loop 2.svg | 20 ++++++++ 18 files changed, 505 insertions(+) create mode 100644 icons/Activity Diagram - Arrows.svg create mode 100644 icons/Activity Diagram - Colors.svg create mode 100644 icons/Activity Diagram - Complete example.svg create mode 100644 icons/Activity Diagram - Conditional 1.svg create mode 100644 icons/Activity Diagram - Conditional 2.svg create mode 100644 icons/Activity Diagram - Detach.svg create mode 100644 icons/Activity Diagram - Formatted Swimlanes.svg create mode 100644 icons/Activity Diagram - Grouping.svg create mode 100644 icons/Activity Diagram - Notes.svg create mode 100644 icons/Activity Diagram - Parallel processing.svg create mode 100644 icons/Activity Diagram - Repeat loop.svg create mode 100644 icons/Activity Diagram - SDL.svg create mode 100644 icons/Activity Diagram - Simple Activity.svg create mode 100644 icons/Activity Diagram - Start Stop.svg create mode 100644 icons/Activity Diagram - Swimlanes.svg create mode 100644 icons/Activity Diagram - Title and Legend.svg create mode 100644 icons/Activity Diagram - While loop 1.svg create mode 100644 icons/Activity Diagram - While loop 2.svg diff --git a/icons/Activity Diagram - Arrows.svg b/icons/Activity Diagram - Arrows.svg new file mode 100644 index 0000000..5d12dea --- /dev/null +++ b/icons/Activity Diagram - Arrows.svg @@ -0,0 +1,31 @@ +foo1testfoo2foo3foo4foo5The text canalso be on several linesandverylong...You can put text on arrows \ No newline at end of file diff --git a/icons/Activity Diagram - Colors.svg b/icons/Activity Diagram - Colors.svg new file mode 100644 index 0000000..c89c863 --- /dev/null +++ b/icons/Activity Diagram - Colors.svg @@ -0,0 +1,21 @@ +starting progressreading configuration filesThese files should edited at this point!ending of the process \ No newline at end of file diff --git a/icons/Activity Diagram - Complete example.svg b/icons/Activity Diagram - Complete example.svg new file mode 100644 index 0000000..36d433f --- /dev/null +++ b/icons/Activity Diagram - Complete example.svg @@ -0,0 +1,49 @@ +ClickServlet.handleRequest()new pagePage.onInit()Process controlscontinue processing?noisPost?yesnoPage.onPost()Page.onGet()Page.onRender()noisForward?truePage.onSecurityCheckfalsedo redirect?yesredirect processdo forward?yesnoForward requestRender page template \ No newline at end of file diff --git a/icons/Activity Diagram - Conditional 1.svg b/icons/Activity Diagram - Conditional 1.svg new file mode 100644 index 0000000..659f2ee --- /dev/null +++ b/icons/Activity Diagram - Conditional 1.svg @@ -0,0 +1,26 @@ +Graphviz installed?yesnoprocess alldiagramsprocess onlysequenceandactivitydiagrams \ No newline at end of file diff --git a/icons/Activity Diagram - Conditional 2.svg b/icons/Activity Diagram - Conditional 2.svg new file mode 100644 index 0000000..82af0c4 --- /dev/null +++ b/icons/Activity Diagram - Conditional 2.svg @@ -0,0 +1,30 @@ +yescondition AText 1yescondition BText 2yescondition CText 3yescondition DnothingText 4Text else \ No newline at end of file diff --git a/icons/Activity Diagram - Detach.svg b/icons/Activity Diagram - Detach.svg new file mode 100644 index 0000000..0de0e41 --- /dev/null +++ b/icons/Activity Diagram - Detach.svg @@ -0,0 +1,32 @@ +startfoo1foo2foo3foo5foo4foo6foo7 \ No newline at end of file diff --git a/icons/Activity Diagram - Formatted Swimlanes.svg b/icons/Activity Diagram - Formatted Swimlanes.svg new file mode 100644 index 0000000..29fb847 --- /dev/null +++ b/icons/Activity Diagram - Formatted Swimlanes.svg @@ -0,0 +1,24 @@ +foobarlane1lane2 \ No newline at end of file diff --git a/icons/Activity Diagram - Grouping.svg b/icons/Activity Diagram - Grouping.svg new file mode 100644 index 0000000..1f2efc1 --- /dev/null +++ b/icons/Activity Diagram - Grouping.svg @@ -0,0 +1,27 @@ +Initializationread config fileinit internal variableRunningwait for user interactionprint information \ No newline at end of file diff --git a/icons/Activity Diagram - Notes.svg b/icons/Activity Diagram - Notes.svg new file mode 100644 index 0000000..1b0426e --- /dev/null +++ b/icons/Activity Diagram - Notes.svg @@ -0,0 +1,28 @@ +This is a notefoo1This note is on severallinesand cancontainHTMLCalling the methodfoo()is prohibitedfoo2 \ No newline at end of file diff --git a/icons/Activity Diagram - Parallel processing.svg b/icons/Activity Diagram - Parallel processing.svg new file mode 100644 index 0000000..606d2fa --- /dev/null +++ b/icons/Activity Diagram - Parallel processing.svg @@ -0,0 +1,28 @@ +multiprocessor?yesmonoprocTreatment 1Treatment 2Treatment 1Treatment 2 \ No newline at end of file diff --git a/icons/Activity Diagram - Repeat loop.svg b/icons/Activity Diagram - Repeat loop.svg new file mode 100644 index 0000000..e117bcc --- /dev/null +++ b/icons/Activity Diagram - Repeat loop.svg @@ -0,0 +1,24 @@ +read datagenerate diagramsmore data? \ No newline at end of file diff --git a/icons/Activity Diagram - SDL.svg b/icons/Activity Diagram - SDL.svg new file mode 100644 index 0000000..8758538 --- /dev/null +++ b/icons/Activity Diagram - SDL.svg @@ -0,0 +1,38 @@ +Readynext(o)Receivingnak(i)ack(o)ack(i)next(o)on several linei := i + 1ack(o)err(i)nak(o)fooi > 5finish \ No newline at end of file diff --git a/icons/Activity Diagram - Simple Activity.svg b/icons/Activity Diagram - Simple Activity.svg new file mode 100644 index 0000000..054ca7b --- /dev/null +++ b/icons/Activity Diagram - Simple Activity.svg @@ -0,0 +1,19 @@ +Hello worldThis is on defined onseverallines \ No newline at end of file diff --git a/icons/Activity Diagram - Start Stop.svg b/icons/Activity Diagram - Start Stop.svg new file mode 100644 index 0000000..bcf94c1 --- /dev/null +++ b/icons/Activity Diagram - Start Stop.svg @@ -0,0 +1,21 @@ +Hello worldThis is on defined onseverallines \ No newline at end of file diff --git a/icons/Activity Diagram - Swimlanes.svg b/icons/Activity Diagram - Swimlanes.svg new file mode 100644 index 0000000..e2ada46 --- /dev/null +++ b/icons/Activity Diagram - Swimlanes.svg @@ -0,0 +1,27 @@ +foo1foo4foo2foo3foo5Swimlane1Swimlane2 \ No newline at end of file diff --git a/icons/Activity Diagram - Title and Legend.svg b/icons/Activity Diagram - Title and Legend.svg new file mode 100644 index 0000000..ee6ce70 --- /dev/null +++ b/icons/Activity Diagram - Title and Legend.svg @@ -0,0 +1,36 @@ +this isa longdummyheaderthis is my titlecondition?yesnoyesthis is a notenothis is the legenddummy footer \ No newline at end of file diff --git a/icons/Activity Diagram - While loop 1.svg b/icons/Activity Diagram - While loop 1.svg new file mode 100644 index 0000000..322e78b --- /dev/null +++ b/icons/Activity Diagram - While loop 1.svg @@ -0,0 +1,24 @@ +read datagenerate diagramsdata available? \ No newline at end of file diff --git a/icons/Activity Diagram - While loop 2.svg b/icons/Activity Diagram - While loop 2.svg new file mode 100644 index 0000000..490ddf9 --- /dev/null +++ b/icons/Activity Diagram - While loop 2.svg @@ -0,0 +1,20 @@ +read filenot emptycheck filesize ?emptyclose file \ No newline at end of file From ef8e0ea1dfae07fcdd48114d504bf22a169e58ab Mon Sep 17 00:00:00 2001 From: Encolpe DEGOUTE Date: Thu, 14 Feb 2019 13:19:34 +0100 Subject: [PATCH 3/9] cleanup gitignore --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 64c22dd..79f28cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ *.user *-build-* *.qm +*.o +*.cpp +*.h +.qmake.stash +plantumlqeditor +Makefile From 4a2ae03859a5af19b7db8116a9bd41f9813a5f49 Mon Sep 17 00:00:00 2001 From: Encolpe DEGOUTE Date: Thu, 14 Feb 2019 17:41:47 +0100 Subject: [PATCH 4/9] Remove unused item --- assistant.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/assistant.xml b/assistant.xml index 3c1b5f0..71370d1 100644 --- a/assistant.xml +++ b/assistant.xml @@ -2515,9 +2515,5 @@ [[http://www.yahoo.com]] } ]]> - From 1bb0d478bdfec6ff0a9ac9a2512dd50eef7889e0 Mon Sep 17 00:00:00 2001 From: Encolpe DEGOUTE Date: Thu, 14 Feb 2019 17:42:31 +0100 Subject: [PATCH 5/9] Add a script to automatically generate icons from assistant.xml file --- generate_icons.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 generate_icons.py diff --git a/generate_icons.py b/generate_icons.py new file mode 100755 index 0000000..2a82cde --- /dev/null +++ b/generate_icons.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +from lxml import etree +from os import path, remove +import subprocess + +FILE_JOIN = ' - ' + + +def main(): + """Create and clean plantuml file.""" + tree = etree.parse('assistant.xml') + root = tree.getroot() # + for category in root.getchildren(): + category_name = category.get('name') + for item in category.getchildren(): + item_name = item.get('name') or 'NONE' + print('%s - %s' % (category_name, item_name)) + filename = category_name + FILE_JOIN + item_name + '.puml' + filepath = path.join(path.curdir, 'icons', filename) + cdata = item.text + cdata = cdata.replace('\n' + (len(cdata[1:]) - len(cdata[1:].lstrip(' '))) * ' ', '\n') # NOQA: E501 + with open(filepath, 'w') as source_fd: + source_fd.write('@startuml'+cdata+'@enduml') + + if 'PNG' in category_name: + subprocess.run(['java', '-jar', + '/usr/local/share/plantuml/plantuml.jar', + '-tpng', + path.join(path.curdir, 'icons', '*.puml')]) + else: + subprocess.run(['java', '-jar', + '/usr/local/share/plantuml/plantuml.jar', + '-tsvg', + path.join(path.curdir, 'icons', '*.puml')]) + + remove(filepath) + + +if __name__ == "__main__": + main() + +# vim:set et sts=4 ts=4 tw=80: From 33bed60cd4cfc52fc64d2c6aed3c317c0be837ae Mon Sep 17 00:00:00 2001 From: Encolpe DEGOUTE Date: Thu, 14 Feb 2019 17:43:30 +0100 Subject: [PATCH 6/9] Add new icons from assistant.xml --- icons/Activity Diagram - Arrows.svg | 3 +- icons/Activity Diagram - Colors.svg | 3 +- icons/Activity Diagram - Complete example.svg | 3 +- icons/Activity Diagram - Conditional 1.svg | 3 +- icons/Activity Diagram - Conditional 2.svg | 3 +- icons/Activity Diagram - Detach.svg | 3 +- ...Activity Diagram - Formatted Swimlanes.svg | 3 +- icons/Activity Diagram - Grouping.svg | 3 +- icons/Activity Diagram - Notes.svg | 3 +- ...Activity Diagram - Parallel processing.svg | 3 +- icons/Activity Diagram - Repeat loop.svg | 3 +- icons/Activity Diagram - SDL.svg | 3 +- icons/Activity Diagram - Simple Activity.svg | 3 +- icons/Activity Diagram - Start Stop.svg | 3 +- icons/Activity Diagram - Swimlanes.svg | 3 +- icons/Activity Diagram - Title and Legend.svg | 3 +- icons/Activity Diagram - While loop 1.svg | 3 +- icons/Activity Diagram - While loop 2.svg | 3 +- .../Class Diagrams - Abstract and static.svg | 20 ++- ...iagrams - Abstract class and interface.svg | 38 +++- ...iagrams - Adding methods with brackets.svg | 20 ++- icons/Class Diagrams - Adding methods.svg | 21 ++- .../Class Diagrams - Advanced class body.svg | 42 ++++- ...Class Diagrams - Association classes 1.svg | 26 ++- ...Class Diagrams - Association classes 2.svg | 27 ++- ...Diagrams - Changing arrows direction 1.svg | 18 +- ...Diagrams - Changing arrows direction 2.svg | 18 +- ...Diagrams - Changing arrows direction 3.svg | 20 ++- ...agrams - Defining unskinned visibility.svg | 24 ++- .../Class Diagrams - Defining visibility.svg | 22 ++- ...iagrams - Directed labels on relations.svg | 21 ++- icons/Class Diagrams - Hide stuff.svg | 32 +++- icons/Class Diagrams - Label on relations.svg | 22 ++- ...lass Diagrams - Links between packages.svg | 26 ++- icons/Class Diagrams - Lollipop interface.svg | 18 +- icons/Class Diagrams - More on notes.svg | 31 +++- icons/Class Diagrams - Namespaces.svg | 33 +++- icons/Class Diagrams - Note on links.svg | 25 ++- ...Class Diagrams - Notes and stereotypes.svg | 28 ++- icons/Class Diagrams - Packages styles.svg | 39 +++- icons/Class Diagrams - Packages.svg | 24 ++- icons/Class Diagrams - Relations.svg | 26 ++- icons/Class Diagrams - Skinparam.svg | 26 ++- icons/Class Diagrams - Specific spot.svg | 18 +- icons/Class Diagrams - TEST.svg | 21 +++ icons/Class Diagrams - Title.svg | 19 +- icons/Class Diagrams - Use generics.svg | 20 ++- icons/Class Diagrams - Using non-letters.svg | 20 ++- icons/Component Diagram - Basic Example.svg | 17 ++ ... Diagram - Changing arrows direction 1.svg | 17 ++ ... Diagram - Changing arrows direction 2.svg | 17 ++ ... Diagram - Changing arrows direction 3.svg | 19 ++ ...Component Diagram - Colored components.svg | 27 +++ icons/Component Diagram - Components.svg | 19 ++ ...Component Diagram - Deployment Diagram.svg | 30 ++++ ...omponent Diagram - Grouping Components.svg | 41 +++++ icons/Component Diagram - Interfaces.svg | 19 ++ icons/Component Diagram - Linking 1.svg | 24 +++ icons/Component Diagram - Linking 2.svg | 34 ++++ icons/Component Diagram - Linking 3.svg | 24 +++ icons/Component Diagram - Packages.svg | 42 +++++ icons/Component Diagram - Separators.svg | 54 ++++++ icons/Component Diagram - Skinparam 1.svg | 34 ++++ icons/Component Diagram - Skinparam 2.svg | 34 ++++ .../Component Diagram - Title the diagram.svg | 21 +++ .../Component Diagram - Use UML2 notation.svg | 21 +++ icons/Component Diagram - Using notes.svg | 26 +++ icons/Ditaa (PNG only) - Castle.png | Bin 0 -> 1859 bytes icons/Ditaa (PNG only) - Color codes.png | Bin 0 -> 4540 bytes icons/Ditaa (PNG only) - Color.png | 0 .../Ditaa (PNG only) - Complex Example 1.png | Bin 0 -> 20906 bytes .../Ditaa (PNG only) - Complex Example 2.png | Bin 0 -> 61072 bytes icons/Ditaa (PNG only) - Dashed lines.png | Bin 0 -> 1816 bytes icons/Ditaa (PNG only) - Example 1.png | Bin 0 -> 7891 bytes icons/Ditaa (PNG only) - Example 2.png | Bin 0 -> 10419 bytes ...itaa (PNG only) - Example with options.png | Bin 0 -> 6719 bytes icons/Ditaa (PNG only) - Point markers.png | Bin 0 -> 1686 bytes icons/Ditaa (PNG only) - Process.png | Bin 0 -> 6044 bytes icons/Ditaa (PNG only) - Round corners.png | Bin 0 -> 870 bytes icons/Ditaa (PNG only) - Tags.png | Bin 0 -> 24117 bytes icons/Ditaa (PNG only) - Text handling.png | 0 icons/Graphical Interface - Adding Tabs 2.svg | 1 + icons/Graphical Interface - Adding tabs.svg | 1 + .../Graphical Interface - Advanced table.svg | 1 + icons/Graphical Interface - Basic widgets.svg | 1 + ...aphical Interface - Enclosing brackets.svg | 1 + ...Graphical Interface - OpenIconic Icons.svg | 16 ++ icons/Graphical Interface - Tree widget 1.svg | 1 + icons/Graphical Interface - Tree widget 2.svg | 1 + icons/Graphical Interface - Using Grid 2.svg | 1 + icons/Graphical Interface - Using Grid.svg | 1 + icons/Graphical Interface - Using grid.svg | 1 + icons/Graphical Interface - Using menu 2.svg | 1 + icons/Graphical Interface - Using menu.svg | 1 + .../Graphical Interface - Using separator.svg | 1 + ...ly) - Binary search tree using records.svg | 151 ++++++++++++++++ icons/Graphviz Dot (SVG only) - Digraph.svg | 47 +++++ .../Graphviz Dot (SVG only) - Fancy graph.svg | 117 ++++++++++++ ...G only) - Graph with edges on clusters.svg | 135 ++++++++++++++ icons/Graphviz Dot (SVG only) - Graph.svg | 45 +++++ ... only) - Process diagram with clusters.svg | 169 ++++++++++++++++++ ...SVG only) - Records with nested fields.svg | 64 +++++++ icons/JCCKit (PNG only) - Example 1.png | Bin 0 -> 13038 bytes icons/JCCKit (PNG only) - Example 2.png | Bin 0 -> 12451 bytes icons/JCCKit (PNG only) - Example 3.png | Bin 0 -> 20727 bytes icons/JCCKit (PNG only) - Example 4.png | Bin 0 -> 10032 bytes icons/JCCKit (PNG only) - Example 5.png | Bin 0 -> 14191 bytes icons/Object Diagram - Adding fields 1.svg | 19 ++ icons/Object Diagram - Adding fields 2.svg | 19 ++ ...Object Diagram - Definition of objects.svg | 17 ++ icons/Object Diagram - Emphasized text.svg | 26 +++ icons/Object Diagram - Lists.svg | 27 +++ ...ct Diagram - Relations between objects.svg | 28 +++ icons/Other - Conditions 1.svg | 19 ++ icons/Other - Constants.svg | 22 +++ icons/Other - Handwritten.svg | 25 +++ icons/Other - Header and Footer.svg | 25 +++ icons/Other - Includes.svg | 18 ++ icons/Other - Macros 1.svg | 18 ++ icons/Other - Macros 2.svg | 18 ++ icons/Other - Macros 3.svg | 18 ++ icons/Other - Monochrome.svg | 25 +++ icons/Other - Runtime variables.svg | 65 +++++++ icons/Other - Sprite 1.svg | 37 ++++ icons/Other - Sprite 2.svg | 18 ++ icons/Other - Sprite 3.svg | 42 +++++ icons/PlantUML - Authors.svg | 16 ++ icons/PlantUML - Check Version.svg | 16 ++ icons/PlantUML - Icons.svg | 16 ++ icons/PlantUML - License.svg | 16 ++ icons/PlantUML - Test Graphviz dot.svg | 16 ++ icons/PlantUML - Version.svg | 16 ++ ... - Autoactivation in sequence diagrams.svg | 24 +++ ... - Change line color in dtate diagrams.svg | 25 +++ icons/PlantUML Incubation - NONE.svg | 17 ++ ...ation - Reference in dequence diagrams.svg | 26 +++ ...ncubation - Return in Sequence Diagram.svg | 19 ++ ...- Shortcut syntax in sequence diagrams.svg | 23 +++ .../PlantUML Incubation - URL in diagrams.svg | 21 +++ .../PlantUML Incubation - URLs on classes.svg | 30 ++++ ...Sequence Diagrams - Change arrow style.svg | 37 +++- ...nce Diagrams - Declaring a participant.svg | 23 ++- icons/Sequence Diagrams - Divider.svg | 25 ++- ...- Formatted message sequence numbering.svg | 28 ++- .../Sequence Diagrams - Grouping message.svg | 38 +++- ...rams - Incomming and outgoing messages.svg | 29 ++- ... - Lifeline activation and destruction.svg | 34 +++- .../Sequence Diagrams - Link with Tooltip.svg | 16 ++ ...essage sequence numbering with a start.svg | 28 ++- ... Diagrams - Message sequence numbering.svg | 20 ++- icons/Sequence Diagrams - Message to Self.svg | 17 +- ...ed lifeline activation and destruction.svg | 32 +++- .../Sequence Diagrams - Notes on messages.svg | 28 ++- ...quence Diagrams - Participant creation.svg | 26 ++- ...uence Diagrams - Participants englober.svg | 24 ++- icons/Sequence Diagrams - Removing footer.svg | 21 ++- icons/Sequence Diagrams - Simple sequence.svg | 24 ++- .../Sequence Diagrams - Some other notes.svg | 35 +++- icons/Sequence Diagrams - Space.svg | 24 ++- ...uence Diagrams - Stereotypes and spots.svg | 20 ++- icons/Sequence Diagrams - Title.svg | 20 ++- icons/State Diagram - Arrow direction.svg | 19 ++ icons/State Diagram - Composite state.svg | 35 ++++ icons/State Diagram - Concurrent state.svg | 32 ++++ icons/State Diagram - Long name.svg | 32 ++++ icons/State Diagram - More in notes.svg | 26 +++ icons/State Diagram - Note 1.svg | 25 +++ icons/State Diagram - Note 2.svg | 17 ++ icons/State Diagram - Simple State.svg | 22 +++ icons/State Diagram - Skinparam.svg | 36 ++++ icons/Use Case Diagrams - Actors.svg | 20 ++- icons/Use Case Diagrams - Basic example.svg | 20 ++- ...Diagrams - Changing arrows direction 1.svg | 18 +- ...Diagrams - Changing arrows direction 2.svg | 18 +- ...Diagrams - Changing arrows direction 3.svg | 20 ++- .../Use Case Diagrams - Complete example.svg | 27 ++- icons/Use Case Diagrams - Extension.svg | 21 ++- ...ase Diagrams - Left to right direction.svg | 20 ++- icons/Use Case Diagrams - Stereotypes.svg | 25 ++- icons/Use Case Diagrams - Title.svg | 20 ++- ...ase Diagrams - Top to bottom direction.svg | 20 ++- icons/Use Case Diagrams - Usecases.svg | 20 ++- icons/Use Case Diagrams - Using notes.svg | 34 +++- 183 files changed, 3821 insertions(+), 98 deletions(-) create mode 100644 icons/Class Diagrams - TEST.svg create mode 100644 icons/Component Diagram - Basic Example.svg create mode 100644 icons/Component Diagram - Changing arrows direction 1.svg create mode 100644 icons/Component Diagram - Changing arrows direction 2.svg create mode 100644 icons/Component Diagram - Changing arrows direction 3.svg create mode 100644 icons/Component Diagram - Colored components.svg create mode 100644 icons/Component Diagram - Components.svg create mode 100644 icons/Component Diagram - Deployment Diagram.svg create mode 100644 icons/Component Diagram - Grouping Components.svg create mode 100644 icons/Component Diagram - Interfaces.svg create mode 100644 icons/Component Diagram - Linking 1.svg create mode 100644 icons/Component Diagram - Linking 2.svg create mode 100644 icons/Component Diagram - Linking 3.svg create mode 100644 icons/Component Diagram - Packages.svg create mode 100644 icons/Component Diagram - Separators.svg create mode 100644 icons/Component Diagram - Skinparam 1.svg create mode 100644 icons/Component Diagram - Skinparam 2.svg create mode 100644 icons/Component Diagram - Title the diagram.svg create mode 100644 icons/Component Diagram - Use UML2 notation.svg create mode 100644 icons/Component Diagram - Using notes.svg create mode 100644 icons/Ditaa (PNG only) - Castle.png create mode 100644 icons/Ditaa (PNG only) - Color codes.png create mode 100644 icons/Ditaa (PNG only) - Color.png create mode 100644 icons/Ditaa (PNG only) - Complex Example 1.png create mode 100644 icons/Ditaa (PNG only) - Complex Example 2.png create mode 100644 icons/Ditaa (PNG only) - Dashed lines.png create mode 100644 icons/Ditaa (PNG only) - Example 1.png create mode 100644 icons/Ditaa (PNG only) - Example 2.png create mode 100644 icons/Ditaa (PNG only) - Example with options.png create mode 100644 icons/Ditaa (PNG only) - Point markers.png create mode 100644 icons/Ditaa (PNG only) - Process.png create mode 100644 icons/Ditaa (PNG only) - Round corners.png create mode 100644 icons/Ditaa (PNG only) - Tags.png create mode 100644 icons/Ditaa (PNG only) - Text handling.png create mode 100644 icons/Graphical Interface - Adding Tabs 2.svg create mode 100644 icons/Graphical Interface - Adding tabs.svg create mode 100644 icons/Graphical Interface - Advanced table.svg create mode 100644 icons/Graphical Interface - Basic widgets.svg create mode 100644 icons/Graphical Interface - Enclosing brackets.svg create mode 100644 icons/Graphical Interface - OpenIconic Icons.svg create mode 100644 icons/Graphical Interface - Tree widget 1.svg create mode 100644 icons/Graphical Interface - Tree widget 2.svg create mode 100644 icons/Graphical Interface - Using Grid 2.svg create mode 100644 icons/Graphical Interface - Using Grid.svg create mode 100644 icons/Graphical Interface - Using grid.svg create mode 100644 icons/Graphical Interface - Using menu 2.svg create mode 100644 icons/Graphical Interface - Using menu.svg create mode 100644 icons/Graphical Interface - Using separator.svg create mode 100644 icons/Graphviz Dot (SVG only) - Binary search tree using records.svg create mode 100644 icons/Graphviz Dot (SVG only) - Digraph.svg create mode 100644 icons/Graphviz Dot (SVG only) - Fancy graph.svg create mode 100644 icons/Graphviz Dot (SVG only) - Graph with edges on clusters.svg create mode 100644 icons/Graphviz Dot (SVG only) - Graph.svg create mode 100644 icons/Graphviz Dot (SVG only) - Process diagram with clusters.svg create mode 100644 icons/Graphviz Dot (SVG only) - Records with nested fields.svg create mode 100644 icons/JCCKit (PNG only) - Example 1.png create mode 100644 icons/JCCKit (PNG only) - Example 2.png create mode 100644 icons/JCCKit (PNG only) - Example 3.png create mode 100644 icons/JCCKit (PNG only) - Example 4.png create mode 100644 icons/JCCKit (PNG only) - Example 5.png create mode 100644 icons/Object Diagram - Adding fields 1.svg create mode 100644 icons/Object Diagram - Adding fields 2.svg create mode 100644 icons/Object Diagram - Definition of objects.svg create mode 100644 icons/Object Diagram - Emphasized text.svg create mode 100644 icons/Object Diagram - Lists.svg create mode 100644 icons/Object Diagram - Relations between objects.svg create mode 100644 icons/Other - Conditions 1.svg create mode 100644 icons/Other - Constants.svg create mode 100644 icons/Other - Handwritten.svg create mode 100644 icons/Other - Header and Footer.svg create mode 100644 icons/Other - Includes.svg create mode 100644 icons/Other - Macros 1.svg create mode 100644 icons/Other - Macros 2.svg create mode 100644 icons/Other - Macros 3.svg create mode 100644 icons/Other - Monochrome.svg create mode 100644 icons/Other - Runtime variables.svg create mode 100644 icons/Other - Sprite 1.svg create mode 100644 icons/Other - Sprite 2.svg create mode 100644 icons/Other - Sprite 3.svg create mode 100644 icons/PlantUML - Authors.svg create mode 100644 icons/PlantUML - Check Version.svg create mode 100644 icons/PlantUML - Icons.svg create mode 100644 icons/PlantUML - License.svg create mode 100644 icons/PlantUML - Test Graphviz dot.svg create mode 100644 icons/PlantUML - Version.svg create mode 100644 icons/PlantUML Incubation - Autoactivation in sequence diagrams.svg create mode 100644 icons/PlantUML Incubation - Change line color in dtate diagrams.svg create mode 100644 icons/PlantUML Incubation - NONE.svg create mode 100644 icons/PlantUML Incubation - Reference in dequence diagrams.svg create mode 100644 icons/PlantUML Incubation - Return in Sequence Diagram.svg create mode 100644 icons/PlantUML Incubation - Shortcut syntax in sequence diagrams.svg create mode 100644 icons/PlantUML Incubation - URL in diagrams.svg create mode 100644 icons/PlantUML Incubation - URLs on classes.svg create mode 100644 icons/Sequence Diagrams - Link with Tooltip.svg create mode 100644 icons/State Diagram - Arrow direction.svg create mode 100644 icons/State Diagram - Composite state.svg create mode 100644 icons/State Diagram - Concurrent state.svg create mode 100644 icons/State Diagram - Long name.svg create mode 100644 icons/State Diagram - More in notes.svg create mode 100644 icons/State Diagram - Note 1.svg create mode 100644 icons/State Diagram - Note 2.svg create mode 100644 icons/State Diagram - Simple State.svg create mode 100644 icons/State Diagram - Skinparam.svg diff --git a/icons/Activity Diagram - Arrows.svg b/icons/Activity Diagram - Arrows.svg index 5d12dea..6e22635 100644 --- a/icons/Activity Diagram - Arrows.svg +++ b/icons/Activity Diagram - Arrows.svg @@ -1,4 +1,4 @@ -foo1testfoo2foo3foo4foo5The text canalso be on several linesandverylong...You can put text on arrowsDummyString idvoid methods() \ No newline at end of file diff --git a/icons/Class Diagrams - Abstract class and interface.svg b/icons/Class Diagrams - Abstract class and interface.svg index a3e88c7..d43726b 100644 --- a/icons/Class Diagrams - Abstract class and interface.svg +++ b/icons/Class Diagrams - Abstract class and interface.svg @@ -1 +1,37 @@ -AbstractListAbstractCollectionListCollectionArrayListObject[] elementDatasize()TimeUnitDAYSHOURSMINUTES \ No newline at end of file +AbstractListAbstractCollectionListCollectionArrayListObject[] elementDatasize()TimeUnitDAYSHOURSMINUTES \ No newline at end of file diff --git a/icons/Class Diagrams - Adding methods with brackets.svg b/icons/Class Diagrams - Adding methods with brackets.svg index 1eaa77b..ab17275 100644 --- a/icons/Class Diagrams - Adding methods with brackets.svg +++ b/icons/Class Diagrams - Adding methods with brackets.svg @@ -1 +1,19 @@ -DummyString datavoid methods() \ No newline at end of file +DummyString datavoid methods() \ No newline at end of file diff --git a/icons/Class Diagrams - Adding methods.svg b/icons/Class Diagrams - Adding methods.svg index 856c7f9..5606f6b 100644 --- a/icons/Class Diagrams - Adding methods.svg +++ b/icons/Class Diagrams - Adding methods.svg @@ -1 +1,20 @@ -Objectequals()ArrayListObject[] elementDatasize() \ No newline at end of file +Objectequals()ArrayListObject[] elementDatasize() \ No newline at end of file diff --git a/icons/Class Diagrams - Advanced class body.svg b/icons/Class Diagrams - Advanced class body.svg index 1c347cb..264aabc 100644 --- a/icons/Class Diagrams - Advanced class body.svg +++ b/icons/Class Diagrams - Advanced class body.svg @@ -1 +1,41 @@ -Foo1You can useseveral linesas you wantand groupthings together.You can have as many groupsas you wantEnd of classUsergetName()getAddress()Simple GettersetName()Some setterint ageprivate dataString passwordcrypted \ No newline at end of file +Foo1You can useseveral linesas you wantand groupthings together.You can have as many groupsas you wantEnd of classUsergetName()getAddress()Simple GettersetName()Some setterint ageprivate dataString passwordcrypted \ No newline at end of file diff --git a/icons/Class Diagrams - Association classes 1.svg b/icons/Class Diagrams - Association classes 1.svg index 1764e86..6baa27e 100644 --- a/icons/Class Diagrams - Association classes 1.svg +++ b/icons/Class Diagrams - Association classes 1.svg @@ -1 +1,25 @@ -StudentNameCourseEnrollmentdrop()cancel()0..*1..* \ No newline at end of file +StudentNameCourseEnrollmentdrop()cancel()0..*1..* \ No newline at end of file diff --git a/icons/Class Diagrams - Association classes 2.svg b/icons/Class Diagrams - Association classes 2.svg index 61df6af..0225bcb 100644 --- a/icons/Class Diagrams - Association classes 2.svg +++ b/icons/Class Diagrams - Association classes 2.svg @@ -1 +1,26 @@ -StudentNameCourseEnrollmentdrop()cancel()0..*1..* \ No newline at end of file +StudentNameCourseEnrollmentdrop()cancel()0..*1..* \ No newline at end of file diff --git a/icons/Class Diagrams - Changing arrows direction 1.svg b/icons/Class Diagrams - Changing arrows direction 1.svg index ff771be..999ddd6 100644 --- a/icons/Class Diagrams - Changing arrows direction 1.svg +++ b/icons/Class Diagrams - Changing arrows direction 1.svg @@ -1 +1,17 @@ -RoomStudientChair \ No newline at end of file +RoomStudientChair \ No newline at end of file diff --git a/icons/Class Diagrams - Changing arrows direction 2.svg b/icons/Class Diagrams - Changing arrows direction 2.svg index 0329b22..9292cc1 100644 --- a/icons/Class Diagrams - Changing arrows direction 2.svg +++ b/icons/Class Diagrams - Changing arrows direction 2.svg @@ -1 +1,17 @@ -StudientRoomChair \ No newline at end of file +StudientRoomChair \ No newline at end of file diff --git a/icons/Class Diagrams - Changing arrows direction 3.svg b/icons/Class Diagrams - Changing arrows direction 3.svg index a4f4ca0..02cad3a 100644 --- a/icons/Class Diagrams - Changing arrows direction 3.svg +++ b/icons/Class Diagrams - Changing arrows direction 3.svg @@ -1 +1,19 @@ -foodummyLeftdummyRightdummyUpdummyDown \ No newline at end of file +foodummyLeftdummyRightdummyUpdummyDown \ No newline at end of file diff --git a/icons/Class Diagrams - Defining unskinned visibility.svg b/icons/Class Diagrams - Defining unskinned visibility.svg index 2ad46f2..63e30bb 100644 --- a/icons/Class Diagrams - Defining unskinned visibility.svg +++ b/icons/Class Diagrams - Defining unskinned visibility.svg @@ -1 +1,23 @@ -Dummy-field1#field2~method1()+method2() \ No newline at end of file +Dummy-field1#field2~method1()+method2() \ No newline at end of file diff --git a/icons/Class Diagrams - Defining visibility.svg b/icons/Class Diagrams - Defining visibility.svg index 27b5aeb..45ce777 100644 --- a/icons/Class Diagrams - Defining visibility.svg +++ b/icons/Class Diagrams - Defining visibility.svg @@ -1 +1,21 @@ -Dummyfield1field2method1()method2() \ No newline at end of file +Dummyfield1field2method1()method2() \ No newline at end of file diff --git a/icons/Class Diagrams - Directed labels on relations.svg b/icons/Class Diagrams - Directed labels on relations.svg index e8ef7b5..3d3323c 100644 --- a/icons/Class Diagrams - Directed labels on relations.svg +++ b/icons/Class Diagrams - Directed labels on relations.svg @@ -1 +1,20 @@ -CarDriverWheelPersondriveshave 4owns \ No newline at end of file +CarDriverWheelPersondriveshave 4owns \ No newline at end of file diff --git a/icons/Class Diagrams - Hide stuff.svg b/icons/Class Diagrams - Hide stuff.svg index 091ced4..2202ca4 100644 --- a/icons/Class Diagrams - Hide stuff.svg +++ b/icons/Class Diagrams - Hide stuff.svg @@ -1 +1,31 @@ -Dummy1myMethods()Dummy2<<Serializable>>Dummy3String name \ No newline at end of file +Dummy1myMethods()Dummy2«Serializable»Dummy3String name \ No newline at end of file diff --git a/icons/Class Diagrams - Label on relations.svg b/icons/Class Diagrams - Label on relations.svg index 0bc298d..c143a4a 100644 --- a/icons/Class Diagrams - Label on relations.svg +++ b/icons/Class Diagrams - Label on relations.svg @@ -1 +1,21 @@ -Class01Class02Class03Class04Class05Class06contains1manyagregation1 \ No newline at end of file +Class01Class02Class03Class04Class05Class06contains1manyagregation1 \ No newline at end of file diff --git a/icons/Class Diagrams - Links between packages.svg b/icons/Class Diagrams - Links between packages.svg index 54921f2..722ecfc 100644 --- a/icons/Class Diagrams - Links between packages.svg +++ b/icons/Class Diagrams - Links between packages.svg @@ -1 +1,25 @@ -foo1.foo2.foo3foo1.foo2Object \ No newline at end of file +foo1.foo2.foo3foo1.foo2Object \ No newline at end of file diff --git a/icons/Class Diagrams - Lollipop interface.svg b/icons/Class Diagrams - Lollipop interface.svg index dcd3011..8fbbc56 100644 --- a/icons/Class Diagrams - Lollipop interface.svg +++ b/icons/Class Diagrams - Lollipop interface.svg @@ -1 +1,17 @@ -foobar \ No newline at end of file +foobar \ No newline at end of file diff --git a/icons/Class Diagrams - More on notes.svg b/icons/Class Diagrams - More on notes.svg index c271e9a..d10893b 100644 --- a/icons/Class Diagrams - More on notes.svg +++ b/icons/Class Diagrams - More on notes.svg @@ -1 +1,30 @@ -FooOn last defined classObjectIn java,everyclassextendsthisone.This note isalsoon severalwordslinesAnd this is hosted by(File not found: /mnt/007-ST-DATA-LNX/borco/projects/plantumlqeditor-build-desktop-Qt_4_8_2_in_PATH__System__Release/sourceforge.jpg) \ No newline at end of file +FooOn last defined classObjectIn java,everyclassextendsthisone.This note isalsoon severalwordslinesAnd this is hosted by(File not found: /home/edegoute/Repositories/plantumlqeditor/icons/sourceforge.jpg) \ No newline at end of file diff --git a/icons/Class Diagrams - Namespaces.svg b/icons/Class Diagrams - Namespaces.svg index 818d514..0bc123b 100644 --- a/icons/Class Diagrams - Namespaces.svg +++ b/icons/Class Diagrams - Namespaces.svg @@ -1 +1,32 @@ -net.dummynet.foonet.unusedBaseClassPersonMeetingPersonPerson \ No newline at end of file +net.dummynet.foonet.unusedPersonMeetingPersonPersonBaseClass \ No newline at end of file diff --git a/icons/Class Diagrams - Note on links.svg b/icons/Class Diagrams - Note on links.svg index 0f3ab2c..d46143c 100644 --- a/icons/Class Diagrams - Note on links.svg +++ b/icons/Class Diagrams - Note on links.svg @@ -1 +1,24 @@ -DummyFooFoo2A linknote that is redAnother linkthis is my note on right linkand in blue \ No newline at end of file +DummyFooFoo2A linknote that is redAnother linkthis is my note on right linkand in blue \ No newline at end of file diff --git a/icons/Class Diagrams - Notes and stereotypes.svg b/icons/Class Diagrams - Notes and stereotypes.svg index 2b4cfe1..6a91f60 100644 --- a/icons/Class Diagrams - Notes and stereotypes.svg +++ b/icons/Class Diagrams - Notes and stereotypes.svg @@ -1 +1,27 @@ -<< general >>ObjectArrayListIn java, every classextends this one.This is a floating noteThis note is connectedto several objects.FooOn last defined class \ No newline at end of file +«general»ObjectArrayListIn java, every classextends this one.This is a floating noteThis note is connectedto several objects.FooOn last defined class \ No newline at end of file diff --git a/icons/Class Diagrams - Packages styles.svg b/icons/Class Diagrams - Packages styles.svg index e591039..ad86da1 100644 --- a/icons/Class Diagrams - Packages styles.svg +++ b/icons/Class Diagrams - Packages styles.svg @@ -1 +1,38 @@ -foo1foo2foo3foo4foo5foo6Class1Class2Class3Class4Class5Class6 \ No newline at end of file +foo1foo2«Rect»foo3foo4foo5foo6Class1Class2Class3Class4Class5Class6 \ No newline at end of file diff --git a/icons/Class Diagrams - Packages.svg b/icons/Class Diagrams - Packages.svg index f415c90..609c38a 100644 --- a/icons/Class Diagrams - Packages.svg +++ b/icons/Class Diagrams - Packages.svg @@ -1 +1,23 @@ -Classic Collectionsnet.sourceforge.plantumlObjectArrayListDemo1Demo2 \ No newline at end of file +Classic Collectionsnet.sourceforge.plantumlObjectArrayListDemo1Demo2 \ No newline at end of file diff --git a/icons/Class Diagrams - Relations.svg b/icons/Class Diagrams - Relations.svg index a83f4fd..822fcfe 100644 --- a/icons/Class Diagrams - Relations.svg +++ b/icons/Class Diagrams - Relations.svg @@ -1 +1,25 @@ -Class01Class02Class03Class04Class05Class06Class07Class08Class09Class10Class11Class12Class13Class14Class15Class16Class17Class18Class19Class20 \ No newline at end of file +Class01Class02Class03Class04Class05Class06Class07Class08Class09Class10Class11Class12Class13Class14Class15Class16Class17Class18Class19Class20 \ No newline at end of file diff --git a/icons/Class Diagrams - Skinparam.svg b/icons/Class Diagrams - Skinparam.svg index 687aeba..f63fdf6 100644 --- a/icons/Class Diagrams - Skinparam.svg +++ b/icons/Class Diagrams - Skinparam.svg @@ -1 +1,25 @@ -Class01Class02Class03Class04contains1manyagregation \ No newline at end of file +Class01Class02Class03Class04contains1manyagregation \ No newline at end of file diff --git a/icons/Class Diagrams - Specific spot.svg b/icons/Class Diagrams - Specific spot.svg index 5b33290..16726cc 100644 --- a/icons/Class Diagrams - Specific spot.svg +++ b/icons/Class Diagrams - Specific spot.svg @@ -1 +1,17 @@ -<< Singleton >>SystemDate \ No newline at end of file +«Singleton»SystemDate \ No newline at end of file diff --git a/icons/Class Diagrams - TEST.svg b/icons/Class Diagrams - TEST.svg new file mode 100644 index 0000000..c24d5ae --- /dev/null +++ b/icons/Class Diagrams - TEST.svg @@ -0,0 +1,21 @@ +Test1Test2Test3 \ No newline at end of file diff --git a/icons/Class Diagrams - Title.svg b/icons/Class Diagrams - Title.svg index 5f7d355..fc6c2f5 100644 --- a/icons/Class Diagrams - Title.svg +++ b/icons/Class Diagrams - Title.svg @@ -1 +1,18 @@ -Simpleexampleof titleObjectArrayList \ No newline at end of file +Simpleexampleof titleObjectArrayList \ No newline at end of file diff --git a/icons/Class Diagrams - Use generics.svg b/icons/Class Diagrams - Use generics.svg index d934b60..980e220 100644 --- a/icons/Class Diagrams - Use generics.svg +++ b/icons/Class Diagrams - Use generics.svg @@ -1 +1,19 @@ -Foo? extends Elementint size()Element \ No newline at end of file +Foo? extends Elementint size()Element \ No newline at end of file diff --git a/icons/Class Diagrams - Using non-letters.svg b/icons/Class Diagrams - Using non-letters.svg index ec3305b..b869238 100644 --- a/icons/Class Diagrams - Using non-letters.svg +++ b/icons/Class Diagrams - Using non-letters.svg @@ -1 +1,19 @@ -This is my classIt works this way toofoo/dummyuse \ No newline at end of file +This is my classIt works this way toofoo/dummyuse \ No newline at end of file diff --git a/icons/Component Diagram - Basic Example.svg b/icons/Component Diagram - Basic Example.svg new file mode 100644 index 0000000..f246ec4 --- /dev/null +++ b/icons/Component Diagram - Basic Example.svg @@ -0,0 +1,17 @@ +DataAccessFirst ComponentHTTPuse \ No newline at end of file diff --git a/icons/Component Diagram - Changing arrows direction 1.svg b/icons/Component Diagram - Changing arrows direction 1.svg new file mode 100644 index 0000000..aa4ef70 --- /dev/null +++ b/icons/Component Diagram - Changing arrows direction 1.svg @@ -0,0 +1,17 @@ +ComponentInterface1Interface2 \ No newline at end of file diff --git a/icons/Component Diagram - Changing arrows direction 2.svg b/icons/Component Diagram - Changing arrows direction 2.svg new file mode 100644 index 0000000..f7c2404 --- /dev/null +++ b/icons/Component Diagram - Changing arrows direction 2.svg @@ -0,0 +1,17 @@ +Interface1ComponentInterface2 \ No newline at end of file diff --git a/icons/Component Diagram - Changing arrows direction 3.svg b/icons/Component Diagram - Changing arrows direction 3.svg new file mode 100644 index 0000000..b102003 --- /dev/null +++ b/icons/Component Diagram - Changing arrows direction 3.svg @@ -0,0 +1,19 @@ +Componentleftrightupdown \ No newline at end of file diff --git a/icons/Component Diagram - Colored components.svg b/icons/Component Diagram - Colored components.svg new file mode 100644 index 0000000..d0d581c --- /dev/null +++ b/icons/Component Diagram - Colored components.svg @@ -0,0 +1,27 @@ +SYSTEM1ComponentBoxAnotherCompBox \ No newline at end of file diff --git a/icons/Component Diagram - Components.svg b/icons/Component Diagram - Components.svg new file mode 100644 index 0000000..d162933 --- /dev/null +++ b/icons/Component Diagram - Components.svg @@ -0,0 +1,19 @@ +First componentAnother componentComp3Lastcomponent \ No newline at end of file diff --git a/icons/Component Diagram - Deployment Diagram.svg b/icons/Component Diagram - Deployment Diagram.svg new file mode 100644 index 0000000..6108e26 --- /dev/null +++ b/icons/Component Diagram - Deployment Diagram.svg @@ -0,0 +1,30 @@ +artifactactorfoldernodeframeclouddatabasestorageagentusecasecomponentboundarycontrolentityinterface \ No newline at end of file diff --git a/icons/Component Diagram - Grouping Components.svg b/icons/Component Diagram - Grouping Components.svg new file mode 100644 index 0000000..d0bab95 --- /dev/null +++ b/icons/Component Diagram - Grouping Components.svg @@ -0,0 +1,41 @@ +Some GroupOther GroupsMySqlThis is my folderFooHTTPFirst ComponentAnother ComponentFTPSecond ComponentExample 1Folder 3Frame 4 \ No newline at end of file diff --git a/icons/Component Diagram - Interfaces.svg b/icons/Component Diagram - Interfaces.svg new file mode 100644 index 0000000..6ad674d --- /dev/null +++ b/icons/Component Diagram - Interfaces.svg @@ -0,0 +1,19 @@ +First InterfaceAnother interfaceInterf3Lastinterface \ No newline at end of file diff --git a/icons/Component Diagram - Linking 1.svg b/icons/Component Diagram - Linking 1.svg new file mode 100644 index 0000000..68f1434 --- /dev/null +++ b/icons/Component Diagram - Linking 1.svg @@ -0,0 +1,24 @@ +node1node2node3node4node5 \ No newline at end of file diff --git a/icons/Component Diagram - Linking 2.svg b/icons/Component Diagram - Linking 2.svg new file mode 100644 index 0000000..3ef0cad --- /dev/null +++ b/icons/Component Diagram - Linking 2.svg @@ -0,0 +1,34 @@ +artifact1artifact2artifact3artifact4artifact5artifact6artifact7artifact8artifact9artifact10 \ No newline at end of file diff --git a/icons/Component Diagram - Linking 3.svg b/icons/Component Diagram - Linking 3.svg new file mode 100644 index 0000000..773d707 --- /dev/null +++ b/icons/Component Diagram - Linking 3.svg @@ -0,0 +1,24 @@ +cloud1cloud2cloud3cloud4cloud5 \ No newline at end of file diff --git a/icons/Component Diagram - Packages.svg b/icons/Component Diagram - Packages.svg new file mode 100644 index 0000000..597dd90 --- /dev/null +++ b/icons/Component Diagram - Packages.svg @@ -0,0 +1,42 @@ +FooA1FooA3FooA5FooB1FooB3FooB5FooB7FooA2FooA4FooA6FooB2FooB4FooB6FooB8 \ No newline at end of file diff --git a/icons/Component Diagram - Separators.svg b/icons/Component Diagram - Separators.svg new file mode 100644 index 0000000..9273595 --- /dev/null +++ b/icons/Component Diagram - Separators.svg @@ -0,0 +1,54 @@ +This is anfolderYou can use separatorof different kindand styleThis is anodeYou can use separatorof different kindand styleThis is adatabaseYou can use separatorof different kindand styleThis is ausecaseYou can use separatorof different kindand style \ No newline at end of file diff --git a/icons/Component Diagram - Skinparam 1.svg b/icons/Component Diagram - Skinparam 1.svg new file mode 100644 index 0000000..a9896c4 --- /dev/null +++ b/icons/Component Diagram - Skinparam 1.svg @@ -0,0 +1,34 @@ +Data AccessFirst ComponentHTTPWeb Serveruse \ No newline at end of file diff --git a/icons/Component Diagram - Skinparam 2.svg b/icons/Component Diagram - Skinparam 2.svg new file mode 100644 index 0000000..6717ec2 --- /dev/null +++ b/icons/Component Diagram - Skinparam 2.svg @@ -0,0 +1,34 @@ +«static lib»AA«shared lib»BB«static lib»CCnode1«shared node»node2Production \ No newline at end of file diff --git a/icons/Component Diagram - Title the diagram.svg b/icons/Component Diagram - Title the diagram.svg new file mode 100644 index 0000000..5bdd7b9 --- /dev/null +++ b/icons/Component Diagram - Title the diagram.svg @@ -0,0 +1,21 @@ +Very simple componentdiagramData AccessFirst ComponentHTTPuse \ No newline at end of file diff --git a/icons/Component Diagram - Use UML2 notation.svg b/icons/Component Diagram - Use UML2 notation.svg new file mode 100644 index 0000000..20842a6 --- /dev/null +++ b/icons/Component Diagram - Use UML2 notation.svg @@ -0,0 +1,21 @@ +Data AccessFirst ComponentHTTPuse \ No newline at end of file diff --git a/icons/Component Diagram - Using notes.svg b/icons/Component Diagram - Using notes.svg new file mode 100644 index 0000000..d8580e6 --- /dev/null +++ b/icons/Component Diagram - Using notes.svg @@ -0,0 +1,26 @@ +Data AccessFirst ComponentHTTPWeb Service onlyA note can alsobe on several linesuse \ No newline at end of file diff --git a/icons/Ditaa (PNG only) - Castle.png b/icons/Ditaa (PNG only) - Castle.png new file mode 100644 index 0000000000000000000000000000000000000000..6cc36cf92b2c871a1890a0177fa9a9b23ff5a19a GIT binary patch literal 1859 zcmb`IeKga19LJ|l5izq+M7z2uO-k3%T5{8dEtX%_#V{qKTB(~DwxUpqp@-E`XDXUm zshAw>A@?eU8a>U!waCLfZ8Hxsws7rsyLIk8=l<0{--q*keV)JPywCgLybSd%^g$qy zA;ufE8wAoZnm=diEtp>yNM12OAYFY7YCArjsE~-r_<-flM{g{}LMGp&n-xGD;F2832N&E@FnM_(zbgltdGKm8#*{lY^%Z1{%9=$=PlJw^Pp zgyRpI+*BQ#`ZZm}!zoQCH^(IPyo~6JoCA&IROy0fO8_0gr&SE2WNXx-5f41b>HBWB z02B%xzP&zC?4c|UaFjF8WAnN27;x*%gX};{B~>w^$noC#%M@itEE$2(;&<4=vW=jA zMPyR4<~36GC907LLo60sA>%>>@vj}1d%F&)EN%f^WmwN8ob;a*9%^$rJOv`)f2cv7SU! zZHCr=sw`8Ge!*N@m|n|@1c<4Vc2tlDo5pM$h}ve`ghchC@dE9P(3OpK>$pXk+1XJu z81anmBF>N?sDz0kUPRlv$Rkb~GYI?bWhq7PERaE~P^{+GdNs_U{28uU7vQ+Wakrg8 z*-BiGT;@t$uLFfJV2MgYzjJsRx#G%NZ+y*+!-loNvuYEPz6s-4wac!CtJQ;Exmpt| zpG#aRGu%&WLJ2EAF(pY_s-8zrqSeThM8U%hGzS9e4d^3_Q0n{RFzVrnsY$}i7%DC zSlXGDm4}Gwn~=3AJA|5%t|tMX(w45$i(yHIvNEzjk*$IoEX4JuECNX>L}CeAK|T zT;m@BOz&&T3nSd`kd@cC%=BdIf~^H7HIp+Mm967g_~DqCw@kkKi|AWE7tt()^H?zJ zD3I7v%Hc4P6e2&)_s!VA>w@y~@{qaGz_^8^3vh>aOS-$!$^jv9T}ToRmzA0MvZ=`l z4u?BAxl;3yK75C;q?QZ#TD*9ZXcfTT*;% z#_RCTH+%++=u@@k43WsU%1oLYydIknP_i5BeE#KX|N6sK(Mo#YQ*+Z>Cf`>f{!yK= jv?7q7vFUFHT17JWn3KYxNRZ-raRgz|IMf4=y=VRes^)ao literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Color codes.png b/icons/Ditaa (PNG only) - Color codes.png new file mode 100644 index 0000000000000000000000000000000000000000..d52c6e457fa9e7009064b72a072d65025450ddb3 GIT binary patch literal 4540 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 literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Complex Example 2.png b/icons/Ditaa (PNG only) - Complex Example 2.png new file mode 100644 index 0000000000000000000000000000000000000000..fcaad80258b8742cf696a8ebfc0a270876b7bb0b GIT binary patch literal 61072 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 literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Dashed lines.png b/icons/Ditaa (PNG only) - Dashed lines.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef9f7b849c7fc4e59036c83112808fd1a69cff7 GIT binary patch literal 1816 zcmbtVYc!kb7B;O@%3?n`x!!*Xw3i0&JbOu#9j4e)}Nl% z7w|bgI(e-_x7;69Rx7tc@#a&0IOXIoric?dO*D0l1M}Uv;qIr-7ZTdir_Nwa2At*`F>h#yC6b&8@2hyq?~wB1VfJusT7K zTD&fx=27Ib?*`9ZXGS~MG$lY4%tWw^blt@d)c?lQ&1eFlHDKS2RB@s4N`XOdIf@jk z9lQ(3rV%7l9+8oj#WC7XLZM;l^O2E}BDjNdon^G;XxeggL_|bTP>`>$F9w6b<4sVnS^{YokvuR_07qS29j87dMgDoxF>d@f z`cLlS?~cXAEo5mLgmq>NSfbIzL#t^k;`9}<5mj?5kd0qk7KMa_j4IdH6xgnI(uPtt zJCuYZB96{zciP+AKaJ)#owP`le)L7+68x#i>ceN-l4dj2zLlRph5$`m3Go+P4*g;r z96e0j<(zwcEa43mHQ{Q);A*6olz%95N-U*Nq9P)V|Jmk|r(Yk|evL>h^T$4<(V`|_ zWf6~<-sV-I&wj4>ER)IpP|l0TAYx^cF)E{M;Bu4?=l%OG!7B_7=*rcz#yxp{ZOMw7 zw?(8c)XIpDFY;Ht$xBzrC41V(##<9I{jqz=eWwb5g^nb1W_P!+AhqX?dF4hxmRSnk zuk2{!r9OS++yUu{@lMjjZ;CJ*eLnJDs$!Afm1nRb8ufBfTfH1XpG_*grJBV{=Qc+T z!Sj?qf-(}#AqYB6(;ef~pQT^sJP9S+;XiuGkD+Wevt9{>kDLfIES+;;W25Ac3QSAv z*y@7U!A>V@YFTe+Y~3n6T!we@=aLouBCqssS*-RGYctnkw}!B zoP0*qfA8?@^^y|(#Gl_<=kv_MkVJWavfHXzwjCcHk#ER-r3FP*_KUugRNCB=@MJ9nrHwyNb#rqgA`qMg zd;^U(yRabG`3+d)!flLTV#Tt5P&4=U@PW~mI6;-37i2MV{N|EnpHa_!hub?rW{l%@ zhmMT(HdwNjK5+{3^FM?86ZWo1Bob7wP!p+U78MsqTAI@{(Q~l3f01o-^p1;yo?nPQ z-a%9}#f&nz^hn1eN17Q7ZEfwvJ&y-VnFU4=z}KLv7rKBOLETFJB7O<%e{Tm5r@pq+zgM+Z{g+f2ulKbvW!_vu( zX4Kbjl1_H(Hd`>jJpr4+-_iR2GmlP|(Tmi-9E3H2Gg>z+oAyqE9Z$vE!w>re9e(4# D$X2sc literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Example 1.png b/icons/Ditaa (PNG only) - Example 1.png new file mode 100644 index 0000000000000000000000000000000000000000..0542bac1f6f8bd21cf6479ccb44b0eaea37da383 GIT binary patch literal 7891 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 F{{aCUB3b|d literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Example with options.png b/icons/Ditaa (PNG only) - Example with options.png new file mode 100644 index 0000000000000000000000000000000000000000..94835eb33a2a627b4f8df2dc1c10dd67b126732d GIT binary patch literal 6719 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 literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Point markers.png b/icons/Ditaa (PNG only) - Point markers.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb00c212684a809f7094dede49cbd6893e81c43 GIT binary patch literal 1686 zcmeAS@N?(olHy`uVBq!ia0vp^CxEz)g9%8!TX}LJ0|Q&Er;B4qMcmuF_TJI?BJ2g6 zWgQ_Ink5<@ipwssybUnivE}`NlMBCzicH}&rMeU^_S=A$EqE3=G0Ude~nwm{GU-nVuCb7jKc

    QXt;6j-rAa)KTl6jckh>zm6JQA^#0JBSJ#TgbgZ;``upe4 zpZ~dT+O%oUo9SC|I!k-QC^SZ(hA{VZs}^n8%IBd9OWrqB8g32fq{l{?(~X&b<+2kTzk zud)08`uh6Ci0~8npWA3;P4_@9%%PK=n6U`I#G) zs@`u{rPlx`7)j8g?9DL>d`t@smdAmP9K0XG9 z*wgPiuJ<@6olHr&`}Kn#&<5w_H~Qu6@7=jG<^GO|Cw>Qqg@pm7U@rO-5gR*q?%b)- z$q#-9zeqL&g^-?}Udly;iWxI!E(}-M-gXe`ny2nsQ-6JY+XkbicL8nrmA>9z1w3 zMlW1%dgc7RUxBG7EIc_m`Sj`29MjlsYS<6H+GBPv!=z&S-b?qcK0iNS-lk&1wry<* znU8-S=MCGQ{rFF+|AmcSC0`#NZa2@rrx07R(B&4LWz{%=liqOGJ$C&%2*W_J4c6o-HUM)@uc;+SS8S8*r7HBOrU?M>eM z`|ImJK05m7krL2|`%S8Ub361kV4jY;p5`LyY112l;?rXvSmK=8#A{;-+tT|V0%a{L4rX>%k=?72P z_G;UdSR0Noff_dLPwTp*?b#Pf15K|wSoQ7A%>(P)wK zzpCT2OiSGneVKzrnxEqOL0aTtcCVXbhr~lqeLAqHX@o`!HzbKGMnGb5ajC8R`8)=> zea#7_ap#Y3mVT!*ul`O#>F#;wQ&cWqLl3Lz3SnZ-dhONe}*1 z?OS_dH&5Q#&C*Wb&_4J2=hmp+zKE$_OGC6ot5xRuU9JqR4!@c;b=RT$E!SXbfLZuw z&AdmhH*dWV{3SWz+_jf`y5`^g@ad`dE3W#ZakDok#Qv?ewV!-agp1Y6;KH%0z58xk ze=&Y==Z?(W@QcrlzPhbkwC+Xm1UuoU+zjP0Y^!58-(2F%w70$_C*!C#%N5SA&ar{{ zR~F_--MPpmR{QRPwYxiO75B@WXBs?cl6MLzEoZS6+#MWZ4bBjQkN$7t_RpQ5%kKuP PZx}pX{an^LB{Ts5fUGbf literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Process.png b/icons/Ditaa (PNG only) - Process.png new file mode 100644 index 0000000000000000000000000000000000000000..59e98a8982b57fc44bee0f9f68f6508f67ff6369 GIT binary patch literal 6044 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 literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Round corners.png b/icons/Ditaa (PNG only) - Round corners.png new file mode 100644 index 0000000000000000000000000000000000000000..7228a7ceb2a99a63090ef2189ff60085a115a2e6 GIT binary patch literal 870 zcmeAS@N?(olHy`uVBq!ia0vp^0YIF@!2~2d4jztSU|`nuba4!+hQ!-Y}$Ur+vd4C zds=(uvo{t^J+D`@MgGaIuRc3Z)8x-hW1c_!t2Q4$l)Y3jQ7DW@NGr#d~Sc z)~MXAQ3b~kvdP00$zFbG;>T{0d``mXesqi2(Xg7%x^w5wX-(w7j#yK>zXLoic4bv1ehj^P8KSzxHQzzFA=)*S+*)Yl~+D z)J%^EDHWeXP`5cBx&#a!n2AEuj@5Cl57SB4kqYm{%{Lm#!` zqM}Xihr+|dpFe+oFhStZ&l8Uok)oEeedVV(M zecL(2cDz1hH~)N!QRUuy1r{~c)xUrI`0?qJkyP)GdrA=x`ndGPx^v847wzop>(kTM z|65mYBDHt-ZtbaFZ_BE!=6>4ix*=ueA+heG3jL2CKkn}4-hR8bw)XF5zpDEB|37{_ zsP4YeWgx-V-s{F(?6Lgv#t5Aak`^nR76zyYHNO4(_wVP=#hY)saG#l^rE+a&`N5^E-PdpJe$NA0J^MImWBWT literal 0 HcmV?d00001 diff --git a/icons/Ditaa (PNG only) - Tags.png b/icons/Ditaa (PNG only) - Tags.png new file mode 100644 index 0000000000000000000000000000000000000000..8050bf9f8df802fb89ca27c772c16b080b20958e GIT binary patch literal 24117 zcmeFZc{tVW-!^KV=XqF$WhP@8mPlqonF^IzM8rbI$UM(OA~Ix1Q4tl&w2(0&sSL49 z$vh<__GfkX``!2R?EOB+KAwH-_dVX@c>Am6yViAG-)r~`=XrjvIHPkq)D#>PczAf! zXLL19@bK`R@$d+I$q3*tziLvp@$jq;&Sad^08x*=9ri^q^Ebm1gL zIIq^-LVuV0mam7Nm=G~D5#wX^G9FnnrzS^o=!L54l95N!k%iIelF2ou5e<HJ0nK}&`d zFcd*V(!Di8kssKRt(O{`HT6L`5vn{yl0Dgk}ia z+so0z#8DbSnT2_mUo;UufxPDtzMZ0tKt9S$N6Fin~-1M zVKUy`Q~LPI&jZP$B1qTsYMnS7k7Nf z%w$5yyN(#VVGY_I)H$wf-yZAozAVoE%9Sgz>0}%V?g)B%$T=1?iem5U(LFJt$E>ddF7@LXfTa|-y6KY z(ntpHVq;L^HcbcB4xRIFb4fiM*S<6=)|17EL?E_eXnC^I2b)7e1SBzIFRn9oER4OB zqT!TvrekB<-TPX=pLnyTrsj5>e?Y)57zo+7iL(5{>kBFE!PQzL6%9Ro_hvn{@=9Ly{83||sVd1aJh^+)xDQ&hkYfFY(6bP0` z;j?#3ULTW}XNmc-HYsJ*AWL&|XIYf-Vy!bhM%S!8F)pq<;5}&qbbCwN0OIdZZU%&dzcF_~%2h8V?#;fDn6K2I4NnU7A zRk?M5!j$UWX82)$kMFqFr?Iii(<9&s#iC|;1c?Bo>ZohpKA%?9wF>IU}GG6EDxAukkDtG5UC$65lC{MXyhHfc&cX#*Py_4M)YmGmw zO-$136y)SCxEYYC{Mt6fdbSwSS1=3S%@X51bt-taE3Jnq@7}$RQeleDg~4Lag_)V+ z*IMo7b~;$zhBoIf$4ip$-y4rky{?Ys-T(8Miz0@Bf^?AQZyR8Qiaq?>UPNNlw*R%7 zOf-T_H1|*cZ4mz79(WC`(f{c(^Z);eb)`?Pt*s3W4ZS}0LgM1HE3n^imh&rxb}~ZI z;Z0(__tz(vo?rX;#Oi8)-WfeT6X7)4f7oS*986d^F){J4{iUabq%>}W_qC!ZnDc{o zE*?BKe`?*EB?0DVtnua#TIz!>GoYqkEXb->(huwXw{ zCvIXQ$&Z;oi9}qvdbQ$&sp>!WTmnNf922*R2A`Htd>R@WIPup;YekvtmOoXa1xG3` z*4+9PsH3Ap<<{=$4sa97B)S8`{sW zebCDkF>Va>DeqI545|TZ9T`dFi2u*`Lt;EPrnRU%Zr;4POU5>vA#4~OQRTZbO3f+n z_W2pH7@pOqSAJ`UzkbR*ng9!`tgL+MRO9Q{G(0Lnnyq$(sFaFWZ}1Rc^2ftDtt>5l z*S;i`ut-@e-#YNGL!P}W8|FZuQ|8c_+(o}33jVIk*hvp7a`}aL*|c%7_T$ShX*9IT zEM>6Upi}+97+yR&BTkkcOD#|zYW?;Ywjyt|rU5*Lr*|TTTk!1!s;e!d}N2PbHuYGv* zp~|jJI!}65y2{a7Xm)31Y#;%t5qN+c3_N75?1!A>_OCPoLs7cDI<9i2{*SozScx_FeGogM6;4vD%AOcZ5nYpW4U z35iuGp4wSn?Ji;rkratF`3<5+_(f{gy24=KeupJq<1j|mz`#IDOGGqF^g=S1(o}88 z!A7S?<99Rg*7~sA#o9?UTqmixPTtsA{=B{=vo5{th`-qldsEs7scjRqK^*xIMxUDK zKGE=Ny^R*r@u|+UI3t7cjl=<^xNIRS`dBJ!mNeTQxCgo@u(j>&n*R8rqM|M?E+W2V zVYwuQp?sky*xA|PCD``5ySqO=wdqWP6Qm)RMk7lcP9Uc?{q6OBW7)+-p2W+2J5QcGk(88V>su$rt-M+UiO=Hjx9=Zq zo}Pa=!eDV|~5FgkV4XIZ3o^v?NJ@x;lZj%6Ys7yw-5i z8%Kx1KE(MX?yX65PcOf8FM6g+9ZrBBepfXyl`@jtnyQ2`9bZk&bV_+st8B3rLcl&j z#OKeS+4R}8*4JhH2?z;gmM~VQeV4OezErqDq`{Gl_h#oy<4u{a>derTsw>^;1-JHH z;P~_FB)1QhJq=T#4STm)aCGpsSE@Nr)@A6vRzkbH@Hj=KCfE~_W|D8J*;RU&S~xGu zPgUZ@;0`pQ6v@jeZ9~I%Fj!u>F2-$wdetgSTN}Ize`va`GHYMGi1YycZ1yiYU6L!r z!XGyNnh;v5eq|DJZOS}v+^S~#Ao;4Rs|V<*Tu=mTV-~%(sScvZ9o9KomZqjABYYkn zo=Umb)T*qScvsQf=JcfQ#6)BY>WQf|k>pDR;*6=3PB#rUhdPYzq|lid^@$+F+RH+R z>FfD{%n| zIExk{XFMZ?rAmkrLaLiZLaKCibwerIJ3Ad7)4Sp|@DiXRaHkS|j90ae-ahh1{H;^! zvD7Acm<`QU&eXdE$T~+}eSDgZEd1$gm)s1xbW#>!$fkN@{=4bZhy>!{!-sYhK|w*v z-lXQY)AkG_$VH{0)xp6*e0==X)m7JzPws)S$`mz?h9eD;ID|dV;g4luR||qi`c-p| zJGQf{{oGkmnxlCl#y?}7MrOizHC5$4Qff9fC{3v+G`&z+*4m2SRtN4+;!^Fx$YW0Jwb|~BuYEZ+U>cG*6#@eSS{=z0coVLP zX+G2CsptJ?tIR#o4EOUyBzh9lix1%No0=!majGVB)lll#+D^qYAA6I`h4YQi9DB_w zE$H9>T*tP7i~Y8+;J^GyMmJ78!ZG~s25uiSfAR9=+E8ilN1G4`3$G0uTU}S*jzus* zP6#_!>f*E6Uq2>08w%~(qBWwaF244!&dt4SZ-2k9fAq|mGhr3s*D$BlxQyRhHwNOI zHLH~MYzP})pw?)!XcRvfFDxeN?OnNwOV1ZsZGx(Uf9}lAUdd@{QafvGGtA)wX5!oH zfUW77nZ2j!as8x*hpjYKU5UWdv8y0*@7}$8@809zd9KTm6FrUK)pz+; zHBN8Ak-vZLYJT(PPe^E&rp#}{RA)(ChM9f=?#>Eg^2PF|PF_UaF%c0FaMz-u-yrz- zXUh9E4pYR3M7H+!x_)2$V78AS)l2SzU!{nGMhC zpuG5ngyzBPlG1WB6~AOFKrr8p`m@LONG_rj6$AYJiHL|)^Q#O@U$P=cqW@$)QS>xt zOW-hGRSRVfGhdy0bo}`01>vjQ101;u9xCXmmhKGUr3dyq)-4?sBxwDfm=bCl$k@Y`QUv7+y^8jxVE7)~vYHHjJVXlwX z)(32r#Y)?^ljVK;R6WE0@*)5q{|@B4HBk8>hXI!NWL?r1gWNGP4sWQ~JN5n%+@Isd z7+07{SY98mt6sz!L;Q2VrRY_%t|MStX3#CebMYqEZHQvnP z4Oo2Tpk3*HQWBDQGDFKp;uoK3w%b(OcjTYCsp-GFj{WuX$2(&(ou}4~_6`o7^U&Gm zm%hHfv$^tdWIjtH%)%jibF7{ucQOf(Q4SC6HSYcHGkdMZY&p3S#6nzu zQlC$Ak_g4<3vn44rU@((v*?w_)Vk118;uGi@}7U{8q>5 z=~*N#Mb?;GG}1QI_BQ9}4o|mBFfe0dTx7udTMi;zV+kBA4i+LHP;N=|C!*&{%Age?2k3Mt`0?i6>Q5iRdfMrW^wWEmJ#Zt&!T|G9@v87`}a@!t%~12 zb63G5xnfSMyL9jgsqB3k17@gzi z`rAr-+T$2Iu>0SaI;`wPH|o%~)O>u9mFwg|fKE-rDR)hPruX)-m^KJ*<262*%)v(C z>%3557DvWV@85m;pF5+v*9vvGkrFcXsIjr}$g9@ zT6p%(U}OTf7fc_VYfUizV*h}SW|t{L=&XqqF+{(|=_?b@o6lW3!}y=yNSx7ML}cs4 zJ7w>mJJ-KIR|lN(-^qC|YjR;>p-S+6%LT=oJL1~U(IQh1%4c#2{*kgM zy(Ey4zCJ4JUB{^i2TJG9fvOI|is=0#4f;RXI1cLk9~;{LonQ{rrl39c6Hbs~_sU++ zh>VOhJpHQ{5*}Fo6D4W6CMZ5WzWwcQTRq2~_T?%_fsZS5Qz|6ZPT{tK#1C94c>JqN zBagwwDMO%SVPT=C_ZO^N@(_NFw@si?3cgsX`Ct>ktmXN6Uq~KuqO807`YZwBf|O4$ zOMGuW*W+BS{Bi zz~RhTo7hkdk$A~Qt_A8@O$|1qv!lbRDM%3#<*qb-IGmwBk^^=-SZyjzAM`gLet!x8 zMZS{Xxp`NuD~^ufxoxR8u`xVmPpyANv06J1m2?-XMa=i#JGO2AzU=JSOOKdhd~?d* zanL`yo3)UxM&t5#Q&%sqMRDP!>yy zijuqjgel8E9m381s-S>JI}=Rzt5-^z?cLojhX;F*<}42u>%cqO091nutpUOG-u=1O zoU(QL*YJh=P0r+=UR-td%vk%ZZVlf zRjE*}oI{hRtJ)zDiwB@G>n3m-o-=QfAO(+&B}1*S85`mEz3EKhIUTqyLNW#*JuLzi zS{?I^gQGfVZxi;ss@y*O5HbXLFnP`cc*U%%arf>)#4{&mR=K-a@l+o2Eu=rR0F>J-jhECyQU0#@;C)LfQsZ!ou07IFCSY?`(R;q7 zIaDd)0?7?KSkhDyafL#fF5&>B&TPWCF-a!ToZ3U97qI4qc_J$ib{cz$KQ*EpCYDog zG*TL-m(vP1b{)2wKtx(7Y6&1167R!`k?|0@9s&*`ekk(^gTXwptPh8I-yg5{27rZE zM!Y(xWjAtbZDmD*Xbz%$wnhskTeepX4fe_o^L{c_AMxJot;V2E$1A6x_@33#i}G@n zM9ZcfAJUQRqEzIwnN2=kD4;H6B%et)r|DumzrK$CGpAUa!sKDf`wsD!Py*{?xB1fV z-i^O_5{bm;mp*y&x0p$L*p0ALUP~6+;m1&6;E4=g_!LP+C)0PTDzr1 z1%Qc^uws(eJYKWN&BRzA|3*JkqnWqJK9klgE^JwUS=C>Z#Q$77yNj)nyHP zZoYT1WPHb0F^#(T-+1L<$EK-xsabc?@0swE8QTqFHqJ*rgOm0nIc$tXy5HlJz>@K7 zKs$X}N0M$>gR1UfwL7q%OqBoM>CUp)Nd6NiYQS>)29o+{p8arJSksRw4UJIt{~hvC zHV#2{Hu1`@H-!F83X-mo@A{Y57~~;WeV_VMgFKWc@E!1Px;byM!6)Ge5xc%gBqW6SUie<^MqF*c2@2AzUtq(de@NC094nszfl-rdE z4QZ#oY=|^@PTmmV<>dt@DIt+G28gY0ghDa;Qx{2$?YsO_z!dp;dq=$Y{Jwah(yZ<+ zFd?%3-sCYWZfG*2_pH|bc3{N;-hq?`@RccfpizdV-U=e*pSL2NA;*4q`X~rU8HnJr zv)SCe>3$&}Pgr8?OgRw*@M(hoKYtR(*t!1w3_eBt^(mPD?8JZdX&Ymg`}a5DQ_WwW zxcFDb|Eo{!7`xuTzX_ja{`%C&mo)xgeaghNQq$nSRE)Jw({|UxPLae!!ra}_rBoW;}LK@&4^=-h|}Dwi=K zIvRKMED1E&pZelD0W_$?jeA7y^69TfxRK|lM*qi0QOvksQUCSG$^w4XX^QKadgu}5 zFzwOnC6fRfoeH=yFa3ap)MLeKhTjr7G^7@nJt!`Yx=}ek(HGdesQd{3WIOE9Tyjut!P-FvNAU}x4is1N13{oVU$85+E-%<7;GOq z4s2)*7a-qo#3skyzu&?O;BXeKWxhnU5b*3-wi2 zRwgD=8RRSI9;#k0>KJf$K2=-PaFM*))_@oA$IB7_UHtLCVfZY<&?OHZ0QCbQUB_h5 z)>+^`F28UCwZU5sxocf(ReXsjZ~$^dc5KS4VRHIjegKhVWryFt_l9o*aH%zUwm>EL zO(HvlHJsO`z@M*O!6ABbJTs7`8waI+B@?82uY|93re{ z(B5fP2kd$pa11#)Ig3=fX>`oYb6>x{gg6ttl?IKp+2qZ&#+P3LDckA{a*nfMAx3?8 zp@N0P8-NrvbFe~N%MoA_J|wmz)+Caab##YpK;~sQ6%u{@VBFT07OqR-65pPd&_%Py z=a-2us1{%(243y2@W{MKs+{Pg)d95c{=PswAVA!=*U@=Q^fFW6=0j(BE3j1EE3aQXSQ?-0+~FJE|k z={vwe%M-7D0InIf5qI$y=ouhL?36xt=8W-=oT#wBQPw{L`Hx{|d9L<@E;BJFtgfEk zUHR)AnZO6^EC`6pUJ0O}{VP5wPQk{i7nSo86Sj4K{OAYZL3Sy~9WFNC`o$oqcOK*d z8Zk8d+KJf!R)dc*%tIC3ApcJBAA{QgA!qhl+DqiuqgYH8?tka!Ecz5VGy2?h^48Dm zz^THf@cuR=c#+CG6c-@u!`n&ctdAua3Mwg$O-_bD?!YKy5GuSjHMKsZFZJAgVt)&~ z3D88IWvEX2SY_YqutH#Jnwn)PFDjYBE zJK}M>*U~aiJhUEShQTjiZUHfzO+Ap1Nh_$PriLDX{YhHz8hD$xxe7*HTH2JpK7-3UDnmm)}0ZDT|AbPgi7-5;+45!({M}iK?oq?d==EPc5ge+TCA*rGt$y zR_hXRv43KMi|@WWlZipg*7uE#y|s{|1Q`Ou5{OInv&6}%sh`*G8L-reM1nnFp?nRw z*4Le_o1S5tiExSm8pBcVfZ-2KHr_P13Ur+Zqz%%laC533*FII*_4oIK$z3$#Wg*#j zhJ#lC$ShFXmuj8y6=orpVL4vWt$x=EC0&5y{O;J?N@Kss0n4F9YnM1t=cyrndDy2) zzA%DO_*|uR<4FO+3I-34weV9+8u9l)2cv<)C2qyq)Y~pbMs!RiY!h@BrMD<_EG;eX zo%DgjMw^r1xCs+k>~Qew7l8N2Pn>vsUWtK`kyYZ-Fa%nUE>s*smIsul`Ns?k37~xe z?|KY~8Gs0OPZpN!H`J~K0DtxE+c(JJa}~YI`Y`FOo6msgWOG|!*o_}4#f3}-L7QiQ z&{_Wh=XYD`Mq)||t=T=WPdq5}6j(Ofa;=BF&)A%plHqqrY%=O)9(z>m$4elAwz#aO zREb#&?Eq6qZA!-y0h4~_?AZ(EaSNG1R_t;?im(JA_YPiuwy~f1YFG-D|h>?mY<=FCjr^-3xUjXK9x4-&bO$x-rfpOFN{3bH4aZVuQ0m~ zTNJ1un9O%wT~(>Xy?|+g0)t9xerrlVftLlgNz}aq;ENzLwO`Y?ekMxQ=}I7W;d70! zfu)dZ5>V?rKryHQ5ajH<0MT#4ugQQGf~j^KKp`NYX=SF)O~~Du>(R6a(kD$#P22es zSjvmXDFJ{0X$kld`xPn6;)9)?9oP+&6cm_n;+c`!XOH9HFoBK1A+I>66wZ)NS@j8m zb~)#PDcI8%p1F$;opYMvq8tu(H(;0Eak(S~_78M!PYVhrVOzjPjPL!Xx(Z;B%?r1j zhM>sV2>7!(_yfp}%L2tNmATnt%P-alIl1JNefI(}fZlB}E+Bow78VxZ9A}Wd5CWFK zb+{ZBxm*%~+;eJ+rpD}59G{gjCBsTU7luO4E3d&OgVumFFBxXgviVkH z>`^e|$vPmO0LL+9O`uEayQlOLq?`2ETw%JJtMH8WHh1AC8!~LbfBXVFisPFtBB#cW;S-ih)_|d{tD)L9RlT zhsEoK9$0G~Ev>hCilzu0&$0N47$Z<-zt@rlK$Q3Pg0aQ%@vjh@g|pWf3}j*k!G41< zrI%<6&mI}L1Ps~cEbJQ)!i-m5JP}aVGU3ADiUJ1L^=ae$;$q-*J9)L%B{m*IM%=sr zWblFb*{S(=1ycL;R=kFwOSH_p;pb=GF2O4#!(4&Ky$yCIJUskkJvkN%}(zGC7N_rChzNl%P?t&i;x3UF7uboBQ(rm8VqxqNF0mDI^T)Dlyh5C)# z^xVP%0`1`LKuoEkqC)0CP3&U&@w2k+U9F}?g3sJwSJionDkX&$P)gB})pYAbxV##h*A(@(lTp{{Z(JsC6&Mp+g5e{tK3_F3*-BHXLt^jjZsz0Iu|-}U<*#s2?OY>KXYACu>cfc z{lz2eEz&eA+~)Q;Oj*9>*lIpU{ki1?bAad!hz|!1H95!I53lEgFnA5{Dq5%KY&tHX$LRv-oQQWVz8^LlGgsmj$>7o*3FrvJ-#U0k)Q=bS%0SmPu#LcRubL_L#GIf6AU8wA zQ$Kz{(K%GAKljcH7B4E?eq|J3aTra{7|$dEM@ElQ%AW_y0`_g=k1scmw|0h^Mli*9 z%uIPB!T~t#xe#4k%>UZ8+8h5(3eVHToa}6oenRn_4w|%uNyxgU1l;&hsNI@(DvX|P zXHlRg0W<%7%%l0@{mu=T(v-d*8N~xMRJT5VCNQX(c6|mj1OeF08l2kOFGGH=yqrD? zRd%O_D61zM@9OLa;UOR_AjV+s`C zKlN*J`ONatL!`kbOprw+kFY>FnP!Zj4#+saZfUkjx z=cM%RQ$;J}<>iTQDAKG$)So;1q1gWGd&AQ!AQ}N+K4GqVkTm+pfyQtX!bga{fcdBg zuc%Dz{}zN1QP&O*w%%nER5wMuvWqiJR*?=0G9o>~7Z(+M2ss}P<_CA2FlWWw3a3{_ zqVPdA-oa+C)YcZ73rV1>0k9Sq0^#&7zY$E7#U@CwfN+)Au)0ke9qQ9xMybW;15K}S9OBmvSfvAlMSv64kNmV^ zu2m}GIL9~=N!L2PPixE2rKznQJ&+7Z-1p_rThBjQ-(2+QZXXG~*O#YQ1JnX8Y*q4; zJeX@fI=l%S21I{tvwn~O7I9?l^0W}q)ug7TLgj`G)OkV-*2O3rB`5cQ0^=*Em7u% z%~`C%?+Yy~9*A4kRRKFb^4zwSkNE6qi24!@Q2sywbsXCC3odw6-gY0a!)Jcwzj430 z`LvlNcp`V;?TJ>y?(4*@;32b5Ts@b>A%~OV0^Fdc0)pC^g@roEbYU$VMwNUPnJS6p z9ljmSS>ll!=<6>*nF$D%9QRphMr*<0Kzt`e#HqqPLZFk3sE%BFq-zun-hX&_7}%MC zfdTl+J(TA(n9VTPOQ2tZD5xlJ@e=*LaGy?a-BTZNsR`t(cha%5v$NCF;esoWn%W_& z7%dW*gUq#f^OC!|x?nPXeJu#dx@aK|K{}_hzw~$#ARH}k+j@*%7uX|hyfO;&fVp|2 z9ARR|(Q3aAamKpV9f`{$kRaT#4txl#V19o7;v#(`o@smg2n7593eabagQu9{EfOZK+DYP_h{ zO?%gEG5pd&P=uC>>`=?zo^P0aj%l+R5@P5Wr*;OLGu^EJs6wxjk?N*`!pks1Qphbv zT3d_2frEAgHz#mN?Veav*xM0whf;$`$P(0u05gLUsi%qSSXh6n4u-7VAo+H7U)TK> z3PNk+%SkUG@?sDrT_T$|6L3KK73kD3WuUz?$LA&{<;-mRru1!+_k zh=c&3!<{amJo7|-ic{?gxJa#bKQ{=a@sZRazDf+fA(W`J+rf>(u8Rb$si zl066XB5XzwFfS1A(>KPcXuY!!1jUPnO>t+3b@W9+4PHtQU#x$j{|^0yiCUNU5QdLH zoB&#%-pT|9GGBlj5C{ZBGDJUUO*g#7$fCwbRz8jBY3Vo1Y6 zmcD(9d%gjO>+t8~(azFGTKA7Yy;wZIc7aXOY|vt6%GakYO`Y(4I9<@M?;qEjs!0N{ zQLIy2P2k_rc-7_YL_45N)(|h8S>X62uupa>>QMbDd1Iab2A|Li;6=8@M;@T#&+aCi zxs~c8N`duXA6TP%r($oWqYpYsn*N&I5F0JRyG`)M!2Z0s7V`O-vQggqLAg5(=~iUaz+zMJ(b9S!sZQ z=2mMi^gEZY95CO5ji^d1dh*T)or2)kXl(dy0M6MuYa)8= zvk|hAfdmeC`2isC0(6a+XJ+!1pA-|c8e4q9V? zK-zTI(wW-N&kywmP;@XLSjct3X8i&`2WF5(l3aNaq(KLOkXHGOJFXllx7L=Fl(fk0 zEP9=G(+KTeWowGShw3J!a53d)t-7=k17 z)k8#oCD;#A##MR@!aKygQ@I~E$O5@<>+2XZu+C@@xLpP>4zmN4XzwNyx9mP>br(k- zCmb%pL7nbMh`ORWRqd|nQB+{`7xQfJ{l>ixK64r8uiyuu8pFVTy~egs+BBAIUcsNw zLigwHE&_7&rE3dH`(!(fxD>&A{^0BBqt1X(1Zmks^xEw* znTQTNa=u(EJ<1NRuhYwaahsr${#5uawKZEI4a1`5c>h!Bq|dnG&!f26+*nUA-_=ll z&BVaqwKyy)CG`|=xOz|)qA9)rmg;=s2J17i-mH*;9`MSbdklcBFLTEJg(lnT{ZH4! z?;r&TYmRMdt%?xpg>M#~XBkq^3jK5@N-_R19h*oWlPi0zwzIPc!a@A1^f&UWnhRv} z8oT_dB)dbnU<0p3TD1*K1($w5xH7tl7&)4GJS8QigU1k5LqLKpYPr4#0cxR=v#W2rbz3b5+Uzsye^XS${_9 z6QYdH$7&i%KZ)(3VF$Q5t$9vK$WJoB|@4xKb)6yq6jjKcQA0935q^ZOF!z{f2dc6W@u$rh(+tlNO7O4~1F zvs)O}Ns)+*dm7XVNLe%$wvS(QmhC{q!ftLy)yT=IOzgO-@jWWrQt6L)(feOXj9x%+ z+YH!TRV~X$j($!8cLRAeN1hpz0R_k`)JKo!*V5AZYN=t#{w<2(Hgo`j2Rly#C)@c&#JGjpg1tV}t6e$}=hm%Kt zD4%2JTOK{i$B+FuMpAWmcL0xwa!4M^oea*ca~KI&BtyE!!dk`Cr=ZSZj>tb0h#JMB`P__kn12(M)&ZOJnikRl89dyk?TqgApKot(D3O z0Ce~E%|iv!$al$(|CuJvK~qOXUFFS8ZYh9zsZt*i>epScB$TvI@jp;u7t| zT*BLqckmN0+*t4>y#HRSS-%9|?G{t1oo@SzIx(J!_C6nf5m}d2EJ06%Ns*ffvL|ln zexC`K5vwR&IsdizeTpPiN-_`iE}~J=$B{486N)AV0`*F(uDs-<71u%$4gFO8dB13I z8ci`k?UnOu*KPh#B*nGa%a7wPNys-xrs&R60XaEl^}NhXfnlPIYv<21nJudu0Tz}h z%9@~u3bZg+Z<1lAycl-3IA!XM!&|9#;-!#nu91=jP5)SH5^3kb8g3FA70sPjV;VHd zn)$|~(W(OB!;y4&xFg07wnv=_XhaG}4e}`2!aj)PQZ5xrmeVf^5)u4X{lGpZttA=N zW~MA*Rko{{qf!SN8}Ai{)UHi`J9+s_uQZRCoSJDH zZH%_QTD|Ye-C-t!js;dK#d5`cGJd+6S~}Jnc>{O6Nu^||o@4zbnMQ)%G|r4h z(!Zo+#sdXTLSiHzuOE^^gjO%=Sy7~juwKG(eIHe;64kQt6o)^}xP*|00x*sd|gzLw`?C_^X(Q7F`s>h+rZGZr58#NsFW6H9&X= ztg+)&&RC<(_RmyL3agayF(?Pu(Wit^6f+&3%((CM9`B9VN!f|eg&Tuw3@&&I+*&Sd z44$uy@Iy1xn!0pF2)xYW36j3XStP-g1LCCr6Ym%>wZN8Ndj4qt)ja{8!inLtXJWq_ zSzw(fn;M}Y@AaKoQgd^hQm&+|%n3@^4Kud%GusJmmm}QF?av0H8=HNUJ45+F*nNRfYyXXy9=&8(-g@ z&CQcgCk?O&BO{|I0>-vuiN@{%B~kx2Erf)YdmQp2DAcU0tJ~e*w}x~Ii44Q2RZ@Z$ zf|UlMBzN!Gg23;KNj#@4WXQiI3H)aprZD*64m+AiHV7k zk?`#W1rcOclI%Bia?+QIo8$_p-*OHSEUpJE2`QA!lu!yH#^<|e$ESX4M~Wh6Kzy=^ z58rf8HN&Y)oV^4Rzb(!_e@E_MeZuKnwC)788b6hM`EJBYx{*%IIm_y_M&e0x z=-@=j^;~UK-P;Wm^u4cf_od74QF7y23DNzn&&kywh9Upa=g5OT2ku%xz8$*)ZO{nf zMyz?MuKV||m~fpjxM0gbp5mOh*n5&qmP&M zf?CO!ie9)63I9(YaIGcQdgIitxs&r#Fl{nWlO%o7e9Kf9Sd@+(CZ=Q4KV>nl|DtiLHXShxhoS<8uAo_=`}SLadXJ za}3u;HSu49vun5}+F78`3JN10{{GcvRgTx}QEk32aHDV|a@hi|lT^M2_a^rIy15EZ zL523auOwcafXRwg$vVWo!c{eSC-n=LOHunF;> zGRzOk%DxQnm$P1rIeEYAhC-~hs0nBh7YP3++C~Ro9B3aozoMk;p-E|cg9n+Y zh!blva1pZZ;}$~a;-etCmUH_gEhi@jlA2@3mLSarV9L~w8M&u@H>*C<0l>`&66*B0 z40}6BhHz@j_;^4%E`cP$$!Q)Cz+o#bUD#}nlGtp(#~=iCoG!5d11JUMfj2?E05m8d zXn+oiBR~B6tB};iK=y8s$3zK*%_D$Jfuw{U5_Ecc01|I3jY#;I)2Dlsxa8=g;IC82 z-u5$t5!NE+PsRa3n*%GnwiW_n5^)Qt=l*L1BaSRsT?2#2?w-su)o76Arwi&sgf{|3 zyklcZP%0-cpM_DQh^UpUA?pN$9xNcQsZa+7GAX!g16N7x@D>Uet0`F}TV?<^e9`cd ztXpBIp^p#I49fOT)eeq5B^GR_Zv_FS0y67`-y~lg01U!{f)k)?n7AA{%jseT<%~dn zJGe+d@B#p@Se6;YM}g@z%vb*0-A#V1 z6K*t!jg19%A7vIDd51s^-KU53Vp&&F|1r%I6vg$ zf%}Oq`~)uigp0{o0*>8r6Uy;7-}()LO`0e^!`DL zK^7Aw0D9LT8HKrl4e=GAS~)`ydv48_r0No$Xha`eQ5DjUkAf=s*GGpxAy+two(cul z8o-MuHqHGCx~hTj7PR|7b| zK5n46Q38CcUDpyE<_P~Wg zw#cLCB>*ceBos}Xn}OlK-q()7E-j5gQ9_Q8D2wmv_(hOF;L@pyS06h&fhZ+1!LTl# z!KTSWvlhV7;1J=vuzkS;<5Wvf%n!a1oGaoORCZ{pxSgX&sg(g^47&k{6$M-SPJA+sR4Xr7S=; zn8Ax1s4-~HOG*Tw$-t?Lnc^3{z|KK9vJD}^%^kP%=g&hT*HA$=m@Iq3ltKq?u!)F> z0A~2sE|yeD=@o#X52ct$VJXz@tb@P9tv;~zaHP7*@hYDsGt0Xw!3~?*y|aKPJN9H= zgklB=5mLBMaUc+VF>m7@raA$;1s6ehz~8Qf2N-Q*WT0|#7T#0mdsJQ?)Mt?0X##lw zj+&K&^DowJ50)Xj0<5Jd4G`{1-|y9D==eqZl%vKC{nFgBN`qU#_Wt(vo=y|$s$}n}D zfk-FdxQAEolhj$^&mboP0F&B1v!bHnFQvp@m7)yuP@jP)0!-CDc z=)G-i3t@G<7?be{No>yojK>-Yha+*LGJfERl@iqhzb^r#SkTt#HuJtjUi~4RFrF8b zD3jM|6A8MHb_tPuu}iRmo=t#iOjp@{&UwnB2a?u(pu?_DHch;L&-jRmojoT%|H-PD zIz^=Hi41ZbUtjro!^%>4`E{t@v~FzhH{)95f6{+fPM;m$mTF3xpMU1_)q)NrNqTJR zSn4aUxp>r8JCamNBWQ}{7AXx7n_{c`uynTvy{M#er-Ohd?y!TmHI>M0srQFMPq;6s z8bqD|8Rr381jp>CIVPLJ#YKpb<}6P_@O`wcqa@AmtE2#;65|ILRvSTJFp7HL;N$9P zQH6|AWEYkR#AzPez*NM)qFDBvy>~C?TG1>>qTo&xh@E4Y_IG#lPKV^f!C>T*czXp? z^v$8#kcnn5!2lc82E=wr>W@@T1^2vrcEJKPYrsl_NJ1$pvU|%ur5L0{zt;yhVjb5H zk8T$i&w$!78ICXrTHy#E9&y`?m6YZfpk#x^^TF4C62QGhtnmwxw$CQs^z}( zl!9=9%<}sO?*OaB1{P8n<-su5g_-|!80frb;ieL$aqh8K7p_){4XSQ#RGko)nLRSO zfJsc|4v+EmwZVC+i4$HpZ3Oy11k;a z^xIRj@g&|K!+8<}=e7U!OSvDZ$2j_|C~t{pWplc?LDYUre1u`@-#>)^N#Or^2zvHE z56{r^uDm6}w5D`iA~>)R7bPfZ%uz+{R$J(YLhD+gwF;0moMv$)r@{?kFKx#Ogzu)aq$AF{J(k~ zhE4TO1hcN{_ZtGwjM(Pyr^wo`T=}?>(69d7pl6(dq=_7nU!lg{GJy7w#Zs%<; zWFUk9^REXrkDzs>p;3W4HwcGlQu)4u_nU4z2bWXeJoC}1c7tpK5Q?^%%*@QRVKDs# zr)jrNor%wDX;DQ58yg$bZGdk5utdEtvOAJ6J6O;$Ch)a(HU3#pfE36Zg_kQ3d zK#HcT7-E8S!d$_Gb+7zYD3-loVruGX4wijQr91RFEM(WY%aX4h@Txh){e6?i?hZVTdlhQ#4Qb&Vei(P-RH; zF90L@q$r3koo5#HED+n$RRGrDFZDorMuwx$CW#Dvvw9Q-s50~o3}%JR$-8O2h%UZF zyTL66pj-eIUg#R{vGfo$>*{0c#(fB;Z>Oczd&oaw;x=qd5@@f@qo!1=2I1!2it#AcPNox|ZwDB(F@B}Zf>cKVrJzmWy zgw%)t0?5{EX}fS3T%Mvgh$95`-NjOcOr97OVX|c$K)C1Gl|-wa+0|;#g$bK$gJ@ms z!XsIT5y47dbi!%G_2IRFb*Fqd4WnaFG^kWX0VZ()+!V|u)OuQHjf}&MB^EIEfRU_+ z$*2=~g<902cYpr$gFqgN2jGU4XL(xWn{bDNCuk*Jzka>j!iMy6wkStyYH7u>8i2qo z?x8iyvjw$P5eg79?eb~-nD9uAJw4YOH)_SR=RyHET~`4<7K-?Kf=%sRyQ*zPF&pjXmn0bX?yrE{ zzurU7jY5$k-UgMwuUFxSVZ9zl&9~Bw0^!xu+Dk$~gIS+AhISKlP!v0V9(IG-Jk`6bQ$I;PbIwgUC307p54(q#&U%7fe`_4y#<>&WC{W0 z+;29s<3Z#UOV5wS1%v^;GoBPAHnoDdqNMsr{uJ{|NEUkm2i@L`>7uw6DQVUCOe~4eyG7#mY*3JG5pZVe z>(>Xbe?2I;Wzy;2H&b<@M5rwtoKyL9tSqHz2?Ad8Mp*4t2!d}}yENYV)xc&BD4Chf zO)?e~Uq3J!vtmvlB80&GopIt2gkNy~0aP>)W8pjlg=jY3gvP4Vw+;^CsLC!enGj8yH1T7sy(A#^&M)DFpeLwEwSGuKh2@JdD0fnbAzMqkHXWo34XW6isp& zCb!THskZB6KaxemmRmAqG$lKV%?`DSkRocOt!$U=GS$i=YIpIW#?)w~M5tBGo;Uu4 zouB42^LgKS=X-n3^E~Gqo=%{(4J@{xYdHKkQ!baEI;Fs(SiZ`6{>7Nu=fm*8&^=Ch zuq$zqjI_a6T3rb`m7z${-ab#=#eLOLlvQpveY(T7qgw>3SD*{ArWL!ew&>WikJz8E zc6Qd^#*OlUU=L$vVq}DkF)xZlfMZOd;i^dd0>L1{!k*!9I_W^7r zwOaZnw^aEq9@R`8$s)B}z;j|anc%M4iM7$1!LW@gbFJY0`}{@=EfwbijG=t=4Gtn{ z#Lqw=$$ql37mSex)1oz*fbbkfiN4hP*m}8TMR~ak7!Ww}02&o$RJ#vIIpNoeoIzh7 z#t{CJ;@9lAQ>i^|5EV|*9-1lbPUe*t(d0rCu zhcf@Pu>0UUGb9;lP>M64SnJ&$ZZIKAnVaT}^%#&rb~T56z@};g`s@;+L#4o?K-?VS zrDR%CQvxNFmvL90mLxAhzu3qgXD4ZE7fg((xTO@z>SME8KFryLlbY&(E)OM|0Gf1exKc-Lu+2AfV;YmF0M7vJsC6fXy`s%d%*uL;WJA zFqTHYJEtOsxT>CW-pRc48!)znf8d-TiY16D85l@zj)8{*oH087ao}aIMg(hCXn4$I3cv~^4xBRQGQjggn(=z+7kM3* z-Ghi%;*QRfc@3T!WQ~yZSws%9JVFOJHC5OSAZB)n!23QAt3sS3CGRyv9M&btcKWWj z4HBv)U4DpT`>{w-z1S@hxnZ!tyPB|kT1kH$Vkm51b;I>m49#gn@vt{ufITvqBHVp< zPb(4w(i*q54IVJX3XPji%i-5p3~L5{eakE?1`Du+QVAFU6~4K99Alyy2qP)=;}Y_S z2=l1pq<_2wlU;0aNW9>Z;?lE)Hv)TANu(n^vWwq?;gM=@B1IS8Io0?x$XZd>B-s!s z)FZ+!|0GB6W^(WA?xGnK#4Pmb%MuniCj4yp@e(R9;E;BpZgQm9{)BeY%y3h`nuLRB zFO!=Rkr5~Z+Lz}DDj^{uC0c?J)B_s5i!NL3;isNWr<}WdL?BMIp1-*B6=@OyiU&$_ zP>pH&Zw(-o#d#8SI&7D_Na+D&fzJP2ziGHeFrbNOf3!P=`H~2kg z&)epYT>(R)q2aW$9zk{60*FE?D3$2WlXtL*Y7cVqGONyFDN-ecAWxJ&`wQ;JHU$Jwhxe1-Yh*zeS*{V?c0}6M5 zW%G{frRN#=pZ#LJ#~w^0x*>CEMpe}9O+h4>YX-ns=%h(2i@%teK59jkU8GA zii6{$#htT?B=X5KjQ#D|N%_@LFO|x+g7x`e|0n$0n~%v><9h>>F`Crkxbb$>Xn$Ab~Y0J(bejFln=r wm@6Vq^Tcb}d|Rf4KK1j*R!p(o#OHlPkTCt8mT1%!cJRdNGeneralFullscreenBehaviorSavingOpen image in:Smart ModeSmooth images when zoomedConfirm image deletionShow hidden imagesClose \ No newline at end of file diff --git a/icons/Graphical Interface - Adding tabs.svg b/icons/Graphical Interface - Adding tabs.svg new file mode 100644 index 0000000..3fdded2 --- /dev/null +++ b/icons/Graphical Interface - Adding tabs.svg @@ -0,0 +1 @@ +GeneralFullscreenBehaviorSavingOpen image in:Smart ModeSmooth images when zoomedConfirm image deletionShow hidden imagesClose \ No newline at end of file diff --git a/icons/Graphical Interface - Advanced table.svg b/icons/Graphical Interface - Advanced table.svg new file mode 100644 index 0000000..521b0f5 --- /dev/null +++ b/icons/Graphical Interface - Advanced table.svg @@ -0,0 +1 @@ +Column 2Column 3Row header 1value 1value 2Row header 2A long cell \ No newline at end of file diff --git a/icons/Graphical Interface - Basic widgets.svg b/icons/Graphical Interface - Basic widgets.svg new file mode 100644 index 0000000..edc765c --- /dev/null +++ b/icons/Graphical Interface - Basic widgets.svg @@ -0,0 +1 @@ +Just plain textThis is my buttonUnchecked radioChecked radioUnchecked boxChecked boxEnter text hereThis is a droplist \ No newline at end of file diff --git a/icons/Graphical Interface - Enclosing brackets.svg b/icons/Graphical Interface - Enclosing brackets.svg new file mode 100644 index 0000000..a80525a --- /dev/null +++ b/icons/Graphical Interface - Enclosing brackets.svg @@ -0,0 +1 @@ +NameModifiers:publicdefaultprivateprotectedabstractfinalstaticSuperclass:java.lang.ObjectBrowse... \ No newline at end of file diff --git a/icons/Graphical Interface - OpenIconic Icons.svg b/icons/Graphical Interface - OpenIconic Icons.svg new file mode 100644 index 0000000..1026a9b --- /dev/null +++ b/icons/Graphical Interface - OpenIconic Icons.svg @@ -0,0 +1,16 @@ +List Open IconicCredit tohttps://useiconic.com/openaccount-loginaccount-logoutaction-redoaction-undoalign-centeralign-leftalign-rightaperturearrow-bottomarrow-circle-bottomarrow-circle-leftarrow-circle-rightarrow-circle-toparrow-leftarrow-rightarrow-thick-bottomarrow-thick-leftarrow-thick-rightarrow-thick-toparrow-topaudio-spectrumaudiobadgebanbar-chartbasketbattery-emptybattery-fullbeakerbellbluetoothboldboltbookbookmarkboxbriefcasebritish-poundbrowserbrushbugbullhorncalculatorcalendarcamera-slrcaret-bottomcaret-leftcaret-rightcaret-topcartchatcheckchevron-bottomchevron-leftchevron-rightchevron-topcircle-checkcircle-xclipboardclockcloud-downloadcloud-uploadcloudcloudycodecogcollapse-downcollapse-leftcollapse-rightcollapse-upcommandcomment-squarecompasscontrastcopywritingcredit-cardcropdashboarddata-transfer-downloaddata-transfer-uploaddeletedialdocumentdollardouble-quote-sans-leftdouble-quote-sans-rightdouble-quote-serif-leftdouble-quote-serif-rightdropletejectelevatorellipsesenvelope-closedenvelope-openeuroexcerptexpand-downexpand-leftexpand-rightexpand-upexternal-linkeyeeyedropperfilefireflagflashfolderforkfullscreen-enterfullscreen-exitglobegraphgrid-four-upgrid-three-upgrid-two-uphard-driveheaderheadphoneshearthomeimageinboxinfinityinfoitalicjustify-centerjustify-leftjustify-rightkeylaptoplayerslightbulblink-brokenlink-intactlist-richlistlocationlock-lockedlock-unlockedloop-circularloop-squareloopmagnifying-glassmap-markermapmedia-pausemedia-playmedia-recordmedia-skip-backwardmedia-skip-forwardmedia-step-backwardmedia-step-forwardmedia-stopmedical-crossmenumicrophoneminusmonitormoonmovemusical-notepaperclippencilpeoplepersonphonepie-chartpinplay-circlepluspower-standbyprintprojectpulsepuzzle-piecequestion-markrainrandomreloadresize-bothresize-heightresize-widthrss-altrssscriptshare-boxedshareshieldsignalsignpostsort-ascendingsort-descendingspreadsheetstarsuntablettagtagstargettaskterminaltextthumb-downthumb-uptimertransfertrashunderlinevertical-align-bottomvertical-align-centervertical-align-topvideovolume-highvolume-lowvolume-offwarningwifiwrenchxyenzoom-inzoom-out \ No newline at end of file diff --git a/icons/Graphical Interface - Tree widget 1.svg b/icons/Graphical Interface - Tree widget 1.svg new file mode 100644 index 0000000..9870809 --- /dev/null +++ b/icons/Graphical Interface - Tree widget 1.svg @@ -0,0 +1 @@ +WorldAmericaCanadaUSANew YorkBostonMexicoEuropeItalyGermanyBerlinAfrica \ No newline at end of file diff --git a/icons/Graphical Interface - Tree widget 2.svg b/icons/Graphical Interface - Tree widget 2.svg new file mode 100644 index 0000000..04c8e72 --- /dev/null +++ b/icons/Graphical Interface - Tree widget 2.svg @@ -0,0 +1 @@ +WorldAmericaabCanadaUSANew YorkBostonMexicoEuropexyItalyGermanyBerlinAfrica \ No newline at end of file diff --git a/icons/Graphical Interface - Using Grid 2.svg b/icons/Graphical Interface - Using Grid 2.svg new file mode 100644 index 0000000..d2fcbe6 --- /dev/null +++ b/icons/Graphical Interface - Using Grid 2.svg @@ -0,0 +1 @@ +LoginMyNamePassword****CancelOK \ No newline at end of file diff --git a/icons/Graphical Interface - Using Grid.svg b/icons/Graphical Interface - Using Grid.svg new file mode 100644 index 0000000..399d015 --- /dev/null +++ b/icons/Graphical Interface - Using Grid.svg @@ -0,0 +1 @@ +LoginMyNamePassword****CancelOK \ No newline at end of file diff --git a/icons/Graphical Interface - Using grid.svg b/icons/Graphical Interface - Using grid.svg new file mode 100644 index 0000000..7679428 --- /dev/null +++ b/icons/Graphical Interface - Using grid.svg @@ -0,0 +1 @@ +Draw grid lines with! + - #LoginMyNamePassword****CancelOK \ No newline at end of file diff --git a/icons/Graphical Interface - Using menu 2.svg b/icons/Graphical Interface - Using menu 2.svg new file mode 100644 index 0000000..2ff7bc1 --- /dev/null +++ b/icons/Graphical Interface - Using menu 2.svg @@ -0,0 +1 @@ +FileEditSourceRefactorGeneralFullscreenBehaviorSavingOpen image in:Smart ModeSmooth images when zoomedConfirm image deletionShow hidden imagesCloseNewOpen FileCloseClose All \ No newline at end of file diff --git a/icons/Graphical Interface - Using menu.svg b/icons/Graphical Interface - Using menu.svg new file mode 100644 index 0000000..b9d315f --- /dev/null +++ b/icons/Graphical Interface - Using menu.svg @@ -0,0 +1 @@ +FileEditSourceRefactorGeneralFullscreenBehaviorSavingOpen image in:Smart ModeSmooth images when zoomedConfirm image deletionShow hidden imagesClose \ No newline at end of file diff --git a/icons/Graphical Interface - Using separator.svg b/icons/Graphical Interface - Using separator.svg new file mode 100644 index 0000000..4077a42 --- /dev/null +++ b/icons/Graphical Interface - Using separator.svg @@ -0,0 +1 @@ +Text1Some fieldNote on usageAnother textOk \ No newline at end of file diff --git a/icons/Graphviz Dot (SVG only) - Binary search tree using records.svg b/icons/Graphviz Dot (SVG only) - Binary search tree using records.svg new file mode 100644 index 0000000..89f1ff3 --- /dev/null +++ b/icons/Graphviz Dot (SVG only) - Binary search tree using records.svg @@ -0,0 +1,151 @@ + + + + + + +g + + + +node0 + + + +G + + + + + +node1 + + + +E + + + + + +node0:f0->node1:f1 + + + + + +node4 + + + +R + + + + + +node0:f2->node4:f1 + + + + + +node2 + + + +B + + + + + +node1:f0->node2:f1 + + + + + +node3 + + + +F + + + + + +node1:f2->node3:f1 + + + + + +node7 + + + +A + + + + + +node2:f0->node7:f1 + + + + + +node8 + + + +C + + + + + +node2:f2->node8:f1 + + + + + +node5 + + + +H + + + + + +node4:f0->node5:f1 + + + + + +node6 + + + +Y + + + + + +node4:f2->node6:f1 + + + + + diff --git a/icons/Graphviz Dot (SVG only) - Digraph.svg b/icons/Graphviz Dot (SVG only) - Digraph.svg new file mode 100644 index 0000000..2801ac9 --- /dev/null +++ b/icons/Graphviz Dot (SVG only) - Digraph.svg @@ -0,0 +1,47 @@ + + + + + + +foo + + + +node1 + +node1 + + + +node2 + +node2 + + + +node1->node2 + + + + + +node3 + +a + +b + +c + + + +node2->node3 + + + + + diff --git a/icons/Graphviz Dot (SVG only) - Fancy graph.svg b/icons/Graphviz Dot (SVG only) - Fancy graph.svg new file mode 100644 index 0000000..3490596 --- /dev/null +++ b/icons/Graphviz Dot (SVG only) - Fancy graph.svg @@ -0,0 +1,117 @@ + + + + + + +G + + + +main + +main + + + +parse + +parse + + + +main->parse + + + + + +init + +init + + + +main->init + + + + + +cleanup + +cleanup + + + +main->cleanup + + + + + +printf + +printf + + + +main->printf + + +100 times + + + +execute + +execute + + + +parse->execute + + + + + +make_string + +make a +string + + + +execute->make_string + + + + + +execute->printf + + + + + +compare + +compare + + + +execute->compare + + + + + +init->make_string + + + + + diff --git a/icons/Graphviz Dot (SVG only) - Graph with edges on clusters.svg b/icons/Graphviz Dot (SVG only) - Graph with edges on clusters.svg new file mode 100644 index 0000000..ec43e13 --- /dev/null +++ b/icons/Graphviz Dot (SVG only) - Graph with edges on clusters.svg @@ -0,0 +1,135 @@ + + + + + + +G + + +cluster0 + + + +cluster1 + + + + +a + +a + + + +b + +b + + + +a->b + + + + + +c + +c + + + +a->c + + + + + +d + +d + + + +b->d + + + + + +f + +f + + + +b->f + + + + + +c->d + + + + + +e + +e + + + +c->e + + + + + +g + +g + + + +c->g + + + + + +d->e + + + + + +h + +h + + + +d->h + + + + + +e->g + + + + + +e->f + + + + + diff --git a/icons/Graphviz Dot (SVG only) - Graph.svg b/icons/Graphviz Dot (SVG only) - Graph.svg new file mode 100644 index 0000000..9771e99 --- /dev/null +++ b/icons/Graphviz Dot (SVG only) - Graph.svg @@ -0,0 +1,45 @@ + + + + + + +foo + + + +node1 + +node1 + + + +node2 + +node2 + + + +node1--node2 + + + + +node3 + +a + +b + +c + + + +node2--node3 + + + + diff --git a/icons/Graphviz Dot (SVG only) - Process diagram with clusters.svg b/icons/Graphviz Dot (SVG only) - Process diagram with clusters.svg new file mode 100644 index 0000000..c7b52fa --- /dev/null +++ b/icons/Graphviz Dot (SVG only) - Process diagram with clusters.svg @@ -0,0 +1,169 @@ + + + + + + +G + + +cluster0 + +process #1 + + +cluster1 + +process #2 + + + +a0 + +a0 + + + +a1 + +a1 + + + +a0->a1 + + + + + +a2 + +a2 + + + +a1->a2 + + + + + +b3 + +b3 + + + +a1->b3 + + + + + +a3 + +a3 + + + +a2->a3 + + + + + +a3->a0 + + + + + +end + + + + + +end + + + +a3->end + + + + + +b0 + +b0 + + + +b1 + +b1 + + + +b0->b1 + + + + + +b2 + +b2 + + + +b1->b2 + + + + + +b2->a3 + + + + + +b2->b3 + + + + + +b3->end + + + + + +start + + + + + +start + + + +start->a0 + + + + + +start->b0 + + + + + diff --git a/icons/Graphviz Dot (SVG only) - Records with nested fields.svg b/icons/Graphviz Dot (SVG only) - Records with nested fields.svg new file mode 100644 index 0000000..7f5b42d --- /dev/null +++ b/icons/Graphviz Dot (SVG only) - Records with nested fields.svg @@ -0,0 +1,64 @@ + + + + + + +structs + + + +struct1 + +left + +middle + +right + + + +struct2 + +one + +two + + + +struct1:f1->struct2:f0 + + + + + +struct3 + +hello +world + +b + +c + +d + +e + +f + +g + +h + + + +struct1:f2->struct3:here + + + + + diff --git a/icons/JCCKit (PNG only) - Example 1.png b/icons/JCCKit (PNG only) - Example 1.png new file mode 100644 index 0000000000000000000000000000000000000000..4b647c1ed5399006298807889c14697283312e20 GIT binary patch literal 13038 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 u@Nd- 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 Yd(8+TQ_WnM_(xoplE0WJdENd00MWU&HUIzs literal 0 HcmV?d00001 diff --git a/icons/JCCKit (PNG only) - Example 3.png b/icons/JCCKit (PNG only) - Example 3.png new file mode 100644 index 0000000000000000000000000000000000000000..2a5cbd59867e3e6a978b281d2c3ed5a32ad94b7b GIT binary patch literal 20727 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 literal 0 HcmV?d00001 diff --git a/icons/JCCKit (PNG only) - Example 4.png b/icons/JCCKit (PNG only) - Example 4.png new file mode 100644 index 0000000000000000000000000000000000000000..ed467543a4ec3df7e645d2d7e8cf14e178fa6e0e GIT binary patch literal 10032 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 g=jH!5U##Kw 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 R@F5+NjHIGOzSxsj{|9P-H&6fo literal 0 HcmV?d00001 diff --git a/icons/Object Diagram - Adding fields 1.svg b/icons/Object Diagram - Adding fields 1.svg new file mode 100644 index 0000000..0ae4226 --- /dev/null +++ b/icons/Object Diagram - Adding fields 1.svg @@ -0,0 +1,19 @@ +username = "Dummy"id = 123 \ No newline at end of file diff --git a/icons/Object Diagram - Adding fields 2.svg b/icons/Object Diagram - Adding fields 2.svg new file mode 100644 index 0000000..20939ce --- /dev/null +++ b/icons/Object Diagram - Adding fields 2.svg @@ -0,0 +1,19 @@ +username = "Dummy"id = 123 \ No newline at end of file diff --git a/icons/Object Diagram - Definition of objects.svg b/icons/Object Diagram - Definition of objects.svg new file mode 100644 index 0000000..4004654 --- /dev/null +++ b/icons/Object Diagram - Definition of objects.svg @@ -0,0 +1,17 @@ +firstObjectMy Second Object \ No newline at end of file diff --git a/icons/Object Diagram - Emphasized text.svg b/icons/Object Diagram - Emphasized text.svg new file mode 100644 index 0000000..5c8fec1 --- /dev/null +++ b/icons/Object Diagram - Emphasized text.svg @@ -0,0 +1,26 @@ +AliceAliceBobBobhellothereSomelong delayokThis isboldThis isitalicsThis ismonospacedThis isstrokedThis isunderlinedThis iswaved \ No newline at end of file diff --git a/icons/Object Diagram - Lists.svg b/icons/Object Diagram - Lists.svg new file mode 100644 index 0000000..f0ffbaf --- /dev/null +++ b/icons/Object Diagram - Lists.svg @@ -0,0 +1,27 @@ +demoBullet listSecond item** Sub item1.Numbered list2.Second item1.Sub item2.Another sub item3.Third item \ No newline at end of file diff --git a/icons/Object Diagram - Relations between objects.svg b/icons/Object Diagram - Relations between objects.svg new file mode 100644 index 0000000..814b5cc --- /dev/null +++ b/icons/Object Diagram - Relations between objects.svg @@ -0,0 +1,28 @@ +Object01Object02Object03Object04Object05Object06Object07Object084some labels \ No newline at end of file diff --git a/icons/Other - Conditions 1.svg b/icons/Other - Conditions 1.svg new file mode 100644 index 0000000..15e2933 --- /dev/null +++ b/icons/Other - Conditions 1.svg @@ -0,0 +1,19 @@ +ArrayListint size ()void clear () \ No newline at end of file diff --git a/icons/Other - Constants.svg b/icons/Other - Constants.svg new file mode 100644 index 0000000..38c1658 --- /dev/null +++ b/icons/Other - Constants.svg @@ -0,0 +1,22 @@ +«Database Table»USER«Database Table»ACCOUNT«Database Sequence»UID1* \ No newline at end of file diff --git a/icons/Other - Handwritten.svg b/icons/Other - Handwritten.svg new file mode 100644 index 0000000..104fc88 --- /dev/null +++ b/icons/Other - Handwritten.svg @@ -0,0 +1,25 @@ +Internal ServiceBobBobAliceAliceOtherOtherhellohello \ No newline at end of file diff --git a/icons/Other - Header and Footer.svg b/icons/Other - Header and Footer.svg new file mode 100644 index 0000000..5147e28 --- /dev/null +++ b/icons/Other - Header and Footer.svg @@ -0,0 +1,25 @@ +AliceAliceBobBobAuthentication RequestWarning:Do not use in production.Generated for demonstration \ No newline at end of file diff --git a/icons/Other - Includes.svg b/icons/Other - Includes.svg new file mode 100644 index 0000000..8422eb4 --- /dev/null +++ b/icons/Other - Includes.svg @@ -0,0 +1,18 @@ +[From Other - Includes.puml (line 3) ]@startuml!include Include.plantumlCannot include Include.plantuml \ No newline at end of file diff --git a/icons/Other - Macros 1.svg b/icons/Other - Macros 1.svg new file mode 100644 index 0000000..a8f376e --- /dev/null +++ b/icons/Other - Macros 1.svg @@ -0,0 +1,18 @@ +«module»foo«module»bar \ No newline at end of file diff --git a/icons/Other - Macros 2.svg b/icons/Other - Macros 2.svg new file mode 100644 index 0000000..9210eb0 --- /dev/null +++ b/icons/Other - Macros 2.svg @@ -0,0 +1,18 @@ +AliceAliceBobBobHellook \ No newline at end of file diff --git a/icons/Other - Macros 3.svg b/icons/Other - Macros 3.svg new file mode 100644 index 0000000..d6d854d --- /dev/null +++ b/icons/Other - Macros 3.svg @@ -0,0 +1,18 @@ +BobBobAliceAlicehello hellook \ No newline at end of file diff --git a/icons/Other - Monochrome.svg b/icons/Other - Monochrome.svg new file mode 100644 index 0000000..a33fc16 --- /dev/null +++ b/icons/Other - Monochrome.svg @@ -0,0 +1,25 @@ +Internal ServiceBobBobAliceAliceOtherOtherhellohello \ No newline at end of file diff --git a/icons/Other - Runtime variables.svg b/icons/Other - Runtime variables.svg new file mode 100644 index 0000000..65bffc0 --- /dev/null +++ b/icons/Other - Runtime variables.svg @@ -0,0 +1,65 @@ +Runtime variablesFooBarRuntime variables will be substituted by PlantUML QEditor before image generation.Default:Username ............. :%USERNAME%Path ................. :%PATH%Filename ............. :%FILE%Directory ............ :%DIR%Date ................. :Thu Feb 14 17:37:58 CET 2019Time ................. :%TIME%Timestamp ............ :%NOW%Timestamp short....... :%NOW:S%Timestamp long ....... :%NOW:L%Formatted timestamp .. :%NOW:MMMM ''yy hh:mm ap%Current:Username ............. :${CUSER}Path ................. :${CPATH}Filename ............. :${CFILE}Directory ............ :${CDIR}Date ................. :${CDATE}Time ................. :${CTIME}Timestamp ............ :${CNOW}Timestamp short....... :${CNOW:S}Timestamp long ....... :${CNOW:L}Formatted timestamp .. :${CNOW:MMMM ''yy hh:mm ap}File:Username ............. :${FUSER}Path ................. :${FPATH}Filename ............. :${FILE}Directory ............ :${FDIR}Date ................. :${FDATE}Time ................. :${FTIME}Seehttp://doc.qt.io/qt-5/qdatetime.html#toStringfor format informaton.You can use Unix like ${...} or Windows like %...% variable format!%PATH%, %USER%, %NOW:S% \ No newline at end of file diff --git a/icons/Other - Sprite 1.svg b/icons/Other - Sprite 1.svg new file mode 100644 index 0000000..9e47fed --- /dev/null +++ b/icons/Other - Sprite 1.svg @@ -0,0 +1,37 @@ +AliceAliceBobBobTestingTo encode sprite, you can use the command line like:java -jar plantuml.jar -encodesprite 16z foo.pngwhere foo.png if the image file you want to use (it willbe converted to gray automatically). After -encodesprite,you have to specify a format: 4, 8, 16, 4z, 8z or 16z.The number indicates the gray level and the optionnal zis used to enable compression in sprite definition. \ No newline at end of file diff --git a/icons/Other - Sprite 2.svg b/icons/Other - Sprite 2.svg new file mode 100644 index 0000000..743ba9b --- /dev/null +++ b/icons/Other - Sprite 2.svg @@ -0,0 +1,18 @@ +click onto print the page \ No newline at end of file diff --git a/icons/Other - Sprite 3.svg b/icons/Other - Sprite 3.svg new file mode 100644 index 0000000..cce7858 --- /dev/null +++ b/icons/Other - Sprite 3.svg @@ -0,0 +1,42 @@ +Use of sprites (,...)ExampleCan have some bug :Click onto saveThe printeris available \ No newline at end of file diff --git a/icons/PlantUML - Authors.svg b/icons/PlantUML - Authors.svg new file mode 100644 index 0000000..635a9ec --- /dev/null +++ b/icons/PlantUML - Authors.svg @@ -0,0 +1,16 @@ +PlantUML version 1.2019.01(Sat Feb 09 16:32:04 CET 2019)(GPL source distribution)Original idea: Arnaud RoquesWord Macro: Alain Bertucat & Matthieu SabatierWord Add-in: Adriaan van den BrandJ2V8 & viz.js integration: Andreas StuderOfficial Eclipse Plugin: Hallvard TrættebergOriginal Eclipse Plugin: Claude Durif & Anne PecoilServlet & XWiki: Maxime SinclairDocker: David DucatelAWS lib: Chris PassarelloStdlib Icons: tupadr3Site design: Raphael CotissonLogo: Benjamin Croizethttp://plantuml.com \ No newline at end of file diff --git a/icons/PlantUML - Check Version.svg b/icons/PlantUML - Check Version.svg new file mode 100644 index 0000000..177c1b9 --- /dev/null +++ b/icons/PlantUML - Check Version.svg @@ -0,0 +1,16 @@ +PlantUML version 1.2019.01(Sat Feb 09 16:32:04 CET 2019)Last available version for download: 1201901Your version is up to date. \ No newline at end of file diff --git a/icons/PlantUML - Icons.svg b/icons/PlantUML - Icons.svg new file mode 100644 index 0000000..1e7e9b3 --- /dev/null +++ b/icons/PlantUML - Icons.svg @@ -0,0 +1,16 @@ +List Open IconicCredit tohttps://useiconic.com/openaccount-loginaccount-logoutaction-redoaction-undoalign-centeralign-leftalign-rightaperturearrow-bottomarrow-circle-bottomarrow-circle-leftarrow-circle-rightarrow-circle-toparrow-leftarrow-rightarrow-thick-bottomarrow-thick-leftarrow-thick-rightarrow-thick-toparrow-topaudio-spectrumaudiobadgebanbar-chartbasketbattery-emptybattery-fullbeakerbellbluetoothboldboltbookbookmarkboxbriefcasebritish-poundbrowserbrushbugbullhorncalculatorcalendarcamera-slrcaret-bottomcaret-leftcaret-rightcaret-topcartchatcheckchevron-bottomchevron-leftchevron-rightchevron-topcircle-checkcircle-xclipboardclockcloud-downloadcloud-uploadcloudcloudycodecogcollapse-downcollapse-leftcollapse-rightcollapse-upcommandcomment-squarecompasscontrastcopywritingcredit-cardcropdashboarddata-transfer-downloaddata-transfer-uploaddeletedialdocumentdollardouble-quote-sans-leftdouble-quote-sans-rightdouble-quote-serif-leftdouble-quote-serif-rightdropletejectelevatorellipsesenvelope-closedenvelope-openeuroexcerptexpand-downexpand-leftexpand-rightexpand-upexternal-linkeyeeyedropperfilefireflagflashfolderforkfullscreen-enterfullscreen-exitglobegraphgrid-four-upgrid-three-upgrid-two-uphard-driveheaderheadphoneshearthomeimageinboxinfinityinfoitalicjustify-centerjustify-leftjustify-rightkeylaptoplayerslightbulblink-brokenlink-intactlist-richlistlocationlock-lockedlock-unlockedloop-circularloop-squareloopmagnifying-glassmap-markermapmedia-pausemedia-playmedia-recordmedia-skip-backwardmedia-skip-forwardmedia-step-backwardmedia-step-forwardmedia-stopmedical-crossmenumicrophoneminusmonitormoonmovemusical-notepaperclippencilpeoplepersonphonepie-chartpinplay-circlepluspower-standbyprintprojectpulsepuzzle-piecequestion-markrainrandomreloadresize-bothresize-heightresize-widthrss-altrssscriptshare-boxedshareshieldsignalsignpostsort-ascendingsort-descendingspreadsheetstarsuntablettagtagstargettaskterminaltextthumb-downthumb-uptimertransfertrashunderlinevertical-align-bottomvertical-align-centervertical-align-topvideovolume-highvolume-lowvolume-offwarningwifiwrenchxyenzoom-inzoom-out \ No newline at end of file diff --git a/icons/PlantUML - License.svg b/icons/PlantUML - License.svg new file mode 100644 index 0000000..71e2f8c --- /dev/null +++ b/icons/PlantUML - License.svg @@ -0,0 +1,16 @@ ++=======================================================================|| PlantUML : a free UML diagram generator|+=======================================================================(C) Copyright 2009-2020, Arnaud RoquesProject Info: http://plantuml.comIf you like this project or if you find it useful, you can support us at:http://plantuml.com/patreon (only 1$ per month!)http://plantuml.com/liberapay (only 1€ per month!)http://plantuml.com/paypalPlantUML is free software; you can redistribute it and/or modify itunder the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.PlantUML distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITYor FITNESS FOR A PARTICULAR PURPOSE. See the GNU General PublicLicense for more details.You should have received a copy of the GNU General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,USA.PlantUML can occasionally display sponsored or advertising messages. Thosemessages are usually generated on welcome or error images and never onfunctional diagrams.See http://plantuml.com/professional if you want to remove themImages (whatever their format : PNG, SVG, EPS...) generated by running PlantUMLare owned by the author of their corresponding sources code (that is, theirtextual description in PlantUML language). Those images are not covered bythe GPL license.The generated images can then be used without any reference to the GPL license.It is not even necessary to stipulate that they have been generated with PlantUML,also this will be appreciate by PlantUML team.There is an exception : if the textual description in PlantUML language is also coveredby a license (like the GPL), then the generated images are logically coveredby the very same license.Icons provided by OpenIconic : https://useiconic.com/openArchimate sprites provided by Archi : http://www.archimatetool.comStdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUMLStdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-spritesASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsenASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippmanCafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfliBrotli (c) by the Brotli Authors https://github.com/google/brotli \ No newline at end of file diff --git a/icons/PlantUML - Test Graphviz dot.svg b/icons/PlantUML - Test Graphviz dot.svg new file mode 100644 index 0000000..49d0c34 --- /dev/null +++ b/icons/PlantUML - Test Graphviz dot.svg @@ -0,0 +1,16 @@ +The environment variable GRAPHVIZ_DOT has not been setDot executable is /usr/bin/dotDot version: dot - graphviz version 2.40.1 (20161225.0304)Installation seems OK. File generation OK \ No newline at end of file diff --git a/icons/PlantUML - Version.svg b/icons/PlantUML - Version.svg new file mode 100644 index 0000000..d2d8a29 --- /dev/null +++ b/icons/PlantUML - Version.svg @@ -0,0 +1,16 @@ +PlantUML version 1.2019.01(Sat Feb 09 16:32:04 CET 2019)(GPL source distribution)Loaded from jar:file:/usr/local/share/plantuml/plantuml.1.2019.1.jar!/The environment variable GRAPHVIZ_DOT has not been setDot executable is /usr/bin/dotDot version: dot - graphviz version 2.40.1 (20161225.0304)Installation seems OK. File generation OKJava Runtime: OpenJDK Runtime EnvironmentJVM: OpenJDK 64-Bit Server VMJava Version: 11.0.1+13-Ubuntu-3ubuntu3.18.10.1Operating System: LinuxOS Version: 4.18.0-16-genericDefault Encoding: UTF-8Language: frCountry: FRMachine: dt-edegoutePLANTUML_LIMIT_SIZE: 4096Processors: 4Max Memory: 4,057,989,120Total Memory: 311,427,072Free Memory: 213,323,776Used Memory: 98,103,296Thread Active Count: 1 \ No newline at end of file diff --git a/icons/PlantUML Incubation - Autoactivation in sequence diagrams.svg b/icons/PlantUML Incubation - Autoactivation in sequence diagrams.svg new file mode 100644 index 0000000..818aeae --- /dev/null +++ b/icons/PlantUML Incubation - Autoactivation in sequence diagrams.svg @@ -0,0 +1,24 @@ +geogealicealicebobbobbillbillgeogehelloself callhello from thread 2creategeogedone in thread 2rcdeletesuccess \ No newline at end of file diff --git a/icons/PlantUML Incubation - Change line color in dtate diagrams.svg b/icons/PlantUML Incubation - Change line color in dtate diagrams.svg new file mode 100644 index 0000000..f0f3392 --- /dev/null +++ b/icons/PlantUML Incubation - Change line color in dtate diagrams.svg @@ -0,0 +1,25 @@ +S1S2S3S4S5X1X2Z1Z2Y1Y2 \ No newline at end of file diff --git a/icons/PlantUML Incubation - NONE.svg b/icons/PlantUML Incubation - NONE.svg new file mode 100644 index 0000000..a06bb1b --- /dev/null +++ b/icons/PlantUML Incubation - NONE.svg @@ -0,0 +1,17 @@ +Welcome to PlantUML!If you use this software, you accept its license.(details by typinglicensekeyword)You can start with a simple UML Diagram like:Bob->Alice: HelloOrclass ExampleYou will find more information about PlantUML syntax onhttp://plantuml.com[From PlantUML Incubation - NONE.puml (line 2) ]@startuml<item name=""><![CDATA[Syntax Error? \ No newline at end of file diff --git a/icons/PlantUML Incubation - Reference in dequence diagrams.svg b/icons/PlantUML Incubation - Reference in dequence diagrams.svg new file mode 100644 index 0000000..8158748 --- /dev/null +++ b/icons/PlantUML Incubation - Reference in dequence diagrams.svg @@ -0,0 +1,26 @@ +DummyDummyAliceAliceBobBobfoo1refFoo2hellorefthis is areference overAlice and Bob \ No newline at end of file diff --git a/icons/PlantUML Incubation - Return in Sequence Diagram.svg b/icons/PlantUML Incubation - Return in Sequence Diagram.svg new file mode 100644 index 0000000..d20255f --- /dev/null +++ b/icons/PlantUML Incubation - Return in Sequence Diagram.svg @@ -0,0 +1,19 @@ +BobBobAliceAlicehellosome actionbye \ No newline at end of file diff --git a/icons/PlantUML Incubation - Shortcut syntax in sequence diagrams.svg b/icons/PlantUML Incubation - Shortcut syntax in sequence diagrams.svg new file mode 100644 index 0000000..9099855 --- /dev/null +++ b/icons/PlantUML Incubation - Shortcut syntax in sequence diagrams.svg @@ -0,0 +1,23 @@ +geogealicealicebobbobbibbibgeogehelloself callhellocreategeogedonercdeletesuccess \ No newline at end of file diff --git a/icons/PlantUML Incubation - URL in diagrams.svg b/icons/PlantUML Incubation - URL in diagrams.svg new file mode 100644 index 0000000..c99fdc5 --- /dev/null +++ b/icons/PlantUML Incubation - URL in diagrams.svg @@ -0,0 +1,21 @@ +DogMammalCat \ No newline at end of file diff --git a/icons/PlantUML Incubation - URLs on classes.svg b/icons/PlantUML Incubation - URLs on classes.svg new file mode 100644 index 0000000..4ea3a4a --- /dev/null +++ b/icons/PlantUML Incubation - URLs on classes.svg @@ -0,0 +1,30 @@ +Objecthttp://www.yahoo.comFoohttp://www.google.commethods1()http://www.yahoo.com/A1methods2()http://www.yahoo.com/A2Foo2methods1()http://www.yahoo.com/B1methods2()http://www.yahoo.com/B2 \ No newline at end of file diff --git a/icons/Sequence Diagrams - Change arrow style.svg b/icons/Sequence Diagrams - Change arrow style.svg index 908d8e4..d6b5547 100644 --- a/icons/Sequence Diagrams - Change arrow style.svg +++ b/icons/Sequence Diagrams - Change arrow style.svg @@ -1 +1,36 @@ -BobBobAliceAlice \ No newline at end of file +BobBobAliceAlice \ No newline at end of file diff --git a/icons/Sequence Diagrams - Declaring a participant.svg b/icons/Sequence Diagrams - Declaring a participant.svg index 590d28f..1e63dbe 100644 --- a/icons/Sequence Diagrams - Declaring a participant.svg +++ b/icons/Sequence Diagrams - Declaring a participant.svg @@ -1 +1,22 @@ -BobBobAliceAliceI have a reallylong nameI have a reallylong nameAuthentication RequestAuthentication ResponseLog transaction \ No newline at end of file +BobBobAliceAliceI have a reallylong nameI have a reallylong nameAuthentication RequestAuthentication ResponseLog transaction \ No newline at end of file diff --git a/icons/Sequence Diagrams - Divider.svg b/icons/Sequence Diagrams - Divider.svg index 11b97c9..e179463 100644 --- a/icons/Sequence Diagrams - Divider.svg +++ b/icons/Sequence Diagrams - Divider.svg @@ -1 +1,24 @@ -AliceAliceBobBobInitialisationAuthentication RequestAuthentication ResponseRepetitionAnother authentication Requestanother authentication Response \ No newline at end of file +AliceAliceBobBobInitialisationAuthentication RequestAuthentication ResponseRepetitionAnother authentication Requestanother authentication Response \ No newline at end of file diff --git a/icons/Sequence Diagrams - Formatted message sequence numbering.svg b/icons/Sequence Diagrams - Formatted message sequence numbering.svg index 852185e..67bc818 100644 --- a/icons/Sequence Diagrams - Formatted message sequence numbering.svg +++ b/icons/Sequence Diagrams - Formatted message sequence numbering.svg @@ -1 +1,27 @@ -BobBobAliceAlice[001]Authentication Request[002]Authentication Response(15)Another authentication Request(16)Another authentication ResponseMessage 40Yet another authentication RequestMessage 50Yet another authentication Response \ No newline at end of file +BobBobAliceAlice[001]Authentication Request[002]Authentication Response(15)Another authentication Request(16)Another authentication ResponseMessage 40Yet another authentication RequestMessage 50Yet another authentication Response \ No newline at end of file diff --git a/icons/Sequence Diagrams - Grouping message.svg b/icons/Sequence Diagrams - Grouping message.svg index c4cc3a8..9d4cdfb 100644 --- a/icons/Sequence Diagrams - Grouping message.svg +++ b/icons/Sequence Diagrams - Grouping message.svg @@ -1 +1,37 @@ -AliceAliceBobBobLogLogAuthentication Requestalt[successful case]Authentication Accepted[some kind of failure]Authentication FailureMy own labelLog attack startloop[1000 times]DNS AttackLog attack end[Another type of failure]Please repeat \ No newline at end of file +AliceAliceBobBobLogLogAuthentication Requestalt[successful case]Authentication Accepted[some kind of failure]Authentication FailureMy own labelLog attack startloop[1000 times]DNS AttackLog attack end[Another type of failure]Please repeat \ No newline at end of file diff --git a/icons/Sequence Diagrams - Incomming and outgoing messages.svg b/icons/Sequence Diagrams - Incomming and outgoing messages.svg index 2bea5e5..0f7a70a 100644 --- a/icons/Sequence Diagrams - Incomming and outgoing messages.svg +++ b/icons/Sequence Diagrams - Incomming and outgoing messages.svg @@ -1 +1,28 @@ -AADoWorkInternal call<< createRequest >>RequestCreatedDone \ No newline at end of file +AADoWorkInternal call<< createRequest >>RequestCreatedDone \ No newline at end of file diff --git a/icons/Sequence Diagrams - Lifeline activation and destruction.svg b/icons/Sequence Diagrams - Lifeline activation and destruction.svg index 6aecf05..df20241 100644 --- a/icons/Sequence Diagrams - Lifeline activation and destruction.svg +++ b/icons/Sequence Diagrams - Lifeline activation and destruction.svg @@ -1 +1,33 @@ -UserUserAABBCCDoWork<< createRequest >>DoWorkWorkDoneRequestCreatedDone \ No newline at end of file +UserUserAABBCCDoWork<< createRequest >>DoWorkWorkDoneRequestCreatedDone \ No newline at end of file diff --git a/icons/Sequence Diagrams - Link with Tooltip.svg b/icons/Sequence Diagrams - Link with Tooltip.svg new file mode 100644 index 0000000..9904842 --- /dev/null +++ b/icons/Sequence Diagrams - Link with Tooltip.svg @@ -0,0 +1,16 @@ +AliceAliceBobBobhttp://www.yahoo.comhello \ No newline at end of file diff --git a/icons/Sequence Diagrams - Message sequence numbering with a start.svg b/icons/Sequence Diagrams - Message sequence numbering with a start.svg index c02c51a..63d283b 100644 --- a/icons/Sequence Diagrams - Message sequence numbering with a start.svg +++ b/icons/Sequence Diagrams - Message sequence numbering with a start.svg @@ -1 +1,27 @@ -BobBobAliceAlice1Authentication Request2Authentication Response15Another authentication Request16Another authentication Response40Yet another authentication Request50Yet another authentication Response \ No newline at end of file +BobBobAliceAlice1Authentication Request2Authentication Response15Another authentication Request16Another authentication Response40Yet another authentication Request50Yet another authentication Response \ No newline at end of file diff --git a/icons/Sequence Diagrams - Message sequence numbering.svg b/icons/Sequence Diagrams - Message sequence numbering.svg index 5092b6a..66e1eda 100644 --- a/icons/Sequence Diagrams - Message sequence numbering.svg +++ b/icons/Sequence Diagrams - Message sequence numbering.svg @@ -1 +1,19 @@ -BobBobAliceAlice1Authentication Request2Authentication Response \ No newline at end of file +BobBobAliceAlice1Authentication Request2Authentication Response \ No newline at end of file diff --git a/icons/Sequence Diagrams - Message to Self.svg b/icons/Sequence Diagrams - Message to Self.svg index 575daa1..5847f66 100644 --- a/icons/Sequence Diagrams - Message to Self.svg +++ b/icons/Sequence Diagrams - Message to Self.svg @@ -1 +1,16 @@ -AliceAliceThis is a signal to self.It also demonstratesmultilinetext \ No newline at end of file +AliceAliceThis is a signal to self.It also demonstratesmultilinetext \ No newline at end of file diff --git a/icons/Sequence Diagrams - Nested lifeline activation and destruction.svg b/icons/Sequence Diagrams - Nested lifeline activation and destruction.svg index 68b6e75..ac34f3e 100644 --- a/icons/Sequence Diagrams - Nested lifeline activation and destruction.svg +++ b/icons/Sequence Diagrams - Nested lifeline activation and destruction.svg @@ -1 +1,31 @@ -UserUserAABBDoWorkInternal call<< createRequest >>RequestCreatedDone \ No newline at end of file +UserUserAABBDoWorkInternal call<< createRequest >>RequestCreatedDone \ No newline at end of file diff --git a/icons/Sequence Diagrams - Notes on messages.svg b/icons/Sequence Diagrams - Notes on messages.svg index bf04162..7955227 100644 --- a/icons/Sequence Diagrams - Notes on messages.svg +++ b/icons/Sequence Diagrams - Notes on messages.svg @@ -1 +1,27 @@ -AliceAliceBobBobhellothis is a first noteokthis is another noteI am thinkinga notecan also be definedon several lines \ No newline at end of file +AliceAliceBobBobhellothis is a first noteokthis is another noteI am thinkinga notecan also be definedon several lines \ No newline at end of file diff --git a/icons/Sequence Diagrams - Participant creation.svg b/icons/Sequence Diagrams - Participant creation.svg index 5a73570..9379681 100644 --- a/icons/Sequence Diagrams - Participant creation.svg +++ b/icons/Sequence Diagrams - Participant creation.svg @@ -1 +1,25 @@ -OtherStringBobBobAliceAliceOtherStringhellonewOtherStringYou can also put notes!ok \ No newline at end of file +OtherStringBobBobAliceAliceOtherStringhellonewOtherStringYou can also put notes!ok \ No newline at end of file diff --git a/icons/Sequence Diagrams - Participants englober.svg b/icons/Sequence Diagrams - Participants englober.svg index a096007..1623f43 100644 --- a/icons/Sequence Diagrams - Participants englober.svg +++ b/icons/Sequence Diagrams - Participants englober.svg @@ -1 +1,23 @@ -Internal ServiceBobBobAliceAliceOtherOtherhellohello \ No newline at end of file +Internal ServiceBobBobAliceAliceOtherOtherhellohello \ No newline at end of file diff --git a/icons/Sequence Diagrams - Removing footer.svg b/icons/Sequence Diagrams - Removing footer.svg index aa224f9..c71e922 100644 --- a/icons/Sequence Diagrams - Removing footer.svg +++ b/icons/Sequence Diagrams - Removing footer.svg @@ -1 +1,20 @@ -Footer removedAliceBobAuthentication RequestAuthentication Response \ No newline at end of file +Footer removedAliceBobAuthentication RequestAuthentication Response \ No newline at end of file diff --git a/icons/Sequence Diagrams - Simple sequence.svg b/icons/Sequence Diagrams - Simple sequence.svg index 8baf0a2..ee86481 100644 --- a/icons/Sequence Diagrams - Simple sequence.svg +++ b/icons/Sequence Diagrams - Simple sequence.svg @@ -1 +1,23 @@ -AliceAliceBobBobAuthentication RequestAuthentication ResponseAnother authentication Requestanother authentication Response \ No newline at end of file +AliceAliceBobBobAuthenticationRequestAuthenticationResponseAnotherauthenticationRequestanotherauthenticationResponse \ No newline at end of file diff --git a/icons/Sequence Diagrams - Some other notes.svg b/icons/Sequence Diagrams - Some other notes.svg index b79a3c1..973fe44 100644 --- a/icons/Sequence Diagrams - Some other notes.svg +++ b/icons/Sequence Diagrams - Some other notes.svg @@ -1 +1,34 @@ -AliceAliceBobBobThis is displayedleft of Alice.This is displayed right of Alice.This is displayed over Alice.This is displayedover Bob and Alice.This is yet anotherexample ofa long note. \ No newline at end of file +AliceAliceBobBobThis is displayedleft of Alice.This is displayed right of Alice.This is displayed over Alice.This is displayedover Bob and Alice.This is yet anotherexample ofa long note. \ No newline at end of file diff --git a/icons/Sequence Diagrams - Space.svg b/icons/Sequence Diagrams - Space.svg index e2ee60a..a3b86b3 100644 --- a/icons/Sequence Diagrams - Space.svg +++ b/icons/Sequence Diagrams - Space.svg @@ -1 +1,23 @@ -AliceAliceBobBobmessage 1okmessage 2okmessage 3ok \ No newline at end of file +AliceAliceBobBobmessage 1okmessage 2okmessage 3ok \ No newline at end of file diff --git a/icons/Sequence Diagrams - Stereotypes and spots.svg b/icons/Sequence Diagrams - Stereotypes and spots.svg index bad8da9..7218677 100644 --- a/icons/Sequence Diagrams - Stereotypes and spots.svg +++ b/icons/Sequence Diagrams - Stereotypes and spots.svg @@ -1 +1,19 @@ -<< Generated >>Famous Bob<< Generated >>Famous Bob<< Testable >>Alice<< Testable >>AliceFirst message \ No newline at end of file +«Generated»Famous Bob«Generated»Famous Bob«Testable»Alice«Testable»AliceFirst message \ No newline at end of file diff --git a/icons/Sequence Diagrams - Title.svg b/icons/Sequence Diagrams - Title.svg index a05e442..fcddfc4 100644 --- a/icons/Sequence Diagrams - Title.svg +++ b/icons/Sequence Diagrams - Title.svg @@ -1 +1,19 @@ -Simple communication exampleAliceAliceBobBobAuthentication RequestAuthentication Response \ No newline at end of file +Simple communication exampleAliceAliceBobBobAuthentication RequestAuthentication Response \ No newline at end of file diff --git a/icons/State Diagram - Arrow direction.svg b/icons/State Diagram - Arrow direction.svg new file mode 100644 index 0000000..463f6c5 --- /dev/null +++ b/icons/State Diagram - Arrow direction.svg @@ -0,0 +1,19 @@ +FirstSecondThirdLast \ No newline at end of file diff --git a/icons/State Diagram - Composite state.svg b/icons/State Diagram - Composite state.svg new file mode 100644 index 0000000..1cf66d2 --- /dev/null +++ b/icons/State Diagram - Composite state.svg @@ -0,0 +1,35 @@ +NotShootingIdleConfiguringNewValueSelectionNewValuePreviewState1State2EvNewValueEvNewValueRejectedEvNewValueSavedEvConfigEvConfig \ No newline at end of file diff --git a/icons/State Diagram - Concurrent state.svg b/icons/State Diagram - Concurrent state.svg new file mode 100644 index 0000000..62b0e7a --- /dev/null +++ b/icons/State Diagram - Concurrent state.svg @@ -0,0 +1,32 @@ +ActiveNumLockOffNumLockOnEvNumLockPressedEvNumLockPressedCapsLockOffCapsLockOnEvCapsLockPressedEvCapsLockPressedScrollLockOffScrollLockOnEvCapsLockPressedEvCapsLockPressed \ No newline at end of file diff --git a/icons/State Diagram - Long name.svg b/icons/State Diagram - Long name.svg new file mode 100644 index 0000000..d9d320f --- /dev/null +++ b/icons/State Diagram - Long name.svg @@ -0,0 +1,32 @@ +State1State2State3Accumulate Enough DataLong State NameJust a testProcessDataNew DataEnough DataSucceededAbortedSucceededAbortedFailedSucceeded / Save ResultAborted \ No newline at end of file diff --git a/icons/State Diagram - More in notes.svg b/icons/State Diagram - More in notes.svg new file mode 100644 index 0000000..00f4c70 --- /dev/null +++ b/icons/State Diagram - More in notes.svg @@ -0,0 +1,26 @@ +This is a note on a composite stateNot Shooting StateIdle modeConfiguring modeEvConfigEvConfig \ No newline at end of file diff --git a/icons/State Diagram - Note 1.svg b/icons/State Diagram - Note 1.svg new file mode 100644 index 0000000..87c7f6a --- /dev/null +++ b/icons/State Diagram - Note 1.svg @@ -0,0 +1,25 @@ +ActiveInactivethis is a shortnoteA note can alsobe defined onseveral lines \ No newline at end of file diff --git a/icons/State Diagram - Note 2.svg b/icons/State Diagram - Note 2.svg new file mode 100644 index 0000000..96f1973 --- /dev/null +++ b/icons/State Diagram - Note 2.svg @@ -0,0 +1,17 @@ +fooThis is a floating note \ No newline at end of file diff --git a/icons/State Diagram - Simple State.svg b/icons/State Diagram - Simple State.svg new file mode 100644 index 0000000..38b5e1f --- /dev/null +++ b/icons/State Diagram - Simple State.svg @@ -0,0 +1,22 @@ +State1this is a stringthis is another stringState2 \ No newline at end of file diff --git a/icons/State Diagram - Skinparam.svg b/icons/State Diagram - Skinparam.svg new file mode 100644 index 0000000..2664ac5 --- /dev/null +++ b/icons/State Diagram - Skinparam.svg @@ -0,0 +1,36 @@ +Not Shooting StateIdle modeConfiguring modeEvConfigEvConfig \ No newline at end of file diff --git a/icons/Use Case Diagrams - Actors.svg b/icons/Use Case Diagrams - Actors.svg index aae032d..eabc3ed 100644 --- a/icons/Use Case Diagrams - Actors.svg +++ b/icons/Use Case Diagrams - Actors.svg @@ -1 +1,19 @@ -First ActorAnotheractorMen3Last actor \ No newline at end of file +First ActorAnotheractorMen3Last actor \ No newline at end of file diff --git a/icons/Use Case Diagrams - Basic example.svg b/icons/Use Case Diagrams - Basic example.svg index c1ebbf8..c77ed2d 100644 --- a/icons/Use Case Diagrams - Basic example.svg +++ b/icons/Use Case Diagrams - Basic example.svg @@ -1 +1,19 @@ -UserStartUse the applicationMain AdminA small labelThis isyet anotherlabel \ No newline at end of file +UserStartUse the applicationMain AdminA small labelThis isyet anotherlabel \ No newline at end of file diff --git a/icons/Use Case Diagrams - Changing arrows direction 1.svg b/icons/Use Case Diagrams - Changing arrows direction 1.svg index 25b1982..435260e 100644 --- a/icons/Use Case Diagrams - Changing arrows direction 1.svg +++ b/icons/Use Case Diagrams - Changing arrows direction 1.svg @@ -1 +1,17 @@ -userUse case 1Use case 2 \ No newline at end of file +userUse case 1Use case 2 \ No newline at end of file diff --git a/icons/Use Case Diagrams - Changing arrows direction 2.svg b/icons/Use Case Diagrams - Changing arrows direction 2.svg index 21bdd70..7e7d0db 100644 --- a/icons/Use Case Diagrams - Changing arrows direction 2.svg +++ b/icons/Use Case Diagrams - Changing arrows direction 2.svg @@ -1 +1,17 @@ -Use case 1userUse case 2 \ No newline at end of file +Use case 1userUse case 2 \ No newline at end of file diff --git a/icons/Use Case Diagrams - Changing arrows direction 3.svg b/icons/Use Case Diagrams - Changing arrows direction 3.svg index 62152ad..aaa060a 100644 --- a/icons/Use Case Diagrams - Changing arrows direction 3.svg +++ b/icons/Use Case Diagrams - Changing arrows direction 3.svg @@ -1 +1,19 @@ -userdummyLeftdummyRightdummyUpdummyDown \ No newline at end of file +userdummyLeftdummyRightdummyUpdummyDown \ No newline at end of file diff --git a/icons/Use Case Diagrams - Complete example.svg b/icons/Use Case Diagrams - Complete example.svg index b9c87fc..e12d4ca 100644 --- a/icons/Use Case Diagrams - Complete example.svg +++ b/icons/Use Case Diagrams - Complete example.svg @@ -1 +1,26 @@ -checkoutcheckoutpaymenthelpcustomerclerk<><> \ No newline at end of file +checkoutcheckoutpaymenthelpcustomerclerk<><> \ No newline at end of file diff --git a/icons/Use Case Diagrams - Extension.svg b/icons/Use Case Diagrams - Extension.svg index c6f4712..b712471 100644 --- a/icons/Use Case Diagrams - Extension.svg +++ b/icons/Use Case Diagrams - Extension.svg @@ -1 +1,20 @@ -Main AdminUse the applicationUserStart \ No newline at end of file +Main AdminUse the applicationUserStart \ No newline at end of file diff --git a/icons/Use Case Diagrams - Left to right direction.svg b/icons/Use Case Diagrams - Left to right direction.svg index 7c5f2c4..cc5422f 100644 --- a/icons/Use Case Diagrams - Left to right direction.svg +++ b/icons/Use Case Diagrams - Left to right direction.svg @@ -1 +1,19 @@ -user1Usecase 1user2Usecase 2 \ No newline at end of file +user1Usecase 1user2Usecase 2 \ No newline at end of file diff --git a/icons/Use Case Diagrams - Stereotypes.svg b/icons/Use Case Diagrams - Stereotypes.svg index 5fbd9ff..9506679 100644 --- a/icons/Use Case Diagrams - Stereotypes.svg +++ b/icons/Use Case Diagrams - Stereotypes.svg @@ -1 +1,24 @@ -User<< Human >>Main Database<< Application >>Start<< One Shot >>Use the application<< Main >> \ No newline at end of file +User«Human»Main Database«Application»«One Shot»Start«Main»Use the application \ No newline at end of file diff --git a/icons/Use Case Diagrams - Title.svg b/icons/Use Case Diagrams - Title.svg index 541b2d4..01ea7ef 100644 --- a/icons/Use Case Diagrams - Title.svg +++ b/icons/Use Case Diagrams - Title.svg @@ -1 +1,19 @@ -SimpleUsecasewith one actorUse the applicationUser \ No newline at end of file +SimpleUsecasewith one actorUse the applicationUser \ No newline at end of file diff --git a/icons/Use Case Diagrams - Top to bottom direction.svg b/icons/Use Case Diagrams - Top to bottom direction.svg index 2094d72..20419a8 100644 --- a/icons/Use Case Diagrams - Top to bottom direction.svg +++ b/icons/Use Case Diagrams - Top to bottom direction.svg @@ -1 +1,19 @@ -user1Usecase 1user2Usecase 2 \ No newline at end of file +user1Usecase 1user2Usecase 2 \ No newline at end of file diff --git a/icons/Use Case Diagrams - Usecases.svg b/icons/Use Case Diagrams - Usecases.svg index c60cc1b..0995d96 100644 --- a/icons/Use Case Diagrams - Usecases.svg +++ b/icons/Use Case Diagrams - Usecases.svg @@ -1 +1,19 @@ -First usecaseAnother usecaseUC3Lastusecase \ No newline at end of file +First usecaseAnother usecaseUC3Lastusecase \ No newline at end of file diff --git a/icons/Use Case Diagrams - Using notes.svg b/icons/Use Case Diagrams - Using notes.svg index e543083..e7adc1e 100644 --- a/icons/Use Case Diagrams - Using notes.svg +++ b/icons/Use Case Diagrams - Using notes.svg @@ -1 +1,33 @@ -Main AdminUse the applicationUserStartThis is an example.A note can alsobe on several linesThis note is connectedto several objects. \ No newline at end of file +Main AdminUse the applicationUserStartThis is an example.A note can alsobe on several linesThis note is connectedto several objects. \ No newline at end of file From ce2a01d227ae4a8eb087e39dde33fa59c22ee13f Mon Sep 17 00:00:00 2001 From: Tamas Gere Date: Wed, 2 Oct 2024 00:56:45 +0200 Subject: [PATCH 7/9] WordWrap mode switching feature --- mainwindow.cpp | 18 ++++++++++++++++++ mainwindow.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/mainwindow.cpp b/mainwindow.cpp index 7500a17..144616b 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -401,6 +401,16 @@ void MainWindow::onAutoRefreshActionToggled(bool state) m_autoRefreshLabel->setEnabled(state); } +void MainWindow::onWordWrapModeToggled(bool state) +{ + if (state) { + m_editor->setWordWrapMode(QTextOption::WordWrap); + } else { + m_editor->setWordWrapMode(QTextOption::NoWrap); + } +} + + void MainWindow::onEditorChanged() { if (!refreshFromCache()) m_needsRefresh = true; @@ -642,6 +652,7 @@ void MainWindow::readSettings(bool reload) SETTINGS_EDITOR_INDENT_WITH_SPACE_DEFAULT).toBool()); m_editor->setIndentSize(settings.value(SETTINGS_EDITOR_INDENT_SIZE, SETTINGS_EDITOR_INDENT_SIZE_DEFAULT).toInt()); + m_editor->setWordWrapMode(QTextOption::NoWrap); m_refreshOnSave = settings.value(SETTINGS_EDITOR_REFRESH_ON_SAVE, SETTINGS_EDITOR_REFRESH_ON_SAVE_DEFAULT).toBool(); @@ -900,6 +911,10 @@ void MainWindow::createActions() m_showStatusBarAction = new QAction(tr("Show statusbar"), this); m_showStatusBarAction->setCheckable(true); + m_wordWrapModeAction = new QAction(tr("Word Wrap"), this); + m_wordWrapModeAction->setCheckable(true); + connect(m_wordWrapModeAction, SIGNAL(toggled(bool)), this, SLOT(onWordWrapModeToggled(bool))); + m_preferencesAction = new QAction(QIcon::fromTheme("preferences-other"), tr("Preferences"), this); connect(m_preferencesAction, SIGNAL(triggered()), this, SLOT(onPreferencesActionTriggered())); @@ -973,6 +988,7 @@ void MainWindow::createMenus() m_settingsMenu->addAction(m_showAssistantDockAction); m_settingsMenu->addAction(m_showAssistantInfoDockAction); m_settingsMenu->addAction(m_showEditorDockAction); + m_settingsMenu->addAction(m_wordWrapModeAction); m_settingsMenu->addSeparator(); m_settingsMenu->addAction(m_pngPreviewAction); m_settingsMenu->addAction(m_svgPreviewAction); @@ -1005,6 +1021,8 @@ void MainWindow::createToolBars() m_mainToolBar->addAction(m_showAssistantInfoDockAction); m_mainToolBar->addAction(m_showEditorDockAction); m_mainToolBar->addSeparator(); + m_mainToolBar->addAction(m_wordWrapModeAction); + m_mainToolBar->addSeparator(); m_mainToolBar->addAction(m_undoAction); m_mainToolBar->addAction(m_redoAction); m_mainToolBar->addSeparator(); diff --git a/mainwindow.h b/mainwindow.h index 04a3f68..3bec78a 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -61,6 +61,7 @@ private slots: void copyImage(); void onAutoRefreshActionToggled(bool state); + void onWordWrapModeToggled(bool state); void onEditorChanged(); void onRefreshActionTriggered(); void onPreferencesActionTriggered(); @@ -179,6 +180,7 @@ private slots: QAction *m_showEditorDockAction; QAction *m_showMainToolbarAction; QAction *m_showStatusBarAction; + QAction *m_wordWrapModeAction; QAction *m_pngPreviewAction; QAction *m_svgPreviewAction; QAction *m_autoRefreshAction; From df6143dec9e0bfd748e28ad5ed7004a4fd0355dc Mon Sep 17 00:00:00 2001 From: Encolpe DEGOUTE Date: Thu, 20 Feb 2025 10:56:44 +0100 Subject: [PATCH 8/9] Add 4 commits from ShimpleJeaf/plantumlqeditor --- .gitignore | 1 + assistantxmlreader.cpp | 4 +- mainwindow.cpp | 7 +- plantumlqeditor.pro | 4 +- textedit.cpp | 4 +- translations/plantumlqeditor_zh_CN.ts | 562 ++++++++++++++++++++++++++ 6 files changed, 576 insertions(+), 6 deletions(-) create mode 100644 translations/plantumlqeditor_zh_CN.ts diff --git a/.gitignore b/.gitignore index 79f28cf..9038fde 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.user *-build-* *.qm +build *.o *.cpp *.h diff --git a/assistantxmlreader.cpp b/assistantxmlreader.cpp index 12630be..19c014d 100644 --- a/assistantxmlreader.cpp +++ b/assistantxmlreader.cpp @@ -192,7 +192,7 @@ void AssistantXmlReader::readAssistantElement() } if (m_reader.isStartElement()) { - if (m_reader.name() == "item") { + if (m_reader.name() == QString("item")) { readAssistantItemElement(assistant); } else { skipUnknownElement(); @@ -217,7 +217,7 @@ void AssistantXmlReader::readAssistantItemElement(Assistant *assistant) } if (m_reader.isStartElement()) { - if (m_reader.name() == "notes") { + if (m_reader.name() == QString("notes")) { QString tmp = removeWhiteSpace(readAssistantItemNotes()); if (!tmp.isEmpty()) { notes << tmp; diff --git a/mainwindow.cpp b/mainwindow.cpp index 144616b..9ea2ffd 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -507,12 +507,17 @@ void MainWindow::onAssistantItemInsert(QWidget *widget) void MainWindow::onNextAssistant() { - m_assistantToolBox->setCurrentIndex((m_assistantToolBox->currentIndex() + 1) % m_assistantToolBox->count()); + const int count = m_assistantToolBox->count(); + if (count <= 0) + return; + m_assistantToolBox->setCurrentIndex((m_assistantToolBox->currentIndex() + 1) % count); } void MainWindow::onPrevAssistant() { const int count = m_assistantToolBox->count(); + if (count <= 0) + return; m_assistantToolBox->setCurrentIndex((count + m_assistantToolBox->currentIndex() - 1) % count); } diff --git a/plantumlqeditor.pro b/plantumlqeditor.pro index 4e95879..874e4ee 100644 --- a/plantumlqeditor.pro +++ b/plantumlqeditor.pro @@ -36,7 +36,9 @@ FORMS += \ preferencesdialog.ui \ logdialog.ui -TRANSLATIONS += translations/plantumlqeditor_ru.ts +TRANSLATIONS += \ + translations/plantumlqeditor_ru.ts \ + translations/plantumlqeditor_zh_CN.ts OTHER_FILES += \ assistant.svg \ diff --git a/textedit.cpp b/textedit.cpp index 7f92012..fffa114 100644 --- a/textedit.cpp +++ b/textedit.cpp @@ -103,7 +103,7 @@ int TextEdit::lineNumberAreaWidth() ++digits; } - int space = 3 + fontMetrics().width(QLatin1Char('9')) * digits; + int space = 3 + fontMetrics().horizontalAdvance(QLatin1Char('9')) * digits; return space; } @@ -216,7 +216,7 @@ void TextEdit::paintEvent(QPaintEvent *e) { // Update tab stops QString indentLine = QString().leftJustified(_indentSize, QChar(' ')); - setTabStopWidth(fontMetrics().width(indentLine)); + setTabStopDistance(fontMetrics().horizontalAdvance(indentLine)); QPlainTextEdit::paintEvent(e); } diff --git a/translations/plantumlqeditor_zh_CN.ts b/translations/plantumlqeditor_zh_CN.ts new file mode 100644 index 0000000..eb2b6f3 --- /dev/null +++ b/translations/plantumlqeditor_zh_CN.ts @@ -0,0 +1,562 @@ + + + + + LogDialog + + + Check results + 检查结果 + + + + MainWindow + + + Export to %1 + 导出到:%1 + + + + Export to: %1 + 导出到:%1 + + + + Auto-refresh + 自动刷新 + + + + Cache: %1 + 缓存:%1 + + + + Untitled + 未命名 + + + + About %1 + 关于%1 + + + + The <i>%1</i> allows simple edit and preview of UML diagrams generated with <i>%2</i>.<br><br>%2, %3 and %4 must be installed before using the editor.<br><br>Copyright (c) 2012-2017 - Ioan Călin Borcoman + <i>%1</i>允许对<i>%2</i>生成的UML diagrams进行简易编辑和预览。<br><br>%2,%3和%4必须在使用编辑器前安装好。<br><br>Copyright (c) 2012-2017 - Ioan Călin Borcoman + + + + Cache hit: %1 + 缓存命中:%1 + + + + Java and/or PlantUML not found. Please set them correctly in the "Preferences" dialog! + Java和/或PlantUML未找到。请在Preferences窗口中正确设置! + + + + Refreshing... + 刷新中... + + + + NO CACHE + 没有缓存 + + + + Refreshed + 已刷新 + + + + + Code: + 代码: + + + + Notes:<br>%1<br>Code: + + + + + The document has been modified. +Do you want to save your changes? + 文件已被修改。 +是否保存您的更改? + + + + Select a file to open + 选择打开文件 + + + + Select where to store the document + 选择文件存储位置 + + + + Document save in %1 + 文件保存在%1 + + + + Select where to export the image + 选择image导出位置 + + + + Image exported in %1 + Image导入到%1 + + + + &New + &新建 + + + + &Open + &打开 + + + + &Save + &保存 + + + + Save As... + 保存为... + + + + Export as ... + 导出为... + + + + &Quit + &退出 + + + + Quit the application + 退出应用 + + + + &Undo + &撤销 + + + + &Redo + &重做 + + + + &Copy Image + &复制Image + + + + PNG + PNG + + + + Tell PlantUML to produce PNG output + 告诉PlantUML生成PNG输出 + + + + SVG + SVG + + + + Tell PlantUML to produce SVG output + 告诉PlantUML生成SVG输出 + + + + Refresh + 刷新 + + + + Call PlantUML to regenerate the UML image + 让PlantUML生成UML图像 + + + + Auto-Refresh + 自动刷新 + + + + Auto-Save image + 自动保存image + + + + Show toolbar + 显示工具栏 + + + + Show statusbar + 显示状态栏 + + + + Preferences + 偏好设置 + + + + &About + &关于 + + + + Show the application's About box + 显示应用的“关于”窗口 + + + + About &Qt + 关于&Qt + + + + Show the Qt library's About box + 显示Qt库的“关于”窗口 + + + + Zoom In + 放大 + + + + Zoom Out + 缩小 + + + + 1:1 + 1:1 + + + + &File + &文件 + + + + Recent Documents + 最近文件 + + + + &Edit + &编辑 + + + + &Settings + &设置 + + + + &Zoom + &缩放 + + + + &Help + &帮助 + + + + MainToolbar + 主工具栏 + + + + ZoomToolbar + 缩放工具栏 + + + + Ready + 准备就绪 + + + + Text Editor + 文本编辑 + + + + Show or hide the document editor dock + 显示或隐藏文件编辑窗口 + + + + Assistant + 助理 + + + + Show or hide the assistant dock + 显示或隐藏助理窗口 + + + + Assistant Info + 助理信息 + + + + Show or hide the assistant info dock + 显示或隐藏助理信息窗口 + + + + PreferencesDialog + + + Preferences + 偏好设置 + + + + General + 通用 + + + + Java executable + Java可执行程序 + + + + + + + Default + 默认 + + + + + + + Custom + 自定义 + + + + + + + + ... + + + + + PlantUML jar + PlantUML jar包 + + + + Graphiz / Dot + Graphiz / Dot可执行文件 + + + + Assistant XML: + 助理XML: + + + + Cache + 缓存 + + + + Image Cache + 图像缓存 + + + + Max size: + 最大值: + + + + Current size: + 现在大小: + + + + Clear cache + 清理缓存 + + + + Editor + 编辑器 + + + + Font + 字体 + + + + Indention + 缩进 + + + + Autoindent + 自动缩进 + + + + Use Space instead Tab + 用空格替代Tab + + + + Indent size: + 缩进大小: + + + + Refresh + 刷新 + + + + Auto-refresh interval: + 自动刷新间隔: + + + + Refresh on save + 保存时刷新 + + + + Check external programs + 检查外部程序 + + + + + + + + Default (%1) + 默认(%1) + + + + Select Java executable + 选择Java可执行程序 + + + + Select PlantUML jar + 选择PlantUML jar包 + + + + Select Assistant XML file + 选择助理XML文件 + + + + XML (*.xml);;All Files (*.*) + + + + + Select Dot (from Graphiz) executable + 选择Dot(来自Graphiz)可执行程序 + + + + Select new cache location + 选择新的缓存位置 + + + + Testing Java executable <tt>%1</tt>: + 测试Java可执行程序 <tt>%1</tt>: + + + + Testing graphiz/dot <tt>%1</tt>: + 检查graphiz/dot <tt>%1</tt>: + + + + Testing PlantUML jar <tt>%1</tt>: + 测试PlantUML jar包 <tt>%1</tt>: + + + + <b>OK</b> + + + + + <font color="red">FAILED + <font color="红色">FAILED + + + + QObject + + + Not an assistants XML file + 没有助理XML文件 + + + + %1 already running. Requested instance to open: %2. Now exitting... + %1正在运行。需要另一个实例打开:%2。正在退出... + + + + %1 Mb + + + + + RecentDocuments + + + Clear + 清理 + + + + + %1. %2 + + + + From b38b32f0ac322991f48a014214ff5fdac13e23a6 Mon Sep 17 00:00:00 2001 From: Encolpe DEGOUTE Date: Thu, 20 Feb 2025 11:38:33 +0100 Subject: [PATCH 9/9] update compilation doc --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 695f0cc..3c5bffd 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,13 @@ If you want to save a specific image, export it via the File menu or using the C The editor also supports an assistant that allows easy insertion of code snippets into the editor. The assistant is defined by a simple XML and a bunch of icons, one for each snippet. ![main window](docs/mainwindow.png?raw=true "Main Window") + + +Ubuntu installation + + +``` +sudo apt install cmake libqt5svg5-dev +./generate_icons.py +cmake --build . +```