├── .gitignore
├── LICENSE
├── README.md
├── chfsgui
├── BreezeStyleSheets
│ ├── breeze.qrc
│ ├── dark.qss
│ ├── dark
│ │ ├── branch_closed-on.svg
│ │ ├── branch_closed.svg
│ │ ├── branch_open-on.svg
│ │ ├── branch_open.svg
│ │ ├── checkbox_checked.svg
│ │ ├── checkbox_checked_disabled.svg
│ │ ├── checkbox_indeterminate.svg
│ │ ├── checkbox_indeterminate_disabled.svg
│ │ ├── checkbox_unchecked.svg
│ │ ├── checkbox_unchecked_disabled.svg
│ │ ├── close-hover.svg
│ │ ├── close-pressed.svg
│ │ ├── close.svg
│ │ ├── down_arrow-hover.svg
│ │ ├── down_arrow.svg
│ │ ├── down_arrow_disabled.svg
│ │ ├── hmovetoolbar.svg
│ │ ├── hsepartoolbar.svg
│ │ ├── left_arrow.svg
│ │ ├── left_arrow_disabled.svg
│ │ ├── radio_checked.svg
│ │ ├── radio_checked_disabled.svg
│ │ ├── radio_unchecked.svg
│ │ ├── radio_unchecked_disabled.svg
│ │ ├── right_arrow.svg
│ │ ├── right_arrow_disabled.svg
│ │ ├── sizegrip.svg
│ │ ├── spinup_disabled.svg
│ │ ├── stylesheet-branch-end.svg
│ │ ├── stylesheet-branch-more.svg
│ │ ├── stylesheet-vline.svg
│ │ ├── transparent.svg
│ │ ├── undock-hover.svg
│ │ ├── undock.svg
│ │ ├── up_arrow-hover.svg
│ │ ├── up_arrow.svg
│ │ ├── up_arrow_disabled.svg
│ │ ├── vmovetoolbar.svg
│ │ └── vsepartoolbars.svg
│ ├── light.qss
│ └── light
│ │ ├── branch_closed-on.svg
│ │ ├── branch_closed.svg
│ │ ├── branch_open-on.svg
│ │ ├── branch_open.svg
│ │ ├── checkbox_checked-hover.svg
│ │ ├── checkbox_checked.svg
│ │ ├── checkbox_checked_disabled.svg
│ │ ├── checkbox_indeterminate-hover.svg
│ │ ├── checkbox_indeterminate.svg
│ │ ├── checkbox_indeterminate_disabled.svg
│ │ ├── checkbox_unchecked-hover.svg
│ │ ├── checkbox_unchecked_disabled.svg
│ │ ├── close-hover.svg
│ │ ├── close-pressed.svg
│ │ ├── close.svg
│ │ ├── down_arrow-hover.svg
│ │ ├── down_arrow.svg
│ │ ├── down_arrow_disabled.svg
│ │ ├── hmovetoolbar.svg
│ │ ├── hsepartoolbar.svg
│ │ ├── left_arrow.svg
│ │ ├── left_arrow_disabled.svg
│ │ ├── radio_checked-hover.svg
│ │ ├── radio_checked.svg
│ │ ├── radio_checked_disabled.svg
│ │ ├── radio_unchecked-hover.svg
│ │ ├── radio_unchecked_disabled.svg
│ │ ├── right_arrow.svg
│ │ ├── right_arrow_disabled.svg
│ │ ├── sizegrip.svg
│ │ ├── spinup_disabled.svg
│ │ ├── stylesheet-branch-end.svg
│ │ ├── stylesheet-branch-more.svg
│ │ ├── stylesheet-vline.svg
│ │ ├── transparent.svg
│ │ ├── undock-hover.svg
│ │ ├── undock.svg
│ │ ├── up_arrow-hover.svg
│ │ ├── up_arrow.svg
│ │ ├── up_arrow_disabled.svg
│ │ ├── vmovetoolbar.svg
│ │ └── vsepartoolbars.svg
├── QR-Code-generator-master
│ ├── BitBuffer.cpp
│ ├── BitBuffer.hpp
│ ├── QrCode.cpp
│ ├── QrCode.hpp
│ ├── QrSegment.cpp
│ └── QrSegment.hpp
├── aboutdlg.cpp
├── aboutdlg.h
├── aboutdlg.ui
├── app.rc
├── chfs.qrc
├── chfs_resource
│ └── chfs.exe
├── chfsgui.pro
├── chfsgui.pro.user
├── configwgt.cpp
├── configwgt.h
├── gui.qrc
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
├── monitorwgt.cpp
├── monitorwgt.h
├── precompile.h
├── processdecorator.cpp
├── processdecorator.h
├── qtsingleapplication
│ ├── qtlocalpeer.cpp
│ ├── qtlocalpeer.h
│ ├── qtlockedfile.cpp
│ ├── qtlockedfile.h
│ ├── qtlockedfile_unix.cpp
│ ├── qtlockedfile_win.cpp
│ ├── qtsingleapplication.cpp
│ └── qtsingleapplication.h
├── res
│ └── image
│ │ ├── autoitem.svg
│ │ ├── deleteitem.svg
│ │ ├── dir.svg
│ │ ├── logo.ico
│ │ ├── mask.svg
│ │ ├── menu.svg
│ │ ├── newitem.svg
│ │ ├── play.svg
│ │ ├── renameitem.svg
│ │ ├── return.svg
│ │ ├── save.svg
│ │ ├── saveitem.svg
│ │ ├── stop.svg
│ │ ├── tray_error.png
│ │ ├── tray_running.png
│ │ └── user.svg
├── skin
│ ├── qss.qrc
│ └── qss
│ │ ├── bf.css
│ │ ├── bf
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── black.css
│ │ ├── black
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── blue.css
│ │ ├── blue
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── darkblack.css
│ │ ├── darkblack
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── darkblue.css
│ │ ├── darkblue
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── darkgray.css
│ │ ├── darkgray
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── flatblack.css
│ │ ├── flatblack
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── flatwhite.css
│ │ ├── flatwhite
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── gray.css
│ │ ├── gray
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── lightblack.css
│ │ ├── lightblack
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── lightblue.css
│ │ ├── lightblue
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── lightgray.css
│ │ ├── lightgray
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── psblack.css
│ │ ├── psblack
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── silvery.css
│ │ ├── silvery
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
│ │ ├── test.css
│ │ └── test
│ │ ├── add_bottom.png
│ │ ├── add_left.png
│ │ ├── add_right.png
│ │ ├── add_top.png
│ │ ├── branch_close.png
│ │ ├── branch_open.png
│ │ ├── calendar_nextmonth.png
│ │ ├── calendar_prevmonth.png
│ │ ├── checkbox_checked.png
│ │ ├── checkbox_checked_disable.png
│ │ ├── checkbox_parcial.png
│ │ ├── checkbox_parcial_disable.png
│ │ ├── checkbox_unchecked.png
│ │ ├── checkbox_unchecked_disable.png
│ │ ├── radiobutton_checked.png
│ │ ├── radiobutton_checked_disable.png
│ │ ├── radiobutton_unchecked.png
│ │ └── radiobutton_unchecked_disable.png
├── todo.txt
├── toolbar.cpp
├── toolbar.h
├── uicomponents
│ ├── configwgt
│ │ ├── accdlg.cpp
│ │ ├── accdlg.h
│ │ ├── cfgallowip.cpp
│ │ ├── cfgallowip.h
│ │ ├── cfgbase.cpp
│ │ ├── cfgbase.h
│ │ ├── cfgportwgt.cpp
│ │ ├── cfgportwgt.h
│ │ ├── cfgrules.cpp
│ │ ├── cfgrules.h
│ │ ├── cfgsharedpathwgt.cpp
│ │ ├── cfgsharedpathwgt.h
│ │ ├── ruletablewidget.cpp
│ │ └── ruletablewidget.h
│ ├── qrpopup.cpp
│ └── qrpopup.h
├── utilities.cpp
└── utilities.h
└── release
├── chfsgui-v1.0.1.zip
└── chfsgui-v1.4.0.zip
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | build*
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## What's ths chfsgui?
2 |
3 | This is just a GUI WRAPPER for chfs([cute http file server](http://iscute.cn/chfs))
4 |
5 | ## License
6 |
7 | licensed under the [LGPL v3](https://www.gnu.org/licenses/lgpl.html).
8 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/breeze.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | light/hmovetoolbar.svg
4 | light/vmovetoolbar.svg
5 | light/hsepartoolbar.svg
6 | light/vsepartoolbars.svg
7 | light/stylesheet-branch-end.svg
8 | light/stylesheet-vline.svg
9 | light/stylesheet-branch-more.svg
10 | light/branch_closed.svg
11 | light/branch_closed-on.svg
12 | light/branch_open.svg
13 | light/branch_open-on.svg
14 | light/down_arrow.svg
15 | light/down_arrow_disabled.svg
16 | light/down_arrow-hover.svg
17 | light/left_arrow.svg
18 | light/left_arrow_disabled.svg
19 | light/right_arrow.svg
20 | light/right_arrow_disabled.svg
21 | light/up_arrow.svg
22 | light/up_arrow_disabled.svg
23 | light/up_arrow-hover.svg
24 | light/sizegrip.svg
25 | light/transparent.svg
26 | light/close.svg
27 | light/close-hover.svg
28 | light/close-pressed.svg
29 | light/undock.svg
30 | light/undock-hover.svg
31 | light/checkbox_checked-hover.svg
32 | light/checkbox_checked.svg
33 | light/checkbox_checked_disabled.svg
34 | light/checkbox_indeterminate.svg
35 | light/checkbox_indeterminate-hover.svg
36 | light/checkbox_indeterminate_disabled.svg
37 | light/checkbox_unchecked-hover.svg
38 | light/checkbox_unchecked_disabled.svg
39 | light/radio_checked-hover.svg
40 | light/radio_checked.svg
41 | light/radio_checked_disabled.svg
42 | light/radio_unchecked-hover.svg
43 | light/radio_unchecked_disabled.svg
44 | dark/hmovetoolbar.svg
45 | dark/vmovetoolbar.svg
46 | dark/hsepartoolbar.svg
47 | dark/vsepartoolbars.svg
48 | dark/stylesheet-branch-end.svg
49 | dark/stylesheet-vline.svg
50 | dark/stylesheet-branch-more.svg
51 | dark/branch_closed.svg
52 | dark/branch_closed-on.svg
53 | dark/branch_open.svg
54 | dark/branch_open-on.svg
55 | dark/down_arrow.svg
56 | dark/down_arrow_disabled.svg
57 | dark/down_arrow-hover.svg
58 | dark/left_arrow.svg
59 | dark/left_arrow_disabled.svg
60 | dark/right_arrow.svg
61 | dark/right_arrow_disabled.svg
62 | dark/up_arrow.svg
63 | dark/up_arrow_disabled.svg
64 | dark/up_arrow-hover.svg
65 | dark/sizegrip.svg
66 | dark/transparent.svg
67 | dark/close.svg
68 | dark/close-hover.svg
69 | dark/close-pressed.svg
70 | dark/undock.svg
71 | dark/undock-hover.svg
72 | dark/checkbox_checked.svg
73 | dark/checkbox_checked_disabled.svg
74 | dark/checkbox_indeterminate.svg
75 | dark/checkbox_indeterminate_disabled.svg
76 | dark/checkbox_unchecked.svg
77 | dark/checkbox_unchecked_disabled.svg
78 | dark/radio_checked.svg
79 | dark/radio_checked_disabled.svg
80 | dark/radio_unchecked.svg
81 | dark/radio_unchecked_disabled.svg
82 | light.qss
83 | dark.qss
84 |
85 |
86 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/branch_closed-on.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/branch_closed.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/branch_open-on.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/branch_open.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/checkbox_checked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/checkbox_checked_disabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/checkbox_indeterminate.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/checkbox_indeterminate_disabled.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/checkbox_unchecked.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/checkbox_unchecked_disabled.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/close-hover.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/close-pressed.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/close.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/down_arrow-hover.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/down_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/down_arrow_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/hmovetoolbar.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/hsepartoolbar.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/left_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/left_arrow_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/radio_checked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/radio_checked_disabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/radio_unchecked.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/radio_unchecked_disabled.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/right_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/right_arrow_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/sizegrip.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/spinup_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/stylesheet-branch-end.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/stylesheet-branch-more.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/stylesheet-vline.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/transparent.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/undock-hover.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/undock.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/up_arrow-hover.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/up_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/up_arrow_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/vmovetoolbar.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/dark/vsepartoolbars.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/branch_closed-on.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/branch_closed.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/branch_open-on.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/branch_open.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/checkbox_checked-hover.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/checkbox_checked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/checkbox_checked_disabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/checkbox_indeterminate-hover.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/checkbox_indeterminate.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/checkbox_indeterminate_disabled.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/checkbox_unchecked-hover.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/checkbox_unchecked_disabled.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/close-hover.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/close-pressed.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/close.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/down_arrow-hover.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/down_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/down_arrow_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/hmovetoolbar.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/hsepartoolbar.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/left_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/left_arrow_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/radio_checked-hover.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/radio_checked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/radio_checked_disabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/radio_unchecked-hover.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/radio_unchecked_disabled.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/right_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/right_arrow_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/sizegrip.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/spinup_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/stylesheet-branch-end.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/stylesheet-branch-more.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/stylesheet-vline.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/transparent.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/undock-hover.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/undock.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/up_arrow-hover.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/up_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/up_arrow_disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/vmovetoolbar.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/chfsgui/BreezeStyleSheets/light/vsepartoolbars.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/chfsgui/QR-Code-generator-master/BitBuffer.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * QR Code generator library (C++)
3 | *
4 | * Copyright (c) Project Nayuki. (MIT License)
5 | * https://www.nayuki.io/page/qr-code-generator-library
6 | *
7 | * Permission is hereby granted, free of charge, to any person obtaining a copy of
8 | * this software and associated documentation files (the "Software"), to deal in
9 | * the Software without restriction, including without limitation the rights to
10 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11 | * the Software, and to permit persons to whom the Software is furnished to do so,
12 | * subject to the following conditions:
13 | * - The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | * - The Software is provided "as is", without warranty of any kind, express or
16 | * implied, including but not limited to the warranties of merchantability,
17 | * fitness for a particular purpose and noninfringement. In no event shall the
18 | * authors or copyright holders be liable for any claim, damages or other
19 | * liability, whether in an action of contract, tort or otherwise, arising from,
20 | * out of or in connection with the Software or the use or other dealings in the
21 | * Software.
22 | */
23 |
24 | #include "BitBuffer.hpp"
25 |
26 |
27 | namespace qrcodegen {
28 |
29 | BitBuffer::BitBuffer()
30 | : std::vector() {}
31 |
32 |
33 | std::vector BitBuffer::getBytes() const {
34 | std::vector result(size() / 8 + (size() % 8 == 0 ? 0 : 1));
35 | for (std::size_t i = 0; i < size(); i++)
36 | result[i >> 3] |= (*this)[i] ? 1 << (7 - (i & 7)) : 0;
37 | return result;
38 | }
39 |
40 |
41 | void BitBuffer::appendBits(std::uint32_t val, int len) {
42 | if (len < 0 || len > 31 || val >> len != 0)
43 | throw "Value out of range";
44 | for (int i = len - 1; i >= 0; i--) // Append bit by bit
45 | this->push_back(((val >> i) & 1) != 0);
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/chfsgui/QR-Code-generator-master/BitBuffer.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | * QR Code generator library (C++)
3 | *
4 | * Copyright (c) Project Nayuki. (MIT License)
5 | * https://www.nayuki.io/page/qr-code-generator-library
6 | *
7 | * Permission is hereby granted, free of charge, to any person obtaining a copy of
8 | * this software and associated documentation files (the "Software"), to deal in
9 | * the Software without restriction, including without limitation the rights to
10 | * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11 | * the Software, and to permit persons to whom the Software is furnished to do so,
12 | * subject to the following conditions:
13 | * - The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | * - The Software is provided "as is", without warranty of any kind, express or
16 | * implied, including but not limited to the warranties of merchantability,
17 | * fitness for a particular purpose and noninfringement. In no event shall the
18 | * authors or copyright holders be liable for any claim, damages or other
19 | * liability, whether in an action of contract, tort or otherwise, arising from,
20 | * out of or in connection with the Software or the use or other dealings in the
21 | * Software.
22 | */
23 |
24 | #pragma once
25 |
26 | #include
27 | #include
28 |
29 |
30 | namespace qrcodegen {
31 |
32 | /*
33 | * An appendable sequence of bits (0's and 1's).
34 | */
35 | class BitBuffer final : public std::vector {
36 |
37 | /*---- Constructor ----*/
38 |
39 | // Creates an empty bit buffer (length 0).
40 | public: BitBuffer();
41 |
42 |
43 |
44 | /*---- Methods ----*/
45 |
46 | // Packs this buffer's bits into bytes in big endian,
47 | // padding with '0' bit values, and returns the new vector.
48 | public: std::vector getBytes() const;
49 |
50 |
51 | // Appends the given number of low bits of the given value
52 | // to this sequence. Requires 0 <= val < 2^len.
53 | public: void appendBits(std::uint32_t val, int len);
54 |
55 | };
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/chfsgui/aboutdlg.cpp:
--------------------------------------------------------------------------------
1 | #include "aboutdlg.h"
2 | #include "ui_aboutdlg.h"
3 | #include "precompile.h"
4 |
5 |
6 | QString AboutDlg::getCHFSver()
7 | {
8 | QProcess chfs;
9 | chfs.start(g_chfsfile, QStringList() << "--version");
10 | chfs.waitForFinished();
11 |
12 | return QString(chfs.readAllStandardError()).remove("\n");
13 | }
14 |
15 | AboutDlg::AboutDlg(QWidget *parent) :
16 | QDialog(parent),
17 | ui(new Ui::AboutDlg)
18 | {
19 | ui->setupUi(this);
20 | setWindowFlags(windowFlags()&~Qt::WindowContextHelpButtonHint);
21 |
22 | ui->_lbTitle->setText( QString("CHFS GUI v%1.%2
").arg(getCHFSver()).arg(GUIVER) );
23 | }
24 |
25 | AboutDlg::~AboutDlg()
26 | {
27 | delete ui;
28 | }
29 |
30 | void AboutDlg::on_pushButton_clicked()
31 | {
32 | close();
33 | }
34 |
--------------------------------------------------------------------------------
/chfsgui/aboutdlg.h:
--------------------------------------------------------------------------------
1 | #ifndef ABOUTDLG_H
2 | #define ABOUTDLG_H
3 |
4 | #include
5 |
6 | namespace Ui {
7 | class AboutDlg;
8 | }
9 |
10 | class AboutDlg : public QDialog
11 | {
12 | Q_OBJECT
13 |
14 | public:
15 | explicit AboutDlg(QWidget *parent = 0);
16 | ~AboutDlg();
17 | private:
18 | QString getCHFSver();
19 | private slots:
20 | void on_pushButton_clicked();
21 |
22 | private:
23 | Ui::AboutDlg *ui;
24 | };
25 |
26 | #endif // ABOUTDLG_H
27 |
--------------------------------------------------------------------------------
/chfsgui/aboutdlg.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | AboutDlg
4 |
5 |
6 |
7 | 0
8 | 0
9 | 386
10 | 190
11 |
12 |
13 |
14 |
15 | 0
16 | 0
17 |
18 |
19 |
20 | 关于
21 |
22 |
23 |
24 | 12
25 |
26 |
27 | 9
28 |
29 | -
30 |
31 |
-
32 |
33 |
34 | TextLabel
35 |
36 |
37 |
38 | -
39 |
40 |
41 | Qt::Horizontal
42 |
43 |
44 |
45 | 40
46 | 20
47 |
48 |
49 |
50 |
51 |
52 |
53 | -
54 |
55 |
-
56 |
57 |
58 | <html><head/><body><p>该程序是<a href="http://iscute.cn/chfs"><span style=" text-decoration: underline; color:#00aa00;">chfs</span></a>程序的一个GUI封装,以满足部分用户的操作需求。</p></body></html>
59 |
60 |
61 | true
62 |
63 |
64 |
65 |
66 |
67 | -
68 |
69 |
-
70 |
71 |
72 | <html><head/><body><p>该程序基于Qt,项目源码:<a href="https://github.com/docblue/chfsgui"><span style=" text-decoration: underline; color:#00aa00;">https://github.com/docblue/chfsgui</span></a></p></body></html>
73 |
74 |
75 | true
76 |
77 |
78 |
79 |
80 |
81 | -
82 |
83 |
84 | Qt::Vertical
85 |
86 |
87 | QSizePolicy::Expanding
88 |
89 |
90 |
91 | 20
92 | 26
93 |
94 |
95 |
96 |
97 | -
98 |
99 |
-
100 |
101 |
102 | Qt::Horizontal
103 |
104 |
105 |
106 | 40
107 | 20
108 |
109 |
110 |
111 |
112 | -
113 |
114 |
115 |
116 | 0
117 | 0
118 |
119 |
120 |
121 |
122 | 32
123 | 0
124 |
125 |
126 |
127 | 关闭
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
--------------------------------------------------------------------------------
/chfsgui/app.rc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | IDI_ICON1 ICON DISCARDABLE ".\\res\\image\\logo.ico"
4 |
5 |
--------------------------------------------------------------------------------
/chfsgui/chfs.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | chfs_resource/chfs.exe
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chfsgui/chfs_resource/chfs.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/chfs_resource/chfs.exe
--------------------------------------------------------------------------------
/chfsgui/chfsgui.pro:
--------------------------------------------------------------------------------
1 | #-------------------------------------------------
2 | #
3 | # Project created by QtCreator 2018-01-20T18:25:12
4 | #
5 | #-------------------------------------------------
6 |
7 | QT += core gui network
8 |
9 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
10 |
11 | TARGET = chfsgui
12 | TEMPLATE = app
13 |
14 | RC_FILE += app.rc
15 | QTPLUGIN += qsvg
16 | PRECOMPILED_HEADER = preCompile.h
17 | CONFIG += c++11
18 |
19 | DEFINES += "GUIVER=1"
20 |
21 | SOURCES += main.cpp\
22 | mainwindow.cpp \
23 | processdecorator.cpp \
24 | toolbar.cpp \
25 | configwgt.cpp \
26 | monitorwgt.cpp \
27 | uicomponents/configwgt/cfgsharedpathwgt.cpp \
28 | uicomponents/configwgt/cfgallowip.cpp \
29 | uicomponents/configwgt/cfgrules.cpp \
30 | utilities.cpp \
31 | uicomponents/configwgt/cfgportwgt.cpp \
32 | uicomponents/configwgt/cfgbase.cpp \
33 | uicomponents/configwgt/accdlg.cpp \
34 | uicomponents/configwgt/ruletablewidget.cpp \
35 | aboutdlg.cpp \
36 | uicomponents/qrpopup.cpp \
37 | QR-Code-generator-master/BitBuffer.cpp \
38 | QR-Code-generator-master/QrCode.cpp \
39 | QR-Code-generator-master/QrSegment.cpp \
40 | qtsingleapplication/qtlocalpeer.cpp \
41 | qtsingleapplication/qtsingleapplication.cpp \
42 | qtsingleapplication/qtlockedfile.cpp \
43 | qtsingleapplication/qtlockedfile_unix.cpp \
44 | qtsingleapplication/qtlockedfile_win.cpp
45 |
46 | HEADERS += mainwindow.h \
47 | processdecorator.h \
48 | precompile.h \
49 | toolbar.h \
50 | configwgt.h \
51 | monitorwgt.h \
52 | uicomponents/configwgt/cfgsharedpathwgt.h \
53 | uicomponents/configwgt/cfgallowip.h \
54 | uicomponents/configwgt/cfgrules.h \
55 | utilities.h \
56 | uicomponents/configwgt/cfgportwgt.h \
57 | uicomponents/configwgt/cfgbase.h \
58 | uicomponents/configwgt/accdlg.h \
59 | uicomponents/configwgt/ruletablewidget.h \
60 | aboutdlg.h \
61 | uicomponents/qrpopup.h \
62 | QR-Code-generator-master/BitBuffer.hpp \
63 | QR-Code-generator-master/QrCode.hpp \
64 | QR-Code-generator-master/QrSegment.hpp \
65 | qtsingleapplication/qtlocalpeer.h \
66 | qtsingleapplication/qtsingleapplication.h \
67 | qtsingleapplication/qtlockedfile.h
68 |
69 | RESOURCES += \
70 | chfs.qrc \
71 | gui.qrc \
72 | BreezeStyleSheets\breeze.qrc \
73 | skin/qss.qrc
74 |
75 | FORMS += \
76 | aboutdlg.ui
77 |
--------------------------------------------------------------------------------
/chfsgui/configwgt.cpp:
--------------------------------------------------------------------------------
1 | #include "configwgt.h"
2 | #include "precompile.h"
3 | #include "uicomponents/configwgt/cfgsharedpathwgt.h"
4 | #include "uicomponents/configwgt/cfgallowip.h"
5 | #include "uicomponents/configwgt/cfgrules.h"
6 | #include "uicomponents/configwgt/cfgportwgt.h"
7 |
8 |
9 | ConfigWgt::ConfigWgt(QWidget *parent) : QWidget(parent)
10 | {
11 | createComponents();
12 | setProperty("form","true");
13 | }
14 |
15 | void ConfigWgt::paintEvent(QPaintEvent *)
16 | {
17 | QStyleOption opt;
18 | opt.init(this);
19 | QPainter p(this);
20 | style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
21 | }
22 |
23 | void ConfigWgt::onEditorMode()
24 | {
25 | CfgBase* ws[]{_sharedpathWgt,_allowWgt,_rulesWgt,_portWgt};
26 | for(auto i : ws){
27 | i->onEditorMode();
28 | }
29 | }
30 |
31 | void ConfigWgt::onRunningMode()
32 | {
33 | CfgBase* ws[]{_sharedpathWgt,_allowWgt,_rulesWgt,_portWgt};
34 | for(auto i : ws){
35 | i->onRunningMode();
36 | }
37 | }
38 |
39 |
40 | void ConfigWgt::createComponents()
41 | {
42 | const int ITEM_LEFT_OFFSET = 26;
43 |
44 | _sharedpathWgt = new CfgSharedpathWgt(this);
45 | _allowWgt = new CfgAllowip(this);
46 | _rulesWgt = new CfgRules(this);
47 | _portWgt = new CfgPortWgt(this);
48 |
49 | // 共享目录
50 |
51 | QHBoxLayout* pathLabelLayout = new QHBoxLayout;
52 | pathLabelLayout->addWidget(new QLabel(tr("共享目录"),this));
53 | pathLabelLayout->addStretch(1);
54 |
55 | QHBoxLayout* pathLayout = new QHBoxLayout;
56 | pathLayout->setContentsMargins(ITEM_LEFT_OFFSET,0,0,0);
57 | pathLayout->addWidget(_sharedpathWgt,1);
58 |
59 | //监听端口
60 |
61 | QHBoxLayout* portLabelLayout = new QHBoxLayout;
62 | portLabelLayout->addWidget(new QLabel(tr("监听端口"),this));
63 | portLabelLayout->addStretch(1);
64 |
65 | QHBoxLayout* portLayout = new QHBoxLayout;
66 | portLayout->setContentsMargins(ITEM_LEFT_OFFSET,0,0,0);
67 | portLayout->addWidget( _portWgt );
68 | portLayout->addStretch(1);
69 |
70 |
71 | // 账户控制
72 |
73 | QHBoxLayout* rulesLabelLayout = new QHBoxLayout;
74 | rulesLabelLayout->addWidget(new QLabel(tr("账户控制"),this));
75 | rulesLabelLayout->addStretch(1);
76 |
77 | QHBoxLayout* rulesLayout = new QHBoxLayout;
78 | rulesLayout->setContentsMargins(ITEM_LEFT_OFFSET,0,0,0);
79 | rulesLayout->addWidget(_rulesWgt,1);
80 |
81 |
82 | // 地址过滤
83 |
84 | QHBoxLayout* allowLabelLayout = new QHBoxLayout;
85 | allowLabelLayout->addWidget(new QLabel(tr("地址过滤"),this));
86 | allowLabelLayout->addStretch(1);
87 |
88 | QHBoxLayout* allowLayout = new QHBoxLayout;
89 | allowLayout->setContentsMargins(ITEM_LEFT_OFFSET,0,0,0);
90 | allowLayout->addWidget(_allowWgt,1);
91 |
92 |
93 | QVBoxLayout* mainLayout = new QVBoxLayout(this);
94 | mainLayout->setContentsMargins(5,0,5,0);
95 | mainLayout->setSpacing(6);
96 | mainLayout->addSpacing(12);
97 | mainLayout->addLayout(pathLabelLayout);
98 | mainLayout->addLayout(pathLayout);
99 | mainLayout->addSpacing(12);
100 | mainLayout->addLayout(portLabelLayout);
101 | mainLayout->addLayout(portLayout);
102 | mainLayout->addSpacing(12);
103 | mainLayout->addLayout(rulesLabelLayout);
104 | mainLayout->addLayout(rulesLayout, 2);
105 | mainLayout->addSpacing(12);
106 | mainLayout->addLayout(allowLabelLayout);
107 | mainLayout->addLayout(allowLayout, 1);
108 | mainLayout->addSpacing(6);
109 | }
110 |
111 |
--------------------------------------------------------------------------------
/chfsgui/configwgt.h:
--------------------------------------------------------------------------------
1 | #ifndef CONFIGWGT_H
2 | #define CONFIGWGT_H
3 |
4 | class CfgSharedpathWgt;
5 | class CfgAllowip;
6 | class CfgRules;
7 | class CfgPortWgt;
8 |
9 | class ConfigWgt : public QWidget
10 | {
11 | Q_OBJECT
12 | public:
13 | explicit ConfigWgt(QWidget *parent = 0);
14 | void paintEvent(QPaintEvent *) override;
15 |
16 | void createComponents();
17 | void onEditorMode();
18 | void onRunningMode();
19 | private:
20 | CfgSharedpathWgt* _sharedpathWgt;
21 | CfgAllowip* _allowWgt;
22 | CfgRules* _rulesWgt;
23 | CfgPortWgt* _portWgt;
24 | signals:
25 |
26 | public slots:
27 | };
28 |
29 | #endif // CONFIGWGT_H
30 |
--------------------------------------------------------------------------------
/chfsgui/gui.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/image/logo.ico
4 | res/image/play.svg
5 | res/image/stop.svg
6 | res/image/menu.svg
7 | res/image/return.svg
8 | res/image/autoitem.svg
9 | res/image/deleteitem.svg
10 | res/image/newitem.svg
11 | res/image/renameitem.svg
12 | res/image/saveitem.svg
13 | res/image/dir.svg
14 | res/image/mask.svg
15 | res/image/user.svg
16 | res/image/tray_error.png
17 | res/image/tray_running.png
18 | res/image/save.svg
19 |
20 |
21 |
--------------------------------------------------------------------------------
/chfsgui/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include "processdecorator.h"
7 | #include "qtsingleapplication/qtsingleapplication.h"
8 | #include
9 | #include
10 |
11 | QString logPathRoot;
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | QtSingleApplication a(argc, argv);
16 | if (a.sendMessage("Wake up!"))
17 | return 0;
18 |
19 | ProcessDecorator pd;
20 | QString plantResult = pd.makeCHFS();
21 | if(plantResult.isEmpty()==false){
22 | QMessageBox::critical(nullptr,QObject::tr("错误"),plantResult);
23 | return -1;
24 | }
25 |
26 |
27 | //日志目录
28 |
29 | logPathRoot = QStandardPaths::standardLocations(QStandardPaths::AppLocalDataLocation)[0];
30 | QDir().mkpath(logPathRoot);
31 |
32 |
33 | // set stylesheet
34 | QFile file(":/qss/flatblack.css");
35 | file.open(QFile::ReadOnly | QFile::Text);
36 | QTextStream stream(&file);
37 | a.setStyleSheet(stream.readAll());
38 |
39 | MainWindow::instance().setVisible( !(argc>=2 && QString(argv[1]).contains("auto")) );
40 | QObject::connect(&a, SIGNAL(messageReceived(const QString&)), &MainWindow::instance(), SLOT(onShowWindow()));
41 |
42 | return a.exec();
43 | }
44 |
--------------------------------------------------------------------------------
/chfsgui/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include "precompile.h"
3 | #include
4 | #include
5 | #include "toolbar.h"
6 | #include "configwgt.h"
7 | #include "monitorwgt.h"
8 | #include
9 | #include
10 | #include
11 | #include
12 |
13 | QProcess g_chfsProcess;
14 | SomeActions someActions;
15 | QSettings g_settings(APPDOMAIN, APPKEY);
16 |
17 |
18 | void setAppAutorun(bool isAuto)
19 | {
20 | if( isAuto ){
21 | QSettings(REG_RUN,QSettings::NativeFormat).setValue(APPKEY,QString("\"%1\" /auto").arg(
22 | QDir::toNativeSeparators(QApplication::applicationFilePath())
23 | )
24 | );
25 | }else{
26 | QSettings(REG_RUN,QSettings::NativeFormat).remove(APPKEY);
27 | }
28 | }
29 |
30 | #define SETWINDOWSIZE() setFixedSize(850,550)
31 | MainWindow::MainWindow(QWidget *parent)
32 | : QFrame(parent)
33 | {
34 | setWindowIcon(QIcon(":/APP_LOGO"));
35 | setWindowTitle("Cute HTTP File Server");
36 | SETWINDOWSIZE(); //阻止界面初始化时让主窗口身材变形
37 |
38 |
39 | //
40 | // create contents
41 | //
42 |
43 | createContents();
44 | createActions();
45 |
46 | //
47 | // connections
48 | //
49 |
50 | connect(ui.toolbarWgt,&Toolbar::sigEditorMode,this,&MainWindow::onEditorMode);
51 | connect(ui.toolbarWgt,&Toolbar::sigRunningMode,this,&MainWindow::onRunningMode);
52 | connect(ui.toolbarWgt,&Toolbar::sigFireLaunch,this,&MainWindow::fireLaunch);
53 | connect(ui.toolbarWgt,&Toolbar::sigQuit,this,&MainWindow::close);
54 | connect(ui.toolbarWgt,&Toolbar::sigAutorunSwitching,this,[=](bool isAuto){
55 | setAppAutorun(isAuto);
56 | QSettings(APPDOMAIN, QString(APPKEY)+"/run").setValue(AUTORUNFORBIDDEN,!isAuto);
57 | });
58 |
59 |
60 | //
61 | // 初始化
62 | //
63 |
64 | onEditorMode();
65 |
66 | //是否启用开机自运行
67 | setAppAutorun( !QSettings(APPDOMAIN, QString(APPKEY)+"/run").value(AUTORUNFORBIDDEN).toBool() );
68 |
69 |
70 | //
71 | // 设置窗口尺寸
72 | //
73 |
74 | SETWINDOWSIZE();
75 | setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
76 | }
77 |
78 | MainWindow::~MainWindow()
79 | {
80 |
81 | }
82 |
83 | void MainWindow::closeEvent(QCloseEvent * event)
84 | {
85 | if( sender() ){
86 | event->accept();
87 | g_chfsProcess.kill();
88 | g_chfsProcess.waitForFinished();
89 | }else{
90 | event->ignore();
91 | hide();
92 | }
93 | }
94 |
95 | void MainWindow::createActions()
96 | {
97 | QMenu* trayMenu = new QMenu;
98 | trayMenu->addAction(tr("显示主窗口"),this,SLOT(onShowWindow()));
99 | trayMenu->addSeparator();
100 | trayMenu->addAction(someActions.autoRunAction);
101 | trayMenu->addSeparator();
102 | trayMenu->addAction(tr("退出"),this,SLOT(close()));
103 |
104 | ui.trayicon = new QSystemTrayIcon(QIcon(":/APP_LOGO"),this);
105 | connect(ui.trayicon,&QSystemTrayIcon::activated,this,[=](QSystemTrayIcon::ActivationReason r){
106 | if( r == QSystemTrayIcon::DoubleClick )
107 | onShowWindow();
108 | });
109 | ui.trayicon->setContextMenu(trayMenu);
110 | ui.trayicon->show();
111 |
112 | void (QProcess::* signalFinished)(int,QProcess::ExitStatus) = &QProcess::finished;
113 | connect(&g_chfsProcess,signalFinished,this,[=](){
114 | if( g_chfsProcess.exitStatus() == QProcess::CrashExit){ //手动KILL进程
115 | }else{
116 | ui.trayicon->setIcon(QIcon(":/res/image/tray_error.png"));
117 | }
118 | });
119 | }
120 |
121 | void MainWindow::onShowWindow()
122 | {
123 | showNormal();
124 | activateWindow();
125 | raise();
126 | }
127 |
128 | void MainWindow::createContents()
129 | {
130 | ui.toolbarWgt = new Toolbar(this);
131 | ui.configWgt = new ConfigWgt(this);
132 | ui.monitorWgt = new MonitorWgt(this);
133 |
134 | ui.contentLayout = new QHBoxLayout;
135 | ui.contentLayout->setContentsMargins(10,10,10,10);
136 | ui.contentLayout->setSpacing(12);
137 | ui.contentLayout->addWidget(ui.configWgt,4);
138 | ui.contentLayout->addWidget(ui.monitorWgt,3);
139 |
140 | QVBoxLayout* mainLayout = new QVBoxLayout(this);
141 | mainLayout->setMargin(0);
142 | mainLayout->setSpacing(0);
143 | mainLayout->addWidget(ui.toolbarWgt);
144 | mainLayout->addLayout(ui.contentLayout);
145 | }
146 |
147 |
148 | void MainWindow::fireLaunch()
149 | {
150 | QStringList arguments;
151 | arguments << QString("--path=%1").arg(g_settings.value(PARAM_PATH).toString());
152 | arguments << QString("--port=%1").arg(g_settings.value(PARAM_PORT).toString());
153 | arguments << QString("--allow=%1").arg(g_settings.value(PARAM_ALLOW).toString());
154 | arguments << QString("--rule=%1").arg(g_settings.value(PARAM_RULE).toString());
155 | extern QString logPathRoot;
156 | arguments << QString("--log=%1").arg(logPathRoot);
157 | g_chfsProcess.start(g_chfsfile,arguments);
158 | }
159 |
160 | void MainWindow::onEditorMode()
161 | {
162 | ui.configWgt->onEditorMode();
163 | ui.trayicon->setIcon(QIcon(":/APP_LOGO"));
164 | }
165 |
166 | void MainWindow::onRunningMode()
167 | {
168 | ui.configWgt->onRunningMode();
169 | ui.trayicon->setIcon(QIcon(":/res/image/tray_running.png"));
170 | }
171 |
172 |
--------------------------------------------------------------------------------
/chfsgui/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 |
6 |
7 | class Toolbar;
8 | class ConfigWgt;
9 | class MonitorWgt;
10 | class QHBoxLayout;
11 | class QMenu;
12 | class QAction;
13 | class QCloseEvent;
14 | class QSystemTrayIcon;
15 |
16 | struct MainWindowUIComponents{
17 | Toolbar* toolbarWgt;
18 | ConfigWgt* configWgt;
19 | MonitorWgt* monitorWgt;
20 | QHBoxLayout* contentLayout;
21 | QMenu* trayMenu;
22 | QSystemTrayIcon* trayicon;
23 | };
24 |
25 | struct SomeActions{
26 | QAction* autoRunAction;
27 | };
28 |
29 |
30 | class MainWindow : public QFrame
31 | {
32 | Q_OBJECT
33 |
34 | public:
35 | static MainWindow & instance()
36 | {
37 | static MainWindow _instance;
38 | return _instance;
39 | }
40 |
41 | private:
42 | MainWindowUIComponents ui;
43 |
44 | MainWindow(QWidget *parent = 0);
45 | ~MainWindow();
46 |
47 | void closeEvent(QCloseEvent * event) override;
48 |
49 | void createContents();
50 | void createActions();
51 | public slots:
52 | void onEditorMode();
53 | void onRunningMode();
54 | void fireLaunch();
55 | void onShowWindow();
56 | signals:
57 |
58 | };
59 |
60 | #endif // MAINWINDOW_H
61 |
--------------------------------------------------------------------------------
/chfsgui/monitorwgt.cpp:
--------------------------------------------------------------------------------
1 | #include "monitorwgt.h"
2 | #include "precompile.h"
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | LogWidget::LogWidget(QWidget *parent) : QWidget(parent)
9 | {
10 | logList = new QListWidget(this);
11 |
12 | QLabel* logBtn = new QLabel("操作日志:",this);
13 | logBtn->setToolTip("点击打开操作日志目录");
14 | connect(logBtn,&QLabel::linkActivated,[=](){
15 | extern QString logPathRoot;
16 | QDesktopServices::openUrl(QUrl::fromLocalFile(logPathRoot));
17 | });
18 |
19 | QVBoxLayout* mainLayout = new QVBoxLayout(this);
20 | mainLayout->setMargin(0);
21 | mainLayout->setSpacing(2);
22 | mainLayout->addWidget( logBtn );
23 | mainLayout->addWidget( logList );
24 |
25 | createActions();
26 | }
27 |
28 | void LogWidget::contextMenuEvent(QContextMenuEvent *event)
29 | {
30 | menu->exec(event->globalPos());
31 | }
32 |
33 | void LogWidget::createActions()
34 | {
35 | menu = new QMenu;
36 | menu->addAction(tr("清空显示"),this,[=](){
37 | logList->clear();
38 | });
39 | }
40 |
41 | void LogWidget::paintEvent(QPaintEvent *)
42 | {
43 | QStyleOption opt;
44 | opt.init(this);
45 | QPainter p(this);
46 | style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
47 | }
48 |
49 | MonitorWgt::MonitorWgt(QWidget *parent) : QWidget(parent)
50 | {
51 | MyTextBrowser* editorStatus = new MyTextBrowser(this);
52 | editorStatus->setOpenExternalLinks(true);
53 | editorStatus->setOpenLinks(true);
54 | editorStatus->setPlaceholderText(tr("服务未运行"));
55 | editorStatus->setFixedHeight(100);
56 |
57 | LogWidget* editorLog = new LogWidget(this);
58 |
59 | QVBoxLayout* mainLayout = new QVBoxLayout(this);
60 | mainLayout->setContentsMargins(0,0,0,0);
61 | mainLayout->setSpacing(15);
62 | mainLayout->addWidget( editorStatus );
63 | mainLayout->addWidget( editorLog,1 );
64 |
65 | //
66 | // connections
67 | //
68 |
69 | connect(&g_chfsProcess,&QProcess::readyReadStandardOutput,this,[=](){
70 | QString msg = g_chfsProcess.readAllStandardOutput();
71 |
72 | QRegExp urlReg(R"(http://[0-9+|.:]+[0-9])");
73 | for(QString line: msg.split("\n")){
74 | if( line.isEmpty() == false ){
75 | //TODO 使用正则进行校验
76 | if( line.length() > 50 && line[4]=='-' && line[7]=='-' && line[10]==' ' ){
77 | if( editorLog->logList->count()>1000 ){
78 | editorLog->logList->clear();
79 | }
80 | QListWidgetItem* item = new QListWidgetItem(line);
81 | if( line.contains(") removed") ){
82 | item->setForeground( Qt::red );
83 | }else if( line.contains(") rename") || line.contains(") uploaded") || line.contains(") create")){
84 | item->setForeground( Qt::darkYellow );
85 | }
86 | editorLog->logList->addItem( item );
87 | editorLog->logList->scrollToBottom();
88 | }else{
89 | urlReg.indexIn(line);
90 | QStringList urls = urlReg.capturedTexts();
91 | for(auto url: urls){
92 | if( url.isEmpty() == false ){
93 | QString newTextItem = QString(" %2
").arg(url).arg(url);
94 | editorStatus->append( newTextItem );
95 | }
96 | }
97 | }
98 | }
99 | }
100 | });
101 |
102 | connect(&g_chfsProcess,&QProcess::readyReadStandardError,this,[=](){
103 | editorStatus->append( QString("") + g_chfsProcess.readAllStandardError() + QString("") );
104 | });
105 |
106 | connect(&g_chfsProcess,&QProcess::started,this,[=](){
107 | editorStatus->clear();
108 | editorLog->logList->clear();
109 | });
110 |
111 | connect(&g_chfsProcess,static_cast(&QProcess::finished),[=](int , QProcess::ExitStatus exitStatus){
112 | if( exitStatus == QProcess::CrashExit ){
113 | editorStatus->clear();
114 | editorLog->logList->clear();
115 | }
116 | });
117 | }
118 |
119 | void MonitorWgt::paintEvent(QPaintEvent *)
120 | {
121 | QStyleOption opt;
122 | opt.init(this);
123 | QPainter p(this);
124 | style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
125 | }
126 |
--------------------------------------------------------------------------------
/chfsgui/monitorwgt.h:
--------------------------------------------------------------------------------
1 | #ifndef MONITORWGT_H
2 | #define MONITORWGT_H
3 |
4 | #include "uicomponents/qrpopup.h"
5 | #include
6 | #include
7 | #include
8 |
9 | class MyTextBrowser : public QTextBrowser
10 | {
11 | Q_OBJECT
12 | public:
13 | explicit MyTextBrowser(QWidget *parent = 0):QTextBrowser(parent)
14 | {
15 | }
16 |
17 | void mouseMoveEvent(QMouseEvent * e) override
18 | {
19 | QTextBrowser::mouseMoveEvent(e);
20 |
21 | QString url = anchorAt(e->pos());
22 | if( url.isEmpty() ){//关闭QR
23 | QRPopup::instance().hide();
24 | }else{
25 | if( _oldAnchor != url ){//更新QR
26 | QRPopup::instance().encode(url);
27 | }
28 | //移动QR
29 | QRPopup::instance().setGeometry(QRect(e->globalPos()+QPoint(16,16),QRPopup::instance().size()));
30 | QRPopup::instance().show();
31 | }
32 |
33 | _oldAnchor = url;
34 | }
35 |
36 | void mouseReleaseEvent(QMouseEvent * e) override
37 | {
38 | QTextBrowser::mouseReleaseEvent(e);
39 |
40 | QRPopup::instance().hide();
41 | _oldAnchor = "";
42 | }
43 | private:
44 | QString _oldAnchor;
45 | signals:
46 |
47 | public slots:
48 | };
49 |
50 |
51 | class QMenu;
52 | class LogWidget : public QWidget
53 | {
54 | Q_OBJECT
55 | public:
56 | explicit LogWidget(QWidget *parent = 0);
57 | void paintEvent(QPaintEvent *) override;
58 | void contextMenuEvent(QContextMenuEvent *event) override;
59 | QListWidget* logList;
60 | private:
61 | void createActions();
62 | QMenu* menu;
63 | signals:
64 |
65 | public slots:
66 |
67 | };
68 |
69 |
70 | class MonitorWgt : public QWidget
71 | {
72 | Q_OBJECT
73 | public:
74 | explicit MonitorWgt(QWidget *parent = 0);
75 | void paintEvent(QPaintEvent *) override;
76 | signals:
77 |
78 | public slots:
79 | };
80 |
81 | #endif // MONITORWGT_H
82 |
--------------------------------------------------------------------------------
/chfsgui/precompile.h:
--------------------------------------------------------------------------------
1 | #ifndef PRECOMPLIE_H
2 | #define PRECOMPLIE_H
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 |
17 | #define REG_RUN "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"
18 | #define APPKEY "chfsgui"
19 | #define APPDOMAIN "iscute.cn"
20 | #define AUTORUNFORBIDDEN "forbidden"
21 |
22 | #define PARAM_PATH "PATH"
23 | #define PARAM_PORT "PORT"
24 | #define PARAM_ALLOW "ALLOW"
25 | #define PARAM_RULE "RULE"
26 | #define PARAM_AUTO_LAUNCHE "AUTO"
27 | #define GUESTUSER "_-_guestuser_-_"
28 | #define ROOTPATH "/"
29 |
30 | extern QString g_chfsfile;
31 | extern QProcess g_chfsProcess;
32 | extern QSettings g_settings;
33 |
34 | #endif // PRECOMPLIE_H
35 |
36 |
--------------------------------------------------------------------------------
/chfsgui/processdecorator.cpp:
--------------------------------------------------------------------------------
1 | #include "processdecorator.h"
2 | #include
3 | #include
4 | #include
5 |
6 | QString g_chfsfile;
7 |
8 | ProcessDecorator::ProcessDecorator(QObject *parent) : QObject(parent)
9 | {
10 |
11 | }
12 |
13 | ProcessDecorator::~ProcessDecorator()
14 | {
15 | clearCHFS();
16 | }
17 |
18 | QString ProcessDecorator::makeCHFS()const
19 | {
20 | QString res;
21 |
22 | QString chfs = QDir::cleanPath(
23 | QDir::tempPath()+
24 | QDir::separator()+
25 | "chfs.exe" //QUuid::createUuid().toString()
26 | );
27 |
28 | QFile::remove(chfs);
29 | QFile::copy(":/chfs_resource/chfs.exe",chfs);
30 | QFile::setPermissions(chfs,QFileDevice::ReadOwner | QFileDevice::WriteOwner | QFileDevice::ExeOwner |
31 | QFileDevice::ReadUser | QFileDevice::WriteUser | QFileDevice::ExeUser |
32 | QFileDevice::ReadOther | QFileDevice::WriteOther | QFileDevice::ExeOther);
33 | g_chfsfile = chfs;
34 |
35 | return res;
36 | }
37 |
38 |
39 |
40 | void ProcessDecorator::clearCHFS()const
41 | {
42 | QFile::remove(g_chfsfile);
43 | }
44 |
45 |
--------------------------------------------------------------------------------
/chfsgui/processdecorator.h:
--------------------------------------------------------------------------------
1 | #ifndef PROCESSDECORATOR_H
2 | #define PROCESSDECORATOR_H
3 | #include
4 |
5 | class ProcessDecorator : public QObject
6 | {
7 | Q_OBJECT
8 | public:
9 | explicit ProcessDecorator(QObject *parent = 0);
10 | ~ProcessDecorator();
11 |
12 | QString makeCHFS()const;
13 | void clearCHFS()const;
14 | signals:
15 |
16 | public slots:
17 | };
18 |
19 | #endif // PROCESSDECORATOR_H
20 |
--------------------------------------------------------------------------------
/chfsgui/qtsingleapplication/qtlocalpeer.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | **
3 | ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4 | ** Contact: http://www.qt-project.org/legal
5 | **
6 | ** This file is part of the Qt Solutions component.
7 | **
8 | ** $QT_BEGIN_LICENSE:BSD$
9 | ** You may use this file under the terms of the BSD license as follows:
10 | **
11 | ** "Redistribution and use in source and binary forms, with or without
12 | ** modification, are permitted provided that the following conditions are
13 | ** met:
14 | ** * Redistributions of source code must retain the above copyright
15 | ** notice, this list of conditions and the following disclaimer.
16 | ** * Redistributions in binary form must reproduce the above copyright
17 | ** notice, this list of conditions and the following disclaimer in
18 | ** the documentation and/or other materials provided with the
19 | ** distribution.
20 | ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21 | ** of its contributors may be used to endorse or promote products derived
22 | ** from this software without specific prior written permission.
23 | **
24 | **
25 | ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 | ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 | ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 | ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 | ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 | ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 | ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 | ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 | ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 | ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 | **
37 | ** $QT_END_LICENSE$
38 | **
39 | ****************************************************************************/
40 |
41 | #ifndef QTLOCALPEER_H
42 | #define QTLOCALPEER_H
43 |
44 | #include
45 | #include
46 | #include
47 |
48 | #include "qtlockedfile.h"
49 |
50 | class QtLocalPeer : public QObject
51 | {
52 | Q_OBJECT
53 |
54 | public:
55 | QtLocalPeer(QObject *parent = 0, const QString &appId = QString());
56 | bool isClient();
57 | bool sendMessage(const QString &message, int timeout);
58 | QString applicationId() const
59 | { return id; }
60 |
61 | Q_SIGNALS:
62 | void messageReceived(const QString &message);
63 |
64 | protected Q_SLOTS:
65 | void receiveConnection();
66 |
67 | protected:
68 | QString id;
69 | QString socketName;
70 | QLocalServer* server;
71 | QtLP_Private::QtLockedFile lockFile;
72 |
73 | private:
74 | static const char* ack;
75 | };
76 |
77 | #endif // QTLOCALPEER_H
78 |
--------------------------------------------------------------------------------
/chfsgui/qtsingleapplication/qtlockedfile.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | **
3 | ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4 | ** Contact: http://www.qt-project.org/legal
5 | **
6 | ** This file is part of the Qt Solutions component.
7 | **
8 | ** $QT_BEGIN_LICENSE:BSD$
9 | ** You may use this file under the terms of the BSD license as follows:
10 | **
11 | ** "Redistribution and use in source and binary forms, with or without
12 | ** modification, are permitted provided that the following conditions are
13 | ** met:
14 | ** * Redistributions of source code must retain the above copyright
15 | ** notice, this list of conditions and the following disclaimer.
16 | ** * Redistributions in binary form must reproduce the above copyright
17 | ** notice, this list of conditions and the following disclaimer in
18 | ** the documentation and/or other materials provided with the
19 | ** distribution.
20 | ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21 | ** of its contributors may be used to endorse or promote products derived
22 | ** from this software without specific prior written permission.
23 | **
24 | **
25 | ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 | ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 | ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 | ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 | ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 | ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 | ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 | ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 | ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 | ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 | **
37 | ** $QT_END_LICENSE$
38 | **
39 | ****************************************************************************/
40 |
41 | #ifndef QTLOCKEDFILE_H
42 | #define QTLOCKEDFILE_H
43 |
44 | #include
45 | #ifdef Q_OS_WIN
46 | #include
47 | #endif
48 |
49 | #if defined(Q_OS_WIN)
50 | # if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT)
51 | # define QT_QTLOCKEDFILE_EXPORT
52 | # elif defined(QT_QTLOCKEDFILE_IMPORT)
53 | # if defined(QT_QTLOCKEDFILE_EXPORT)
54 | # undef QT_QTLOCKEDFILE_EXPORT
55 | # endif
56 | # define QT_QTLOCKEDFILE_EXPORT __declspec(dllimport)
57 | # elif defined(QT_QTLOCKEDFILE_EXPORT)
58 | # undef QT_QTLOCKEDFILE_EXPORT
59 | # define QT_QTLOCKEDFILE_EXPORT __declspec(dllexport)
60 | # endif
61 | #else
62 | # define QT_QTLOCKEDFILE_EXPORT
63 | #endif
64 |
65 | namespace QtLP_Private {
66 |
67 | class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile
68 | {
69 | public:
70 | enum LockMode { NoLock = 0, ReadLock, WriteLock };
71 |
72 | QtLockedFile();
73 | QtLockedFile(const QString &name);
74 | ~QtLockedFile();
75 |
76 | bool open(OpenMode mode);
77 |
78 | bool lock(LockMode mode, bool block = true);
79 | bool unlock();
80 | bool isLocked() const;
81 | LockMode lockMode() const;
82 |
83 | private:
84 | #ifdef Q_OS_WIN
85 | Qt::HANDLE wmutex;
86 | Qt::HANDLE rmutex;
87 | QVector rmutexes;
88 | QString mutexname;
89 |
90 | Qt::HANDLE getMutexHandle(int idx, bool doCreate);
91 | bool waitMutex(Qt::HANDLE mutex, bool doBlock);
92 |
93 | #endif
94 | LockMode m_lock_mode;
95 | };
96 | }
97 | #endif
98 |
--------------------------------------------------------------------------------
/chfsgui/qtsingleapplication/qtlockedfile_unix.cpp:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | **
3 | ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4 | ** Contact: http://www.qt-project.org/legal
5 | **
6 | ** This file is part of the Qt Solutions component.
7 | **
8 | ** $QT_BEGIN_LICENSE:BSD$
9 | ** You may use this file under the terms of the BSD license as follows:
10 | **
11 | ** "Redistribution and use in source and binary forms, with or without
12 | ** modification, are permitted provided that the following conditions are
13 | ** met:
14 | ** * Redistributions of source code must retain the above copyright
15 | ** notice, this list of conditions and the following disclaimer.
16 | ** * Redistributions in binary form must reproduce the above copyright
17 | ** notice, this list of conditions and the following disclaimer in
18 | ** the documentation and/or other materials provided with the
19 | ** distribution.
20 | ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21 | ** of its contributors may be used to endorse or promote products derived
22 | ** from this software without specific prior written permission.
23 | **
24 | **
25 | ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 | ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 | ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 | ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 | ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 | ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 | ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 | ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 | ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 | ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 | **
37 | ** $QT_END_LICENSE$
38 | **
39 | ****************************************************************************/
40 |
41 | #include
42 | #include
43 | #include
44 | #include
45 |
46 | #include "qtlockedfile.h"
47 |
48 | bool QtLockedFile::lock(LockMode mode, bool block)
49 | {
50 | if (!isOpen()) {
51 | qWarning("QtLockedFile::lock(): file is not opened");
52 | return false;
53 | }
54 |
55 | if (mode == NoLock)
56 | return unlock();
57 |
58 | if (mode == m_lock_mode)
59 | return true;
60 |
61 | if (m_lock_mode != NoLock)
62 | unlock();
63 |
64 | struct flock fl;
65 | fl.l_whence = SEEK_SET;
66 | fl.l_start = 0;
67 | fl.l_len = 0;
68 | fl.l_type = (mode == ReadLock) ? F_RDLCK : F_WRLCK;
69 | int cmd = block ? F_SETLKW : F_SETLK;
70 | int ret = fcntl(handle(), cmd, &fl);
71 |
72 | if (ret == -1) {
73 | if (errno != EINTR && errno != EAGAIN)
74 | qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno));
75 | return false;
76 | }
77 |
78 |
79 | m_lock_mode = mode;
80 | return true;
81 | }
82 |
83 |
84 | bool QtLockedFile::unlock()
85 | {
86 | if (!isOpen()) {
87 | qWarning("QtLockedFile::unlock(): file is not opened");
88 | return false;
89 | }
90 |
91 | if (!isLocked())
92 | return true;
93 |
94 | struct flock fl;
95 | fl.l_whence = SEEK_SET;
96 | fl.l_start = 0;
97 | fl.l_len = 0;
98 | fl.l_type = F_UNLCK;
99 | int ret = fcntl(handle(), F_SETLKW, &fl);
100 |
101 | if (ret == -1) {
102 | qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno));
103 | return false;
104 | }
105 |
106 | m_lock_mode = NoLock;
107 | return true;
108 | }
109 |
110 | QtLockedFile::~QtLockedFile()
111 | {
112 | if (isOpen())
113 | unlock();
114 | }
115 |
116 |
--------------------------------------------------------------------------------
/chfsgui/qtsingleapplication/qtsingleapplication.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | **
3 | ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4 | ** Contact: http://www.qt-project.org/legal
5 | **
6 | ** This file is part of the Qt Solutions component.
7 | **
8 | ** $QT_BEGIN_LICENSE:BSD$
9 | ** You may use this file under the terms of the BSD license as follows:
10 | **
11 | ** "Redistribution and use in source and binary forms, with or without
12 | ** modification, are permitted provided that the following conditions are
13 | ** met:
14 | ** * Redistributions of source code must retain the above copyright
15 | ** notice, this list of conditions and the following disclaimer.
16 | ** * Redistributions in binary form must reproduce the above copyright
17 | ** notice, this list of conditions and the following disclaimer in
18 | ** the documentation and/or other materials provided with the
19 | ** distribution.
20 | ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21 | ** of its contributors may be used to endorse or promote products derived
22 | ** from this software without specific prior written permission.
23 | **
24 | **
25 | ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 | ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 | ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 | ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 | ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 | ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 | ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 | ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 | ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 | ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 | **
37 | ** $QT_END_LICENSE$
38 | **
39 | ****************************************************************************/
40 |
41 | #ifndef QTSINGLEAPPLICATION_H
42 | #define QTSINGLEAPPLICATION_H
43 |
44 | #include
45 |
46 | class QtLocalPeer;
47 |
48 | #if defined(Q_OS_WIN)
49 | # if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT)
50 | # define QT_QTSINGLEAPPLICATION_EXPORT
51 | # elif defined(QT_QTSINGLEAPPLICATION_IMPORT)
52 | # if defined(QT_QTSINGLEAPPLICATION_EXPORT)
53 | # undef QT_QTSINGLEAPPLICATION_EXPORT
54 | # endif
55 | # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllimport)
56 | # elif defined(QT_QTSINGLEAPPLICATION_EXPORT)
57 | # undef QT_QTSINGLEAPPLICATION_EXPORT
58 | # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllexport)
59 | # endif
60 | #else
61 | # define QT_QTSINGLEAPPLICATION_EXPORT
62 | #endif
63 |
64 | class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication
65 | {
66 | Q_OBJECT
67 |
68 | public:
69 | QtSingleApplication(int &argc, char **argv, bool GUIenabled = true);
70 | QtSingleApplication(const QString &id, int &argc, char **argv);
71 | #if QT_VERSION < 0x050000
72 | QtSingleApplication(int &argc, char **argv, Type type);
73 | # if defined(Q_WS_X11)
74 | QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
75 | QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0);
76 | QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
77 | # endif // Q_WS_X11
78 | #endif // QT_VERSION < 0x050000
79 |
80 | bool isRunning();
81 | QString id() const;
82 |
83 | void setActivationWindow(QWidget* aw, bool activateOnMessage = true);
84 | QWidget* activationWindow() const;
85 |
86 | // Obsolete:
87 | void initialize(bool dummy = true)
88 | { isRunning(); Q_UNUSED(dummy) }
89 |
90 | public Q_SLOTS:
91 | bool sendMessage(const QString &message, int timeout = 5000);
92 | void activateWindow();
93 |
94 |
95 | Q_SIGNALS:
96 | void messageReceived(const QString &message);
97 |
98 |
99 | private:
100 | void sysInit(const QString &appId = QString());
101 | QtLocalPeer *peer;
102 | QWidget *actWin;
103 | };
104 |
105 | #endif // QTSINGLEAPPLICATION_H
106 |
--------------------------------------------------------------------------------
/chfsgui/res/image/autoitem.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/deleteitem.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/dir.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/res/image/logo.ico
--------------------------------------------------------------------------------
/chfsgui/res/image/mask.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/menu.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/newitem.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/play.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/renameitem.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/return.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/save.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/saveitem.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/stop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/res/image/tray_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/res/image/tray_error.png
--------------------------------------------------------------------------------
/chfsgui/res/image/tray_running.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/res/image/tray_running.png
--------------------------------------------------------------------------------
/chfsgui/res/image/user.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/bf/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/bf/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/black/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/black/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/blue/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/blue/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblack/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblack/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkblue/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkblue/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/darkgray/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/darkgray/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatblack/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatblack/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/flatwhite/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/flatwhite/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/gray/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/gray/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblack/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblack/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightblue/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightblue/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/lightgray/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/lightgray/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/psblack/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/psblack/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/silvery/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/silvery/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/add_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/add_bottom.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/add_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/add_left.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/add_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/add_right.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/add_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/add_top.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/branch_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/branch_close.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/branch_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/branch_open.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/calendar_nextmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/calendar_nextmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/calendar_prevmonth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/calendar_prevmonth.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/checkbox_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/checkbox_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/checkbox_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/checkbox_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/checkbox_parcial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/checkbox_parcial.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/checkbox_parcial_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/checkbox_parcial_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/checkbox_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/checkbox_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/checkbox_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/checkbox_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/radiobutton_checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/radiobutton_checked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/radiobutton_checked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/radiobutton_checked_disable.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/radiobutton_unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/radiobutton_unchecked.png
--------------------------------------------------------------------------------
/chfsgui/skin/qss/test/radiobutton_unchecked_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/chfsgui/skin/qss/test/radiobutton_unchecked_disable.png
--------------------------------------------------------------------------------
/chfsgui/todo.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chfsgui/toolbar.cpp:
--------------------------------------------------------------------------------
1 | #include "toolbar.h"
2 | #include "precompile.h"
3 | #include
4 | #include
5 | #include "mainwindow.h"
6 | #include "aboutdlg.h"
7 | #include
8 | #include
9 |
10 | Toolbar::Toolbar(QWidget *parent) : QWidget(parent)
11 | {
12 | setFixedHeight(50);
13 | setProperty("form","title");
14 |
15 | createContents();
16 | initState();
17 |
18 |
19 | //
20 | // connections
21 | //
22 |
23 | connect(&g_chfsProcess,&QProcess::started,this,[=](){
24 | runningState();
25 | emit sigRunningMode();
26 | });
27 |
28 | void (QProcess::* signalFinished)(int,QProcess::ExitStatus) = &QProcess::finished;
29 | connect(&g_chfsProcess,signalFinished,this,[=](){
30 | initState();
31 | emit sigEditorMode();
32 | });
33 |
34 | connect(_btnPlay,&QToolButton::clicked,this,&Toolbar::sigFireLaunch);
35 | connect(_btnStop,&QToolButton::clicked,this,[=](){
36 | g_chfsProcess.kill();
37 | });
38 |
39 | if( g_settings.value(PARAM_AUTO_LAUNCHE).toBool() ){
40 | QTimer::singleShot(800,[=](){
41 | emit sigFireLaunch();
42 | });
43 | }
44 |
45 | //
46 | // actions
47 | //
48 |
49 | createActions();
50 | }
51 |
52 | void Toolbar::createActions()
53 | {
54 | QMenu* menu = new QMenu;
55 |
56 | extern SomeActions someActions;
57 | someActions.autoRunAction = menu->addAction(tr("开机启动"),this,SIGNAL(sigAutorunSwitching(bool)));
58 | someActions.autoRunAction->setCheckable(true);
59 | someActions.autoRunAction->setChecked( !QSettings(APPDOMAIN, QString(APPKEY)+"/run").value(AUTORUNFORBIDDEN).toBool() );
60 |
61 | menu->addSeparator();
62 | QAction* aboutAct = menu->addAction(tr("关于"));
63 | connect(aboutAct,&QAction::triggered,this,[=](){
64 | AboutDlg dlg(this);
65 | dlg.exec();
66 | });
67 | menu->addSeparator();
68 | menu->addAction(tr("退出"),this,SIGNAL(sigQuit()));
69 |
70 | _btnMenu->setMenu(menu);
71 | _btnMenu->setPopupMode(QToolButton::InstantPopup);
72 | }
73 |
74 | void Toolbar::paintEvent(QPaintEvent *)
75 | {
76 | QStyleOption opt;
77 | opt.init(this);
78 | QPainter p(this);
79 | style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
80 | }
81 |
82 | void Toolbar::createContents()
83 | {
84 | const int BTNSIZE = 42;
85 |
86 | _btnPlay = new QToolButton(this);
87 | _btnPlay->setFixedSize(BTNSIZE,BTNSIZE);
88 | _btnPlay->setIcon(QIcon(":/res/image/play.svg"));
89 | _btnPlay->setIconSize(QSize(32,32));
90 | _btnPlay->setToolTip(tr("运行"));
91 |
92 |
93 | _btnStop = new QToolButton(this);
94 | _btnStop->setFixedSize(BTNSIZE,BTNSIZE);
95 | _btnStop->setIcon(QIcon(":/res/image/stop.svg"));
96 | _btnStop->setIconSize(QSize(32,32));
97 | _btnStop->setToolTip(tr("停止运行"));
98 |
99 | _btnSave = new QToolButton(this);
100 | _btnSave->setFixedSize(BTNSIZE,BTNSIZE);
101 | _btnSave->setIcon(QIcon(":/res/image/save.svg"));
102 | _btnSave->setIconSize(QSize(32,32));
103 | _btnSave->setToolTip(tr("将当前配置保存为命令行程序的配置文件"));
104 | connect(_btnSave,&QToolButton::clicked,[=](){
105 | QString fileName = QFileDialog::getSaveFileName(this, tr("保存配置"),"","ini(*.ini);;Text(*.txt);;*(*.*)");
106 | if( fileName.isEmpty() == false ){
107 | QFile file(fileName);
108 | if (!file.open(QIODevice::ReadWrite | QIODevice::Text)){
109 | QMessageBox::critical(this,tr("提示"),tr("保存失败!"));
110 | return;
111 | }
112 |
113 | QTextStream out(&file);
114 | out << "port=" << g_settings.value(PARAM_PORT).toString() << endl;
115 | out << "path=" << g_settings.value(PARAM_PATH).toString() << endl;
116 | out << "allow=" << g_settings.value(PARAM_ALLOW).toString() << endl;
117 | auto rules = g_settings.value(PARAM_RULE).toString().split("|");
118 | for(auto r: rules){
119 | if( r.isEmpty() == false )
120 | out << "rule=" << r << endl;
121 | }
122 | }
123 | });
124 |
125 | _btnMenu = new QToolButton(this);
126 | _btnMenu->setFixedSize(BTNSIZE,BTNSIZE);
127 | _btnMenu->setIcon(QIcon(":/res/image/menu.svg"));
128 | _btnMenu->setIconSize(QSize(32,32));
129 | _btnMenu->setToolTip(tr("菜单"));
130 |
131 | _btnAuto = new QCheckBox(tr("随软件启动运行服务"), this);
132 | _btnAuto->setChecked( g_settings.value(PARAM_AUTO_LAUNCHE).toBool() );
133 | connect(_btnAuto,&QCheckBox::clicked,this,[=](){
134 | g_settings.setValue(PARAM_AUTO_LAUNCHE,_btnAuto->isChecked());
135 | });
136 |
137 |
138 | QHBoxLayout* mainLayout = new QHBoxLayout(this);
139 | mainLayout->setContentsMargins(5,1,5,1);
140 | mainLayout->addWidget(_btnPlay);
141 | mainLayout->addWidget(_btnStop);
142 | mainLayout->addStretch();
143 | mainLayout->addWidget(_btnAuto);
144 | mainLayout->addWidget(_btnSave);
145 | mainLayout->addWidget(_btnMenu);
146 | }
147 |
148 |
149 | void Toolbar::initState()
150 | {
151 | _btnPlay->show();
152 | _btnStop->hide();
153 | }
154 |
155 | void Toolbar::runningState()
156 | {
157 | _btnPlay->hide();
158 | _btnStop->show();
159 | }
160 |
161 | void Toolbar::stopState()
162 | {
163 | _btnPlay->show();
164 | _btnStop->hide();
165 | }
166 |
--------------------------------------------------------------------------------
/chfsgui/toolbar.h:
--------------------------------------------------------------------------------
1 | #ifndef TOOLBAR_H
2 | #define TOOLBAR_H
3 |
4 | #include
5 | class QToolButton;
6 | class QAction;
7 | class QLabel;
8 | class QCheckBox;
9 |
10 |
11 | struct ToolbarActions{
12 | QAction* autoRunAction;
13 | QAction* exitAction;
14 | QAction* aboutAction;
15 | };
16 |
17 | class Toolbar : public QWidget
18 | {
19 | Q_OBJECT
20 | public:
21 | explicit Toolbar(QWidget *parent = 0);
22 | void paintEvent(QPaintEvent *) override;
23 |
24 | void createContents();
25 | void initState();
26 | void runningState();
27 | void stopState();
28 | void createActions();
29 | private:
30 | QToolButton* _btnPlay;
31 | QToolButton* _btnStop;
32 | QToolButton* _btnMenu;
33 | QToolButton* _btnSave;
34 | QCheckBox* _btnAuto;
35 | signals:
36 | void sigEditorMode();
37 | void sigRunningMode();
38 | void sigFireLaunch();
39 | void sigAutorunSwitching(bool isAuto);
40 | void sigQuit();
41 | public slots:
42 |
43 | };
44 |
45 | #endif // TOOLBAR_H
46 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/accdlg.h:
--------------------------------------------------------------------------------
1 | #ifndef ACCDLG_H
2 | #define ACCDLG_H
3 |
4 | class QLineEdit;
5 | class QCheckBox;
6 | class QPushButton;
7 | class RuleTableWidget;
8 | class QMenu;
9 | class QAction;
10 |
11 |
12 | struct AccDlgUIComponents{
13 | QLineEdit* editUser;
14 | QLineEdit* editPwd;
15 | QPushButton* btnOK;
16 | QPushButton* _btnCancel;
17 | QCheckBox* cbRead;
18 | QCheckBox* cbWrite;
19 | QCheckBox* cbDelete;
20 | QPushButton* btnNew;
21 | QPushButton* btnRemove;
22 | RuleTableWidget* maskTable;
23 | QMenu* addMenu;
24 | };
25 |
26 | class AccDlg : public QDialog
27 | {
28 | Q_OBJECT
29 | public:
30 |
31 | explicit AccDlg(QString acc = "" /*用来标识是添加还是修改*/, QWidget *parent = 0);
32 |
33 | private:
34 | AccDlgUIComponents ui;
35 | QAction* _chooseAction;
36 | QAction* _typeAction;
37 |
38 | QString _currentKey;
39 | QString _accModify;
40 |
41 | void createContents();
42 | void createMenu();
43 | QString createDirName();
44 | inline bool isAddMode(){return _accModify.isEmpty();}
45 | signals:
46 |
47 | public slots:
48 | void onBtnOK();
49 | };
50 |
51 | #endif // ACCDLG_H
52 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgallowip.h:
--------------------------------------------------------------------------------
1 | #ifndef CFGALLOWIP_H
2 | #define CFGALLOWIP_H
3 | #include "cfgbase.h"
4 | #include
5 |
6 | class QListWidget;
7 | class QRadioButton;
8 | class QPushButton;
9 |
10 | #define NEWALLOWIP "newip"
11 | #define MODALLOWIP "modip"
12 |
13 | class AllowipDlg : public QDialog
14 | {
15 | Q_OBJECT
16 | public:
17 | explicit AllowipDlg(QString mode, QString oldValue, QWidget *parent = 0);
18 |
19 | QString ips;
20 | protected:
21 |
22 | private:
23 | QString _mode;
24 | signals:
25 |
26 | public slots:
27 | };
28 |
29 | class CfgAllowip : public CfgBase
30 | {
31 | Q_OBJECT
32 | public:
33 | explicit CfgAllowip(QWidget *parent = 0);
34 |
35 | virtual void onEditorMode();
36 | virtual void onRunningMode();
37 | protected:
38 | QString collectAllItems();
39 | void onModeChanged(bool isEditor);
40 | void initIPs();
41 | private:
42 | QListWidget* _listWgt;
43 |
44 | QRadioButton* _btnBlack;
45 | QRadioButton* _btnWhite;
46 | QPushButton* _btnNew;
47 | QPushButton* _btnRemove;
48 | QPushButton* _btnModify;
49 | QPushButton* _btnReset;
50 | signals:
51 |
52 | public slots:
53 | };
54 |
55 | #endif // CFGALLOWIP_H
56 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgbase.cpp:
--------------------------------------------------------------------------------
1 | #include "cfgbase.h"
2 |
3 | CfgBase::CfgBase(QWidget *parent) : QWidget(parent)
4 | {
5 |
6 | }
7 |
8 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgbase.h:
--------------------------------------------------------------------------------
1 | #ifndef CFGBASE_H
2 | #define CFGBASE_H
3 |
4 |
5 | class CfgBase : public QWidget
6 | {
7 | Q_OBJECT
8 | public:
9 | explicit CfgBase(QWidget *parent = 0);
10 |
11 | virtual void onEditorMode() = 0;
12 | virtual void onRunningMode() = 0;
13 | protected:
14 |
15 | signals:
16 |
17 | public slots:
18 | };
19 |
20 | #endif // CFGBASE_H
21 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgportwgt.cpp:
--------------------------------------------------------------------------------
1 | #include "cfgportwgt.h"
2 | #include "precompile.h"
3 |
4 |
5 | CfgPortWgt::CfgPortWgt(QWidget *parent) : CfgBase(parent)
6 | {
7 | _editPort = new QLineEdit(this);
8 | _editPort->setFixedWidth(48);
9 | _editPort->setInputMask("99999");
10 | QString port = g_settings.value(PARAM_PORT).toString();
11 | if( port.isEmpty() ){
12 | port = "80";
13 | g_settings.setValue(PARAM_PORT, port);
14 | }
15 | _editPort->setText( port );
16 |
17 | QVBoxLayout* mainLayout = new QVBoxLayout(this);
18 | mainLayout->setMargin(0);
19 | mainLayout->addWidget( _editPort );
20 |
21 |
22 | connect(_editPort,&QLineEdit::textEdited,this,[=](){
23 | g_settings.setValue(PARAM_PORT, _editPort->text());
24 | });
25 | }
26 |
27 | void CfgPortWgt::onEditorMode()
28 | {
29 | _editPort->setEnabled(true);
30 | }
31 |
32 | void CfgPortWgt::onRunningMode()
33 | {
34 | _editPort->setEnabled(false);
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgportwgt.h:
--------------------------------------------------------------------------------
1 | #ifndef CFGPORTWGT_H
2 | #define CFGPORTWGT_H
3 | #include "cfgbase.h"
4 |
5 | class QLineEdit;
6 |
7 | class CfgPortWgt : public CfgBase
8 | {
9 | Q_OBJECT
10 | public:
11 | explicit CfgPortWgt(QWidget *parent = 0);
12 |
13 | virtual void onEditorMode();
14 | virtual void onRunningMode();
15 |
16 | private:
17 | QLineEdit* _editPort;
18 | signals:
19 |
20 | public slots:
21 | };
22 |
23 | #endif // CFGPORTWGT_H
24 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgrules.cpp:
--------------------------------------------------------------------------------
1 | #include "cfgrules.h"
2 | #include "precompile.h"
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include "utilities.h"
11 | #include "accdlg.h"
12 |
13 |
14 | CfgRules::CfgRules(QWidget *parent) : CfgBase(parent)
15 | {
16 | createContents();
17 |
18 |
19 | //
20 | // connections
21 | //
22 |
23 | connect(_accList, &QListWidget::currentRowChanged,this,&CfgRules::accChanged);
24 | connect(_btnAccNew,&QPushButton::clicked,this,[=](){
25 | AccDlg dlg("",this);
26 | dlg.exec();
27 |
28 | int oldRow = _accList->currentRow();
29 | initAccList();
30 | _accList->setCurrentRow( oldRow );
31 | });
32 | connect(_btnAccModify,&QPushButton::clicked,this,[=](){
33 | auto item = _accList->currentItem();
34 | if(item){
35 | AccDlg dlg(item->data(Qt::UserRole).toString(),this);
36 | dlg.exec();
37 |
38 | int oldRow = _accList->currentRow();
39 | initAccList();
40 | _accList->setCurrentRow( oldRow );
41 | }
42 | });
43 | connect(_btnAccRemove,&QPushButton::clicked,[=](){
44 | auto item = _accList->currentItem();
45 | auto currentUser = item->data(Qt::UserRole).toString();
46 | if(item && currentUser!=GUESTUSER){
47 | QMessageBox::StandardButton chosen = QMessageBox::question(this,tr("警告"),tr("确定删除所选账户?"));
48 | if( chosen == QMessageBox::Yes ){
49 | delete _accList->takeItem(_accList->currentRow());
50 | removeUser(currentUser);
51 | }
52 | }
53 | });
54 |
55 | // 初始化
56 |
57 | initAccList();
58 | }
59 |
60 | void CfgRules::initAccList()
61 | {
62 | _accList->clear();
63 | auto accs = getAccsFromRulestr();
64 |
65 | QListWidgetItem* item = new QListWidgetItem(tr("访客"));
66 | item->setData(Qt::UserRole,GUESTUSER);
67 | _accList->addItem(item);
68 |
69 | for(auto i: accs.keys()){
70 | if( i != GUESTUSER){
71 | QListWidgetItem* item = new QListWidgetItem(i);
72 | item->setData(Qt::UserRole,i);
73 | _accList->addItem(item);
74 | }
75 | }
76 |
77 | _accList->setCurrentRow(0);
78 | }
79 |
80 | void CfgRules::accChanged()
81 | {
82 | _accessTree->clear();
83 |
84 | auto item = _accList->currentItem();
85 | if(item){
86 | auto rules = getRulesFromRulestr(item->data(Qt::UserRole).toString());
87 |
88 | QTreeWidgetItem *root = new QTreeWidgetItem((QTreeWidget*)0,QStringList{ROOTPATH,rule2humanbeings(rules[ROOTPATH])});
89 | auto i = rules.constBegin();
90 | while (i != rules.constEnd()) {
91 | QString dir = i.key();
92 | QString mask = i.value();
93 | if( dir != ROOTPATH ){
94 | root->addChild( new QTreeWidgetItem(root,QStringList{dir,rule2humanbeings(mask)}) );
95 | }
96 | ++i;
97 | }
98 | _accessTree->addTopLevelItem( root );
99 |
100 | _accessTree->expandAll();
101 | resizeTreeColumn();
102 | }
103 | }
104 |
105 | void CfgRules::resizeEvent(QResizeEvent * event)
106 | {
107 | resizeTreeColumn();
108 | CfgBase::resizeEvent(event);
109 | }
110 |
111 | void CfgRules::resizeTreeColumn()
112 | {
113 | _accessTree->resizeColumnToContents(0);
114 | _accessTree->setColumnWidth(0, _accessTree->columnWidth(0)+20);
115 | }
116 |
117 | void CfgRules::createContents()
118 | {
119 | _accList = new QListWidget(this);
120 | QVBoxLayout* accLayout = new QVBoxLayout;
121 | accLayout->setMargin(0);
122 | accLayout->addWidget( new QLabel(tr("账户:"),this) );
123 | accLayout->addWidget( _accList, 1 );
124 |
125 | _btnAccNew = new QPushButton(tr("添加"),this);
126 | _btnAccRemove = new QPushButton(tr("删除"),this);
127 | _btnAccModify = new QPushButton(tr("修改"),this);
128 | QVBoxLayout* ctrlAccLayout = new QVBoxLayout;
129 | ctrlAccLayout->setMargin(0);
130 | ctrlAccLayout->addSpacing(21);//暂时就这样简单处理
131 | ctrlAccLayout->addWidget( _btnAccNew );
132 | ctrlAccLayout->addWidget( _btnAccRemove );
133 | ctrlAccLayout->addWidget( _btnAccModify );
134 | ctrlAccLayout->addStretch(1);
135 |
136 | _accessTree = new QTreeWidget(this);
137 | _accessTree->setItemsExpandable(false);
138 | _accessTree->setColumnCount(2);
139 | QTreeWidgetItem* itemHeader = new QTreeWidgetItem(QStringList{tr("目录"),tr("权限")});
140 | itemHeader->setIcon(0,QIcon(":/res/image/dir.svg"));
141 | itemHeader->setIcon(1,QIcon(":/res/image/mask.svg"));
142 | _accessTree->setHeaderItem( itemHeader );
143 | _accessTree->setEditTriggers(QAbstractItemView::NoEditTriggers);
144 |
145 | QHBoxLayout* mainLayout = new QHBoxLayout(this);
146 | mainLayout->setMargin(0);
147 | mainLayout->addLayout( accLayout, 4 );
148 | mainLayout->addLayout( ctrlAccLayout );
149 | mainLayout->addStretch(2);
150 | mainLayout->addWidget( _accessTree, 10 );
151 | mainLayout->addStretch(1);
152 | }
153 |
154 | void CfgRules::onEditorMode()
155 | {
156 | onModeChanged(true);
157 | }
158 |
159 | void CfgRules::onRunningMode()
160 | {
161 | onModeChanged(false);
162 | }
163 |
164 | void CfgRules::onModeChanged(bool isEditor)
165 | {
166 | _btnAccNew->setVisible(isEditor);
167 | _btnAccRemove->setVisible(isEditor);
168 | _btnAccModify->setVisible(isEditor);
169 | }
170 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgrules.h:
--------------------------------------------------------------------------------
1 | #ifndef CFGRULES_H
2 | #define CFGRULES_H
3 | #include "cfgbase.h"
4 |
5 | class QListWidget;
6 | class QTreeWidget;
7 | class QPushButton;
8 |
9 | class CfgRules : public CfgBase
10 | {
11 | Q_OBJECT
12 | public:
13 | explicit CfgRules(QWidget *parent = 0);
14 | void resizeEvent(QResizeEvent * event);
15 |
16 | virtual void onEditorMode();
17 | virtual void onRunningMode();
18 | private:
19 | QTreeWidget* _accessTree;
20 | QListWidget* _accList;
21 | QPushButton* _btnAccNew;
22 | QPushButton* _btnAccRemove;
23 | QPushButton* _btnAccModify;
24 |
25 | void createContents();
26 | void resizeTreeColumn();
27 | void onModeChanged(bool isEditor);
28 | signals:
29 |
30 | public slots:
31 | void accChanged();
32 | void initAccList();
33 | };
34 |
35 | #endif // CFGRULES_H
36 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgsharedpathwgt.cpp:
--------------------------------------------------------------------------------
1 | #include "cfgsharedpathwgt.h"
2 | #include "precompile.h"
3 | #include
4 | #include
5 |
6 |
7 | CfgSharedpathWgt::CfgSharedpathWgt(QWidget *parent) : CfgBase(parent)
8 | {
9 | _editPath = new QLineEdit(this);
10 | QString currentPath = g_settings.value(PARAM_PATH).toString();
11 | if( currentPath.isEmpty() ){
12 | currentPath = QApplication::applicationDirPath();
13 | g_settings.setValue(PARAM_PATH, currentPath);
14 | }
15 | _editPath->setText( currentPath );
16 |
17 | _btnChoose = new QPushButton(tr("浏览"), this);
18 |
19 | QHBoxLayout* mainLayout = new QHBoxLayout(this);
20 | mainLayout->setMargin(0);
21 | mainLayout->addWidget( _editPath, 3);
22 | mainLayout->addWidget( _btnChoose );
23 | mainLayout->addStretch(1);
24 |
25 | connect(_btnChoose,&QPushButton::clicked,this,&CfgSharedpathWgt::onPathChanging);
26 | connect(_editPath,&QLineEdit::textEdited,this,[=](QString path){
27 | g_settings.setValue(PARAM_PATH, path);
28 | });
29 | }
30 |
31 | void CfgSharedpathWgt::onEditorMode()
32 | {
33 | _editPath->setReadOnly( false );
34 | _btnChoose->setText(tr("浏览"));
35 | _btnChoose->setVisible( true );
36 | }
37 |
38 | void CfgSharedpathWgt::onRunningMode()
39 | {
40 | _editPath->setReadOnly(true);
41 | _editPath->clearFocus();
42 | _btnChoose->setText(tr("打开"));
43 | _btnChoose->clearFocus();
44 | _btnChoose->setVisible(true);
45 | }
46 |
47 | void CfgSharedpathWgt::paintEvent(QPaintEvent *)
48 | {
49 | QStyleOption opt;
50 | opt.init(this);
51 | QPainter p(this);
52 | style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
53 | }
54 |
55 |
56 |
57 | void CfgSharedpathWgt::onPathChanging()
58 | {
59 | const QString flag = _btnChoose->text();
60 | if( flag == tr("浏览") ){
61 | QString dir = QFileDialog::getExistingDirectory(this, tr("选择共享目录"),
62 | "",
63 | QFileDialog::ShowDirsOnly
64 | | QFileDialog::DontResolveSymlinks);
65 | if(dir.isEmpty()==false){
66 | _editPath->setText(dir);
67 | g_settings.setValue(PARAM_PATH, dir);
68 | }
69 | }else{
70 | QDesktopServices::openUrl(QUrl::fromLocalFile(_editPath->text()));
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/cfgsharedpathwgt.h:
--------------------------------------------------------------------------------
1 | #ifndef CFGSHAREDPATHWGT_H
2 | #define CFGSHAREDPATHWGT_H
3 | #include "cfgbase.h"
4 |
5 | class QLineEdit;
6 | class QPushButton;
7 | class QLabel;
8 |
9 | class CfgSharedpathWgt : public CfgBase
10 | {
11 | Q_OBJECT
12 | public:
13 | explicit CfgSharedpathWgt(QWidget *parent = 0);
14 | void paintEvent(QPaintEvent *) override;
15 |
16 | virtual void onEditorMode();
17 | virtual void onRunningMode();
18 | private:
19 | QLineEdit* _editPath;
20 | QPushButton* _btnChoose;
21 | signals:
22 |
23 | public slots:
24 | void onPathChanging();
25 | };
26 |
27 | #endif // CFGSHAREDPATHWGT_H
28 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/ruletablewidget.cpp:
--------------------------------------------------------------------------------
1 | #include "ruletablewidget.h"
2 | #include "precompile.h"
3 | #include "utilities.h"
4 |
5 | MaskCellWidget::MaskCellWidget(QWidget *parent):QWidget(parent)
6 | {
7 | _cbRead = new QCheckBox(tr("读"),this);
8 | _cbWrite = new QCheckBox(tr("写"),this);
9 | _cbDelete = new QCheckBox(tr("删除 "),this);
10 | auto maskLayout = new QHBoxLayout(this);
11 | maskLayout->setMargin(0);
12 | maskLayout->addWidget( _cbRead );
13 | maskLayout->addWidget( _cbWrite );
14 | maskLayout->addWidget( _cbDelete );
15 | maskLayout->addSpacing(16);
16 | }
17 |
18 | void MaskCellWidget::setMask(bool r, bool w)
19 | {
20 | _cbRead->setChecked(r);
21 | _cbWrite->setChecked(w);
22 | }
23 |
24 | QString MaskCellWidget::getMask()
25 | {
26 | return makeRW(_cbRead->isChecked(),_cbWrite->isChecked(),_cbDelete->isChecked());
27 | }
28 |
29 | RuleTableWidget::RuleTableWidget(QWidget *parent) : QTableWidget(parent)
30 | {
31 | setColumnCount(2);
32 | setSelectionBehavior(QAbstractItemView::SelectRows);
33 | setSelectionMode(QAbstractItemView::NoSelection);
34 |
35 | setHorizontalHeaderItem(0, new QTableWidgetItem(QIcon(":/res/image/dir.svg"),tr("二级目录")));
36 | horizontalHeaderItem(0)->setTextAlignment(Qt::AlignLeft);
37 | setHorizontalHeaderItem(1, new QTableWidgetItem(QIcon(":/res/image/mask.svg"),tr("访问权限")));
38 | horizontalHeaderItem(1)->setTextAlignment(Qt::AlignLeft);
39 | }
40 |
41 | QTableWidgetItem* RuleTableWidget::addRuleRow(QString dir, bool r, bool w)
42 | {
43 | const int newRowCount = rowCount()+1;
44 | setRowCount( newRowCount );
45 |
46 | auto newItem = new QTableWidgetItem(dir);
47 | setItem(newRowCount-1, 0, newItem);
48 |
49 | auto maskWidget = new MaskCellWidget(this);
50 | maskWidget->setMask(r, w);
51 | setCellWidget(newRowCount-1, 1, maskWidget);
52 |
53 | this->resizeColumnToContents(1);
54 |
55 | return (newItem);
56 | }
57 |
58 | void RuleTableWidget::removeSelectedRows()
59 | {
60 | removeRow( currentRow() );
61 | }
62 |
63 | void RuleTableWidget::collect(QMap& rules)
64 | {
65 | for(int i=0; itext()] = dynamic_cast(cellWidget(i,1))->getMask();
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/configwgt/ruletablewidget.h:
--------------------------------------------------------------------------------
1 | #ifndef RULETABLEWIDGET_H
2 | #define RULETABLEWIDGET_H
3 |
4 | #include
5 |
6 | class QCheckBox;
7 | class MaskCellWidget : public QWidget
8 | {
9 | Q_OBJECT
10 | public:
11 | explicit MaskCellWidget(QWidget *parent = 0);
12 |
13 | void setMask(bool r, bool w);
14 | QString getMask();
15 | private:
16 | QCheckBox* _cbRead;
17 | QCheckBox* _cbWrite;
18 | QCheckBox* _cbDelete;
19 | signals:
20 |
21 | public slots:
22 | };
23 |
24 |
25 | class RuleTableWidget : public QTableWidget
26 | {
27 | Q_OBJECT
28 | public:
29 | explicit RuleTableWidget(QWidget *parent = 0);
30 |
31 | QTableWidgetItem* addRuleRow(QString dir, bool r, bool w);
32 | void removeSelectedRows();
33 | void collect(QMap&);
34 | signals:
35 |
36 | public slots:
37 | };
38 |
39 | #endif // RULETABLEWIDGET_H
40 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/qrpopup.cpp:
--------------------------------------------------------------------------------
1 | #include "qrpopup.h"
2 | #include
3 | #include
4 | #include
5 | #include "QR-Code-generator-master/QrCode.hpp"
6 | using namespace qrcodegen;
7 |
8 | QRPopup::QRPopup(QWidget *parent) : QWidget(parent)
9 | {
10 | setWindowFlags(Qt::ToolTip);
11 | setFixedSize(120,120);
12 | }
13 |
14 | QRPopup::~QRPopup()
15 | {
16 | delete painterImage;
17 | }
18 |
19 |
20 | void QRPopup::encode(QString data)
21 | {
22 | const int margin = 3;
23 |
24 | std::vector segs = QrSegment::makeSegments(data.toStdString().c_str());
25 | QrCode qr1 = QrCode::encodeSegments(segs, QrCode::Ecc::LOW, 5, 5, 2, false);
26 |
27 | int size = qr1.getSize() + margin*2;
28 | painterImage = new QImage(size,size,QImage::Format_ARGB32_Premultiplied );
29 | painterImage->fill( Qt::white );
30 |
31 | for (int y = 0; y < qr1.getSize(); y++) {
32 | for (int x = 0; x < qr1.getSize(); x++) {
33 | if ( qr1.getModule(x,y) )
34 | painterImage->setPixel(x+margin,y+margin,Qt::black);
35 | }
36 | }
37 |
38 | repaint();
39 | }
40 |
41 | void QRPopup::paintEvent(QPaintEvent * event)
42 | {
43 | Q_UNUSED(event)
44 |
45 | QPainter p(this);
46 | p.drawPixmap(rect(),QPixmap::fromImage(*painterImage));
47 | }
48 |
--------------------------------------------------------------------------------
/chfsgui/uicomponents/qrpopup.h:
--------------------------------------------------------------------------------
1 | #ifndef QRPOPUP_H
2 | #define QRPOPUP_H
3 |
4 | class QImage;
5 |
6 | class QRPopup : public QWidget
7 | {
8 | Q_OBJECT
9 | public:
10 | static QRPopup & instance()
11 | {
12 | static QRPopup _instance;
13 | return _instance;
14 | }
15 |
16 | void encode(QString);
17 | void paintEvent(QPaintEvent * event) override;
18 | private:
19 | explicit QRPopup(QWidget *parent = 0);
20 | ~QRPopup();
21 | QImage* painterImage;
22 | signals:
23 |
24 | public slots:
25 | };
26 |
27 | #endif // QRPOPUP_H
28 |
--------------------------------------------------------------------------------
/chfsgui/utilities.h:
--------------------------------------------------------------------------------
1 | #ifndef UTILITIES_H
2 | #define UTILITIES_H
3 |
4 |
5 | class Utilities
6 | {
7 | public:
8 | Utilities();
9 | };
10 |
11 | int compareIPv4(QString a, QString b);
12 | QString rule2humanbeings(QString rawrule);
13 | QString makeRW(bool r , bool w, bool d);
14 | void convertFromRulestr(QString rulestr, QMap>& rules, QMap& accs);
15 | void removeUser(QString user);
16 | QMap getAccsFromRulestr();
17 | QMap getRulesFromRulestr(QString user);
18 | void addUser(QString user, QString pwd, const QMap& addedrule);
19 |
20 | #endif // UTILITIES_H
21 |
--------------------------------------------------------------------------------
/release/chfsgui-v1.0.1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/release/chfsgui-v1.0.1.zip
--------------------------------------------------------------------------------
/release/chfsgui-v1.4.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/docblue/chfsgui/e83013494d9a625f85da8c0bc1690255482edb93/release/chfsgui-v1.4.0.zip
--------------------------------------------------------------------------------