webgen 0.3.8 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +2565 -14
- data/README +4 -6
- data/Rakefile +207 -89
- data/TODO +175 -17
- data/VERSION +1 -1
- data/bin/webgen +1 -2
- data/data/webgen/gallery-creator/default.png +0 -0
- data/data/webgen/gallery_styles/default/README +6 -0
- data/data/webgen/gallery_styles/default/gallery_gallery.template +38 -0
- data/data/webgen/gallery_styles/default/gallery_image.template +30 -0
- data/data/webgen/gallery_styles/default/gallery_main.template +18 -0
- data/data/webgen/gallery_styles/slides/README +18 -0
- data/data/webgen/gallery_styles/slides/collage.rb +334 -0
- data/data/webgen/gallery_styles/slides/gallery_gallery.template +62 -0
- data/data/webgen/gallery_styles/slides/gallery_image.template +53 -0
- data/data/webgen/gallery_styles/slides/gallery_main.template +32 -0
- data/data/webgen/resources/images/generated_by_webgen.png +0 -0
- data/data/webgen/resources/images/webgen_logo.png +0 -0
- data/data/webgen/website_styles/1024px/README +10 -0
- data/data/webgen/website_styles/1024px/default.css +188 -0
- data/data/webgen/website_styles/1024px/default.template +62 -0
- data/data/webgen/website_styles/1024px/images/background.gif +0 -0
- data/data/webgen/website_styles/andreas00/README +10 -0
- data/data/webgen/website_styles/andreas00/default.css +290 -0
- data/data/webgen/website_styles/andreas00/default.template +62 -0
- data/data/webgen/website_styles/andreas00/images/bg.gif +0 -0
- data/data/webgen/website_styles/andreas00/images/front.jpg +0 -0
- data/data/webgen/website_styles/andreas00/images/menubg.gif +0 -0
- data/data/webgen/website_styles/andreas00/images/menubg2.gif +0 -0
- data/data/webgen/website_styles/andreas01/README +11 -0
- data/data/webgen/website_styles/andreas01/default.css +310 -0
- data/data/webgen/website_styles/andreas01/default.template +63 -0
- data/data/webgen/website_styles/andreas01/images/bg.gif +0 -0
- data/data/webgen/website_styles/andreas01/images/front.jpg +0 -0
- data/data/webgen/website_styles/andreas01/print.css +35 -0
- data/data/webgen/website_styles/andreas03/README +11 -0
- data/data/webgen/website_styles/andreas03/default.css +223 -0
- data/data/webgen/website_styles/andreas03/default.template +60 -0
- data/data/webgen/website_styles/andreas03/images/bodybg.png +0 -0
- data/data/webgen/website_styles/andreas03/images/contbg.png +0 -0
- data/data/webgen/website_styles/andreas03/images/footerbg.png +0 -0
- data/data/webgen/website_styles/andreas03/images/gradient1.png +0 -0
- data/data/webgen/website_styles/andreas03/images/gradient2.png +0 -0
- data/data/webgen/website_styles/andreas04/README +12 -0
- data/data/webgen/website_styles/andreas04/default.css +290 -0
- data/data/webgen/website_styles/andreas04/default.template +83 -0
- data/data/webgen/website_styles/andreas04/images/blinkarrow.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/bodybg.png +0 -0
- data/data/webgen/website_styles/andreas04/images/contentbg.png +0 -0
- data/data/webgen/website_styles/andreas04/images/entrybg.png +0 -0
- data/data/webgen/website_styles/andreas04/images/flash.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/flash2.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/globe.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/globebottom.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/linkarrow.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/menuhover.png +0 -0
- data/data/webgen/website_styles/andreas05/README +11 -0
- data/data/webgen/website_styles/andreas05/default.css +33 -0
- data/data/webgen/website_styles/andreas05/default.template +42 -0
- data/data/webgen/website_styles/andreas05/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas05/images/front.png +0 -0
- data/data/webgen/website_styles/andreas06/README +11 -0
- data/data/webgen/website_styles/andreas06/default.css +353 -0
- data/data/webgen/website_styles/andreas06/default.template +72 -0
- data/data/webgen/website_styles/andreas06/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas06/images/boxbg.gif +0 -0
- data/data/webgen/website_styles/andreas06/images/greypx.gif +0 -0
- data/data/webgen/website_styles/andreas06/images/header.jpg +0 -0
- data/data/webgen/website_styles/andreas06/images/innerbg.gif +0 -0
- data/data/webgen/website_styles/andreas06/images/leaves.jpg +0 -0
- data/data/webgen/website_styles/andreas06/images/tabs.gif +0 -0
- data/data/webgen/website_styles/andreas07/README +12 -0
- data/data/webgen/website_styles/andreas07/browserfix.css +7 -0
- data/data/webgen/website_styles/andreas07/default.css +92 -0
- data/data/webgen/website_styles/andreas07/default.template +44 -0
- data/data/webgen/website_styles/andreas07/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas07/images/sidebarbg.gif +0 -0
- data/data/webgen/website_styles/andreas08/README +11 -0
- data/data/webgen/website_styles/andreas08/default.css +224 -0
- data/data/webgen/website_styles/andreas08/default.template +53 -0
- data/data/webgen/website_styles/andreas09/README +11 -0
- data/data/webgen/website_styles/andreas09/default.css +308 -0
- data/data/webgen/website_styles/andreas09/default.template +70 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-black.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-green.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-orange.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-purple.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-red.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/footerbg.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-black.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-green.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-orange.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-purple.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-red.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover.jpg +0 -0
- data/data/webgen/website_styles/default/README +6 -0
- data/data/webgen/website_styles/default/default.css +1 -1
- data/data/webgen/website_styles/default/default.template +9 -3
- data/data/webgen/website_styles/plain/README +12 -0
- data/data/webgen/website_styles/plain/default.css +244 -0
- data/data/webgen/website_styles/plain/default.template +63 -0
- data/data/webgen/website_styles/plain/images/a_hover.jpg +0 -0
- data/data/webgen/website_styles/plain/images/desc.jpg +0 -0
- data/data/webgen/website_styles/plain/images/li.gif +0 -0
- data/data/webgen/website_styles/plain/images/mainbar.jpg +0 -0
- data/data/webgen/website_styles/plain/images/menu.jpg +0 -0
- data/data/webgen/website_styles/plain/images/submenua.gif +0 -0
- data/data/webgen/website_styles/plain/images/submenua_hover.jpg +0 -0
- data/data/webgen/website_templates/default/README +7 -5
- data/data/webgen/website_templates/personal_hp/README +7 -5
- data/data/webgen/website_templates/project/README +8 -6
- data/doc/config.yaml +2 -2
- data/doc/examples/website_styles/1024px/README +9 -0
- data/doc/examples/website_styles/1024px/config.yaml +2 -0
- data/doc/examples/website_styles/1024px/src/about.page +12 -0
- data/doc/examples/website_styles/1024px/src/default.css +188 -0
- data/doc/examples/website_styles/1024px/src/default.template +62 -0
- data/doc/examples/website_styles/1024px/src/download.page +15 -0
- data/doc/examples/website_styles/1024px/src/features.page +8 -0
- data/doc/examples/website_styles/1024px/src/images/background.gif +0 -0
- data/doc/examples/website_styles/1024px/src/index.page +9 -0
- data/doc/examples/website_styles/1024px/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas00/README +9 -0
- data/doc/examples/website_styles/andreas00/config.yaml +2 -0
- data/doc/examples/website_styles/andreas00/src/about.page +12 -0
- data/doc/examples/website_styles/andreas00/src/default.css +290 -0
- data/doc/examples/website_styles/andreas00/src/default.template +62 -0
- data/doc/examples/website_styles/andreas00/src/download.page +15 -0
- data/doc/examples/website_styles/andreas00/src/features.page +8 -0
- data/doc/examples/website_styles/andreas00/src/images/bg.gif +0 -0
- data/doc/examples/website_styles/andreas00/src/images/front.jpg +0 -0
- data/doc/examples/website_styles/andreas00/src/images/menubg.gif +0 -0
- data/doc/examples/website_styles/andreas00/src/images/menubg2.gif +0 -0
- data/doc/examples/website_styles/andreas00/src/index.page +9 -0
- data/doc/examples/website_styles/andreas00/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas01/README +9 -0
- data/doc/examples/website_styles/andreas01/config.yaml +2 -0
- data/doc/examples/website_styles/andreas01/src/about.page +12 -0
- data/doc/examples/website_styles/andreas01/src/default.css +310 -0
- data/doc/examples/website_styles/andreas01/src/default.template +63 -0
- data/doc/examples/website_styles/andreas01/src/download.page +15 -0
- data/doc/examples/website_styles/andreas01/src/features.page +8 -0
- data/doc/examples/website_styles/andreas01/src/images/bg.gif +0 -0
- data/doc/examples/website_styles/andreas01/src/images/front.jpg +0 -0
- data/doc/examples/website_styles/andreas01/src/index.page +9 -0
- data/doc/examples/website_styles/andreas01/src/print.css +35 -0
- data/doc/examples/website_styles/andreas01/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas03/README +9 -0
- data/doc/examples/website_styles/andreas03/config.yaml +2 -0
- data/doc/examples/website_styles/andreas03/src/about.page +12 -0
- data/doc/examples/website_styles/andreas03/src/default.css +223 -0
- data/doc/examples/website_styles/andreas03/src/default.template +60 -0
- data/doc/examples/website_styles/andreas03/src/download.page +15 -0
- data/doc/examples/website_styles/andreas03/src/features.page +8 -0
- data/doc/examples/website_styles/andreas03/src/images/bodybg.png +0 -0
- data/doc/examples/website_styles/andreas03/src/images/contbg.png +0 -0
- data/doc/examples/website_styles/andreas03/src/images/footerbg.png +0 -0
- data/doc/examples/website_styles/andreas03/src/images/gradient1.png +0 -0
- data/doc/examples/website_styles/andreas03/src/images/gradient2.png +0 -0
- data/doc/examples/website_styles/andreas03/src/index.page +9 -0
- data/doc/examples/website_styles/andreas03/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas04/README +9 -0
- data/doc/examples/website_styles/andreas04/config.yaml +2 -0
- data/doc/examples/website_styles/andreas04/src/about.page +12 -0
- data/doc/examples/website_styles/andreas04/src/default.css +290 -0
- data/doc/examples/website_styles/andreas04/src/default.template +83 -0
- data/doc/examples/website_styles/andreas04/src/download.page +15 -0
- data/doc/examples/website_styles/andreas04/src/features.page +8 -0
- data/doc/examples/website_styles/andreas04/src/images/blinkarrow.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/bodybg.png +0 -0
- data/doc/examples/website_styles/andreas04/src/images/contentbg.png +0 -0
- data/doc/examples/website_styles/andreas04/src/images/entrybg.png +0 -0
- data/doc/examples/website_styles/andreas04/src/images/flash.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/flash2.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/globe.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/globebottom.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/linkarrow.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/menuhover.png +0 -0
- data/doc/examples/website_styles/andreas04/src/index.page +9 -0
- data/doc/examples/website_styles/andreas04/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas05/README +9 -0
- data/doc/examples/website_styles/andreas05/config.yaml +2 -0
- data/doc/examples/website_styles/andreas05/src/about.page +12 -0
- data/doc/examples/website_styles/andreas05/src/default.css +33 -0
- data/doc/examples/website_styles/andreas05/src/default.template +42 -0
- data/doc/examples/website_styles/andreas05/src/download.page +15 -0
- data/doc/examples/website_styles/andreas05/src/features.page +8 -0
- data/doc/examples/website_styles/andreas05/src/images/bodybg.gif +0 -0
- data/doc/examples/website_styles/andreas05/src/images/front.png +0 -0
- data/doc/examples/website_styles/andreas05/src/index.page +9 -0
- data/doc/examples/website_styles/andreas05/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas06/README +9 -0
- data/doc/examples/website_styles/andreas06/config.yaml +2 -0
- data/doc/examples/website_styles/andreas06/src/about.page +12 -0
- data/doc/examples/website_styles/andreas06/src/default.css +353 -0
- data/doc/examples/website_styles/andreas06/src/default.template +72 -0
- data/doc/examples/website_styles/andreas06/src/download.page +15 -0
- data/doc/examples/website_styles/andreas06/src/features.page +8 -0
- data/doc/examples/website_styles/andreas06/src/images/bodybg.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/images/boxbg.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/images/greypx.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/images/header.jpg +0 -0
- data/doc/examples/website_styles/andreas06/src/images/innerbg.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/images/leaves.jpg +0 -0
- data/doc/examples/website_styles/andreas06/src/images/tabs.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/index.page +9 -0
- data/doc/examples/website_styles/andreas06/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas07/README +9 -0
- data/doc/examples/website_styles/andreas07/config.yaml +2 -0
- data/doc/examples/website_styles/andreas07/src/about.page +12 -0
- data/doc/examples/website_styles/andreas07/src/browserfix.css +7 -0
- data/doc/examples/website_styles/andreas07/src/default.css +92 -0
- data/doc/examples/website_styles/andreas07/src/default.template +44 -0
- data/doc/examples/website_styles/andreas07/src/download.page +15 -0
- data/doc/examples/website_styles/andreas07/src/features.page +8 -0
- data/doc/examples/website_styles/andreas07/src/images/bodybg.gif +0 -0
- data/doc/examples/website_styles/andreas07/src/images/sidebarbg.gif +0 -0
- data/doc/examples/website_styles/andreas07/src/index.page +9 -0
- data/doc/examples/website_styles/andreas07/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas08/README +9 -0
- data/doc/examples/website_styles/andreas08/config.yaml +2 -0
- data/doc/examples/website_styles/andreas08/src/about.page +12 -0
- data/doc/examples/website_styles/andreas08/src/default.css +224 -0
- data/doc/examples/website_styles/andreas08/src/default.template +53 -0
- data/doc/examples/website_styles/andreas08/src/download.page +15 -0
- data/doc/examples/website_styles/andreas08/src/features.page +8 -0
- data/doc/examples/website_styles/andreas08/src/index.page +9 -0
- data/doc/examples/website_styles/andreas08/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas09/README +9 -0
- data/doc/examples/website_styles/andreas09/config.yaml +2 -0
- data/doc/examples/website_styles/andreas09/src/about.page +12 -0
- data/doc/examples/website_styles/andreas09/src/default.css +308 -0
- data/doc/examples/website_styles/andreas09/src/default.template +70 -0
- data/doc/examples/website_styles/andreas09/src/download.page +15 -0
- data/doc/examples/website_styles/andreas09/src/features.page +8 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-black.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-green.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-orange.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-purple.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-red.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/footerbg.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-black.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-green.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-orange.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-purple.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-red.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/index.page +9 -0
- data/doc/examples/website_styles/andreas09/src/screenshots.page +18 -0
- data/doc/examples/website_styles/default/README +9 -0
- data/doc/examples/website_styles/default/config.yaml +2 -0
- data/doc/examples/website_styles/default/src/about.page +12 -0
- data/doc/examples/website_styles/default/src/default.css +84 -0
- data/doc/examples/website_styles/default/src/default.template +38 -0
- data/doc/examples/website_styles/default/src/download.page +15 -0
- data/doc/examples/website_styles/default/src/features.page +8 -0
- data/doc/examples/website_styles/default/src/index.page +9 -0
- data/doc/examples/website_styles/default/src/screenshots.page +18 -0
- data/doc/examples/website_styles/plain/README +9 -0
- data/doc/examples/website_styles/plain/config.yaml +2 -0
- data/doc/examples/website_styles/plain/src/about.page +12 -0
- data/doc/examples/website_styles/plain/src/default.css +244 -0
- data/doc/examples/website_styles/plain/src/default.template +63 -0
- data/doc/examples/website_styles/plain/src/download.page +15 -0
- data/doc/examples/website_styles/plain/src/features.page +8 -0
- data/doc/examples/website_styles/plain/src/images/a_hover.jpg +0 -0
- data/doc/examples/website_styles/plain/src/images/desc.jpg +0 -0
- data/doc/examples/website_styles/plain/src/images/li.gif +0 -0
- data/doc/examples/website_styles/plain/src/images/mainbar.jpg +0 -0
- data/doc/examples/website_styles/plain/src/images/menu.jpg +0 -0
- data/doc/examples/website_styles/plain/src/images/submenua.gif +0 -0
- data/doc/examples/website_styles/plain/src/images/submenua_hover.jpg +0 -0
- data/doc/examples/website_styles/plain/src/index.page +9 -0
- data/doc/examples/website_styles/plain/src/screenshots.page +18 -0
- data/doc/examples/website_templates/default/README +8 -0
- data/doc/examples/website_templates/default/config.yaml +2 -0
- data/doc/examples/website_templates/default/src/default.css +84 -0
- data/doc/examples/website_templates/default/src/default.template +38 -0
- data/doc/examples/website_templates/default/src/index.page +8 -0
- data/doc/examples/website_templates/personal_hp/README +8 -0
- data/doc/examples/website_templates/personal_hp/config.yaml +2 -0
- data/doc/examples/website_templates/personal_hp/src/about.page +12 -0
- data/doc/examples/website_templates/personal_hp/src/default.css +84 -0
- data/doc/examples/website_templates/personal_hp/src/default.template +38 -0
- data/doc/examples/website_templates/personal_hp/src/index.page +9 -0
- data/doc/examples/website_templates/personal_hp/src/links.page +22 -0
- data/doc/examples/website_templates/personal_hp/src/projects.page +20 -0
- data/doc/examples/website_templates/project/README +9 -0
- data/doc/examples/website_templates/project/config.yaml +2 -0
- data/doc/examples/website_templates/project/src/about.page +12 -0
- data/doc/examples/website_templates/project/src/default.css +84 -0
- data/doc/examples/website_templates/project/src/default.template +38 -0
- data/doc/examples/website_templates/project/src/download.page +15 -0
- data/doc/examples/website_templates/project/src/features.page +8 -0
- data/doc/examples/website_templates/project/src/index.page +9 -0
- data/doc/examples/website_templates/project/src/screenshots.page +18 -0
- data/doc/metainfo.yaml +85 -0
- data/doc/plugin/emoticon.rb +19 -21
- data/doc/plugin/extension.rb +134 -55
- data/doc/plugin/gallery/slides/collage.rb +334 -0
- data/doc/plugin/listpluginparameters.rb +24 -26
- data/doc/plugin/resources.rb +20 -22
- data/doc/src/default.css +333 -154
- data/doc/src/default.template +92 -39
- data/doc/src/documentation/extending_webgen.page +1 -2
- data/doc/src/documentation/gettingstarted.page +161 -44
- data/doc/src/documentation/index.page +15 -28
- data/doc/src/documentation/plugins/contentconverter/default.page +15 -0
- data/doc/src/documentation/plugins/contentconverter/html.page +10 -0
- data/doc/src/documentation/plugins/contentconverter/markdown.page +21 -0
- data/doc/src/documentation/plugins/contentconverter/rdoc.page +11 -0
- data/doc/src/documentation/plugins/contentconverter/textile.page +21 -0
- data/doc/src/documentation/plugins/contentconverter/xmlbuilder.page +61 -0
- data/doc/src/documentation/plugins/core/configuration.page +11 -0
- data/doc/src/documentation/plugins/core/filehandler.page +214 -0
- data/doc/src/documentation/plugins/core/index.page +11 -0
- data/doc/src/documentation/plugins/core/resourcemanager.page +46 -0
- data/doc/src/documentation/plugins/core/tagprocessor.page +17 -0
- data/doc/src/documentation/plugins/file/copyhandler.page +26 -0
- data/doc/src/documentation/plugins/file/defaulthandler.page +15 -0
- data/doc/src/documentation/plugins/file/directoryhandler.page +37 -0
- data/doc/src/documentation/plugins/file/galleryhandler.page +181 -0
- data/doc/src/documentation/plugins/file/pagehandler.page +154 -0
- data/doc/src/documentation/plugins/file/templatehandler.page +34 -0
- data/doc/src/documentation/plugins/file/thumbnailwriter.page +39 -0
- data/doc/src/documentation/plugins/htmlvalidator/default.page +12 -0
- data/doc/src/documentation/plugins/htmlvalidator/xmllint.page +12 -0
- data/doc/src/documentation/plugins/index.page +32 -11
- data/doc/src/documentation/plugins/menustyle/default.page +19 -0
- data/doc/src/documentation/plugins/menustyle/horizontal.page +32 -0
- data/doc/src/documentation/plugins/{menustyles → menustyle}/horizontaldropdown.page +25 -19
- data/doc/src/documentation/plugins/menustyle/section.page +34 -0
- data/doc/src/documentation/plugins/menustyle/vertical.page +48 -0
- data/doc/src/documentation/plugins/menustyle/verticaldropdown.page +29 -0
- data/doc/src/documentation/plugins/misc/index.page +9 -0
- data/doc/src/documentation/plugins/{miscplugins → misc}/smileyreplacer.page +15 -14
- data/doc/src/documentation/plugins/misc/syntaxhighlighter.page +26 -0
- data/doc/src/documentation/plugins/tag/block.page +29 -0
- data/doc/src/documentation/plugins/tag/breadcrumbtrail.page +29 -0
- data/doc/src/documentation/plugins/tag/date.page +34 -0
- data/doc/src/documentation/plugins/tag/default.page +27 -0
- data/doc/src/documentation/plugins/tag/download.page +60 -0
- data/doc/src/documentation/plugins/tag/executecommand.page +29 -0
- data/doc/src/documentation/plugins/tag/includefile.page +30 -0
- data/doc/src/documentation/plugins/{tags → tag}/langbar.de.page +1 -1
- data/doc/src/documentation/plugins/tag/langbar.fr.page +6 -0
- data/doc/src/documentation/plugins/tag/langbar.page +41 -0
- data/doc/src/documentation/plugins/tag/menu.page +78 -0
- data/doc/src/documentation/plugins/{tags → tag}/meta.page +8 -7
- data/doc/src/documentation/plugins/tag/relocatable.page +46 -0
- data/doc/src/documentation/plugins/tag/resource.page +35 -0
- data/doc/src/documentation/plugins/tag/sitemap.page +35 -0
- data/doc/src/documentation/plugins/tag/wikilink.page +33 -0
- data/doc/src/documentation/references/index.page +0 -1
- data/doc/src/documentation/references/meta_info_reference.page +90 -13
- data/doc/src/documentation/references/parameter_reference.page +0 -1
- data/doc/src/documentation/references/webpage_format.page +249 -0
- data/doc/src/download.page +50 -21
- data/doc/src/examples/gallery_styles/default/default.gallery +78 -0
- data/doc/src/examples/gallery_styles/default/gallery_gallery.template +38 -0
- data/doc/src/examples/gallery_styles/default/gallery_image.template +30 -0
- data/doc/src/examples/gallery_styles/default/gallery_main.template +18 -0
- data/doc/src/examples/gallery_styles/index.page +22 -0
- data/doc/src/examples/gallery_styles/slides/gallery_gallery.template +62 -0
- data/doc/src/examples/gallery_styles/slides/gallery_image.template +53 -0
- data/doc/src/examples/gallery_styles/slides/gallery_main.template +32 -0
- data/doc/src/examples/gallery_styles/slides/slides.gallery +79 -0
- data/doc/src/examples/images/image01.jpg +0 -0
- data/doc/src/examples/images/image02.jpg +0 -0
- data/doc/src/examples/images/image03.jpg +0 -0
- data/doc/src/examples/images/image04.jpg +0 -0
- data/doc/src/examples/images/image05.jpg +0 -0
- data/doc/src/examples/images/image06.jpg +0 -0
- data/doc/src/examples/images/image07.jpg +0 -0
- data/doc/src/examples/images/image08.jpg +0 -0
- data/doc/src/examples/images/image09.jpg +0 -0
- data/doc/src/examples/images/image10.jpg +0 -0
- data/doc/src/examples/images/image11.jpg +0 -0
- data/doc/src/examples/images/image12.jpg +0 -0
- data/doc/src/examples/images/image13.jpg +0 -0
- data/doc/src/examples/images/image14.jpg +0 -0
- data/doc/src/examples/images/image15.jpg +0 -0
- data/doc/src/examples/images/image16.jpg +0 -0
- data/doc/src/examples/images/image17.jpg +0 -0
- data/doc/src/examples/images/image18.jpg +0 -0
- data/doc/src/examples/index.page +18 -0
- data/doc/src/examples/website_styles/1024px.page +5 -0
- data/doc/src/examples/website_styles/andreas00.page +5 -0
- data/doc/src/examples/website_styles/andreas01.page +5 -0
- data/doc/src/examples/website_styles/andreas03.page +5 -0
- data/doc/src/examples/website_styles/andreas04.page +5 -0
- data/doc/src/examples/website_styles/andreas05.page +5 -0
- data/doc/src/examples/website_styles/andreas06.page +5 -0
- data/doc/src/examples/website_styles/andreas07.page +5 -0
- data/doc/src/examples/website_styles/andreas08.page +5 -0
- data/doc/src/examples/website_styles/andreas09.page +5 -0
- data/doc/src/examples/website_styles/default.page +5 -0
- data/doc/src/examples/website_styles/index.page +71 -0
- data/doc/src/examples/website_styles/plain.page +5 -0
- data/doc/src/examples/website_templates/default.page +5 -0
- data/doc/src/examples/website_templates/index.page +24 -0
- data/doc/src/examples/website_templates/personal_hp.page +5 -0
- data/doc/src/examples/website_templates/project.page +5 -0
- data/doc/src/features.page +16 -14
- data/doc/src/images/bodybg.jpg +0 -0
- data/doc/src/images/footerbg.jpg +0 -0
- data/doc/src/images/menuhover.jpg +0 -0
- data/doc/src/images/node_diagram.svg +7132 -0
- data/doc/src/images/thumb_example.jpg +0 -0
- data/doc/src/images/thumb_example_cropped.jpg +0 -0
- data/doc/src/images/thumb_example_normal.jpg +0 -0
- data/doc/src/index.page +14 -102
- data/doc/src/news.page +154 -0
- data/doc/src/plugin.template +10 -0
- data/lib/webgen/cli.rb +427 -0
- data/lib/webgen/composite.rb +11 -11
- data/lib/webgen/config.rb +52 -0
- data/lib/webgen/content.rb +172 -0
- data/lib/webgen/extcommand.rb +23 -0
- data/lib/webgen/languages.rb +110 -0
- data/lib/webgen/listener.rb +1 -1
- data/lib/webgen/node.rb +196 -124
- data/lib/webgen/plugin.rb +480 -144
- data/lib/webgen/plugins/{contenthandlers → contentconverters}/default.rb +10 -9
- data/lib/webgen/plugins/{contenthandlers → contentconverters}/html.rb +11 -8
- data/lib/webgen/plugins/contentconverters/markdown.rb +54 -0
- data/lib/webgen/plugins/{contenthandlers → contentconverters}/rdoc.rb +16 -12
- data/lib/webgen/plugins/{contenthandlers → contentconverters}/textile.rb +18 -13
- data/lib/webgen/plugins/contentconverters/xmlbuilder.rb +58 -0
- data/lib/webgen/plugins/coreplugins/configuration.rb +11 -102
- data/lib/webgen/plugins/coreplugins/resourcemanager.rb +95 -74
- data/lib/webgen/plugins/filehandlers/copy.rb +41 -19
- data/lib/webgen/plugins/filehandlers/directory.rb +52 -50
- data/lib/webgen/plugins/filehandlers/filehandler.rb +370 -123
- data/lib/webgen/plugins/filehandlers/gallery.rb +368 -117
- data/lib/webgen/plugins/filehandlers/page.rb +160 -146
- data/lib/webgen/plugins/filehandlers/template.rb +65 -52
- data/lib/webgen/plugins/htmlvalidators/default.rb +9 -7
- data/lib/webgen/plugins/htmlvalidators/xmllint.rb +17 -33
- data/lib/webgen/plugins/menustyles/default.rb +27 -25
- data/lib/webgen/plugins/menustyles/horizontal.rb +22 -41
- data/lib/webgen/plugins/menustyles/horizontal_dropdown.rb +25 -39
- data/lib/webgen/plugins/menustyles/section.rb +68 -0
- data/lib/webgen/plugins/menustyles/vertical.rb +36 -56
- data/lib/webgen/plugins/menustyles/vertical_dropdown.rb +24 -32
- data/lib/webgen/plugins/miscplugins/smileyreplacer.rb +20 -17
- data/lib/webgen/plugins/miscplugins/syntax_highlighter.rb +72 -0
- data/lib/webgen/plugins/miscplugins/treewalker.rb +9 -36
- data/lib/webgen/plugins/tags/block.rb +65 -0
- data/lib/webgen/plugins/tags/breadcrumbtrail.rb +15 -11
- data/lib/webgen/plugins/tags/date.rb +11 -7
- data/lib/webgen/plugins/tags/download.rb +38 -38
- data/lib/webgen/plugins/tags/executecommand.rb +30 -15
- data/lib/webgen/plugins/tags/includefile.rb +26 -13
- data/lib/webgen/plugins/tags/langbar.rb +23 -18
- data/lib/webgen/plugins/tags/menu.rb +49 -70
- data/lib/webgen/plugins/tags/meta.rb +12 -9
- data/lib/webgen/plugins/tags/relocatable.rb +41 -13
- data/lib/webgen/plugins/tags/sitemap.rb +32 -28
- data/lib/webgen/plugins/tags/tag_processor.rb +279 -0
- data/lib/webgen/plugins/tags/wikilink.rb +25 -20
- data/lib/webgen/test.rb +202 -0
- data/lib/webgen/website.rb +310 -0
- data/test/fixtures/sample_site/src/chained.template +3 -0
- data/test/fixtures/sample_site/src/default.template +3 -0
- data/test/fixtures/sample_site/src/dir1/dir11/file111.de.page +3 -0
- data/test/fixtures/sample_site/src/dir1/dir11/file111.page +3 -0
- data/test/fixtures/sample_site/src/dir1/dir11/index.page +3 -0
- data/test/fixtures/sample_site/src/dir1/file11.page +3 -0
- data/test/fixtures/sample_site/src/dir2/file21.page +3 -0
- data/test/fixtures/sample_site/src/embedded.rhtml +1 -0
- data/test/fixtures/sample_site/src/file1.page +8 -0
- data/test/fixtures/sample_site/src/file2.de.page +6 -0
- data/test/fixtures/sample_site/src/index.de.page +4 -0
- data/test/fixtures/sample_site/src/index.en.page +1 -0
- data/test/fixtures/sample_site/src/invalid.template +3 -0
- data/test/fixtures/sample_site/src/test.jpg +1 -0
- data/test/fixtures/sample_site/src/test.template +3 -0
- data/test/fixtures/tc_content/blocks.yaml +40 -0
- data/test/fixtures/tc_content/correct.yaml +65 -0
- data/test/fixtures/tc_content/incorrect.yaml +42 -0
- data/test/fixtures/tc_filehandler_filehandler/backing/metainfo.yaml +9 -0
- data/test/fixtures/tc_filehandler_filehandler/backing_empty/metainfo.yaml +6 -0
- data/test/fixtures/tc_filehandler_filehandler/sample_plugin.rb +49 -0
- data/test/fixtures/tc_filehandler_filehandler/unmodified +0 -0
- data/test/fixtures/tc_filehandler_gallery/test.gallery +2 -0
- data/test/fixtures/tc_filehandler_gallery/test1.gallery +2 -0
- data/test/fixtures/tc_filehandler_gallery/test1.jpg +0 -0
- data/test/fixtures/tc_filehandler_gallery/test2.jpg +0 -0
- data/test/fixtures/tc_filehandler_gallery/test3.jpg +0 -0
- data/test/fixtures/tc_filehandler_gallery/test4.jpg +0 -0
- data/test/fixtures/tc_filehandler_page/testdata.yaml +10 -0
- data/test/fixtures/tc_menustyles_default/menustyle.rb +7 -0
- data/test/fixtures/tc_node/nodes.yaml +64 -0
- data/test/fixtures/tc_plugin/handlerplugin.rb +15 -0
- data/test/fixtures/tc_plugin/plugin1.rb +33 -0
- data/test/fixtures/tc_plugin/plugin2.rb +8 -0
- data/test/fixtures/tc_tags_includefile/testfile +1 -0
- data/test/fixtures/tc_tags_tag_processor/test_file1 +1 -0
- data/test/fixtures/tc_tags_tag_processor/testtag.rb +17 -0
- data/test/fixtures/tc_website/correct.yaml +6 -0
- data/test/fixtures/tc_website/incorrect_structure.yaml +2 -0
- data/test/fixtures/tc_website/incorrect_yaml.yaml +5 -0
- data/test/fixtures/tc_website/meta_info_test.yaml +10 -0
- data/test/fixtures/tc_website/testdir/README +1 -0
- data/test/fixtures/tc_website/testdir/falsedir/README +1 -0
- data/test/runtests.rb +2 -0
- data/test/unittests/tc_composite.rb +82 -0
- data/test/unittests/tc_config.rb +18 -0
- data/test/unittests/tc_content.rb +88 -0
- data/test/unittests/tc_contentconverters_default.rb +13 -0
- data/test/unittests/tc_contentconverters_html.rb +16 -0
- data/test/unittests/tc_contentconverters_markdown.rb +22 -0
- data/test/unittests/tc_contentconverters_rdoc.rb +16 -0
- data/test/unittests/tc_contentconverters_textile.rb +22 -0
- data/test/unittests/tc_contentconverters_xmlbuilder.rb +22 -0
- data/test/unittests/tc_filehandler_copy.rb +65 -0
- data/test/unittests/tc_filehandler_directory.rb +134 -0
- data/test/unittests/tc_filehandler_filehandler.rb +294 -0
- data/test/unittests/tc_filehandler_gallery.rb +165 -0
- data/test/unittests/tc_filehandler_page.rb +183 -0
- data/test/unittests/tc_filehandler_template.rb +60 -0
- data/test/unittests/tc_htmlvalidators_default.rb +12 -0
- data/test/unittests/tc_htmlvalidators_xmllint.rb +19 -0
- data/test/unittests/tc_languages.rb +57 -0
- data/test/unittests/tc_listener.rb +72 -0
- data/test/unittests/tc_menustyles_default.rb +51 -0
- data/test/unittests/tc_menustyles_horizontal.rb +18 -0
- data/test/unittests/tc_menustyles_horizontal_dropdown.rb +18 -0
- data/test/unittests/tc_menustyles_section.rb +59 -0
- data/test/unittests/tc_menustyles_vertical.rb +79 -0
- data/test/unittests/tc_menustyles_vertical_dropdown.rb +18 -0
- data/test/unittests/tc_node.rb +202 -0
- data/test/unittests/tc_plugin.rb +214 -0
- data/test/unittests/tc_resourcemanager.rb +42 -0
- data/test/unittests/tc_smileyreplacer.rb +25 -0
- data/test/unittests/tc_syntax_highlighter.rb +30 -0
- data/test/unittests/tc_tags_block.rb +27 -0
- data/test/unittests/tc_tags_breadcrumbtrail.rb +22 -0
- data/test/unittests/tc_tags_date.rb +15 -0
- data/test/unittests/tc_tags_download.rb +32 -0
- data/test/unittests/tc_tags_executecommand.rb +37 -0
- data/test/unittests/tc_tags_includefile.rb +53 -0
- data/test/unittests/tc_tags_langbar.rb +42 -0
- data/test/unittests/tc_tags_menu.rb +50 -0
- data/test/unittests/tc_tags_meta.rb +19 -0
- data/test/unittests/tc_tags_relocatable.rb +66 -0
- data/test/unittests/tc_tags_sitemap.rb +33 -0
- data/test/unittests/tc_tags_tag_processor.rb +107 -0
- data/test/unittests/tc_tags_wikilink.rb +22 -0
- data/test/unittests/tc_treewalker.rb +44 -0
- data/test/unittests/tc_website.rb +188 -0
- metadata +829 -312
- data/bin/webgen-gallery-editor +0 -654
- data/bin/webgen-gui +0 -10
- data/data/webgen/website_templates/default/config.yaml +0 -2
- data/doc/plugin/clidesc.rb +0 -46
- data/doc/plugin/source.rb +0 -21
- data/doc/src/about.page +0 -22
- data/doc/src/documentation/cli.page +0 -12
- data/doc/src/documentation/plugins/contenthandlers/html.page +0 -11
- data/doc/src/documentation/plugins/contenthandlers/index.page +0 -7
- data/doc/src/documentation/plugins/contenthandlers/markdown.page +0 -11
- data/doc/src/documentation/plugins/contenthandlers/rdoc.page +0 -11
- data/doc/src/documentation/plugins/contenthandlers/textile.page +0 -11
- data/doc/src/documentation/plugins/coreplugins/configuration.page +0 -12
- data/doc/src/documentation/plugins/coreplugins/index.page +0 -7
- data/doc/src/documentation/plugins/coreplugins/logging.page +0 -13
- data/doc/src/documentation/plugins/coreplugins/resourcemanager.page +0 -34
- data/doc/src/documentation/plugins/filehandlers/backing.page +0 -46
- data/doc/src/documentation/plugins/filehandlers/copy.page +0 -12
- data/doc/src/documentation/plugins/filehandlers/directoryhandler.page +0 -35
- data/doc/src/documentation/plugins/filehandlers/gallery.page +0 -86
- data/doc/src/documentation/plugins/filehandlers/index.page +0 -34
- data/doc/src/documentation/plugins/filehandlers/page.page +0 -170
- data/doc/src/documentation/plugins/filehandlers/template.page +0 -21
- data/doc/src/documentation/plugins/gallerylayouters/index.page +0 -18
- data/doc/src/documentation/plugins/htmlvalidators/index.page +0 -6
- data/doc/src/documentation/plugins/htmlvalidators/xmllint.page +0 -14
- data/doc/src/documentation/plugins/menustyles/horizontal.page +0 -21
- data/doc/src/documentation/plugins/menustyles/index.page +0 -12
- data/doc/src/documentation/plugins/menustyles/partial.page +0 -27
- data/doc/src/documentation/plugins/menustyles/vertical.page +0 -32
- data/doc/src/documentation/plugins/menustyles/verticaldropdown.page +0 -23
- data/doc/src/documentation/plugins/miscplugins/index.page +0 -7
- data/doc/src/documentation/plugins/tags/breadcrumbtrail.page +0 -20
- data/doc/src/documentation/plugins/tags/date.page +0 -19
- data/doc/src/documentation/plugins/tags/download.page +0 -23
- data/doc/src/documentation/plugins/tags/executecommand.page +0 -18
- data/doc/src/documentation/plugins/tags/includefile.page +0 -15
- data/doc/src/documentation/plugins/tags/index.page +0 -44
- data/doc/src/documentation/plugins/tags/langbar.page +0 -27
- data/doc/src/documentation/plugins/tags/menu.de.page +0 -12
- data/doc/src/documentation/plugins/tags/menu.page +0 -19
- data/doc/src/documentation/plugins/tags/multilang.de.page +0 -4
- data/doc/src/documentation/plugins/tags/multilang.fr.page +0 -4
- data/doc/src/documentation/plugins/tags/multilang.page +0 -4
- data/doc/src/documentation/plugins/tags/relocatable.page +0 -16
- data/doc/src/documentation/plugins/tags/resource.page +0 -22
- data/doc/src/documentation/plugins/tags/sitemap.page +0 -17
- data/doc/src/documentation/plugins/tags/wikilink.page +0 -18
- data/doc/src/documentation/webgen_gallery_editor.page +0 -82
- data/doc/src/images/screenshots/wge-image.png +0 -0
- data/doc/src/images/screenshots/wge-layout-preview.png +0 -0
- data/doc/src/images/screenshots/wge-main-disabled.png +0 -0
- data/doc/src/images/screenshots/wge-main.png +0 -0
- data/doc/src/meta.info +0 -30
- data/doc/src/screenshots.gallery +0 -33
- data/install.rb +0 -19
- data/lib/webgen.rb +0 -277
- data/lib/webgen/plugins/contenthandlers/markdown.rb +0 -50
- data/lib/webgen/plugins/coreplugins/logging.rb +0 -101
- data/lib/webgen/plugins/filehandlers/backing.rb +0 -159
- data/lib/webgen/plugins/gallerylayouters/default.rb +0 -152
- data/lib/webgen/plugins/menustyles/partial.rb +0 -95
- data/lib/webgen/plugins/tags/tags.rb +0 -254
data/bin/webgen-gallery-editor
DELETED
@@ -1,654 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- ruby -*-
|
3
|
-
|
4
|
-
require 'yaml'
|
5
|
-
require 'ostruct'
|
6
|
-
require 'webgen/plugin'
|
7
|
-
require 'webgen/plugins/coreplugins/configuration'
|
8
|
-
require 'webgen/plugins/filehandlers/gallery'
|
9
|
-
require 'Qt'
|
10
|
-
# Error when loading Qt before RMagick -> error in RMagick undefined method `display' for class `Magick::Image'
|
11
|
-
# report that to qtruby team and RMagick team
|
12
|
-
|
13
|
-
class Gallery
|
14
|
-
|
15
|
-
attr_accessor :meta
|
16
|
-
attr_accessor :relpath
|
17
|
-
|
18
|
-
def initialize
|
19
|
-
set_default_values
|
20
|
-
@relpath = '.'
|
21
|
-
end
|
22
|
-
|
23
|
-
def []( name )
|
24
|
-
@meta[name]
|
25
|
-
end
|
26
|
-
|
27
|
-
def []=( name, value )
|
28
|
-
@meta[name] = value
|
29
|
-
end
|
30
|
-
|
31
|
-
def set_default_values
|
32
|
-
@meta = {}
|
33
|
-
Webgen::Plugin.config[FileHandlers::GalleryFileHandler].params.each do |name, data|
|
34
|
-
@meta[name] = data.value
|
35
|
-
end
|
36
|
-
@meta['mainPage'] = nil
|
37
|
-
@meta['galleryPages'] = nil
|
38
|
-
@meta['thumbnailSize'] = nil
|
39
|
-
end
|
40
|
-
|
41
|
-
def read_file( filename )
|
42
|
-
filedata = YAML::load( File.read( filename ) )
|
43
|
-
|
44
|
-
set_default_values
|
45
|
-
filedata.each {|name, data| @meta[name] = data }
|
46
|
-
@relpath = File.dirname( filename )
|
47
|
-
end
|
48
|
-
|
49
|
-
def write_file( filename )
|
50
|
-
File.open( filename, 'w+' ) {|file| file.write( @meta.to_yaml ) }
|
51
|
-
@relpath= File.dirname( filename )
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
|
57
|
-
class ImageViewer < Qt::Frame
|
58
|
-
|
59
|
-
def initialize( p )
|
60
|
-
super( p )
|
61
|
-
setFrameStyle( Qt::Frame::StyledPanel | Qt::Frame::Sunken )
|
62
|
-
set_image
|
63
|
-
end
|
64
|
-
|
65
|
-
def set_image( filename = nil)
|
66
|
-
filename = File.join( CorePlugins::Configuration.data_dir, 'resources/images/webgen_logo.png' ) if filename.nil?
|
67
|
-
@image = Qt::Image.new( filename )
|
68
|
-
update
|
69
|
-
end
|
70
|
-
|
71
|
-
def drawContents( painter )
|
72
|
-
return if @image.nil?
|
73
|
-
width = contentsRect.width
|
74
|
-
height = contentsRect.height
|
75
|
-
image = ( width > @image.width && height > @image.height ? @image : @image.smoothScale( width, height, Qt::Image::ScaleMin ) )
|
76
|
-
painter.drawImage( contentsRect.left + (width - image.width) / 2, contentsRect.top + (height - image.height) / 2, image )
|
77
|
-
end
|
78
|
-
|
79
|
-
def sizeHint
|
80
|
-
Qt::Size.new( 320, 200 )
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
|
-
|
86
|
-
class MetaTableNameItem < Qt::TableItem
|
87
|
-
|
88
|
-
def initialize( table, text = '' )
|
89
|
-
super( table, Qt::TableItem::OnTyping )
|
90
|
-
setReplaceable( false )
|
91
|
-
setText( text )
|
92
|
-
add_text_to_list( text )
|
93
|
-
end
|
94
|
-
|
95
|
-
def createEditor
|
96
|
-
cb = Qt::ComboBox.new( table.viewport )
|
97
|
-
cb.setEditable( true )
|
98
|
-
cb.setAutoCompletion( true )
|
99
|
-
cb.insertStringList( table.meta_items )
|
100
|
-
cb.setCurrentText( text )
|
101
|
-
cb
|
102
|
-
end
|
103
|
-
|
104
|
-
def setContentFromEditor( widget )
|
105
|
-
setText( widget.currentText )
|
106
|
-
add_text_to_list( widget.currentText )
|
107
|
-
end
|
108
|
-
|
109
|
-
def add_text_to_list( text )
|
110
|
-
unless text.nil? || text.empty? || table.meta_items.include?( text )
|
111
|
-
table.meta_items << text
|
112
|
-
table.meta_items.sort!
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
end
|
117
|
-
|
118
|
-
class MetaTableValueItem < Qt::TableItem
|
119
|
-
|
120
|
-
def initialize( table, text = '' )
|
121
|
-
super( table, Qt::TableItem::OnTyping )
|
122
|
-
setContent( text )
|
123
|
-
end
|
124
|
-
|
125
|
-
def setContent( content )
|
126
|
-
setText( content.to_s )
|
127
|
-
end
|
128
|
-
|
129
|
-
def getContent
|
130
|
-
case text
|
131
|
-
when 'true' then true
|
132
|
-
when 'false' then false
|
133
|
-
when 'nil' then nil
|
134
|
-
when /\d+/ then text.to_i
|
135
|
-
else text
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
end
|
140
|
-
|
141
|
-
|
142
|
-
class MetaDataTable < Qt::Table
|
143
|
-
|
144
|
-
slots 'value_changed(int, int)'
|
145
|
-
|
146
|
-
attr_reader :meta_items
|
147
|
-
|
148
|
-
def initialize( p, meta_items = [], exclude_items = [] )
|
149
|
-
super( 1, 2, p )
|
150
|
-
@meta_items = meta_items.sort!
|
151
|
-
@exclude_items = exclude_items
|
152
|
-
horizontalHeader.setLabel( 0, 'Name' )
|
153
|
-
horizontalHeader.setLabel( 1, 'Value' )
|
154
|
-
setSelectionMode( Qt::Table::Single )
|
155
|
-
setItem( 0, 0, MetaTableNameItem.new( self ) )
|
156
|
-
setItem( 0, 1, MetaTableValueItem.new( self ) )
|
157
|
-
|
158
|
-
connect( horizontalHeader, SIGNAL('clicked(int)'), self, SLOT('setFocus()') )
|
159
|
-
connect( verticalHeader, SIGNAL('clicked(int)'), self, SLOT('setFocus()') )
|
160
|
-
connect( self, SIGNAL('valueChanged(int, int)'), self, SLOT('value_changed( int, int )') )
|
161
|
-
end
|
162
|
-
|
163
|
-
def activateNextCell
|
164
|
-
activate = endEdit( currentRow, currentColumn, true, false )
|
165
|
-
oldRow = currentRow
|
166
|
-
oldCol = currentColumn
|
167
|
-
|
168
|
-
setCurrentCell( currentColumn == 1 ? (currentRow == numRows - 1 ? 0 : currentRow + 1) : currentRow,
|
169
|
-
(currentColumn + 1) % 2 )
|
170
|
-
setCurrentCell( oldRow, oldCol ) if !activate
|
171
|
-
end
|
172
|
-
|
173
|
-
def endEdit( row, col, accept, replace )
|
174
|
-
activate_next_cell = true
|
175
|
-
w = cellWidget( row, col )
|
176
|
-
if col == 0 && !w.nil?
|
177
|
-
if keys( (0...row).to_a + (row+1..numRows-1).to_a ).find {|t| t == w.currentText && t != '' }
|
178
|
-
msg = "You can't add duplicate entries!"
|
179
|
-
elsif @exclude_items.include?( w.currentText )
|
180
|
-
msg = "This meta information can only be defined via other controls!"
|
181
|
-
end
|
182
|
-
if msg
|
183
|
-
Qt::MessageBox.information( self, "Error adding entry", msg )
|
184
|
-
accept = false
|
185
|
-
activate_next_cell = false
|
186
|
-
end
|
187
|
-
end
|
188
|
-
super( row, col, accept, replace )
|
189
|
-
activate_next_cell
|
190
|
-
end
|
191
|
-
|
192
|
-
def fill( items )
|
193
|
-
setNumRows( items.length + 1 )
|
194
|
-
items.each_with_index do |data, index|
|
195
|
-
setItem( index, 0, MetaTableNameItem.new( self, data[0] ) )
|
196
|
-
setItem( index, 1, MetaTableValueItem.new( self, data[1] ) )
|
197
|
-
end
|
198
|
-
setItem( items.length, 0, MetaTableNameItem.new( self ) )
|
199
|
-
setItem( items.length, 1, MetaTableValueItem.new( self ) )
|
200
|
-
end
|
201
|
-
|
202
|
-
def keys( rows = (0..(numRows-1)).to_a )
|
203
|
-
retval = []
|
204
|
-
rows.each do |i|
|
205
|
-
retval << text( i, 0 )
|
206
|
-
end
|
207
|
-
retval
|
208
|
-
end
|
209
|
-
|
210
|
-
def meta_info
|
211
|
-
retval = {}
|
212
|
-
0.upto( numRows - 2 ) do |i|
|
213
|
-
retval[text( i, 0 )] = item( i, 1 ).getContent
|
214
|
-
end
|
215
|
-
retval
|
216
|
-
end
|
217
|
-
|
218
|
-
def value_changed( row, col )
|
219
|
-
col0empty = text( row, 0 ).nil? || text( row, 0).empty?
|
220
|
-
col1empty = text( row, 1 ).nil? || text( row, 1).empty?
|
221
|
-
if row == numRows - 1 && (!col0empty || !col1empty)
|
222
|
-
setNumRows( numRows + 1 )
|
223
|
-
setItem( numRows - 1, 0, MetaTableNameItem.new( self ) )
|
224
|
-
setItem( numRows - 1, 1, MetaTableValueItem.new( self ) )
|
225
|
-
elsif !(row == numRows - 1) && col0empty && col1empty
|
226
|
-
removeRow( row )
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
def keyReleaseEvent( event )
|
231
|
-
if event.key == Qt::Key_Delete
|
232
|
-
if currentSelection == -1
|
233
|
-
setText( currentRow, currentColumn, '' )
|
234
|
-
emit valueChanged( currentRow, currentColumn )
|
235
|
-
else
|
236
|
-
sel = selection( currentSelection )
|
237
|
-
sel.topRow.upto( sel.bottomRow ) do |row|
|
238
|
-
sel.leftCol.upto( sel.rightCol) do |col|
|
239
|
-
setText( row, col, '' )
|
240
|
-
emit valueChanged( row, col )
|
241
|
-
end
|
242
|
-
end
|
243
|
-
end
|
244
|
-
else
|
245
|
-
event.ignore
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
249
|
-
end
|
250
|
-
|
251
|
-
|
252
|
-
class MyTextEdit < Qt::TextEdit
|
253
|
-
|
254
|
-
signals 'myReturnPressed()'
|
255
|
-
|
256
|
-
def keyPressEvent( event )
|
257
|
-
if (event.key == Qt::Key_Return || event.key == Qt::Key_Enter) && (event.state & Qt::ControlButton == Qt::ControlButton)
|
258
|
-
emit myReturnPressed()
|
259
|
-
else
|
260
|
-
super
|
261
|
-
end
|
262
|
-
end
|
263
|
-
|
264
|
-
end
|
265
|
-
|
266
|
-
|
267
|
-
class ImageFileDrag < Qt::DragObject
|
268
|
-
|
269
|
-
def initialize( text, parent )
|
270
|
-
super( parent )
|
271
|
-
@text = text
|
272
|
-
end
|
273
|
-
|
274
|
-
def format( param )
|
275
|
-
if param == 0
|
276
|
-
"app/webgen-image-file" #how to define a user mime type correctly?
|
277
|
-
else
|
278
|
-
nil
|
279
|
-
end
|
280
|
-
end
|
281
|
-
|
282
|
-
def encodedData( format )
|
283
|
-
@text
|
284
|
-
end
|
285
|
-
|
286
|
-
end
|
287
|
-
|
288
|
-
class ImageFileList < Qt::ListBox
|
289
|
-
|
290
|
-
def initialize( parent, mainWindow )
|
291
|
-
super( parent )
|
292
|
-
setAcceptDrops( true )
|
293
|
-
@dragPos = nil
|
294
|
-
@mainWindow = mainWindow
|
295
|
-
Qt::ToolTip.add( self, "You can order the images by dragging and dropping the image names (sets the <b>orderInfo</b> meta information)" )
|
296
|
-
end
|
297
|
-
|
298
|
-
def fill_list( items )
|
299
|
-
items.sort do |a,b|
|
300
|
-
aoi = (@mainWindow.gallery[a].nil? ? 0 : @mainWindow.gallery[a]['orderInfo'].to_s.to_i)
|
301
|
-
boi = (@mainWindow.gallery[b].nil? ? 0 : @mainWindow.gallery[b]['orderInfo'].to_s.to_i)
|
302
|
-
aoi <=> boi
|
303
|
-
end.each {|image| insertItem( image )}
|
304
|
-
end
|
305
|
-
|
306
|
-
def dragEnterEvent( event )
|
307
|
-
event.accept if event.provides( "app/webgen-image-file" )
|
308
|
-
end
|
309
|
-
|
310
|
-
def dropEvent( event )
|
311
|
-
text = event.encodedData( "app/webgen-image-file" ).to_s
|
312
|
-
dropIndex = index( itemAt( event.pos ) )
|
313
|
-
|
314
|
-
blockSignals( true )
|
315
|
-
@mainWindow.save_image_meta_info
|
316
|
-
removeItem( currentItem )
|
317
|
-
insertItem( text, dropIndex )
|
318
|
-
@mainWindow.save_image_meta_info
|
319
|
-
blockSignals( false )
|
320
|
-
|
321
|
-
0.upto( count - 1 ) {|i| (@mainWindow.gallery[text( i )] ||= {})['orderInfo'] = i }
|
322
|
-
|
323
|
-
setCurrentItem( dropIndex )
|
324
|
-
end
|
325
|
-
|
326
|
-
def mousePressEvent( event )
|
327
|
-
super
|
328
|
-
@dragPos = event.pos
|
329
|
-
end
|
330
|
-
|
331
|
-
def mouseReleaseEvent( event )
|
332
|
-
super
|
333
|
-
@dragPos = nil
|
334
|
-
end
|
335
|
-
|
336
|
-
def mouseMoveEvent( event )
|
337
|
-
if @dragPos && (@dragPos - event.pos).manhattanLength > Qt::Application.startDragDistance
|
338
|
-
d = ImageFileDrag.new( currentText, self )
|
339
|
-
d.dragMove
|
340
|
-
@dragPos = nil
|
341
|
-
end
|
342
|
-
end
|
343
|
-
|
344
|
-
end
|
345
|
-
|
346
|
-
|
347
|
-
class GalleryWindow < Qt::MainWindow
|
348
|
-
|
349
|
-
slots 'new()', 'open()', 'save()', 'save_as()', 'image_selected(const QString &)',
|
350
|
-
'init_image_list()', 'select_next_image()', "assign_pic_names()"
|
351
|
-
|
352
|
-
attr_reader :gallery
|
353
|
-
|
354
|
-
def initialize
|
355
|
-
super
|
356
|
-
setCaption( "Webgen Gallery Editor" )
|
357
|
-
|
358
|
-
@gallery = nil
|
359
|
-
@curfile = nil
|
360
|
-
setup_menus
|
361
|
-
setup_window
|
362
|
-
centralWidget.setEnabled( false )
|
363
|
-
end
|
364
|
-
|
365
|
-
def new
|
366
|
-
gallery = Gallery.new
|
367
|
-
if save_as( gallery )
|
368
|
-
@gallery = gallery
|
369
|
-
init_widgets
|
370
|
-
end
|
371
|
-
end
|
372
|
-
|
373
|
-
def open
|
374
|
-
openDialog = Qt::FileDialog.new( '.', 'Gallery files (*.gallery)', self, 'Open file...', true )
|
375
|
-
openDialog.setMode( Qt::FileDialog::ExistingFile )
|
376
|
-
open_file( openDialog.selectedFile ) if openDialog.exec == Qt::Dialog::Accepted
|
377
|
-
end
|
378
|
-
|
379
|
-
def open_file( file )
|
380
|
-
@curfile = file
|
381
|
-
@gallery = Gallery.new
|
382
|
-
@gallery.read_file( file )
|
383
|
-
init_widgets
|
384
|
-
end
|
385
|
-
|
386
|
-
def save
|
387
|
-
update_gallery
|
388
|
-
@gallery.write_file( @curfile )
|
389
|
-
end
|
390
|
-
|
391
|
-
def save_as( gallery = @gallery )
|
392
|
-
ret_val = false
|
393
|
-
saveDialog = Qt::FileDialog.new( '.', 'Gallery files (*.gallery)', self, 'Select new file...', true )
|
394
|
-
saveDialog.setMode( Qt::FileDialog::AnyFile )
|
395
|
-
if saveDialog.exec == Qt::Dialog::Accepted
|
396
|
-
fname = saveDialog.selectedFile
|
397
|
-
fname += '.gallery' if File.extname( fname ) == ''
|
398
|
-
gallery.write_file( fname )
|
399
|
-
@curfile = fname
|
400
|
-
ret_val = true
|
401
|
-
end
|
402
|
-
ret_val
|
403
|
-
end
|
404
|
-
|
405
|
-
def image_selected( name )
|
406
|
-
save_image_meta_info
|
407
|
-
@last_selected_image = name
|
408
|
-
|
409
|
-
if @gallery[name]
|
410
|
-
@imageTitle.setText( @gallery[name].delete( 'title' ) )
|
411
|
-
@imageDescription.setText( @gallery[name].delete( 'description' ) )
|
412
|
-
@picMetaTable.fill( @gallery[name] )
|
413
|
-
end
|
414
|
-
@image.set_image( File.join( @gallery.relpath, name ) )
|
415
|
-
end
|
416
|
-
|
417
|
-
def select_next_image
|
418
|
-
if @imageList.currentItem == @imageList.count - 1
|
419
|
-
@imageList.setCurrentItem( 0 ) if @imageList.count > 0
|
420
|
-
else
|
421
|
-
@imageList.setCurrentItem( @imageList.currentItem + 1 )
|
422
|
-
end
|
423
|
-
end
|
424
|
-
|
425
|
-
def assign_pic_names
|
426
|
-
0.upto( @imageList.count - 1 ) do |i|
|
427
|
-
@gallery[@imageList.text( i )] ||= {}
|
428
|
-
if @gallery[@imageList.text( i )]['title'].to_s.empty?
|
429
|
-
@gallery[@imageList.text( i )]['title'] = @imageList.text( i )
|
430
|
-
end
|
431
|
-
end
|
432
|
-
end
|
433
|
-
|
434
|
-
def save_image_meta_info
|
435
|
-
if @last_selected_image
|
436
|
-
@gallery[@last_selected_image] = @picMetaTable.meta_info
|
437
|
-
@gallery[@last_selected_image]['title'] = @imageTitle.text
|
438
|
-
@gallery[@last_selected_image]['description'] = @imageDescription.text
|
439
|
-
@last_selected_image = nil
|
440
|
-
end
|
441
|
-
end
|
442
|
-
|
443
|
-
#######
|
444
|
-
private
|
445
|
-
#######
|
446
|
-
|
447
|
-
def page_meta_items
|
448
|
-
['title', 'description', 'orderInfo', 'template', 'inMenu']
|
449
|
-
end
|
450
|
-
|
451
|
-
def gallery_items
|
452
|
-
['title', 'layout', 'files', 'imagesPerPage',
|
453
|
-
'imagePageInMenu', 'galleryPageInMenu', 'mainPageInMenu',
|
454
|
-
'imagePageTemplate', 'galleryPageTemplate', 'mainPageTemplate',
|
455
|
-
'galleryPages', 'mainPage', 'galleryOrderInfo', 'thumbnailSize' ]
|
456
|
-
end
|
457
|
-
|
458
|
-
def init_widgets
|
459
|
-
return if @gallery.nil?
|
460
|
-
|
461
|
-
gallery_items.each do |t|
|
462
|
-
case @widgets[t]
|
463
|
-
when Qt::LineEdit then @widgets[t].setText( @gallery[t] )
|
464
|
-
when Qt::SpinBox then @widgets[t].setValue( @gallery[t] )
|
465
|
-
when Qt::CheckBox then @widgets[t].setChecked( @gallery[t] )
|
466
|
-
when Qt::ComboBox then @widgets[t].setCurrentText( @gallery[t] )
|
467
|
-
when MetaDataTable then @widgets[t].fill( @gallery[t] ) if @gallery[t]
|
468
|
-
end
|
469
|
-
end
|
470
|
-
@picMetaTable.fill( [] )
|
471
|
-
init_image_list
|
472
|
-
@image.set_image
|
473
|
-
centralWidget.setEnabled( true )
|
474
|
-
end
|
475
|
-
|
476
|
-
def update_gallery
|
477
|
-
items = gallery_items
|
478
|
-
items.each do |t|
|
479
|
-
case @widgets[t]
|
480
|
-
when Qt::LineEdit then @gallery[t] = @widgets[t].text
|
481
|
-
when Qt::SpinBox then @gallery[t] = @widgets[t].value
|
482
|
-
when Qt::CheckBox then @gallery[t] = @widgets[t].checked?
|
483
|
-
when Qt::ComboBox then @gallery[t] = @widgets[t].currentText
|
484
|
-
when MetaDataTable then @gallery[t] = @widgets[t].meta_info
|
485
|
-
end
|
486
|
-
end
|
487
|
-
images = []
|
488
|
-
0.upto( @imageList.numRows ) {|i| images << @imageList.text( i ) }
|
489
|
-
|
490
|
-
save_image_meta_info
|
491
|
-
@gallery.meta.delete_if do |name, data|
|
492
|
-
!images.include?( name ) && !items.include?( name )
|
493
|
-
end
|
494
|
-
end
|
495
|
-
|
496
|
-
def init_image_list
|
497
|
-
@imageList.clear
|
498
|
-
images = Dir[File.join( @gallery.relpath, @widgets['files'].text)].collect {|i| i.sub( /#{@gallery.relpath + File::SEPARATOR}/, '' ) }
|
499
|
-
@imageList.fill_list( images )
|
500
|
-
@last_selected_image = nil
|
501
|
-
end
|
502
|
-
|
503
|
-
def setup_menus
|
504
|
-
filemenu = Qt::PopupMenu.new( self )
|
505
|
-
filemenu.insertItem( "&New...", self, SLOT("new()"), Qt::KeySequence.new( CTRL+Key_N ) )
|
506
|
-
filemenu.insertItem( "&Open...", self, SLOT("open()"), Qt::KeySequence.new( CTRL+Key_O ) )
|
507
|
-
filemenu.insertItem( "&Save", self, SLOT("save()"), Qt::KeySequence.new( CTRL+Key_S ) )
|
508
|
-
filemenu.insertItem( "&Save as...", self, SLOT("save_as()") )
|
509
|
-
filemenu.insertItem( "&Quit", $app, SLOT("quit()"), Qt::KeySequence.new( CTRL+Key_Q ) )
|
510
|
-
|
511
|
-
picmenu = Qt::PopupMenu.new( self )
|
512
|
-
picmenu.insertItem( "&Assign default names", self, SLOT("assign_pic_names()") )
|
513
|
-
|
514
|
-
menubar = Qt::MenuBar.new( self )
|
515
|
-
menubar.insertItem( "&File", filemenu )
|
516
|
-
menubar.insertItem( "&Images", picmenu )
|
517
|
-
end
|
518
|
-
|
519
|
-
def setup_window
|
520
|
-
mainFrame = Qt::Widget.new( self )
|
521
|
-
|
522
|
-
@widgets = {}
|
523
|
-
labels = {}
|
524
|
-
@widgets['title'] = Qt::LineEdit.new( mainFrame )
|
525
|
-
labels['title'] = [0, Qt::Label.new( @widgets['title'], "Gallery title:", mainFrame )]
|
526
|
-
|
527
|
-
@widgets['files'] = Qt::LineEdit.new( mainFrame )
|
528
|
-
connect( @widgets['files'], SIGNAL('textChanged(const QString&)'), self, SLOT('init_image_list()') )
|
529
|
-
labels['files'] = [1, Qt::Label.new( @widgets['files'], "File pattern:", mainFrame )]
|
530
|
-
|
531
|
-
@widgets['layout'] = Qt::ComboBox.new( true, mainFrame )
|
532
|
-
@widgets['layout'].setMaximumWidth( 200 )
|
533
|
-
Webgen::Plugin.config[GalleryLayouters::DefaultGalleryLayouter].layouts.keys.each do |name|
|
534
|
-
@widgets['layout'].insertItem( Qt::Pixmap.new( File.join( CorePlugins::Configuration.data_dir, 'gallery-creator', "#{name}.png" ) ), \
|
535
|
-
name )
|
536
|
-
end
|
537
|
-
@widgets['layout'].listBox.setMinimumWidth( @widgets['layout'].listBox.maxItemWidth + 20 )
|
538
|
-
labels['layout'] = [2, Qt::Label.new( @widgets['layout'], "Gallery layout:", mainFrame )]
|
539
|
-
|
540
|
-
@widgets['imagesPerPage'] = Qt::SpinBox.new( 0, 1000, 1, mainFrame )
|
541
|
-
labels['imagesPerPage'] = [3, Qt::Label.new( @widgets['imagesPerPage'], "Images per page:", mainFrame )]
|
542
|
-
|
543
|
-
@widgets['galleryOrderInfo'] = Qt::SpinBox.new( 0, 1000, 1, mainFrame )
|
544
|
-
labels['galleryOrderInfo'] = [4, Qt::Label.new( @widgets['galleryOrderInfo'], "Start <orderInfo> for gallery pages:", mainFrame )]
|
545
|
-
|
546
|
-
@widgets['thumbnailSize'] = Qt::LineEdit.new( mainFrame )
|
547
|
-
@widgets['thumbnailSize'].setValidator( Qt::RegExpValidator.new( Qt::RegExp.new( "\\d+x\\d+" ), mainFrame ) )
|
548
|
-
labels['thumbnailSize'] = [5, Qt::Label.new( @widgets['thumbnailSize'], "Thumbnail size:", mainFrame )]
|
549
|
-
|
550
|
-
@widgets['mainPageTemplate'] = Qt::LineEdit.new( mainFrame )
|
551
|
-
labels['mainPageTemplate'] = [6, Qt::Label.new( @widgets['mainPageTemplate'], "Template for main page:", mainFrame )]
|
552
|
-
|
553
|
-
@widgets['galleryPageTemplate'] = Qt::LineEdit.new( mainFrame )
|
554
|
-
labels['galleryPageTemplate'] = [7, Qt::Label.new( @widgets['galleryPageTemplate'], "Template for gallery pages:", mainFrame )]
|
555
|
-
|
556
|
-
@widgets['imagePageTemplate'] = Qt::LineEdit.new( mainFrame )
|
557
|
-
labels['imagePageTemplate'] = [8, Qt::Label.new( @widgets['imagePageTemplate'], "Template for image pages:", mainFrame )]
|
558
|
-
|
559
|
-
@widgets['mainPageInMenu'] = Qt::CheckBox.new( "Main page in menu?", mainFrame )
|
560
|
-
labels['mainPageInMenu'] = [9, nil]
|
561
|
-
|
562
|
-
@widgets['galleryPageInMenu'] = Qt::CheckBox.new( "Gallery pages in menu?", mainFrame )
|
563
|
-
labels['galleryPageInMenu'] = [10, nil]
|
564
|
-
|
565
|
-
@widgets['imagePageInMenu'] = Qt::CheckBox.new( "Image pages in menu?", mainFrame )
|
566
|
-
labels['imagePageInMenu'] = [11, nil]
|
567
|
-
|
568
|
-
layout = Qt::GridLayout.new( @widgets.length, 2 )
|
569
|
-
layout.setSpacing( 5 )
|
570
|
-
labels.each_with_index do |data, index|
|
571
|
-
layout.addWidget( data[1][1], data[1][0], 0 ) if data[1][1]
|
572
|
-
layout.addWidget( @widgets[data[0]], data[1][0], 1 )
|
573
|
-
end
|
574
|
-
|
575
|
-
leftLayout = Qt::VBoxLayout.new
|
576
|
-
leftLayout.setSpacing( 5 )
|
577
|
-
leftLayout.addLayout( layout )
|
578
|
-
leftLayout.addStretch
|
579
|
-
|
580
|
-
@widgets['mainPage'] = MetaDataTable.new( mainFrame, page_meta_items )
|
581
|
-
@widgets['mainPage'].setColumnWidth( 0, 150 )
|
582
|
-
@widgets['mainPage'].setColumnWidth( 1, 150 )
|
583
|
-
@widgets['mainPage'].setMinimumWidth( 350 )
|
584
|
-
@widgets['galleryPages'] = MetaDataTable.new( mainFrame, page_meta_items )
|
585
|
-
@widgets['galleryPages'].setColumnWidth( 0, 150 )
|
586
|
-
@widgets['galleryPages'].setColumnWidth( 1, 150 )
|
587
|
-
|
588
|
-
rightLayout = Qt::VBoxLayout.new
|
589
|
-
rightLayout.setSpacing( 5 )
|
590
|
-
rightLayout.addWidget( Qt::Label.new( 'Meta information for main page:', mainFrame ) )
|
591
|
-
rightLayout.addWidget( @widgets['mainPage'] )
|
592
|
-
rightLayout.addWidget( Qt::Label.new( 'Meta information for gallery pages:', mainFrame ) )
|
593
|
-
rightLayout.addWidget( @widgets['galleryPages'] )
|
594
|
-
|
595
|
-
galLayout = Qt::HBoxLayout.new
|
596
|
-
galLayout.setSpacing( 20 )
|
597
|
-
galLayout.addLayout( leftLayout )
|
598
|
-
galLayout.addLayout( rightLayout )
|
599
|
-
galLayout.setStretchFactor( rightLayout, 1 )
|
600
|
-
|
601
|
-
|
602
|
-
@image = ImageViewer.new( mainFrame )
|
603
|
-
@image.setSizePolicy( Qt::SizePolicy::Expanding, Qt::SizePolicy::Expanding )
|
604
|
-
@image.setMinimumSize( 320, 200 )
|
605
|
-
|
606
|
-
@imageTitle = Qt::LineEdit.new( mainFrame )
|
607
|
-
imageTitle = Qt::Label.new( @imageTitle, "Title:", mainFrame )
|
608
|
-
@imageDescription = MyTextEdit.new( mainFrame )
|
609
|
-
@imageDescription.setTextFormat( Qt::PlainText )
|
610
|
-
imageDescription = Qt::Label.new( @imageDescription, "Description:", mainFrame )
|
611
|
-
connect( @imageTitle, SIGNAL('returnPressed()'), @imageDescription, SLOT('setFocus()') )
|
612
|
-
connect( @imageDescription, SIGNAL('myReturnPressed()'), self, SLOT('select_next_image()') )
|
613
|
-
connect( @imageDescription, SIGNAL('myReturnPressed()'), @imageTitle, SLOT('setFocus()') )
|
614
|
-
|
615
|
-
@imageList = ImageFileList.new( mainFrame, self )
|
616
|
-
@imageList.setMaximumWidth( 300 )
|
617
|
-
connect( @imageList, SIGNAL('highlighted(const QString &)'), self, SLOT('image_selected( const QString &)') )
|
618
|
-
@picMetaTable = MetaDataTable.new( mainFrame, page_meta_items - ['title', 'description'], ['title', 'description'] )
|
619
|
-
@picMetaTable.setColumnWidth( 0, 100 )
|
620
|
-
@picMetaTable.setColumnWidth( 1, 100 )
|
621
|
-
@picMetaTable.setMaximumWidth( 300 )
|
622
|
-
|
623
|
-
imageLayout = Qt::GridLayout.new( 3, 3 )
|
624
|
-
imageLayout.setSpacing( 6 )
|
625
|
-
imageLayout.addWidget( @imageList, 0, 0 )
|
626
|
-
imageLayout.addMultiCellWidget( @picMetaTable, 1, 2, 0, 0 )
|
627
|
-
imageLayout.addMultiCellWidget( @image, 0, 0, 1, 2 )
|
628
|
-
imageLayout.addWidget( imageTitle, 1, 1 )
|
629
|
-
imageLayout.addWidget( @imageTitle, 1, 2 )
|
630
|
-
imageLayout.addWidget( imageDescription, 2, 1, Qt::AlignTop )
|
631
|
-
imageLayout.addWidget( @imageDescription, 2, 2 )
|
632
|
-
imageLayout.setRowStretch( 0, 1 )
|
633
|
-
|
634
|
-
mainLayout = Qt::VBoxLayout.new( mainFrame )
|
635
|
-
mainLayout.setMargin( 10 )
|
636
|
-
mainLayout.setSpacing( 20 )
|
637
|
-
mainLayout.addLayout( galLayout )
|
638
|
-
mainLayout.addLayout( imageLayout )
|
639
|
-
mainLayout.setStretchFactor( imageLayout, 1 )
|
640
|
-
|
641
|
-
setCentralWidget( mainFrame )
|
642
|
-
end
|
643
|
-
|
644
|
-
end
|
645
|
-
|
646
|
-
Webgen::Plugin['Configuration'].init_all
|
647
|
-
|
648
|
-
$app = Qt::Application.new( ARGV )
|
649
|
-
mainWindow = GalleryWindow.new
|
650
|
-
$app.setMainWidget( mainWindow )
|
651
|
-
mainWindow.show
|
652
|
-
mainWindow.open_file( ARGV[0] ) if ARGV.length > 0
|
653
|
-
$app.exec
|
654
|
-
|