diff --git a/.gitignore b/.gitignore
index 64c22dd..9038fde 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,10 @@
*.user
*-build-*
*.qm
+build
+*.o
+*.cpp
+*.h
+.qmake.stash
+plantumlqeditor
+Makefile
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.

+
+
+Ubuntu installation
+
+
+```
+sudo apt install cmake libqt5svg5-dev
+./generate_icons.py
+cmake --build .
+```
diff --git a/assistant.xml b/assistant.xml
index cb1bfa9..71370d1 100644
--- a/assistant.xml
+++ b/assistant.xml
@@ -1,728 +1,2519 @@
-
-
- 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
+ ]]>
+
-
-
+ ]]>
+
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/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:
diff --git a/icons/Activity Diagram - Arrows.svg b/icons/Activity Diagram - Arrows.svg
new file mode 100644
index 0000000..6e22635
--- /dev/null
+++ b/icons/Activity Diagram - Arrows.svg
@@ -0,0 +1,30 @@
+
\ 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..ea62b4e
--- /dev/null
+++ b/icons/Activity Diagram - Colors.svg
@@ -0,0 +1,20 @@
+
\ 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..160819e
--- /dev/null
+++ b/icons/Activity Diagram - Complete example.svg
@@ -0,0 +1,48 @@
+
\ 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..1bc5ade
--- /dev/null
+++ b/icons/Activity Diagram - Conditional 1.svg
@@ -0,0 +1,25 @@
+
\ 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..0819b70
--- /dev/null
+++ b/icons/Activity Diagram - Conditional 2.svg
@@ -0,0 +1,29 @@
+
\ 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..e2edc10
--- /dev/null
+++ b/icons/Activity Diagram - Detach.svg
@@ -0,0 +1,31 @@
+
\ 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..f5cb93a
--- /dev/null
+++ b/icons/Activity Diagram - Formatted Swimlanes.svg
@@ -0,0 +1,23 @@
+
\ 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..81d2282
--- /dev/null
+++ b/icons/Activity Diagram - Grouping.svg
@@ -0,0 +1,26 @@
+
\ 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..ebd37a5
--- /dev/null
+++ b/icons/Activity Diagram - Notes.svg
@@ -0,0 +1,27 @@
+
\ 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..09f62e5
--- /dev/null
+++ b/icons/Activity Diagram - Parallel processing.svg
@@ -0,0 +1,27 @@
+
\ 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..576fec4
--- /dev/null
+++ b/icons/Activity Diagram - Repeat loop.svg
@@ -0,0 +1,23 @@
+
\ 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..a1d670c
--- /dev/null
+++ b/icons/Activity Diagram - SDL.svg
@@ -0,0 +1,37 @@
+
\ 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..438420d
--- /dev/null
+++ b/icons/Activity Diagram - Simple Activity.svg
@@ -0,0 +1,18 @@
+
\ 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..e9c338c
--- /dev/null
+++ b/icons/Activity Diagram - Start Stop.svg
@@ -0,0 +1,20 @@
+
\ 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..923b256
--- /dev/null
+++ b/icons/Activity Diagram - Swimlanes.svg
@@ -0,0 +1,26 @@
+
\ 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..b886ab7
--- /dev/null
+++ b/icons/Activity Diagram - Title and Legend.svg
@@ -0,0 +1,35 @@
+
\ 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..45da424
--- /dev/null
+++ b/icons/Activity Diagram - While loop 1.svg
@@ -0,0 +1,23 @@
+
\ 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..328d109
--- /dev/null
+++ b/icons/Activity Diagram - While loop 2.svg
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/icons/Class Diagrams - Abstract and static.svg b/icons/Class Diagrams - Abstract and static.svg
index 79b9dad..9a39800 100644
--- a/icons/Class Diagrams - Abstract and static.svg
+++ b/icons/Class Diagrams - Abstract and static.svg
@@ -1 +1,19 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 0000000..6cc36cf
Binary files /dev/null and b/icons/Ditaa (PNG only) - Castle.png differ
diff --git a/icons/Ditaa (PNG only) - Color codes.png b/icons/Ditaa (PNG only) - Color codes.png
new file mode 100644
index 0000000..d52c6e4
Binary files /dev/null and b/icons/Ditaa (PNG only) - Color codes.png differ
diff --git a/icons/Ditaa (PNG only) - Color.png b/icons/Ditaa (PNG only) - Color.png
new file mode 100644
index 0000000..e69de29
diff --git a/icons/Ditaa (PNG only) - Complex Example 1.png b/icons/Ditaa (PNG only) - Complex Example 1.png
new file mode 100644
index 0000000..85c30fd
Binary files /dev/null and b/icons/Ditaa (PNG only) - Complex Example 1.png differ
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 0000000..fcaad80
Binary files /dev/null and b/icons/Ditaa (PNG only) - Complex Example 2.png differ
diff --git a/icons/Ditaa (PNG only) - Dashed lines.png b/icons/Ditaa (PNG only) - Dashed lines.png
new file mode 100644
index 0000000..3ef9f7b
Binary files /dev/null and b/icons/Ditaa (PNG only) - Dashed lines.png differ
diff --git a/icons/Ditaa (PNG only) - Example 1.png b/icons/Ditaa (PNG only) - Example 1.png
new file mode 100644
index 0000000..0542bac
Binary files /dev/null and b/icons/Ditaa (PNG only) - Example 1.png differ
diff --git a/icons/Ditaa (PNG only) - Example 2.png b/icons/Ditaa (PNG only) - Example 2.png
new file mode 100644
index 0000000..f4a7bc0
Binary files /dev/null and b/icons/Ditaa (PNG only) - Example 2.png differ
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 0000000..94835eb
Binary files /dev/null and b/icons/Ditaa (PNG only) - Example with options.png differ
diff --git a/icons/Ditaa (PNG only) - Point markers.png b/icons/Ditaa (PNG only) - Point markers.png
new file mode 100644
index 0000000..1cb00c2
Binary files /dev/null and b/icons/Ditaa (PNG only) - Point markers.png differ
diff --git a/icons/Ditaa (PNG only) - Process.png b/icons/Ditaa (PNG only) - Process.png
new file mode 100644
index 0000000..59e98a8
Binary files /dev/null and b/icons/Ditaa (PNG only) - Process.png differ
diff --git a/icons/Ditaa (PNG only) - Round corners.png b/icons/Ditaa (PNG only) - Round corners.png
new file mode 100644
index 0000000..7228a7c
Binary files /dev/null and b/icons/Ditaa (PNG only) - Round corners.png differ
diff --git a/icons/Ditaa (PNG only) - Tags.png b/icons/Ditaa (PNG only) - Tags.png
new file mode 100644
index 0000000..8050bf9
Binary files /dev/null and b/icons/Ditaa (PNG only) - Tags.png differ
diff --git a/icons/Ditaa (PNG only) - Text handling.png b/icons/Ditaa (PNG only) - Text handling.png
new file mode 100644
index 0000000..e69de29
diff --git a/icons/Graphical Interface - Adding Tabs 2.svg b/icons/Graphical Interface - Adding Tabs 2.svg
new file mode 100644
index 0000000..2c0f4e6
--- /dev/null
+++ b/icons/Graphical Interface - Adding Tabs 2.svg
@@ -0,0 +1 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
+
+
+
+
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 @@
+
+
+
+
+
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 @@
+
+
+
+
+
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 @@
+
+
+
+
+
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 @@
+
+
+
+
+
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 @@
+
+
+
+
+
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 @@
+
+
+
+
+
diff --git a/icons/JCCKit (PNG only) - Example 1.png b/icons/JCCKit (PNG only) - Example 1.png
new file mode 100644
index 0000000..4b647c1
Binary files /dev/null and b/icons/JCCKit (PNG only) - Example 1.png differ
diff --git a/icons/JCCKit (PNG only) - Example 2.png b/icons/JCCKit (PNG only) - Example 2.png
new file mode 100644
index 0000000..50c2f01
Binary files /dev/null and b/icons/JCCKit (PNG only) - Example 2.png differ
diff --git a/icons/JCCKit (PNG only) - Example 3.png b/icons/JCCKit (PNG only) - Example 3.png
new file mode 100644
index 0000000..2a5cbd5
Binary files /dev/null and b/icons/JCCKit (PNG only) - Example 3.png differ
diff --git a/icons/JCCKit (PNG only) - Example 4.png b/icons/JCCKit (PNG only) - Example 4.png
new file mode 100644
index 0000000..ed46754
Binary files /dev/null and b/icons/JCCKit (PNG only) - Example 4.png differ
diff --git a/icons/JCCKit (PNG only) - Example 5.png b/icons/JCCKit (PNG only) - Example 5.png
new file mode 100644
index 0000000..9e9688b
Binary files /dev/null and b/icons/JCCKit (PNG only) - Example 5.png differ
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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ 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 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 7500a17..9ea2ffd 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;
@@ -497,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);
}
@@ -642,6 +657,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 +916,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 +993,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 +1026,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;
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
+
+
+
+