├── .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 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/branch_closed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/branch_open-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/branch_open.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/checkbox_checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/checkbox_checked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/checkbox_indeterminate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/checkbox_indeterminate_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/checkbox_unchecked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/checkbox_unchecked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/close-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/close-pressed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/down_arrow-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/down_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/down_arrow_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/hmovetoolbar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/hsepartoolbar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/left_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/left_arrow_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/radio_checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/radio_checked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/radio_unchecked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/radio_unchecked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/right_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/right_arrow_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/sizegrip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/spinup_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/stylesheet-branch-end.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/stylesheet-branch-more.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/stylesheet-vline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/transparent.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/undock-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/undock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/up_arrow-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/up_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/up_arrow_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/vmovetoolbar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/dark/vsepartoolbars.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/branch_closed-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/branch_closed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/branch_open-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/branch_open.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/checkbox_checked-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/checkbox_checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/checkbox_checked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/checkbox_indeterminate-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/checkbox_indeterminate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/checkbox_indeterminate_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/checkbox_unchecked-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/checkbox_unchecked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/close-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/close-pressed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/down_arrow-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/down_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/down_arrow_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/hmovetoolbar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/hsepartoolbar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/left_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/left_arrow_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/radio_checked-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/radio_checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/radio_checked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/radio_unchecked-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/radio_unchecked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/right_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/right_arrow_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/sizegrip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/spinup_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/stylesheet-branch-end.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/stylesheet-branch-more.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/stylesheet-vline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/transparent.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/undock-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/undock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/up_arrow-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/up_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/up_arrow_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/vmovetoolbar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chfsgui/BreezeStyleSheets/light/vsepartoolbars.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 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 --------------------------------------------------------------------------------