diff --git a/piqt_utils/piconnedit/CMakeLists.txt b/piqt_utils/piconnedit/CMakeLists.txt
new file mode 100644
index 0000000..459935c
--- /dev/null
+++ b/piqt_utils/piconnedit/CMakeLists.txt
@@ -0,0 +1,21 @@
+qt_project(piconnedit PICONNEDIT_H PICONNEDIT_CPP)
+add_executable(${PROJECT_NAME} WIN32 ${PICONNEDIT_H} ${PICONNEDIT_CPP})
+set(LIBS ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QAD_UTILS_LIBRARY} ${QAD_WIDGETS_LIBRARY} piqt_utils)
+target_link_libraries(${PROJECT_NAME} ${LIBS})
+message(STATUS "Building ${PROJECT_NAME}")
+if(LIB)
+ if(WIN32)
+ install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
+ else()
+ if(APPLE)
+ install(TARGETS ${PROJECT_NAME} DESTINATION /usr/local/bin)
+ else()
+ install(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin)
+ endif()
+ endif()
+ message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
+else()
+ install(TARGETS ${PROJECT_NAME} DESTINATION bin)
+ message(STATUS "Install to local \"bin\"")
+endif()
+
diff --git a/piqt_utils/piconnedit/icons/Apps-accessories-calculator-icon.png b/piqt_utils/piconnedit/icons/Apps-accessories-calculator-icon.png
new file mode 100644
index 0000000..37a3035
Binary files /dev/null and b/piqt_utils/piconnedit/icons/Apps-accessories-calculator-icon.png differ
diff --git a/piqt_utils/piconnedit/icons/DALI-designer.png b/piqt_utils/piconnedit/icons/DALI-designer.png
new file mode 100644
index 0000000..23b1946
Binary files /dev/null and b/piqt_utils/piconnedit/icons/DALI-designer.png differ
diff --git a/piqt_utils/piconnedit/icons/alpha.png b/piqt_utils/piconnedit/icons/alpha.png
new file mode 100644
index 0000000..5435669
Binary files /dev/null and b/piqt_utils/piconnedit/icons/alpha.png differ
diff --git a/piqt_utils/piconnedit/icons/application-exit.png b/piqt_utils/piconnedit/icons/application-exit.png
new file mode 100644
index 0000000..ed5f8b2
Binary files /dev/null and b/piqt_utils/piconnedit/icons/application-exit.png differ
diff --git a/piqt_utils/piconnedit/icons/applications-engineering.png b/piqt_utils/piconnedit/icons/applications-engineering.png
new file mode 100644
index 0000000..4721d8d
Binary files /dev/null and b/piqt_utils/piconnedit/icons/applications-engineering.png differ
diff --git a/piqt_utils/piconnedit/icons/archive-extract.png b/piqt_utils/piconnedit/icons/archive-extract.png
new file mode 100644
index 0000000..aa7b1fa
Binary files /dev/null and b/piqt_utils/piconnedit/icons/archive-extract.png differ
diff --git a/piqt_utils/piconnedit/icons/archive-insert-directory.png b/piqt_utils/piconnedit/icons/archive-insert-directory.png
new file mode 100644
index 0000000..0672205
Binary files /dev/null and b/piqt_utils/piconnedit/icons/archive-insert-directory.png differ
diff --git a/piqt_utils/piconnedit/icons/archive-insert.png b/piqt_utils/piconnedit/icons/archive-insert.png
new file mode 100644
index 0000000..193c25c
Binary files /dev/null and b/piqt_utils/piconnedit/icons/archive-insert.png differ
diff --git a/piqt_utils/piconnedit/icons/arrow-down.png b/piqt_utils/piconnedit/icons/arrow-down.png
new file mode 100644
index 0000000..03f2014
Binary files /dev/null and b/piqt_utils/piconnedit/icons/arrow-down.png differ
diff --git a/piqt_utils/piconnedit/icons/arrow-up.png b/piqt_utils/piconnedit/icons/arrow-up.png
new file mode 100644
index 0000000..5e42321
Binary files /dev/null and b/piqt_utils/piconnedit/icons/arrow-up.png differ
diff --git a/piqt_utils/piconnedit/icons/axis_x.png b/piqt_utils/piconnedit/icons/axis_x.png
new file mode 100644
index 0000000..321899c
Binary files /dev/null and b/piqt_utils/piconnedit/icons/axis_x.png differ
diff --git a/piqt_utils/piconnedit/icons/axis_y.png b/piqt_utils/piconnedit/icons/axis_y.png
new file mode 100644
index 0000000..7d4d9ec
Binary files /dev/null and b/piqt_utils/piconnedit/icons/axis_y.png differ
diff --git a/piqt_utils/piconnedit/icons/case-sensitive.png b/piqt_utils/piconnedit/icons/case-sensitive.png
new file mode 100644
index 0000000..39c5c5a
Binary files /dev/null and b/piqt_utils/piconnedit/icons/case-sensitive.png differ
diff --git a/piqt_utils/piconnedit/icons/checkbox-unchecked.png b/piqt_utils/piconnedit/icons/checkbox-unchecked.png
new file mode 100644
index 0000000..01a7307
Binary files /dev/null and b/piqt_utils/piconnedit/icons/checkbox-unchecked.png differ
diff --git a/piqt_utils/piconnedit/icons/checkbox.png b/piqt_utils/piconnedit/icons/checkbox.png
new file mode 100644
index 0000000..1c311e2
Binary files /dev/null and b/piqt_utils/piconnedit/icons/checkbox.png differ
diff --git a/piqt_utils/piconnedit/icons/clients.png b/piqt_utils/piconnedit/icons/clients.png
new file mode 100644
index 0000000..0ae949a
Binary files /dev/null and b/piqt_utils/piconnedit/icons/clients.png differ
diff --git a/piqt_utils/piconnedit/icons/close.png b/piqt_utils/piconnedit/icons/close.png
new file mode 100644
index 0000000..5492295
Binary files /dev/null and b/piqt_utils/piconnedit/icons/close.png differ
diff --git a/piqt_utils/piconnedit/icons/code-error.png b/piqt_utils/piconnedit/icons/code-error.png
new file mode 100644
index 0000000..5b4c488
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-error.png differ
diff --git a/piqt_utils/piconnedit/icons/code-function.png b/piqt_utils/piconnedit/icons/code-function.png
new file mode 100644
index 0000000..e5cea37
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-function.png differ
diff --git a/piqt_utils/piconnedit/icons/code-keyword.png b/piqt_utils/piconnedit/icons/code-keyword.png
new file mode 100644
index 0000000..70dc5ef
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-keyword.png differ
diff --git a/piqt_utils/piconnedit/icons/code-parents.png b/piqt_utils/piconnedit/icons/code-parents.png
new file mode 100644
index 0000000..7c14d40
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-parents.png differ
diff --git a/piqt_utils/piconnedit/icons/code-property.png b/piqt_utils/piconnedit/icons/code-property.png
new file mode 100644
index 0000000..d2af8a6
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-property.png differ
diff --git a/piqt_utils/piconnedit/icons/code-signal.png b/piqt_utils/piconnedit/icons/code-signal.png
new file mode 100644
index 0000000..3415e62
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-signal.png differ
diff --git a/piqt_utils/piconnedit/icons/code-struct.png b/piqt_utils/piconnedit/icons/code-struct.png
new file mode 100644
index 0000000..61544a8
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-struct.png differ
diff --git a/piqt_utils/piconnedit/icons/code-union.png b/piqt_utils/piconnedit/icons/code-union.png
new file mode 100644
index 0000000..2f4567a
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-union.png differ
diff --git a/piqt_utils/piconnedit/icons/code-variable.png b/piqt_utils/piconnedit/icons/code-variable.png
new file mode 100644
index 0000000..d0ec29e
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-variable.png differ
diff --git a/piqt_utils/piconnedit/icons/code-word.png b/piqt_utils/piconnedit/icons/code-word.png
new file mode 100644
index 0000000..e61f08f
Binary files /dev/null and b/piqt_utils/piconnedit/icons/code-word.png differ
diff --git a/piqt_utils/piconnedit/icons/configure-.png b/piqt_utils/piconnedit/icons/configure-.png
new file mode 100644
index 0000000..541c14e
Binary files /dev/null and b/piqt_utils/piconnedit/icons/configure-.png differ
diff --git a/piqt_utils/piconnedit/icons/configure.png b/piqt_utils/piconnedit/icons/configure.png
new file mode 100644
index 0000000..5ce478b
Binary files /dev/null and b/piqt_utils/piconnedit/icons/configure.png differ
diff --git a/piqt_utils/piconnedit/icons/database.png b/piqt_utils/piconnedit/icons/database.png
new file mode 100644
index 0000000..3041814
Binary files /dev/null and b/piqt_utils/piconnedit/icons/database.png differ
diff --git a/piqt_utils/piconnedit/icons/debug-run.png b/piqt_utils/piconnedit/icons/debug-run.png
new file mode 100644
index 0000000..9bebb44
Binary files /dev/null and b/piqt_utils/piconnedit/icons/debug-run.png differ
diff --git a/piqt_utils/piconnedit/icons/designer-qt4.png b/piqt_utils/piconnedit/icons/designer-qt4.png
new file mode 100644
index 0000000..8f699be
Binary files /dev/null and b/piqt_utils/piconnedit/icons/designer-qt4.png differ
diff --git a/piqt_utils/piconnedit/icons/dialog-close.png b/piqt_utils/piconnedit/icons/dialog-close.png
new file mode 100644
index 0000000..2c2f99e
Binary files /dev/null and b/piqt_utils/piconnedit/icons/dialog-close.png differ
diff --git a/piqt_utils/piconnedit/icons/dialog-ok-apply.png b/piqt_utils/piconnedit/icons/dialog-ok-apply.png
new file mode 100644
index 0000000..f5feac0
Binary files /dev/null and b/piqt_utils/piconnedit/icons/dialog-ok-apply.png differ
diff --git a/piqt_utils/piconnedit/icons/dialog-warning.png b/piqt_utils/piconnedit/icons/dialog-warning.png
new file mode 100644
index 0000000..80bd694
Binary files /dev/null and b/piqt_utils/piconnedit/icons/dialog-warning.png differ
diff --git a/piqt_utils/piconnedit/icons/disabled.png b/piqt_utils/piconnedit/icons/disabled.png
new file mode 100644
index 0000000..f20b8e0
Binary files /dev/null and b/piqt_utils/piconnedit/icons/disabled.png differ
diff --git a/piqt_utils/piconnedit/icons/distribute-horizontal-margin.png b/piqt_utils/piconnedit/icons/distribute-horizontal-margin.png
new file mode 100644
index 0000000..3289190
Binary files /dev/null and b/piqt_utils/piconnedit/icons/distribute-horizontal-margin.png differ
diff --git a/piqt_utils/piconnedit/icons/document-edit.png b/piqt_utils/piconnedit/icons/document-edit.png
new file mode 100644
index 0000000..84e345d
Binary files /dev/null and b/piqt_utils/piconnedit/icons/document-edit.png differ
diff --git a/piqt_utils/piconnedit/icons/document-new.png b/piqt_utils/piconnedit/icons/document-new.png
new file mode 100644
index 0000000..3092571
Binary files /dev/null and b/piqt_utils/piconnedit/icons/document-new.png differ
diff --git a/piqt_utils/piconnedit/icons/document-open.png b/piqt_utils/piconnedit/icons/document-open.png
new file mode 100644
index 0000000..8ba5441
Binary files /dev/null and b/piqt_utils/piconnedit/icons/document-open.png differ
diff --git a/piqt_utils/piconnedit/icons/document-print.png b/piqt_utils/piconnedit/icons/document-print.png
new file mode 100644
index 0000000..8eb1c67
Binary files /dev/null and b/piqt_utils/piconnedit/icons/document-print.png differ
diff --git a/piqt_utils/piconnedit/icons/document-save-.png b/piqt_utils/piconnedit/icons/document-save-.png
new file mode 100644
index 0000000..7fa489c
Binary files /dev/null and b/piqt_utils/piconnedit/icons/document-save-.png differ
diff --git a/piqt_utils/piconnedit/icons/document-save-all.png b/piqt_utils/piconnedit/icons/document-save-all.png
new file mode 100644
index 0000000..159857f
Binary files /dev/null and b/piqt_utils/piconnedit/icons/document-save-all.png differ
diff --git a/piqt_utils/piconnedit/icons/document-save-as.png b/piqt_utils/piconnedit/icons/document-save-as.png
new file mode 100644
index 0000000..9695a56
Binary files /dev/null and b/piqt_utils/piconnedit/icons/document-save-as.png differ
diff --git a/piqt_utils/piconnedit/icons/document-save.png b/piqt_utils/piconnedit/icons/document-save.png
new file mode 100644
index 0000000..8072aea
Binary files /dev/null and b/piqt_utils/piconnedit/icons/document-save.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-clear-.png b/piqt_utils/piconnedit/icons/edit-clear-.png
new file mode 100644
index 0000000..cee7af6
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-clear-.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-clear-locationbar-rtl.png b/piqt_utils/piconnedit/icons/edit-clear-locationbar-rtl.png
new file mode 100644
index 0000000..6c4b83b
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-clear-locationbar-rtl.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-clear.png b/piqt_utils/piconnedit/icons/edit-clear.png
new file mode 100644
index 0000000..631ed44
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-clear.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-copy.png b/piqt_utils/piconnedit/icons/edit-copy.png
new file mode 100644
index 0000000..477e83a
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-copy.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-cut.png b/piqt_utils/piconnedit/icons/edit-cut.png
new file mode 100644
index 0000000..0732328
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-cut.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-delete.png b/piqt_utils/piconnedit/icons/edit-delete.png
new file mode 100644
index 0000000..cc6d2af
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-delete.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-find-.png b/piqt_utils/piconnedit/icons/edit-find-.png
new file mode 100644
index 0000000..64a1e28
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-find-.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-find.png b/piqt_utils/piconnedit/icons/edit-find.png
new file mode 100644
index 0000000..9a462c0
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-find.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-guides.png b/piqt_utils/piconnedit/icons/edit-guides.png
new file mode 100644
index 0000000..d264839
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-guides.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-paste.png b/piqt_utils/piconnedit/icons/edit-paste.png
new file mode 100644
index 0000000..6788b02
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-paste.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-redo.png b/piqt_utils/piconnedit/icons/edit-redo.png
new file mode 100644
index 0000000..8de333f
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-redo.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-table-insert-row-below.png b/piqt_utils/piconnedit/icons/edit-table-insert-row-below.png
new file mode 100644
index 0000000..a194a68
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-table-insert-row-below.png differ
diff --git a/piqt_utils/piconnedit/icons/edit-undo.png b/piqt_utils/piconnedit/icons/edit-undo.png
new file mode 100644
index 0000000..5071aa1
Binary files /dev/null and b/piqt_utils/piconnedit/icons/edit-undo.png differ
diff --git a/piqt_utils/piconnedit/icons/employees.png b/piqt_utils/piconnedit/icons/employees.png
new file mode 100644
index 0000000..7ae7383
Binary files /dev/null and b/piqt_utils/piconnedit/icons/employees.png differ
diff --git a/piqt_utils/piconnedit/icons/expand_s_x.png b/piqt_utils/piconnedit/icons/expand_s_x.png
new file mode 100644
index 0000000..b66cb40
Binary files /dev/null and b/piqt_utils/piconnedit/icons/expand_s_x.png differ
diff --git a/piqt_utils/piconnedit/icons/expand_s_y.png b/piqt_utils/piconnedit/icons/expand_s_y.png
new file mode 100644
index 0000000..c2e8f78
Binary files /dev/null and b/piqt_utils/piconnedit/icons/expand_s_y.png differ
diff --git a/piqt_utils/piconnedit/icons/expand_x.png b/piqt_utils/piconnedit/icons/expand_x.png
new file mode 100644
index 0000000..217e3ea
Binary files /dev/null and b/piqt_utils/piconnedit/icons/expand_x.png differ
diff --git a/piqt_utils/piconnedit/icons/expand_y.png b/piqt_utils/piconnedit/icons/expand_y.png
new file mode 100644
index 0000000..fedf936
Binary files /dev/null and b/piqt_utils/piconnedit/icons/expand_y.png differ
diff --git a/piqt_utils/piconnedit/icons/format-text-subscript.png b/piqt_utils/piconnedit/icons/format-text-subscript.png
new file mode 100644
index 0000000..206b147
Binary files /dev/null and b/piqt_utils/piconnedit/icons/format-text-subscript.png differ
diff --git a/piqt_utils/piconnedit/icons/games-solve.png b/piqt_utils/piconnedit/icons/games-solve.png
new file mode 100644
index 0000000..47f11f7
Binary files /dev/null and b/piqt_utils/piconnedit/icons/games-solve.png differ
diff --git a/piqt_utils/piconnedit/icons/go-jump.png b/piqt_utils/piconnedit/icons/go-jump.png
new file mode 100644
index 0000000..2cd4627
Binary files /dev/null and b/piqt_utils/piconnedit/icons/go-jump.png differ
diff --git a/piqt_utils/piconnedit/icons/go-next.png b/piqt_utils/piconnedit/icons/go-next.png
new file mode 100644
index 0000000..aa7cbb9
Binary files /dev/null and b/piqt_utils/piconnedit/icons/go-next.png differ
diff --git a/piqt_utils/piconnedit/icons/go-previous.png b/piqt_utils/piconnedit/icons/go-previous.png
new file mode 100644
index 0000000..8230340
Binary files /dev/null and b/piqt_utils/piconnedit/icons/go-previous.png differ
diff --git a/piqt_utils/piconnedit/icons/graphics.png b/piqt_utils/piconnedit/icons/graphics.png
new file mode 100644
index 0000000..64abcb5
Binary files /dev/null and b/piqt_utils/piconnedit/icons/graphics.png differ
diff --git a/piqt_utils/piconnedit/icons/groups-edit.png b/piqt_utils/piconnedit/icons/groups-edit.png
new file mode 100644
index 0000000..278c4d6
Binary files /dev/null and b/piqt_utils/piconnedit/icons/groups-edit.png differ
diff --git a/piqt_utils/piconnedit/icons/item-add.png b/piqt_utils/piconnedit/icons/item-add.png
new file mode 100644
index 0000000..8a422c7
Binary files /dev/null and b/piqt_utils/piconnedit/icons/item-add.png differ
diff --git a/piqt_utils/piconnedit/icons/item.png b/piqt_utils/piconnedit/icons/item.png
new file mode 100644
index 0000000..50bfddb
Binary files /dev/null and b/piqt_utils/piconnedit/icons/item.png differ
diff --git a/piqt_utils/piconnedit/icons/lastmoves.png b/piqt_utils/piconnedit/icons/lastmoves.png
new file mode 100644
index 0000000..4454bca
Binary files /dev/null and b/piqt_utils/piconnedit/icons/lastmoves.png differ
diff --git a/piqt_utils/piconnedit/icons/led_3.png b/piqt_utils/piconnedit/icons/led_3.png
new file mode 100644
index 0000000..604c241
Binary files /dev/null and b/piqt_utils/piconnedit/icons/led_3.png differ
diff --git a/piqt_utils/piconnedit/icons/led_off.png b/piqt_utils/piconnedit/icons/led_off.png
new file mode 100644
index 0000000..fe60f36
Binary files /dev/null and b/piqt_utils/piconnedit/icons/led_off.png differ
diff --git a/piqt_utils/piconnedit/icons/led_on.png b/piqt_utils/piconnedit/icons/led_on.png
new file mode 100644
index 0000000..946ba73
Binary files /dev/null and b/piqt_utils/piconnedit/icons/led_on.png differ
diff --git a/piqt_utils/piconnedit/icons/light-+.png b/piqt_utils/piconnedit/icons/light-+.png
new file mode 100644
index 0000000..e7d8d80
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-+.png differ
diff --git a/piqt_utils/piconnedit/icons/light--.png b/piqt_utils/piconnedit/icons/light--.png
new file mode 100644
index 0000000..9a4942b
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light--.png differ
diff --git a/piqt_utils/piconnedit/icons/light-254.png b/piqt_utils/piconnedit/icons/light-254.png
new file mode 100644
index 0000000..ff6a171
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-254.png differ
diff --git a/piqt_utils/piconnedit/icons/light-disable-all.png b/piqt_utils/piconnedit/icons/light-disable-all.png
new file mode 100644
index 0000000..68ee45c
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-disable-all.png differ
diff --git a/piqt_utils/piconnedit/icons/light-disable.png b/piqt_utils/piconnedit/icons/light-disable.png
new file mode 100644
index 0000000..4755fd8
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-disable.png differ
diff --git a/piqt_utils/piconnedit/icons/light-down.png b/piqt_utils/piconnedit/icons/light-down.png
new file mode 100644
index 0000000..52a577a
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-down.png differ
diff --git a/piqt_utils/piconnedit/icons/light-edit.png b/piqt_utils/piconnedit/icons/light-edit.png
new file mode 100644
index 0000000..581a696
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-edit.png differ
diff --git a/piqt_utils/piconnedit/icons/light-max.png b/piqt_utils/piconnedit/icons/light-max.png
new file mode 100644
index 0000000..692ce16
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-max.png differ
diff --git a/piqt_utils/piconnedit/icons/light-min.png b/piqt_utils/piconnedit/icons/light-min.png
new file mode 100644
index 0000000..42e76b6
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-min.png differ
diff --git a/piqt_utils/piconnedit/icons/light-off.png b/piqt_utils/piconnedit/icons/light-off.png
new file mode 100644
index 0000000..3763a5d
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-off.png differ
diff --git a/piqt_utils/piconnedit/icons/light-on.png b/piqt_utils/piconnedit/icons/light-on.png
new file mode 100644
index 0000000..8db6a2d
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-on.png differ
diff --git a/piqt_utils/piconnedit/icons/light-step-down.png b/piqt_utils/piconnedit/icons/light-step-down.png
new file mode 100644
index 0000000..64b405d
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-step-down.png differ
diff --git a/piqt_utils/piconnedit/icons/light-step-up.png b/piqt_utils/piconnedit/icons/light-step-up.png
new file mode 100644
index 0000000..4aaf795
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-step-up.png differ
diff --git a/piqt_utils/piconnedit/icons/light-up.png b/piqt_utils/piconnedit/icons/light-up.png
new file mode 100644
index 0000000..ddc5eec
Binary files /dev/null and b/piqt_utils/piconnedit/icons/light-up.png differ
diff --git a/piqt_utils/piconnedit/icons/lights.png b/piqt_utils/piconnedit/icons/lights.png
new file mode 100644
index 0000000..34d2541
Binary files /dev/null and b/piqt_utils/piconnedit/icons/lights.png differ
diff --git a/piqt_utils/piconnedit/icons/list-add.png b/piqt_utils/piconnedit/icons/list-add.png
new file mode 100644
index 0000000..5724694
Binary files /dev/null and b/piqt_utils/piconnedit/icons/list-add.png differ
diff --git a/piqt_utils/piconnedit/icons/list-remove.png b/piqt_utils/piconnedit/icons/list-remove.png
new file mode 100644
index 0000000..53506b0
Binary files /dev/null and b/piqt_utils/piconnedit/icons/list-remove.png differ
diff --git a/piqt_utils/piconnedit/icons/log_parser.png b/piqt_utils/piconnedit/icons/log_parser.png
new file mode 100644
index 0000000..cf0ca98
Binary files /dev/null and b/piqt_utils/piconnedit/icons/log_parser.png differ
diff --git a/piqt_utils/piconnedit/icons/mail.png b/piqt_utils/piconnedit/icons/mail.png
new file mode 100644
index 0000000..81adbf9
Binary files /dev/null and b/piqt_utils/piconnedit/icons/mail.png differ
diff --git a/piqt_utils/piconnedit/icons/media-flash.png b/piqt_utils/piconnedit/icons/media-flash.png
new file mode 100644
index 0000000..d91845b
Binary files /dev/null and b/piqt_utils/piconnedit/icons/media-flash.png differ
diff --git a/piqt_utils/piconnedit/icons/media-playback-pause.png b/piqt_utils/piconnedit/icons/media-playback-pause.png
new file mode 100644
index 0000000..d133bdc
Binary files /dev/null and b/piqt_utils/piconnedit/icons/media-playback-pause.png differ
diff --git a/piqt_utils/piconnedit/icons/media-playback-stop.png b/piqt_utils/piconnedit/icons/media-playback-stop.png
new file mode 100644
index 0000000..4ecbdf6
Binary files /dev/null and b/piqt_utils/piconnedit/icons/media-playback-stop.png differ
diff --git a/piqt_utils/piconnedit/icons/media-record.png b/piqt_utils/piconnedit/icons/media-record.png
new file mode 100644
index 0000000..73688e8
Binary files /dev/null and b/piqt_utils/piconnedit/icons/media-record.png differ
diff --git a/piqt_utils/piconnedit/icons/node-add.png b/piqt_utils/piconnedit/icons/node-add.png
new file mode 100644
index 0000000..80b5c61
Binary files /dev/null and b/piqt_utils/piconnedit/icons/node-add.png differ
diff --git a/piqt_utils/piconnedit/icons/node.png b/piqt_utils/piconnedit/icons/node.png
new file mode 100644
index 0000000..fc8194e
Binary files /dev/null and b/piqt_utils/piconnedit/icons/node.png differ
diff --git a/piqt_utils/piconnedit/icons/object-locked.png b/piqt_utils/piconnedit/icons/object-locked.png
new file mode 100644
index 0000000..38dff01
Binary files /dev/null and b/piqt_utils/piconnedit/icons/object-locked.png differ
diff --git a/piqt_utils/piconnedit/icons/piconnection.png b/piqt_utils/piconnedit/icons/piconnection.png
new file mode 100644
index 0000000..47d41d7
Binary files /dev/null and b/piqt_utils/piconnedit/icons/piconnection.png differ
diff --git a/piqt_utils/piconnedit/icons/piconnection.xcf b/piqt_utils/piconnedit/icons/piconnection.xcf
new file mode 100644
index 0000000..a5fdbee
Binary files /dev/null and b/piqt_utils/piconnedit/icons/piconnection.xcf differ
diff --git a/piqt_utils/piconnedit/icons/quickopen.png b/piqt_utils/piconnedit/icons/quickopen.png
new file mode 100644
index 0000000..60cb838
Binary files /dev/null and b/piqt_utils/piconnedit/icons/quickopen.png differ
diff --git a/piqt_utils/piconnedit/icons/run-build-install-root.png b/piqt_utils/piconnedit/icons/run-build-install-root.png
new file mode 100644
index 0000000..6c7a236
Binary files /dev/null and b/piqt_utils/piconnedit/icons/run-build-install-root.png differ
diff --git a/piqt_utils/piconnedit/icons/run-build.png b/piqt_utils/piconnedit/icons/run-build.png
new file mode 100644
index 0000000..85a12e8
Binary files /dev/null and b/piqt_utils/piconnedit/icons/run-build.png differ
diff --git a/piqt_utils/piconnedit/icons/scenes-edit.png b/piqt_utils/piconnedit/icons/scenes-edit.png
new file mode 100644
index 0000000..d60c0f6
Binary files /dev/null and b/piqt_utils/piconnedit/icons/scenes-edit.png differ
diff --git a/piqt_utils/piconnedit/icons/select-add.png b/piqt_utils/piconnedit/icons/select-add.png
new file mode 100644
index 0000000..084ab28
Binary files /dev/null and b/piqt_utils/piconnedit/icons/select-add.png differ
diff --git a/piqt_utils/piconnedit/icons/select-intersect.png b/piqt_utils/piconnedit/icons/select-intersect.png
new file mode 100644
index 0000000..e1b22cc
Binary files /dev/null and b/piqt_utils/piconnedit/icons/select-intersect.png differ
diff --git a/piqt_utils/piconnedit/icons/select-invert.png b/piqt_utils/piconnedit/icons/select-invert.png
new file mode 100644
index 0000000..1c82ab4
Binary files /dev/null and b/piqt_utils/piconnedit/icons/select-invert.png differ
diff --git a/piqt_utils/piconnedit/icons/select-none.png b/piqt_utils/piconnedit/icons/select-none.png
new file mode 100644
index 0000000..4f9bb5a
Binary files /dev/null and b/piqt_utils/piconnedit/icons/select-none.png differ
diff --git a/piqt_utils/piconnedit/icons/select-replace.png b/piqt_utils/piconnedit/icons/select-replace.png
new file mode 100644
index 0000000..80ccde4
Binary files /dev/null and b/piqt_utils/piconnedit/icons/select-replace.png differ
diff --git a/piqt_utils/piconnedit/icons/select-subtract.png b/piqt_utils/piconnedit/icons/select-subtract.png
new file mode 100644
index 0000000..26eccee
Binary files /dev/null and b/piqt_utils/piconnedit/icons/select-subtract.png differ
diff --git a/piqt_utils/piconnedit/icons/splash.png b/piqt_utils/piconnedit/icons/splash.png
new file mode 100644
index 0000000..38921fc
Binary files /dev/null and b/piqt_utils/piconnedit/icons/splash.png differ
diff --git a/piqt_utils/piconnedit/icons/status-off.png b/piqt_utils/piconnedit/icons/status-off.png
new file mode 100644
index 0000000..b89267f
Binary files /dev/null and b/piqt_utils/piconnedit/icons/status-off.png differ
diff --git a/piqt_utils/piconnedit/icons/status-on.png b/piqt_utils/piconnedit/icons/status-on.png
new file mode 100644
index 0000000..bb62ff6
Binary files /dev/null and b/piqt_utils/piconnedit/icons/status-on.png differ
diff --git a/piqt_utils/piconnedit/icons/status-warn.png b/piqt_utils/piconnedit/icons/status-warn.png
new file mode 100644
index 0000000..2afcc5e
Binary files /dev/null and b/piqt_utils/piconnedit/icons/status-warn.png differ
diff --git a/piqt_utils/piconnedit/icons/system-help.png b/piqt_utils/piconnedit/icons/system-help.png
new file mode 100644
index 0000000..86b6407
Binary files /dev/null and b/piqt_utils/piconnedit/icons/system-help.png differ
diff --git a/piqt_utils/piconnedit/icons/tool-light-add.png b/piqt_utils/piconnedit/icons/tool-light-add.png
new file mode 100644
index 0000000..a16d5fa
Binary files /dev/null and b/piqt_utils/piconnedit/icons/tool-light-add.png differ
diff --git a/piqt_utils/piconnedit/icons/tool-selection.png b/piqt_utils/piconnedit/icons/tool-selection.png
new file mode 100644
index 0000000..8ca8dbd
Binary files /dev/null and b/piqt_utils/piconnedit/icons/tool-selection.png differ
diff --git a/piqt_utils/piconnedit/icons/tools-wizard.png b/piqt_utils/piconnedit/icons/tools-wizard.png
new file mode 100644
index 0000000..f67fb4c
Binary files /dev/null and b/piqt_utils/piconnedit/icons/tools-wizard.png differ
diff --git a/piqt_utils/piconnedit/icons/transform-move.png b/piqt_utils/piconnedit/icons/transform-move.png
new file mode 100644
index 0000000..0bd8d04
Binary files /dev/null and b/piqt_utils/piconnedit/icons/transform-move.png differ
diff --git a/piqt_utils/piconnedit/icons/variable-add.png b/piqt_utils/piconnedit/icons/variable-add.png
new file mode 100644
index 0000000..0a551b1
Binary files /dev/null and b/piqt_utils/piconnedit/icons/variable-add.png differ
diff --git a/piqt_utils/piconnedit/icons/variable-copy.png b/piqt_utils/piconnedit/icons/variable-copy.png
new file mode 100644
index 0000000..42d91c3
Binary files /dev/null and b/piqt_utils/piconnedit/icons/variable-copy.png differ
diff --git a/piqt_utils/piconnedit/icons/variable-edit.png b/piqt_utils/piconnedit/icons/variable-edit.png
new file mode 100644
index 0000000..420ace3
Binary files /dev/null and b/piqt_utils/piconnedit/icons/variable-edit.png differ
diff --git a/piqt_utils/piconnedit/icons/variable-remove.png b/piqt_utils/piconnedit/icons/variable-remove.png
new file mode 100644
index 0000000..0686e7c
Binary files /dev/null and b/piqt_utils/piconnedit/icons/variable-remove.png differ
diff --git a/piqt_utils/piconnedit/icons/view-grid.png b/piqt_utils/piconnedit/icons/view-grid.png
new file mode 100644
index 0000000..0f1d70c
Binary files /dev/null and b/piqt_utils/piconnedit/icons/view-grid.png differ
diff --git a/piqt_utils/piconnedit/icons/view-refresh.png b/piqt_utils/piconnedit/icons/view-refresh.png
new file mode 100644
index 0000000..afa2a9d
Binary files /dev/null and b/piqt_utils/piconnedit/icons/view-refresh.png differ
diff --git a/piqt_utils/piconnedit/icons/warning-a.png b/piqt_utils/piconnedit/icons/warning-a.png
new file mode 100644
index 0000000..95cb849
Binary files /dev/null and b/piqt_utils/piconnedit/icons/warning-a.png differ
diff --git a/piqt_utils/piconnedit/icons/warning-id.png b/piqt_utils/piconnedit/icons/warning-id.png
new file mode 100644
index 0000000..a8bc774
Binary files /dev/null and b/piqt_utils/piconnedit/icons/warning-id.png differ
diff --git a/piqt_utils/piconnedit/icons/window-close.png b/piqt_utils/piconnedit/icons/window-close.png
new file mode 100644
index 0000000..ea6b607
Binary files /dev/null and b/piqt_utils/piconnedit/icons/window-close.png differ
diff --git a/piqt_utils/piconnedit/icons/zoom-fit-best.png b/piqt_utils/piconnedit/icons/zoom-fit-best.png
new file mode 100644
index 0000000..07cfc98
Binary files /dev/null and b/piqt_utils/piconnedit/icons/zoom-fit-best.png differ
diff --git a/piqt_utils/piconnedit/icons/zoom-in.png b/piqt_utils/piconnedit/icons/zoom-in.png
new file mode 100644
index 0000000..8393e28
Binary files /dev/null and b/piqt_utils/piconnedit/icons/zoom-in.png differ
diff --git a/piqt_utils/piconnedit/icons/zoom-out.png b/piqt_utils/piconnedit/icons/zoom-out.png
new file mode 100644
index 0000000..f66575e
Binary files /dev/null and b/piqt_utils/piconnedit/icons/zoom-out.png differ
diff --git a/piqt_utils/piconnedit/icons/zoom-range.png b/piqt_utils/piconnedit/icons/zoom-range.png
new file mode 100644
index 0000000..c052512
Binary files /dev/null and b/piqt_utils/piconnedit/icons/zoom-range.png differ
diff --git a/piqt_utils/piconnedit/icons/zoom-rect.png b/piqt_utils/piconnedit/icons/zoom-rect.png
new file mode 100644
index 0000000..da44fd5
Binary files /dev/null and b/piqt_utils/piconnedit/icons/zoom-rect.png differ
diff --git a/piqt_utils/piconnedit/piconnedit.qrc b/piqt_utils/piconnedit/piconnedit.qrc
new file mode 100644
index 0000000..6ea99d5
--- /dev/null
+++ b/piqt_utils/piconnedit/piconnedit.qrc
@@ -0,0 +1,6 @@
+
+
+ icons/edit-clear-.png
+ icons/document-save-.png
+
+
diff --git a/piqt_utils/piconnedit/piconnedit_main.cpp b/piqt_utils/piconnedit/piconnedit_main.cpp
new file mode 100644
index 0000000..7a77c5e
--- /dev/null
+++ b/piqt_utils/piconnedit/piconnedit_main.cpp
@@ -0,0 +1,28 @@
+#include
+#include "piqt_connection_edit.h"
+#include
+#include
+
+
+int main(int argc, char * argv[]) {
+ QApplication a(argc, argv);
+ ConnectionEdit w;
+ if (a.arguments().size() > 1) {
+ QPIConfig cfg(a.arguments()[1]);
+ QByteArray model = cfg.getValue("connectionmodel", QByteArray());
+ if (!model.isEmpty()) w.setModel(model);
+ }
+ if (w.exec() == QDialog::Accepted) {
+ QString c = QFileDialog::getSaveFileName(&w, "Save config to file", a.applicationDirPath(), "*.conf");
+ if (!c.isEmpty()) {
+ QFile f(c);
+ if (f.open(QIODevice::WriteOnly)) {
+ QTextStream ts(&f);
+ ts << w.configuration();
+ ts << "connectionmodel = " << QByteArray2QString(w.model()) << "\n";
+ f.close();
+ }
+ }
+ }
+ return 0;
+}
diff --git a/piqt_utils/pidumper/CMakeLists.txt b/piqt_utils/pidumper/CMakeLists.txt
new file mode 100644
index 0000000..ac7108e
--- /dev/null
+++ b/piqt_utils/pidumper/CMakeLists.txt
@@ -0,0 +1,21 @@
+qt_project(pidumper PIDUMPER_H PIDUMPER_CPP)
+add_executable(${PROJECT_NAME} WIN32 ${PIDUMPER_H} ${PIDUMPER_CPP})
+set(LIBS ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QAD_UTILS_LIBRARY} ${QAD_WIDGETS_LIBRARY} piqt_utils)
+target_link_libraries(${PROJECT_NAME} ${LIBS})
+message(STATUS "Building ${PROJECT_NAME}")
+if(LIB)
+ if(WIN32)
+ install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
+ else()
+ if(APPLE)
+ install(TARGETS ${PROJECT_NAME} DESTINATION /usr/local/bin)
+ else()
+ install(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin)
+ endif()
+ endif()
+ message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
+else()
+ install(TARGETS ${PROJECT_NAME} DESTINATION bin)
+ message(STATUS "Install to local \"bin\"")
+endif()
+
diff --git a/piqt_utils/pidumper/pidumper.cpp b/piqt_utils/pidumper/pidumper.cpp
new file mode 100644
index 0000000..0948acb
--- /dev/null
+++ b/piqt_utils/pidumper/pidumper.cpp
@@ -0,0 +1,142 @@
+#include "pidumper.h"
+#include "pifile.h"
+#include "pitime.h"
+#include "pidir.h"
+//#include "ccm.h"
+#include
+#ifdef CC_GCC
+# include
+#endif
+
+PIDumper::PIDumper(QWidget * parent): QMainWindow(parent) {
+ setupUi(this);
+ treeDump->header()->setResizeMode(QHeaderView::ResizeToContents);
+}
+
+
+void PIDumper::changeEvent(QEvent * e) {
+ QMainWindow::changeEvent(e);
+ switch (e->type()) {
+ case QEvent::LanguageChange:
+ retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
+
+
+void PIDumper::buildDump() {
+ treeDump->clear();
+ if (!dump.contains('{')) return;
+ PIString app = dump.takeWord();
+ if (app != "application") return;
+ dump.takeLine();
+ QTreeWidgetItem * ti;
+ while (!dump.isEmpty()) {
+ PIString line = dump.takeLine();
+ if (line.contains('{')) {
+ ti = new QTreeWidgetItem();
+ dump.prepend(line + "\n");
+ buildDumpSection(ti, dump);
+ treeDump->addTopLevelItem(ti);
+ continue;
+ }
+ int colon = line.find(":");
+ if (colon < 0) continue;
+ PIString name = line.takeLeft(colon).trim();
+ PIString value = line.cutLeft(1).trim();
+ if (value.startsWith("\"")) value.cutLeft(1);
+ if (value.endsWith("\"")) value.cutRight(1);
+ ti = new QTreeWidgetItem(QStringList() << PI2QString(name) << PI2QString(value));
+ treeDump->addTopLevelItem(ti);
+ }
+ on_checkDumpHideService_toggled(checkDumpHideService->isChecked());
+}
+
+
+void PIDumper::buildDumpSection(QTreeWidgetItem * pi, PIString & str) {
+ PIString section = str.takeLeft(str.find("{")).trim();
+ PIString value;
+ if (section.contains('(')) {
+ value = section;
+ section = value.takeLeft(value.find('('));
+ value = value.takeRange("(", ")");
+ }
+ pi->setText(0, piqt(section));
+ pi->setText(1, piqt(value));
+ //if (section == "PIObjects")
+ PIString range = str.takeRange("{", "}");
+ QTreeWidgetItem * ti;
+ PIString fs;
+ if (section == "PIObjects" || section == "properties") fs = ":";
+ if (section == "methodsEH") fs = " ";
+ if (section == "connections") fs = "->";
+ while (!range.isEmpty()) {
+ PIString line = range.takeLine().trim();
+ if (line.contains('{')) {
+ ti = new QTreeWidgetItem(pi);
+ range.prepend(line + "\n");
+ buildDumpSection(ti, range);
+ //treeDump->addTopLevelItem(ti);
+ continue;
+ }
+ if (line.left(line.find(":")).trim() == "count") {
+ pi->setText(1, "[" + PI2QString(line.right(line.length() - line.find(":") - 1).trim()) + "]");
+ continue;
+ }
+ int colon = line.find(fs);
+ if (colon < 0) continue;
+ PIString name = line.takeLeft(colon).trim();
+ PIString value = line.cutLeft(fs.size_s()).trim();
+ if (value.startsWith("\"")) value.cutLeft(1);
+ if (value.endsWith("\"")) value.cutRight(1);
+ if (name.endsWith(":")) name.cutRight(1);
+ if (name.isEmpty() && value.isEmpty()) continue;
+ ti = new QTreeWidgetItem(pi, QStringList() << PI2QString(name) << PI2QString(value));
+ //treeDump->addTopLevelItem(ti);
+ }
+}
+
+
+void PIDumper::on_buttonDumpMake_clicked() {
+ if (radioDumpCurrent->isChecked()) {
+ PICout::setBufferActive(true, true);
+ dumpApplication();
+ dump = PICout::buffer();
+ PICout::setBufferActive(false);
+ } else {
+ int pid = lineDumpCustom->text().toInt();
+ if (pid == 0) return;
+ if (system(QString("kill -USR1 %1").arg(pid).toLatin1().constData()) < 0) return;
+ PIString dp = PIDir::home().path() + "/_PIP_DUMP_" + PIString::fromNumber(pid);
+ PITimeMeasurer tm;
+ while (tm.elapsed_s() < 5. && !PIFile::isExists(dp)) {
+ piMSleep(10);
+ }
+ //piSleep(2.);
+ PIFile f(dp, PIIODevice::ReadOnly);
+ if (!f.isOpened()) return;
+ dump = PIString(f.readAll());
+ f.remove();
+ }
+ buildDump();
+}
+
+
+void PIDumper::on_buttonDumpClipboard_clicked() {
+ dump = Q2PIString(QApplication::clipboard()->text());
+ buildDump();
+}
+
+
+void PIDumper::on_checkDumpHideService_toggled(bool on) {
+ QList il = treeDump->findItems("", Qt::MatchContains | Qt::MatchRecursive);
+ foreach (QTreeWidgetItem * i, il) {
+ if (on) {
+ if (i->text(0).startsWith("class"))
+ i->setHidden(i->text(1).contains("__S__"));
+ } else
+ i->setHidden(false);
+ }
+}
diff --git a/piqt_utils/pidumper/pidumper.h b/piqt_utils/pidumper/pidumper.h
new file mode 100644
index 0000000..677fe1f
--- /dev/null
+++ b/piqt_utils/pidumper/pidumper.h
@@ -0,0 +1,36 @@
+#ifndef PIDUMPER_H
+#define PIDUMPER_H
+
+#include "ui_pidumper.h"
+#include
+#include
+#include
+#include
+#include
+#include "piqt.h"
+#include "piconnection.h"
+
+class PIDumper: public QMainWindow, private Ui::PIDumper
+{
+ Q_OBJECT
+public:
+ PIDumper(QWidget * parent = 0);
+
+protected:
+ void changeEvent(QEvent * e);
+
+ void buildDump();
+ void buildDumpSection(QTreeWidgetItem * pi, PIString & str);
+
+ PIString dump;
+
+private slots:
+ void on_buttonDumpMake_clicked();
+ void on_buttonDumpClipboard_clicked();
+ void on_checkDumpHideService_toggled(bool on);
+
+public slots:
+
+};
+
+#endif // PIDUMPER_H
diff --git a/piqt_utils/pidumper/pidumper.ui b/piqt_utils/pidumper/pidumper.ui
new file mode 100644
index 0000000..fdce675
--- /dev/null
+++ b/piqt_utils/pidumper/pidumper.ui
@@ -0,0 +1,207 @@
+
+
+ PIDumper
+
+
+
+ 0
+ 0
+ 1134
+ 854
+
+
+
+ PIP dump viewer
+
+
+
+ -
+
+
+ Hide service objects
+
+
+
+ -
+
+
-
+
+
-
+
+
+ Make PIP dump
+
+
+
+ -
+
+
+ Take PIP dump from clipboard
+
+
+
+
+
+ -
+
+
+ Process
+
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Current
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Preferred
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Custom:
+
+
+
+ -
+
+
+ false
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+ -
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+ true
+
+
+ QAbstractItemView::ScrollPerPixel
+
+
+ QAbstractItemView::ScrollPerPixel
+
+
+ true
+
+
+ 2
+
+
+ false
+
+
+ 20
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+ radioDumpCustom
+ toggled(bool)
+ lineDumpCustom
+ setEnabled(bool)
+
+
+ 439
+ 91
+
+
+ 480
+ 90
+
+
+
+
+ radioDumpCustom
+ clicked()
+ lineDumpCustom
+ setFocus()
+
+
+ 453
+ 91
+
+
+ 480
+ 86
+
+
+
+
+
+ configChanged()
+ updateMap()
+
+
diff --git a/piqt_utils/pidumper/pidumper_main.cpp b/piqt_utils/pidumper/pidumper_main.cpp
new file mode 100644
index 0000000..f7ad863
--- /dev/null
+++ b/piqt_utils/pidumper/pidumper_main.cpp
@@ -0,0 +1,10 @@
+#include
+#include "pidumper.h"
+
+
+int main(int argc, char * argv[]) {
+ QApplication a(argc, argv);
+ PIDumper w;
+ w.show();
+ return a.exec();
+}
diff --git a/piqt_utils/piintrospector/CMakeLists.txt b/piqt_utils/piintrospector/CMakeLists.txt
new file mode 100644
index 0000000..86c6b43
--- /dev/null
+++ b/piqt_utils/piintrospector/CMakeLists.txt
@@ -0,0 +1,21 @@
+qt_project(piintrospector PIINTROSPECTOR_H PIINTROSPECTOR_CPP)
+add_executable(${PROJECT_NAME} WIN32 ${PIINTROSPECTOR_H} ${PIINTROSPECTOR_CPP})
+set(LIBS ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QAD_UTILS_LIBRARY} ${QAD_WIDGETS_LIBRARY} piqt_utils)
+target_link_libraries(${PROJECT_NAME} ${LIBS})
+message(STATUS "Building ${PROJECT_NAME}")
+if(LIB)
+ if(WIN32)
+ install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
+ else()
+ if(APPLE)
+ install(TARGETS ${PROJECT_NAME} DESTINATION /usr/local/bin)
+ else()
+ install(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin)
+ endif()
+ endif()
+ message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
+else()
+ install(TARGETS ${PROJECT_NAME} DESTINATION bin)
+ message(STATUS "Install to local \"bin\"")
+endif()
+
diff --git a/piqt_utils/piintrospector/piintrospector.cpp b/piqt_utils/piintrospector/piintrospector.cpp
new file mode 100644
index 0000000..baf31f4
--- /dev/null
+++ b/piqt_utils/piintrospector/piintrospector.cpp
@@ -0,0 +1,79 @@
+#include "piintrospector.h"
+#include "pifile.h"
+#include "pitime.h"
+#include "pidir.h"
+#include
+
+
+QPIIntrospector::QPIIntrospector(QWidget * parent): QMainWindow(parent), peer("__introspection_client__") {
+ setupUi(this);
+ tree->header()->setResizeMode(QHeaderView::ResizeToContents);
+ CONNECTU(&peer, dataReceivedEvent, this, peerReceived)
+ startTimer(100);
+}
+
+
+void QPIIntrospector::changeEvent(QEvent * e) {
+ QMainWindow::changeEvent(e);
+ switch (e->type()) {
+ case QEvent::LanguageChange:
+ retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
+
+
+void QPIIntrospector::timerEvent(QTimerEvent * ) {
+ listApp->blockSignals(true);
+ QString cs = listApp->currentItem() ? listApp->currentItem()->text() : "";
+ listApp->clear();
+ peer.lock();
+ piForeachC (PIPeer::PeerInfo & p, peer.allPeers()) {
+ QString pn = PI2QString(p.name);
+ listApp->addItem(pn);
+ if (pn == cs)
+ listApp->setCurrentRow(listApp->count() - 1);
+ }
+ peer.unlock();
+ listApp->blockSignals(false);
+}
+
+
+void QPIIntrospector::buildTree(QByteArray d) {
+ PIVector threads;
+ PIByteArray pd = Q2PIByteArray(d);
+ pd >> threads;
+ tree->clear();
+ piForeachC (PIIntrospectionThreads::ThreadInfo & t, threads) {
+ QTreeWidgetItem * ti = new QTreeWidgetItem();
+ ti->setText(0, QString(PI2QString(t.name) + " (%1)").arg(t.id));
+ tree->addTopLevelItem(ti);
+ }
+}
+
+
+void QPIIntrospector::buildDumpSection(QTreeWidgetItem * pi, PIString & str) {
+}
+
+
+void QPIIntrospector::on_listApp_currentRowChanged(int r) {
+ if (r < 0) cur_server.clear();
+ else cur_server = Q2PIString(listApp->item(r)->text());
+}
+
+
+void QPIIntrospector::peerReceived(const PIString & from, const PIByteArray & data) {
+ if (from != cur_server) return;
+ PIString appname;
+ PIIntrospectionContainers cont;
+ PIByteArray ba(data);
+ ba >> appname >> cont;// >> threads.threads;
+ QMetaObject::invokeMethod(labelAppname, "setText", Qt::QueuedConnection, Q_ARG(QString, PI2QString(appname)));
+ QMetaObject::invokeMethod(labelCount, "setText", Qt::QueuedConnection, Q_ARG(QString, QString::number(cont.count)));
+ QMetaObject::invokeMethod(labelAlloc, "setText", Qt::QueuedConnection, Q_ARG(QString, PI2QString(PIString::readableSize(cont.bytes_allocated))));
+ QMetaObject::invokeMethod(labelUsed, "setText", Qt::QueuedConnection, Q_ARG(QString, PI2QString(PIString::readableSize(cont.bytes_used))));
+ QMetaObject::invokeMethod(this, "buildTree", Qt::QueuedConnection, Q_ARG(QByteArray, PI2QByteArray(ba)));
+ //piCout << appname;
+}
diff --git a/piqt_utils/piintrospector/piintrospector.h b/piqt_utils/piintrospector/piintrospector.h
new file mode 100644
index 0000000..c920273
--- /dev/null
+++ b/piqt_utils/piintrospector/piintrospector.h
@@ -0,0 +1,38 @@
+#ifndef PIINTROSPECTOR_H
+#define PIINTROSPECTOR_H
+
+#include "ui_piintrospector.h"
+#include
+#include
+#include
+#include
+#include "piqt.h"
+#include "piintrospection.h"
+
+class QPIIntrospector: public QMainWindow, private Ui::QPIIntrospector, public PIObject
+{
+ Q_OBJECT
+ PIOBJECT(QPIIntrospector)
+public:
+ QPIIntrospector(QWidget * parent = 0);
+
+protected:
+ void changeEvent(QEvent * e);
+ void timerEvent(QTimerEvent * );
+
+ void buildDumpSection(QTreeWidgetItem * pi, PIString & str);
+
+ EVENT_HANDLER2(void, peerReceived, const PIString &, from, const PIByteArray &, data);
+
+ PIString cur_server;
+ PIPeer peer;
+
+private slots:
+ void buildTree(QByteArray d);
+ void on_listApp_currentRowChanged(int r);
+
+public slots:
+
+};
+
+#endif // PIINTROSPECTOR_H
diff --git a/piqt_utils/piintrospector/piintrospector.ui b/piqt_utils/piintrospector/piintrospector.ui
new file mode 100644
index 0000000..48a7a83
--- /dev/null
+++ b/piqt_utils/piintrospector/piintrospector.ui
@@ -0,0 +1,143 @@
+
+
+ QPIIntrospector
+
+
+
+ 0
+ 0
+ 923
+ 661
+
+
+
+ PIP introspector
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ Select application
+
+
+
-
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+ QAbstractItemView::ScrollPerPixel
+
+
+ QAbstractItemView::ScrollPerPixel
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ Containers
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ QFormLayout::DontWrapRows
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ count:
+
+
+
+ -
+
+
+ 0
+
+
+
+ -
+
+
+ allocated:
+
+
+
+ -
+
+
+ 0
+
+
+
+ -
+
+
+ used:
+
+
+
+ -
+
+
+ 0
+
+
+
+
+
+
+ -
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+ QAbstractItemView::ScrollPerPixel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ configChanged()
+ updateMap()
+
+
diff --git a/piqt_utils/piintrospector/piintrospector_main.cpp b/piqt_utils/piintrospector/piintrospector_main.cpp
new file mode 100644
index 0000000..b94783d
--- /dev/null
+++ b/piqt_utils/piintrospector/piintrospector_main.cpp
@@ -0,0 +1,10 @@
+#include
+#include "piintrospector.h"
+
+
+int main(int argc, char * argv[]) {
+ QApplication a(argc, argv);
+ QPIIntrospector w;
+ w.show();
+ return a.exec();
+}