From 259c24d176c489ad58365dd37c35dabd949f6f39 Mon Sep 17 00:00:00 2001 From: Vladislav Kobzar Date: Sun, 22 Jan 2017 12:59:41 -0600 Subject: [PATCH] Start of New SoftProjector repository. Copied filed from scr_from_sf_net repositiry. --- DisplayArea.qml | 670 +++ aboutdialog.cpp | 53 + aboutdialog.h | 48 + aboutdialog.ui | 553 ++ addsongbookdialog.cpp | 69 + addsongbookdialog.h | 53 + addsongbookdialog.ui | 122 + announcement.cpp | 324 + announcement.h | 110 + announcementsettingwidget.cpp | 272 + announcementsettingwidget.h | 72 + announcementsettingwidget.ui | 745 +++ announcewidget.cpp | 235 + announcewidget.h | 77 + announcewidget.ui | 130 + bible.cpp | 433 ++ bible.h | 113 + bibleinformationdialog.cpp | 59 + bibleinformationdialog.h | 52 + bibleinformationdialog.ui | 130 + biblesettingwidget.cpp | 661 +++ biblesettingwidget.h | 94 + biblesettingwidget.ui | 1427 +++++ biblewidget.cpp | 568 ++ biblewidget.h | 100 + biblewidget.ui | 589 ++ controlbutton.cpp | 123 + controlbutton.h | 59 + displayscreen.cpp | 1476 +++++ displayscreen.h | 141 + displayscreen.ui | 33 + displaysetting.cpp | 50 + displaysetting.h | 64 + editannouncementdialog.cpp | 157 + editannouncementdialog.h | 68 + editannouncementdialog.ui | 173 + editwidget.cpp | 552 ++ editwidget.h | 97 + editwidget.ui | 621 ++ generalsettingwidget.cpp | 218 + generalsettingwidget.h | 69 + generalsettingwidget.ui | 349 ++ help/about.html | 71 + help/about_de.html | 72 + help/about_ru.html | 69 + help/addsongbooks.html | 48 + help/addsongbooks_de.html | 47 + help/addsongbooks_ru.html | 47 + help/addsongs.html | 63 + help/addsongs_de.html | 58 + help/addsongs_ru.html | 60 + help/biblesettings.html | 43 + help/biblesettings_de.html | 41 + help/biblesettings_ru.html | 42 + help/copysong.html | 49 + help/copysong_de.html | 48 + help/copysong_ru.html | 46 + help/deletesongs.html | 40 + help/deletesongs_de.html | 41 + help/deletesongs_ru.html | 41 + help/dualscreen.html | 81 + help/dualscreen_de.html | 76 + help/dualscreen_ru.html | 73 + help/editsong.html | 59 + help/editsong_de.html | 56 + help/editsong_ru.html | 55 + help/features.html | 77 + help/features_de.html | 74 + help/features_ru.html | 74 + help/generalsettings.html | 82 + help/generalsettings_de.html | 80 + help/generalsettings_ru.html | 73 + help/images/add_songbook.png | Bin 0 -> 7756 bytes help/images/add_songbook_de.png | Bin 0 -> 8016 bytes help/images/add_songbook_ru.png | Bin 0 -> 7533 bytes help/images/announce.png | Bin 0 -> 3493 bytes help/images/bible_settings.png | Bin 0 -> 2161 bytes help/images/bible_settings_de.png | Bin 0 -> 2285 bytes help/images/bible_settings_ru.png | Bin 0 -> 2305 bytes help/images/book.png | Bin 0 -> 1571 bytes help/images/database.png | Bin 0 -> 4257 bytes help/images/de.png | Bin 0 -> 825 bytes help/images/edit_bible.png | Bin 0 -> 6539 bytes help/images/edit_bible_de.png | Bin 0 -> 6657 bytes help/images/edit_bible_ru.png | Bin 0 -> 7047 bytes help/images/edit_songbook.png | Bin 0 -> 7936 bytes help/images/edit_songbook_de.png | Bin 0 -> 8333 bytes help/images/edit_songbook_ru.png | Bin 0 -> 7943 bytes help/images/edit_songs.png | Bin 0 -> 22046 bytes help/images/edit_songs_de.png | Bin 0 -> 19764 bytes help/images/edit_songs_ru.png | Bin 0 -> 23065 bytes help/images/en.png | Bin 0 -> 771 bytes help/images/exit.png | Bin 0 -> 888 bytes help/images/general_settings.png | Bin 0 -> 21550 bytes help/images/general_settings_de.png | Bin 0 -> 22682 bytes help/images/general_settings_ru.png | Bin 0 -> 21848 bytes help/images/manage_bibles.png | Bin 0 -> 8077 bytes help/images/manage_bibles_de.png | Bin 0 -> 7918 bytes help/images/manage_bibles_ru.png | Bin 0 -> 7538 bytes help/images/manage_songbooks.png | Bin 0 -> 13522 bytes help/images/manage_songbooks_de.png | Bin 0 -> 13674 bytes help/images/manage_songbooks_ru.png | Bin 0 -> 11677 bytes help/images/next.png | Bin 0 -> 678 bytes help/images/oveview.png | Bin 0 -> 59456 bytes help/images/oveview_de.png | Bin 0 -> 43798 bytes help/images/oveview_ru.png | Bin 0 -> 47133 bytes help/images/prev.png | Bin 0 -> 647 bytes help/images/ru.png | Bin 0 -> 883 bytes help/images/select_songbook.png | Bin 0 -> 7625 bytes help/images/select_songbook_c.png | Bin 0 -> 7636 bytes help/images/select_songbook_c_de.png | Bin 0 -> 8466 bytes help/images/select_songbook_c_ru.png | Bin 0 -> 7817 bytes help/images/select_songbook_de.png | Bin 0 -> 8509 bytes help/images/select_songbook_ru.png | Bin 0 -> 7804 bytes help/images/settings.png | Bin 0 -> 3319 bytes help/images/show_announce.png | Bin 0 -> 17597 bytes help/images/show_announce_de.png | Bin 0 -> 16423 bytes help/images/show_announce_ru.png | Bin 0 -> 14353 bytes help/images/show_bible.png | Bin 0 -> 35642 bytes help/images/show_bible_de.png | Bin 0 -> 39003 bytes help/images/show_bible_ru.png | Bin 0 -> 39053 bytes help/images/show_main.png | Bin 0 -> 34257 bytes help/images/show_main_de.png | Bin 0 -> 41449 bytes help/images/show_main_ru.png | Bin 0 -> 42296 bytes help/images/show_songs.png | Bin 0 -> 29672 bytes help/images/show_songs_de.png | Bin 0 -> 31289 bytes help/images/show_songs_ru.png | Bin 0 -> 33570 bytes help/images/softprojector_help.png | Bin 0 -> 8900 bytes help/images/softprojector_help_cloud.png | Bin 0 -> 46081 bytes help/images/softprojector_help_cloud_de.png | Bin 0 -> 45957 bytes help/images/softprojector_help_cloud_ru.png | Bin 0 -> 47631 bytes help/images/softprojector_help_de.png | Bin 0 -> 8589 bytes help/images/softprojector_help_ru.png | Bin 0 -> 11399 bytes help/images/song_copy.png | Bin 0 -> 4114 bytes help/images/song_delete.png | Bin 0 -> 3899 bytes help/images/song_edit.png | Bin 0 -> 4212 bytes help/images/song_new.png | Bin 0 -> 3794 bytes help/images/song_settings.png | Bin 0 -> 1821 bytes help/images/song_settings_de.png | Bin 0 -> 2004 bytes help/images/song_settings_ru.png | Bin 0 -> 2581 bytes help/images/song_tab.png | Bin 0 -> 3641 bytes help/images/unbound_down.png | Bin 0 -> 5838 bytes help/images/unbound_select.png | Bin 0 -> 3201 bytes help/images/vistSettings.png | Bin 0 -> 92910 bytes help/images/w7Settings.png | Bin 0 -> 111167 bytes help/images/xpSettings.png | Bin 0 -> 31110 bytes help/images/xpSettings_ru.png | Bin 0 -> 139674 bytes help/index.html | 27 + help/index_de.html | 87 + help/index_ru.html | 85 + help/managebible.html | 73 + help/managebible_de.html | 72 + help/managebible_ru.html | 72 + help/managesongbooks.html | 65 + help/managesongbooks_de.html | 64 + help/managesongbooks_ru.html | 63 + help/overview.html | 111 + help/overview_de.html | 105 + help/overview_ru.html | 104 + help/releasenotes.html | 72 + help/releasenotes_de.html | 72 + help/releasenotes_ru.html | 72 + help/shortcuts.html | 87 + help/shortcuts_de.html | 87 + help/shortcuts_ru.html | 87 + help/show.html | 67 + help/show_de.html | 66 + help/show_ru.html | 63 + help/showannounce.html | 64 + help/showannounce_de.html | 58 + help/showannounce_ru.html | 59 + help/showbible.html | 128 + help/showbible_de.html | 121 + help/showbible_ru.html | 129 + help/showsongs.html | 114 + help/showsongs_de.html | 107 + help/showsongs_ru.html | 105 + help/songformat.html | 118 + help/songformat_de.html | 122 + help/songformat_ru.html | 110 + help/songsettings.html | 45 + help/songsettings_de.html | 45 + help/songsettings_ru.html | 42 + help/sphelp.css | 128 + helpdialog.cpp | 53 + helpdialog.h | 48 + helpdialog.ui | 48 + highlight.cpp | 197 + highlight.h | 109 + icons/ExpandSmall.png | Bin 0 -> 5140 bytes icons/FitToScreen.png | Bin 0 -> 6376 bytes icons/FitToScreenByExpanding.png | Bin 0 -> 7489 bytes icons/aboveText.png | Bin 0 -> 245 bytes icons/add.png | Bin 0 -> 1546 bytes icons/add_songbook.png | Bin 0 -> 3317 bytes icons/alingBottom.png | Bin 0 -> 243 bytes icons/alingCenter.png | Bin 0 -> 247 bytes icons/alingLeft.png | Bin 0 -> 236 bytes icons/alingMiddle.png | Bin 0 -> 285 bytes icons/alingRight.png | Bin 0 -> 246 bytes icons/alingTop.png | Bin 0 -> 244 bytes icons/announce.png | Bin 0 -> 11114 bytes icons/announce_copy.png | Bin 0 -> 4049 bytes icons/announce_delete.png | Bin 0 -> 4046 bytes icons/announce_edit.png | Bin 0 -> 4354 bytes icons/announce_new.png | Bin 0 -> 4141 bytes icons/apply_to_all.png | Bin 0 -> 2762 bytes icons/base-22x22-actions-application-exit.png | Bin 0 -> 888 bytes icons/belowText.png | Bin 0 -> 283 bytes icons/bibleHistoryDelete.png | Bin 0 -> 4215 bytes icons/book.png | Bin 0 -> 3806 bytes icons/bottomOfScreen.png | Bin 0 -> 279 bytes icons/clear.png | Bin 0 -> 2768 bytes icons/common.png | Bin 0 -> 2762 bytes icons/controlExit.png | Bin 0 -> 4489 bytes icons/controlExitHovered.png | Bin 0 -> 6978 bytes icons/controlExitPressed.png | Bin 0 -> 7429 bytes icons/controlNext.png | Bin 0 -> 4058 bytes icons/controlNextHovered.png | Bin 0 -> 6387 bytes icons/controlNextPressed.png | Bin 0 -> 8263 bytes icons/controlPrev.png | Bin 0 -> 4038 bytes icons/controlPrevHovered.png | Bin 0 -> 6298 bytes icons/controlPrevPressed.png | Bin 0 -> 8153 bytes icons/database.png | Bin 0 -> 4257 bytes icons/display.png | Bin 0 -> 15765 bytes icons/display_off.png | Bin 0 -> 2918 bytes icons/display_on.png | Bin 0 -> 4324 bytes icons/down.png | Bin 0 -> 746 bytes icons/edit.png | Bin 0 -> 4678 bytes icons/effectsBlurredShadow.png | Bin 0 -> 815 bytes icons/effectsNone.png | Bin 0 -> 640 bytes icons/effectsShadow.png | Bin 0 -> 261 bytes icons/flag_uk.png | Bin 0 -> 2675 bytes icons/go_live.png | Bin 0 -> 1561 bytes icons/help.png | Bin 0 -> 4275 bytes icons/hide.png | Bin 0 -> 1811 bytes icons/new.png | Bin 0 -> 3464 bytes icons/open.png | Bin 0 -> 2853 bytes icons/pause.png | Bin 0 -> 7029 bytes icons/photo.png | Bin 0 -> 7225 bytes icons/play.png | Bin 0 -> 6793 bytes icons/playerScreen.png | Bin 0 -> 24076 bytes icons/print.png | Bin 0 -> 1403 bytes icons/remove.png | Bin 0 -> 1020 bytes icons/remove_all.png | Bin 0 -> 1487 bytes icons/save.png | Bin 0 -> 2820 bytes icons/scheduleAdd.png | Bin 0 -> 2445 bytes icons/scheduleClear.png | Bin 0 -> 2216 bytes icons/scheduleDown.png | Bin 0 -> 2845 bytes icons/scheduleDownM.png | Bin 0 -> 2951 bytes icons/scheduleNew.png | Bin 0 -> 3021 bytes icons/scheduleOpen.png | Bin 0 -> 2528 bytes icons/scheduleRemove.png | Bin 0 -> 1939 bytes icons/scheduleSave.png | Bin 0 -> 2455 bytes icons/scheduleUp.png | Bin 0 -> 2819 bytes icons/scheduleUpM.png | Bin 0 -> 2869 bytes icons/screen.png | Bin 0 -> 4358 bytes icons/search.png | Bin 0 -> 11334 bytes icons/settings.png | Bin 0 -> 3319 bytes icons/show.png | Bin 0 -> 2992 bytes icons/slideshow_delete.png | Bin 0 -> 13816 bytes icons/slideshow_edit.png | Bin 0 -> 17764 bytes icons/slideshow_new.png | Bin 0 -> 14685 bytes icons/softprojector.png | Bin 0 -> 17452 bytes icons/softprojector_cloud.png | Bin 0 -> 30538 bytes icons/solidColor.png | Bin 0 -> 216 bytes icons/song_copy.png | Bin 0 -> 4114 bytes icons/song_count.png | Bin 0 -> 3491 bytes icons/song_delete.png | Bin 0 -> 3899 bytes icons/song_edit.png | Bin 0 -> 4212 bytes icons/song_new.png | Bin 0 -> 3794 bytes icons/song_tab.png | Bin 0 -> 3641 bytes icons/splash.png | Bin 0 -> 51816 bytes icons/stop.png | Bin 0 -> 9424 bytes icons/toBottomOfScreen.png | Bin 0 -> 563 bytes icons/toTopOfScreen.png | Bin 0 -> 561 bytes icons/tranFade.png | Bin 0 -> 1175 bytes icons/tranFadeOutIn.png | Bin 0 -> 943 bytes icons/tranMoveDown.png | Bin 0 -> 723 bytes icons/tranMoveLeft.png | Bin 0 -> 714 bytes icons/tranMoveRight.png | Bin 0 -> 874 bytes icons/tranMoveUp.png | Bin 0 -> 785 bytes icons/tranNone.png | Bin 0 -> 744 bytes icons/up.png | Bin 0 -> 707 bytes icons/video.png | Bin 0 -> 4945 bytes icons/video_add.png | Bin 0 -> 6114 bytes icons/video_remove.png | Bin 0 -> 8359 bytes imagegenerator.cpp | 775 +++ imagegenerator.hpp | 62 + main.cpp | 240 + managedata.cpp | 330 ++ managedata.h | 142 + managedatadialog.cpp | 2205 +++++++ managedatadialog.h | 152 + managedatadialog.ui | 403 ++ mediawidget.cpp | 464 ++ mediawidget.h | 101 + mediawidget.ui | 188 + moduledownloaddialog.cpp | 72 + moduledownloaddialog.h | 51 + moduledownloaddialog.ui | 115 + moduleprogressdialog.cpp | 115 + moduleprogressdialog.h | 59 + moduleprogressdialog.ui | 90 + mpsettings.ui | 495 ++ passivesettingwidget.cpp | 131 + passivesettingwidget.h | 60 + passivesettingwidget.ui | 269 + picturesettingwidget.cpp | 137 + picturesettingwidget.h | 53 + picturesettingwidget.ui | 251 + picturewidget.cpp | 299 + picturewidget.h | 82 + picturewidget.ui | 298 + printpreviewdialog.cpp | 275 + printpreviewdialog.h | 68 + printpreviewdialog.ui | 193 + projectordisplayscreen.cpp | 351 ++ projectordisplayscreen.hpp | 73 + projectordisplayscreen.ui | 36 + schedule.cpp | 70 + schedule.h | 51 + settings.cpp | 972 +++ settings.h | 284 + settingsdialog.cpp | 213 + settingsdialog.h | 94 + settingsdialog.ui | 499 ++ slideshow.cpp | 198 + slideshow.h | 67 + slideshoweditor.cpp | 217 + slideshoweditor.h | 68 + slideshoweditor.ui | 234 + softProjector.pro | 167 + softprojector.cpp | 2376 ++++++++ softprojector.h | 239 + softprojector.ico | Bin 0 -> 67646 bytes softprojector.qrc | 104 + softprojector.rc | 1 + softprojector.ui | 691 +++ song.cpp | 823 +++ song.h | 162 + songcounter.cpp | 302 + songcounter.h | 91 + songcounter.ui | 87 + songsettingwidget.cpp | 417 ++ songsettingwidget.h | 79 + songsettingwidget.ui | 1592 +++++ songwidget.cpp | 620 ++ songwidget.h | 103 + songwidget.ui | 375 ++ spfunctions.cpp | 64 + spfunctions.h | 39 + spimageprovider.cpp | 16 + spimageprovider.hpp | 20 + theme.cpp | 514 ++ theme.h | 166 + translations/flag_cs.png | Bin 0 -> 1295 bytes translations/flag_de.png | Bin 0 -> 808 bytes translations/flag_ru.png | Bin 0 -> 551 bytes translations/flag_ua.png | Bin 0 -> 737 bytes translations/softpro_cs.qm | Bin 0 -> 84986 bytes translations/softpro_cs.ts | 5195 +++++++++++++++++ translations/softpro_de.qm | Bin 0 -> 87028 bytes translations/softpro_de.ts | 5107 ++++++++++++++++ translations/softpro_ru.qm | Bin 0 -> 80597 bytes translations/softpro_ru.ts | 5118 ++++++++++++++++ translations/softpro_ua.qm | Bin 0 -> 82873 bytes translations/softpro_ua.ts | 4984 ++++++++++++++++ videoinfo.cpp | 25 + videoinfo.h | 35 + videoplayerwidget.cpp | 103 + videoplayerwidget.h | 51 + 372 files changed, 58614 insertions(+) create mode 100644 DisplayArea.qml create mode 100644 aboutdialog.cpp create mode 100644 aboutdialog.h create mode 100644 aboutdialog.ui create mode 100644 addsongbookdialog.cpp create mode 100644 addsongbookdialog.h create mode 100644 addsongbookdialog.ui create mode 100644 announcement.cpp create mode 100644 announcement.h create mode 100644 announcementsettingwidget.cpp create mode 100644 announcementsettingwidget.h create mode 100644 announcementsettingwidget.ui create mode 100644 announcewidget.cpp create mode 100644 announcewidget.h create mode 100644 announcewidget.ui create mode 100644 bible.cpp create mode 100644 bible.h create mode 100644 bibleinformationdialog.cpp create mode 100644 bibleinformationdialog.h create mode 100644 bibleinformationdialog.ui create mode 100644 biblesettingwidget.cpp create mode 100644 biblesettingwidget.h create mode 100644 biblesettingwidget.ui create mode 100644 biblewidget.cpp create mode 100644 biblewidget.h create mode 100644 biblewidget.ui create mode 100644 controlbutton.cpp create mode 100644 controlbutton.h create mode 100644 displayscreen.cpp create mode 100644 displayscreen.h create mode 100644 displayscreen.ui create mode 100644 displaysetting.cpp create mode 100644 displaysetting.h create mode 100644 editannouncementdialog.cpp create mode 100644 editannouncementdialog.h create mode 100644 editannouncementdialog.ui create mode 100644 editwidget.cpp create mode 100644 editwidget.h create mode 100644 editwidget.ui create mode 100644 generalsettingwidget.cpp create mode 100644 generalsettingwidget.h create mode 100644 generalsettingwidget.ui create mode 100644 help/about.html create mode 100644 help/about_de.html create mode 100644 help/about_ru.html create mode 100644 help/addsongbooks.html create mode 100644 help/addsongbooks_de.html create mode 100644 help/addsongbooks_ru.html create mode 100644 help/addsongs.html create mode 100644 help/addsongs_de.html create mode 100644 help/addsongs_ru.html create mode 100644 help/biblesettings.html create mode 100644 help/biblesettings_de.html create mode 100644 help/biblesettings_ru.html create mode 100644 help/copysong.html create mode 100644 help/copysong_de.html create mode 100644 help/copysong_ru.html create mode 100644 help/deletesongs.html create mode 100644 help/deletesongs_de.html create mode 100644 help/deletesongs_ru.html create mode 100644 help/dualscreen.html create mode 100644 help/dualscreen_de.html create mode 100644 help/dualscreen_ru.html create mode 100644 help/editsong.html create mode 100644 help/editsong_de.html create mode 100644 help/editsong_ru.html create mode 100644 help/features.html create mode 100644 help/features_de.html create mode 100644 help/features_ru.html create mode 100644 help/generalsettings.html create mode 100644 help/generalsettings_de.html create mode 100644 help/generalsettings_ru.html create mode 100644 help/images/add_songbook.png create mode 100644 help/images/add_songbook_de.png create mode 100644 help/images/add_songbook_ru.png create mode 100644 help/images/announce.png create mode 100644 help/images/bible_settings.png create mode 100644 help/images/bible_settings_de.png create mode 100644 help/images/bible_settings_ru.png create mode 100644 help/images/book.png create mode 100644 help/images/database.png create mode 100644 help/images/de.png create mode 100644 help/images/edit_bible.png create mode 100644 help/images/edit_bible_de.png create mode 100644 help/images/edit_bible_ru.png create mode 100644 help/images/edit_songbook.png create mode 100644 help/images/edit_songbook_de.png create mode 100644 help/images/edit_songbook_ru.png create mode 100644 help/images/edit_songs.png create mode 100644 help/images/edit_songs_de.png create mode 100644 help/images/edit_songs_ru.png create mode 100644 help/images/en.png create mode 100644 help/images/exit.png create mode 100644 help/images/general_settings.png create mode 100644 help/images/general_settings_de.png create mode 100644 help/images/general_settings_ru.png create mode 100644 help/images/manage_bibles.png create mode 100644 help/images/manage_bibles_de.png create mode 100644 help/images/manage_bibles_ru.png create mode 100644 help/images/manage_songbooks.png create mode 100644 help/images/manage_songbooks_de.png create mode 100644 help/images/manage_songbooks_ru.png create mode 100644 help/images/next.png create mode 100644 help/images/oveview.png create mode 100644 help/images/oveview_de.png create mode 100644 help/images/oveview_ru.png create mode 100644 help/images/prev.png create mode 100644 help/images/ru.png create mode 100644 help/images/select_songbook.png create mode 100644 help/images/select_songbook_c.png create mode 100644 help/images/select_songbook_c_de.png create mode 100644 help/images/select_songbook_c_ru.png create mode 100644 help/images/select_songbook_de.png create mode 100644 help/images/select_songbook_ru.png create mode 100644 help/images/settings.png create mode 100644 help/images/show_announce.png create mode 100644 help/images/show_announce_de.png create mode 100644 help/images/show_announce_ru.png create mode 100644 help/images/show_bible.png create mode 100644 help/images/show_bible_de.png create mode 100644 help/images/show_bible_ru.png create mode 100644 help/images/show_main.png create mode 100644 help/images/show_main_de.png create mode 100644 help/images/show_main_ru.png create mode 100644 help/images/show_songs.png create mode 100644 help/images/show_songs_de.png create mode 100644 help/images/show_songs_ru.png create mode 100644 help/images/softprojector_help.png create mode 100644 help/images/softprojector_help_cloud.png create mode 100644 help/images/softprojector_help_cloud_de.png create mode 100644 help/images/softprojector_help_cloud_ru.png create mode 100644 help/images/softprojector_help_de.png create mode 100644 help/images/softprojector_help_ru.png create mode 100644 help/images/song_copy.png create mode 100644 help/images/song_delete.png create mode 100644 help/images/song_edit.png create mode 100644 help/images/song_new.png create mode 100644 help/images/song_settings.png create mode 100644 help/images/song_settings_de.png create mode 100644 help/images/song_settings_ru.png create mode 100644 help/images/song_tab.png create mode 100644 help/images/unbound_down.png create mode 100644 help/images/unbound_select.png create mode 100644 help/images/vistSettings.png create mode 100644 help/images/w7Settings.png create mode 100644 help/images/xpSettings.png create mode 100644 help/images/xpSettings_ru.png create mode 100644 help/index.html create mode 100644 help/index_de.html create mode 100644 help/index_ru.html create mode 100644 help/managebible.html create mode 100644 help/managebible_de.html create mode 100644 help/managebible_ru.html create mode 100644 help/managesongbooks.html create mode 100644 help/managesongbooks_de.html create mode 100644 help/managesongbooks_ru.html create mode 100644 help/overview.html create mode 100644 help/overview_de.html create mode 100644 help/overview_ru.html create mode 100644 help/releasenotes.html create mode 100644 help/releasenotes_de.html create mode 100644 help/releasenotes_ru.html create mode 100644 help/shortcuts.html create mode 100644 help/shortcuts_de.html create mode 100644 help/shortcuts_ru.html create mode 100644 help/show.html create mode 100644 help/show_de.html create mode 100644 help/show_ru.html create mode 100644 help/showannounce.html create mode 100644 help/showannounce_de.html create mode 100644 help/showannounce_ru.html create mode 100644 help/showbible.html create mode 100644 help/showbible_de.html create mode 100644 help/showbible_ru.html create mode 100644 help/showsongs.html create mode 100644 help/showsongs_de.html create mode 100644 help/showsongs_ru.html create mode 100644 help/songformat.html create mode 100644 help/songformat_de.html create mode 100644 help/songformat_ru.html create mode 100644 help/songsettings.html create mode 100644 help/songsettings_de.html create mode 100644 help/songsettings_ru.html create mode 100644 help/sphelp.css create mode 100644 helpdialog.cpp create mode 100644 helpdialog.h create mode 100644 helpdialog.ui create mode 100644 highlight.cpp create mode 100644 highlight.h create mode 100644 icons/ExpandSmall.png create mode 100644 icons/FitToScreen.png create mode 100644 icons/FitToScreenByExpanding.png create mode 100644 icons/aboveText.png create mode 100644 icons/add.png create mode 100644 icons/add_songbook.png create mode 100644 icons/alingBottom.png create mode 100644 icons/alingCenter.png create mode 100644 icons/alingLeft.png create mode 100644 icons/alingMiddle.png create mode 100644 icons/alingRight.png create mode 100644 icons/alingTop.png create mode 100644 icons/announce.png create mode 100644 icons/announce_copy.png create mode 100644 icons/announce_delete.png create mode 100644 icons/announce_edit.png create mode 100644 icons/announce_new.png create mode 100644 icons/apply_to_all.png create mode 100644 icons/base-22x22-actions-application-exit.png create mode 100644 icons/belowText.png create mode 100644 icons/bibleHistoryDelete.png create mode 100644 icons/book.png create mode 100644 icons/bottomOfScreen.png create mode 100644 icons/clear.png create mode 100644 icons/common.png create mode 100644 icons/controlExit.png create mode 100644 icons/controlExitHovered.png create mode 100644 icons/controlExitPressed.png create mode 100644 icons/controlNext.png create mode 100644 icons/controlNextHovered.png create mode 100644 icons/controlNextPressed.png create mode 100644 icons/controlPrev.png create mode 100644 icons/controlPrevHovered.png create mode 100644 icons/controlPrevPressed.png create mode 100644 icons/database.png create mode 100644 icons/display.png create mode 100644 icons/display_off.png create mode 100644 icons/display_on.png create mode 100644 icons/down.png create mode 100644 icons/edit.png create mode 100644 icons/effectsBlurredShadow.png create mode 100644 icons/effectsNone.png create mode 100644 icons/effectsShadow.png create mode 100644 icons/flag_uk.png create mode 100644 icons/go_live.png create mode 100644 icons/help.png create mode 100644 icons/hide.png create mode 100644 icons/new.png create mode 100644 icons/open.png create mode 100644 icons/pause.png create mode 100644 icons/photo.png create mode 100644 icons/play.png create mode 100644 icons/playerScreen.png create mode 100644 icons/print.png create mode 100644 icons/remove.png create mode 100644 icons/remove_all.png create mode 100644 icons/save.png create mode 100644 icons/scheduleAdd.png create mode 100644 icons/scheduleClear.png create mode 100644 icons/scheduleDown.png create mode 100644 icons/scheduleDownM.png create mode 100644 icons/scheduleNew.png create mode 100644 icons/scheduleOpen.png create mode 100644 icons/scheduleRemove.png create mode 100644 icons/scheduleSave.png create mode 100644 icons/scheduleUp.png create mode 100644 icons/scheduleUpM.png create mode 100644 icons/screen.png create mode 100644 icons/search.png create mode 100644 icons/settings.png create mode 100644 icons/show.png create mode 100644 icons/slideshow_delete.png create mode 100644 icons/slideshow_edit.png create mode 100644 icons/slideshow_new.png create mode 100644 icons/softprojector.png create mode 100644 icons/softprojector_cloud.png create mode 100644 icons/solidColor.png create mode 100644 icons/song_copy.png create mode 100644 icons/song_count.png create mode 100644 icons/song_delete.png create mode 100644 icons/song_edit.png create mode 100644 icons/song_new.png create mode 100644 icons/song_tab.png create mode 100644 icons/splash.png create mode 100644 icons/stop.png create mode 100644 icons/toBottomOfScreen.png create mode 100644 icons/toTopOfScreen.png create mode 100644 icons/tranFade.png create mode 100644 icons/tranFadeOutIn.png create mode 100644 icons/tranMoveDown.png create mode 100644 icons/tranMoveLeft.png create mode 100644 icons/tranMoveRight.png create mode 100644 icons/tranMoveUp.png create mode 100644 icons/tranNone.png create mode 100644 icons/up.png create mode 100644 icons/video.png create mode 100644 icons/video_add.png create mode 100644 icons/video_remove.png create mode 100644 imagegenerator.cpp create mode 100644 imagegenerator.hpp create mode 100644 main.cpp create mode 100644 managedata.cpp create mode 100644 managedata.h create mode 100644 managedatadialog.cpp create mode 100644 managedatadialog.h create mode 100644 managedatadialog.ui create mode 100644 mediawidget.cpp create mode 100644 mediawidget.h create mode 100644 mediawidget.ui create mode 100644 moduledownloaddialog.cpp create mode 100644 moduledownloaddialog.h create mode 100644 moduledownloaddialog.ui create mode 100644 moduleprogressdialog.cpp create mode 100644 moduleprogressdialog.h create mode 100644 moduleprogressdialog.ui create mode 100644 mpsettings.ui create mode 100644 passivesettingwidget.cpp create mode 100644 passivesettingwidget.h create mode 100644 passivesettingwidget.ui create mode 100644 picturesettingwidget.cpp create mode 100644 picturesettingwidget.h create mode 100644 picturesettingwidget.ui create mode 100644 picturewidget.cpp create mode 100644 picturewidget.h create mode 100644 picturewidget.ui create mode 100644 printpreviewdialog.cpp create mode 100644 printpreviewdialog.h create mode 100644 printpreviewdialog.ui create mode 100644 projectordisplayscreen.cpp create mode 100644 projectordisplayscreen.hpp create mode 100644 projectordisplayscreen.ui create mode 100644 schedule.cpp create mode 100644 schedule.h create mode 100644 settings.cpp create mode 100644 settings.h create mode 100644 settingsdialog.cpp create mode 100644 settingsdialog.h create mode 100644 settingsdialog.ui create mode 100644 slideshow.cpp create mode 100644 slideshow.h create mode 100644 slideshoweditor.cpp create mode 100644 slideshoweditor.h create mode 100644 slideshoweditor.ui create mode 100644 softProjector.pro create mode 100644 softprojector.cpp create mode 100644 softprojector.h create mode 100644 softprojector.ico create mode 100644 softprojector.qrc create mode 100644 softprojector.rc create mode 100644 softprojector.ui create mode 100644 song.cpp create mode 100644 song.h create mode 100644 songcounter.cpp create mode 100644 songcounter.h create mode 100644 songcounter.ui create mode 100644 songsettingwidget.cpp create mode 100644 songsettingwidget.h create mode 100644 songsettingwidget.ui create mode 100644 songwidget.cpp create mode 100644 songwidget.h create mode 100644 songwidget.ui create mode 100644 spfunctions.cpp create mode 100644 spfunctions.h create mode 100644 spimageprovider.cpp create mode 100644 spimageprovider.hpp create mode 100644 theme.cpp create mode 100644 theme.h create mode 100644 translations/flag_cs.png create mode 100644 translations/flag_de.png create mode 100644 translations/flag_ru.png create mode 100644 translations/flag_ua.png create mode 100644 translations/softpro_cs.qm create mode 100644 translations/softpro_cs.ts create mode 100644 translations/softpro_de.qm create mode 100644 translations/softpro_de.ts create mode 100644 translations/softpro_ru.qm create mode 100644 translations/softpro_ru.ts create mode 100644 translations/softpro_ua.qm create mode 100644 translations/softpro_ua.ts create mode 100644 videoinfo.cpp create mode 100644 videoinfo.h create mode 100644 videoplayerwidget.cpp create mode 100644 videoplayerwidget.h diff --git a/DisplayArea.qml b/DisplayArea.qml new file mode 100644 index 0000000..533028b --- /dev/null +++ b/DisplayArea.qml @@ -0,0 +1,670 @@ +import QtQuick 2.2 +import QtMultimedia 5.0 + +Rectangle { + id: dispArea + visible: true + color: "#000000" + anchors.fill: parent + + property int mx: 0 + property int my: 0 + property int mTox: 0 + property int mToy: 0 + + property int rotation1:0 + property int rotation2:0 + + property int tranTime: 500 + + MediaPlayer + { + id: player + objectName: "player" + autoPlay: false + onSourceChanged: console.debug(player.source) + + } + + VideoOutput + { + id: vidOut + objectName: "vidOut" + source:player + anchors.fill: parent +// fillMode: VideoOutput.Stretch + } + + Image + { + id: backImage1 + objectName: "backImage1" +// anchors.fill: parent + cache: false +// transform: Rotation +// { +// id: rotBack1 +// angle: 0 +// axis {x:0; y:0; z:0} +// origin {x:backImage1/2; y:backImage1/2} +// } + } + + Image + { + id: backImage2 + objectName: "backImage2" +// anchors.fill: parent + cache: false +// transform: Rotation +// { +// id: rotBack2 +// angle: rotation1 +// axis {x:0; y:0; z:0} +// origin {x:backImage2/2; y:backImage2/2} +// } + } + + Image + { + id: textImage1 + objectName: "textImage1" +// anchors.fill: parent +// fillMode: Image.Stretch +// anchors.centerIn: parent + cache: false +// transform: Rotation +// { +// id: rotText1 +// angle: 0 +// axis {x:0; y:0; z:0} +// origin {x:textImage1/2; y:textImage1/2} +// } + } + + Image + { + id: textImage2 + objectName: "textImage2" +// anchors.fill: parent +// fillMode: Image.Stretch +// anchors.centerIn: parent + cache: false +// transform: Rotation +// { +// id: rotText2 +// angle: rotation2 +// axis {x:0; y:0; z:0} +// origin {x:textImage2/2; y:textImage2/2} +// } + } + + Rectangle + { + id: controls + objectName: "controls" +// opacity: 0.5 + color: "#00000000" + height: 128 + width: height*3 +20 + + x:20; y:20 + + Image + { + id: prevBtn + objectName: "prevBtn" + source: "qrc:/icons/icons/controlPrev.png" + width: parent.height; height: parent.height + + MouseArea + { + id: maPrev + anchors.fill: parent + hoverEnabled: true + onHoveredChanged: + { + if(maPrev.containsMouse) + prevBtn.source = "qrc:/icons/icons/controlPrevHovered.png" + else + prevBtn.source= "qrc:/icons/icons/controlPrev.png" + } + onPressed: + { + prevBtn.source = "qrc:/icons/icons/controlPrevPressed.png" + } + onReleased: + { + prevBtn.source = "qrc:/icons/icons/controlPrevHovered.png" + } + } + } + + Image + { + id: nextBtn + objectName: "nextBtn" + source: "qrc:/icons/icons/controlNext.png" + width: prevBtn.width; height: prevBtn.height + anchors.left: prevBtn.right + anchors.leftMargin: 10 + anchors.top: prevBtn.top + opacity: prevBtn.opacity + MouseArea + { + id: maNext + anchors.fill: parent + hoverEnabled: true + onHoveredChanged: + { + if(maNext.containsMouse) + nextBtn.source = "qrc:/icons/icons/controlNextHovered.png" + else + nextBtn.source= "qrc:/icons/icons/controlNext.png" + } + onPressed: + { + nextBtn.source = "qrc:/icons/icons/controlNextPressed.png" + } + onReleased: + { + nextBtn.source = "qrc:/icons/icons/controlNextHovered.png" + } + } + } + + Image + { + id: exitBtn + objectName: "exitBtn" + source: "qrc:/icons/icons/controlExit.png" + width: prevBtn.width; height: prevBtn.height + anchors.left: nextBtn.right + anchors.leftMargin: 10 + anchors.top: prevBtn.top + opacity: prevBtn.opacity + MouseArea + { + id: maExit + anchors.fill: parent + hoverEnabled: true + onHoveredChanged: + { + if(maExit.containsMouse) + exitBtn.source = "qrc:/icons/icons/controlExitHovered.png" + else + exitBtn.source= "qrc:/icons/icons/controlExit.png" + } + onPressed: + { + exitBtn.source = "qrc:/icons/icons/controlExitPressed.png" + } + onReleased: + { + exitBtn.source = "qrc:/icons/icons/controlExitHovered.png" + } + } + } + } + + SequentialAnimation + { + id:seqFade1to2 + running: false + NumberAnimation { target: textImage1; property: "opacity"; to: 0.0; duration: tranTime/2;} + NumberAnimation { target: textImage2; property: "opacity"; to: 1.0; duration: tranTime/2;} + } + + SequentialAnimation + { + id:seqFade2to1 + running: false + NumberAnimation { target: textImage2; property: "opacity"; to: 0.0; duration: tranTime/2;} + NumberAnimation { target: textImage1; property: "opacity"; to: 1.0; duration: tranTime/2;} + } + + ParallelAnimation + { + id:parFade1to2 + running: false + NumberAnimation { target: textImage1; property: "opacity"; to: 0.0; duration: tranTime;} + NumberAnimation { target: textImage2; property: "opacity"; to: 1.0; duration: tranTime;} + } + + ParallelAnimation + { + id:parFade2to1 + running: false + NumberAnimation { target: textImage1; property: "opacity"; to: 1.0; duration: tranTime;} + NumberAnimation { target: textImage2; property: "opacity"; to: 0.0; duration: tranTime;} + } + + ParallelAnimation + { + id:parBackFade1to2 + running: false + NumberAnimation { target: backImage1; property: "opacity"; to: 0.0; duration: tranTime;} + NumberAnimation { target: backImage2; property: "opacity"; to: 1.0; duration: tranTime;} + } + + ParallelAnimation + { + id:parBackFade2to1 + running: false + NumberAnimation { target: backImage1; property: "opacity"; to: 1.0; duration: tranTime;} + NumberAnimation { target: backImage2; property: "opacity"; to: 0.0; duration: tranTime;} + } + + ParallelAnimation + { + id:moveTextX1to2 + running:false + NumberAnimation { target: textImage1; property: "x"; to: mTox; duration: tranTime;} + NumberAnimation { target: textImage2; property: "x"; to: mx; duration: tranTime;} + } + + ParallelAnimation + { + id:moveTextX2to1 + running:false + NumberAnimation { target: textImage1; property: "x"; to: mx; duration: tranTime;} + NumberAnimation { target: textImage2; property: "x"; to: mTox; duration: tranTime;} + } + + ParallelAnimation + { + id:moveTextY1to2 + running:false + NumberAnimation { target: textImage1; property: "y"; to: mToy; duration: tranTime;} + NumberAnimation { target: textImage2; property: "y"; to: my; duration: tranTime;} + } + + ParallelAnimation + { + id:moveTextY2to1 + running:false + NumberAnimation { target: textImage1; property: "y"; to: my; duration: tranTime;} + NumberAnimation { target: textImage2; property: "y"; to: mToy; duration: tranTime;} + } + + ParallelAnimation + { + id:moveBackX1to2 + running:false + NumberAnimation { target: backImage1; property: "x"; to: mTox; duration: tranTime;} + NumberAnimation { target: backImage2; property: "x"; to: mx; duration: tranTime;} + } + + ParallelAnimation + { + id:moveBackX2to1 + running:false + NumberAnimation { target: backImage1; property: "x"; to: mx; duration: tranTime;} + NumberAnimation { target: backImage2; property: "x"; to: mTox; duration: tranTime;} + } + + ParallelAnimation + { + id:moveBackY1to2 + running:false + NumberAnimation { target: backImage1; property: "y"; to: mToy; duration: tranTime;} + NumberAnimation { target: backImage2; property: "y"; to: my; duration: tranTime;} + } + + ParallelAnimation + { + id:moveBackY2to1 + running:false + NumberAnimation { target: backImage1; property: "y"; to: my; duration: tranTime;} + NumberAnimation { target: backImage2; property: "y"; to: mToy; duration: tranTime;} + } + + SequentialAnimation + { + id:rotate1to2 + running: false +// NumberAnimation{ target: rotText1; property: "angle"; from:0; to:90; duration: 250} +// NumberAnimation{ target: rotText2; property: "angle"; from:270; to:360; duration: 250} + + NumberAnimation{ target: dispArea; properties: "rotation1"; from:0; to:90; duration: 1000} + NumberAnimation{ target: dispArea; properties: "rotation2"; from:270; to:360; duration: 1000} + } + + SequentialAnimation + { + id:rotate2to1 + running: false +// NumberAnimation{ target: rotText2; property: "angle"; from:0; to:90; duration: 250} +// NumberAnimation{ target: rotText1; property: "angle"; from:270; to:360; duration: 250} + NumberAnimation{ target: dispArea; properties: "rotation2"; from:0; to:90; duration: 1000} + NumberAnimation{ target: dispArea; properties: "rotation1"; from:270; to:360; duration: 1000} + } + + function stopTransitions() + { + seqFade1to2.stop() + seqFade2to1.stop() + parFade1to2.stop() + parFade2to1.stop() + parBackFade1to2.stop() + parBackFade2to1.stop() + } + + function transitionText1to2(tranType) + { + if(tranType === 1) + { + textImage2.opacity = 0.0 + parFade1to2.start() + } + else if(tranType === 2) + { + textImage2.opacity = 0.0 + seqFade1to2.start() + } + else if(tranType === 3) + { + mTox = mx + parent.width + textImage1.y = my + textImage1.x = mx + textImage2.y = my + textImage2.x = mx - parent.width + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + moveTextX1to2.start() + } + else if(tranType === 4) + { + mTox = mx - parent.width + textImage1.y = my + textImage1.x = mx + textImage2.y = my + textImage2.x = mx + parent.width + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + moveTextX1to2.start() + } + else if(tranType === 5) + { + mToy = my - parent.height + textImage1.y = my + textImage1.x = mx + textImage2.y = my + parent.height + textImage2.x = mx + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + moveTextY1to2.start() + } + else if(tranType === 6) + { + mToy = my + parent.height + textImage1.y = my + textImage1.x = mx + textImage2.y = my - parent.height + textImage2.x = mx + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + moveTextY1to2.start() + } + else if(tranType === "rotate") + { + rotText1.axis.x = 0 + rotText1.axis.y = 1 + rotText2.axis.x = 0 + rotText2.axis.y = 1 + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + rotate1to2.start() + } + else + { + textImage1.opacity = 0.0 + textImage2.opacity = 1.0 + textImage1.x = parent.x + textImage1.y = parent.y + textImage2.x = parent.x + textImage2.y = parent.y + } + } + + function transitionText2to1(tranType) + { + if(tranType === 1) + { + textImage1.opacity = 0.0 + parFade2to1.start() + } + else if(tranType === 2) + { + textImage1.opacity = 0.0 + seqFade2to1.start() + } + else if(tranType === 3) + { + mTox = mx + parent.width + textImage1.y = my + textImage1.x = mx - parent.width + textImage2.y = my + textImage2.x = mx + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + moveTextX2to1.start() + } + else if(tranType === 4) + { + mTox = mx - parent.width + textImage1.y = my + textImage1.x = mx + parent.width + textImage2.y = my + textImage2.x = mx + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + moveTextX2to1.start() + } + else if(tranType === 5) + { + mToy = my - parent.height + textImage1.y = my + parent.height + textImage1.x = mx + textImage2.y = my + textImage2.x = mx + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + moveTextY2to1.start() + } + else if(tranType === 6) + { + mToy = my + parent.height + textImage1.y = my - parent.height + textImage1.x = mx + textImage2.y = my + textImage2.x = mx + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + moveTextY2to1.start() + } + else if(tranType === "rotate") + { + rotText1.axis.x = 0 + rotText1.axis.y = 1 + rotText2.axis.x = 0 + rotText2.axis.y = 1 + textImage1.opacity = 1.0 + textImage2.opacity = 1.0 + rotate2to1.start() + } + else + { + textImage1.opacity = 1.0 + textImage2.opacity = 0.0 + textImage1.x = parent.x + textImage1.y = parent.y + textImage2.x = parent.x + textImage2.y = parent.y + } + } + + function transitionBack1to2(tranType) + { + if(tranType === 1 || tranType === 2) + { + backImage2.opacity = 0.0 + parBackFade1to2.start() + } + else if(tranType === 3) + { + mTox = mx + parent.width + backImage1.y = my + backImage1.x = mx + backImage2.y = my + backImage2.x = mx - parent.width + backImage1.opacity = 1.0 + backImage2.opacity = 1.0 + moveBackX1to2.start() + } + else if(tranType === 4) + { + mTox = mx - parent.width + backImage1.y = my + backImage1.x = mx + backImage2.y = my + backImage2.x = mx + parent.width + backImage1.opacity = 1.0 + backImage2.opacity = 1.0 + moveBackX1to2.start() + } + else if(tranType === 5) + { + mToy = my - parent.height + backImage1.y = my + backImage1.x = mx + backImage2.y = my + parent.height + backImage2.x = mx + backImage1.opacity = 1.0 + backImage2.opacity = 1.0 + moveBackY1to2.start() + } + else if(tranType === 6) + { + mToy = my + parent.height + backImage1.y = my + backImage1.x = mx + backImage2.y = my - parent.height + backImage2.x = mx + backImage1.opacity = 1.0 + backImage2.opacity = 1.0 + moveBackY1to2.start() + } + else + { + backImage1.opacity = 0.0 + backImage2.opacity = 1.0 + backImage1.x = parent.x + backImage1.y = parent.y + backImage2.x = parent.x + backImage2.y = parent.y + } + } + + function transitionBack2to1(tranType) + { + if(tranType === 1 || tranType === 2) + { + backImage1.opacity = 0.0 + parBackFade2to1.start() + } + else if(tranType === 3) + { + mTox = mx + parent.width + backImage1.y = my + backImage1.x = mx - parent.width + backImage2.y = my + backImage2.x = mx + backImage1.opacity = 1.0 + backImage2.opacity = 1.0 + moveBackX2to1.start() + } + else if(tranType === 4) + { + mTox = mx - parent.width + backImage1.y = my + backImage1.x = mx + parent.width + backImage2.y = my + backImage2.x = mx + backImage1.opacity = 1.0 + backImage2.opacity = 1.0 + moveBackX2to1.start() + } + else if(tranType === 5) + { + mToy = my - parent.height + backImage1.y = my + parent.height + backImage1.x = mx + backImage2.y = my + backImage2.x = mx + backImage1.opacity = 1.0 + backImage2.opacity = 1.0 + moveBackY2to1.start() + } + else if(tranType === 6) + { + mToy = my + parent.height + backImage1.y = my - parent.height + backImage1.x = mx + backImage2.y = my + backImage2.x = mx + backImage1.opacity = 1.0 + backImage2.opacity = 1.0 + moveBackY2to1.start() + } + else + { + backImage1.opacity = 1.0 + backImage2.opacity = 0.0 + backImage1.x = parent.x + backImage1.y = parent.y + backImage2.x = parent.x + backImage2.y = parent.y + } + } + +// function setVideoSource(vidSource) +// { +// player.source = vidSource +// } + + function playVideo() + { + if(player.playbackState === MediaPlayer.StoppedState + || player.playbackState === MediaPlayer.PausedState) + player.play() + + } + + function stopVideo() + { + if(player.playbackState === MediaPlayer.PlayingState + || player.playbackState === MediaPlayer.PausedState) + player.stop() + } + + function pauseVideo() + { + player.pause() + } + + function positionControls(iX,iY,iSize,dOpacity) + { + controls.height = iSize; + controls.opacity = dOpacity; + controls.x = iX; + controls.y = iY; + } + + function setControlsVisible(isVisible) + { + //controls.opacity = dOpacity; + controls.visible = isVisible; + } +} + diff --git a/aboutdialog.cpp b/aboutdialog.cpp new file mode 100644 index 0000000..e6d2ee0 --- /dev/null +++ b/aboutdialog.cpp @@ -0,0 +1,53 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "aboutdialog.h" +#include "ui_aboutdialog.h" + + +AboutDialog::AboutDialog(QWidget *parent, QString version_string) : + QDialog(parent), + ui(new Ui::AboutDialog) +{ + ui->setupUi(this); + softProjector = (SoftProjector*)parent; + ui->version_label->setText(version_string); +} + +AboutDialog::~AboutDialog() +{ + delete ui; +} + +void AboutDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void AboutDialog::on_pushButton_clicked() +{ + close(); +} diff --git a/aboutdialog.h b/aboutdialog.h new file mode 100644 index 0000000..76fcbb2 --- /dev/null +++ b/aboutdialog.h @@ -0,0 +1,48 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef ABOUTDIALOG_H +#define ABOUTDIALOG_H + +#include +#include "softprojector.h" + +namespace Ui { + class AboutDialog; +} + +class AboutDialog : public QDialog { + Q_OBJECT + Q_DISABLE_COPY(AboutDialog) +public: + explicit AboutDialog(QWidget *parent, QString version_string); + virtual ~AboutDialog(); + +protected: + virtual void changeEvent(QEvent *e); + +private: + Ui::AboutDialog *ui; + SoftProjector *softProjector; + +private slots: + void on_pushButton_clicked(); +}; + +#endif // ABOUTDIALOG_H diff --git a/aboutdialog.ui b/aboutdialog.ui new file mode 100644 index 0000000..2211abb --- /dev/null +++ b/aboutdialog.ui @@ -0,0 +1,553 @@ + + + AboutDialog + + + + 0 + 0 + 435 + 569 + + + + About softProjecor + + + + + + + + + + Qt::Horizontal + + + + 13 + 108 + + + + + + + + + 15 + 75 + true + + + + + + + :/icons/icons/softprojector_cloud.png + + + + + + + Qt::Horizontal + + + + 17 + 148 + + + + + + + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 118 + 116 + 108 + + + + + + + + + 10 + + + + Version: + + + + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 118 + 116 + 108 + + + + + + + + + 10 + + + + Version: *gets set later* + + + + + + + Qt::Horizontal + + + + 40 + 13 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 10 + + + + an open souce media projection software + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 13 + + + + + + + + + + + 75 + true + + + + Developers: + + + + + + + + 10 + + + + Vladislav Kobzar +------------------- +Ilya Spivakov +Matvey Adzhigirey + + + + + + + Qt::Vertical + + + + 20 + 18 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 75 + true + + + + Mac Build: + + + + + + + + 10 + + + + Volodimir Vasuk + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 75 + true + + + + Special Thanks To: + + + + + + + + 10 + + + + Vitaliy Zhaborovskyy + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 75 + true + + + + Translators: + + + + + + + + 10 + + + + Russian: +German: +Czech: +Ukranian: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 10 + + + + Vladimir Zinchenko +Eduard Schlak +Pavel Fric +Vitaliy Zhaborovskyy + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 18 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 13 + + + + + + + + + 10 + + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + true + + + + + + + Qt::Vertical + + + + 125 + 27 + + + + + + + + + + + 75 + true + + + + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Donate</a> + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Close + + + + + + + + + + + + diff --git a/addsongbookdialog.cpp b/addsongbookdialog.cpp new file mode 100644 index 0000000..b200e0f --- /dev/null +++ b/addsongbookdialog.cpp @@ -0,0 +1,69 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "addsongbookdialog.h" +#include "ui_addsongbookdialog.h" + +AddSongbookDialog::AddSongbookDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::AddSongbookDialog) +{ + ui->setupUi(this); +} + +AddSongbookDialog::~AddSongbookDialog() +{ + delete ui; +} + +void AddSongbookDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void AddSongbookDialog::on_buttonBox_accepted() +{ + title = ui->songbook_title_box->text().trimmed(); + info = ui->songbook_info_box->toPlainText().trimmed(); + close(); +} + +void AddSongbookDialog::on_buttonBox_rejected() +{ + close(); +} + +void AddSongbookDialog::setSongbook(QString i_title, QString i_info) +{ + ui->songbook_title_box->setText(i_title); + ui->songbook_info_box->setPlainText(i_info); +} + +void AddSongbookDialog::setWindowText(QString lblName, QString lblInfo) +{ + ui->sbonik_title_label->setText(lblName); + ui->songbook_info_label->setText(lblInfo); +} diff --git a/addsongbookdialog.h b/addsongbookdialog.h new file mode 100644 index 0000000..1656775 --- /dev/null +++ b/addsongbookdialog.h @@ -0,0 +1,53 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef ADDSONGBOOKDIALOG_H +#define ADDSONGBOOKDIALOG_H + +#include + +namespace Ui { + class AddSongbookDialog; +} + +class AddSongbookDialog : public QDialog { + Q_OBJECT + Q_DISABLE_COPY(AddSongbookDialog) +public: + QString title; + QString info; + explicit AddSongbookDialog(QWidget *parent = 0); + virtual ~AddSongbookDialog(); + +public slots: + void setSongbook(QString i_title, QString i_info); + void setWindowText(QString lblName, QString lblInfo); + +protected: + virtual void changeEvent(QEvent *e); + +private: + Ui::AddSongbookDialog *ui; + +private slots: + void on_buttonBox_rejected(); + void on_buttonBox_accepted(); +}; + +#endif // ADDSONGBOOKDIALOG_H diff --git a/addsongbookdialog.ui b/addsongbookdialog.ui new file mode 100644 index 0000000..1624c21 --- /dev/null +++ b/addsongbookdialog.ui @@ -0,0 +1,122 @@ + + + AddSongbookDialog + + + + 0 + 0 + 436 + 314 + + + + Add songbook + + + + :/icons/icons/add_songbook.png:/icons/icons/add_songbook.png + + + + + + + + Songbook Title: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + Description: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + songbook_title_box + songbook_info_box + buttonBox + + + + + + + buttonBox + accepted() + AddSongbookDialog + accept() + + + 257 + 304 + + + 157 + 274 + + + + + buttonBox + rejected() + AddSongbookDialog + reject() + + + 325 + 304 + + + 286 + 274 + + + + + diff --git a/announcement.cpp b/announcement.cpp new file mode 100644 index 0000000..13b3035 --- /dev/null +++ b/announcement.cpp @@ -0,0 +1,324 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include +#include +#include "announcement.h" + +Announcement::Announcement() +{ + setDefaults(); +} + +Announcement::Announcement(int id) +{ + setDefaults(); + idNum = id; +} + +void Announcement::readData() +{ + QSqlQuery sq; + // 0 1 2 3 4 5 6 7 + sq.exec("SELECT title, text, usePrivate, useAuto, loop, slideTime, useBackground, backgoundPath, " + "font, color, alignment FROM Announcements WHERE id = " + QString::number(idNum)); + // 8 9 10 + sq.first(); + title = sq.value(0).toString().trimmed(); + text = sq.value(1).toString().trimmed(); + usePrivateSettings = sq.value(2).toBool(); + useAutoNext = sq.value(3).toBool(); + loop = sq.value(4).toBool(); + slideTimer = sq.value(5).toInt(); + useBackground = sq.value(6).toBool(); + backgroundPath = sq.value(7).toString().trimmed(); + font.fromString(sq.value(8).toString().trimmed()); + color = QColor(sq.value(9).toUInt()); + QString str = sq.value(10).toString().trimmed(); + QStringList l = str.split(","); + alignmentV = l.at(0).toInt(); + alignmentH = l.at(1).toInt(); +} + +QStringList Announcement::getAnnounceList() +{ + QStringList alist; + QStringList l = text.split("\n"); + QString anPart; + foreach(const QString s,l) + { + if(isAnnounceTitle(s)) + { + if(!anPart.isEmpty()) + alist.append(anPart.trimmed()); + anPart.clear(); + } + anPart += s + "\n"; + } + + anPart = anPart.trimmed(); + if(!anPart.isEmpty()) + alist.append(anPart.trimmed()); + + return alist; +} + +void Announcement::saveNew() +{ + QSqlQuery sq; + sq.prepare("INSERT INTO Announcements (title, text, usePrivate, useAuto, loop, slideTime, " + "useBackground, backgoundPath, font, color, alignment) VALUES (?,?,?,?,?,?,?,?,?,?,?)"); + sq.addBindValue(title); // 1 + sq.addBindValue(text); // 2 + sq.addBindValue(usePrivateSettings); // 3 + sq.addBindValue(useAutoNext); // 4 + sq.addBindValue(loop); // 5 + sq.addBindValue(slideTimer); // 6 + sq.addBindValue(useBackground); // 7 + sq.addBindValue(backgroundPath); // 8 + sq.addBindValue(font.toString()); // 9 + unsigned int txtColor = (unsigned int)(color.rgb()); + sq.addBindValue(QString::number(txtColor)); // 10 + sq.addBindValue(QString("%1,%2").arg(alignmentV).arg(alignmentH)); // 11 + sq.exec(); + sq.clear(); + + // Update id number + sq.exec("SELECT seq FROM sqlite_sequence WHERE name = 'Announcements'"); + sq.first(); + idNum = sq.value(0).toInt(); +} + +void Announcement::saveUpdate() +{ + QSqlQuery sq; + sq.prepare("UPDATE Announcements SET title = ?, text = ?, usePrivate = ?, useAuto = ?, loop = ?, slideTime = ?, " + "useBackground = ?, backgoundPath = ?, font = ?, color = ?, alignment = ? WHERE id = ?"); + sq.addBindValue(title); + sq.addBindValue(text); + sq.addBindValue(usePrivateSettings); + sq.addBindValue(useAutoNext); + sq.addBindValue(loop); + sq.addBindValue(slideTimer); + sq.addBindValue(useBackground); + sq.addBindValue(backgroundPath); + sq.addBindValue(font.toString()); + unsigned int txtColor = (unsigned int)(color.rgb()); + sq.addBindValue(QString::number(txtColor)); + sq.addBindValue(QString("%1,%2").arg(alignmentV).arg(alignmentH)); + sq.addBindValue(idNum); + sq.exec(); +} + +void Announcement::deleteAnnouce() +{ + QSqlQuery sq; + sq.exec("DELETE FROM Announcements WHERE id = " + QString::number(idNum)); +} + +void Announcement::setDefaults() +{ + idNum = 0; + title = ""; + text = ""; + usePrivateSettings = false; + useAutoNext = true; + loop = true; + slideTimer = 10; + font = QFont(); + color = QColor(Qt::white); + useBackground = false; + backgroundPath = ""; + alignmentV = 0; + alignmentH = 1; +} + +AnnounceSlide Announcement::getAnnounceSlide(int current) +{ + AnnounceSlide aslide; + QStringList alist = getAnnounceList(); + QStringList slist = alist.at(current).split("\n"); + if(isAnnounceTitle(slist.at(0))) + slist.removeFirst(); + + aslide.text = slist.join("\n").trimmed(); + aslide.alignmentH = alignmentH; + aslide.alignmentV = alignmentV; + aslide.backgroundPath = backgroundPath; + aslide.color = color; + aslide.font = font; + aslide.usePrivateSettings = usePrivateSettings; + return aslide; +} + +//////////////////////////////////////////////////////////////////////// +// ANNOUNCE MODEL +//////////////////////////////////////////////////////////////////////// +AnnounceModel::AnnounceModel() +{ +} + +void AnnounceModel::setAnnoucements(QList announcements) +{ + emit layoutAboutToBeChanged(); + announceList.clear(); + announceList = announcements; + emit layoutChanged(); +} + +void AnnounceModel::addAnnouncement(Announcement announce) +{ + beginInsertRows(QModelIndex(), rowCount(),rowCount()); + announceList.append(announce); + endInsertRows(); +} + +Announcement AnnounceModel::getAnnounce(int row) +{ + return announceList.at(row); +} + +Announcement AnnounceModel::getAnnounce(QModelIndex index) +{ + return announceList.at(index.row()); +} + +int AnnounceModel::rowCount(const QModelIndex &parent) const +{ + return announceList.count(); +} + +int AnnounceModel::columnCount(const QModelIndex &parent) const +{ + return 1; +} + +QVariant AnnounceModel::data(const QModelIndex &index, int role) const +{ + if(!index.isValid()) + return QVariant(); + + if(role == Qt::DisplayRole) + { + Announcement announce = announceList.at(index.row()); + if(index.column() == 0) // title + return QVariant(announce.title.trimmed()); + } + return QVariant(); +} + +QVariant AnnounceModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if (role == Qt::DisplayRole && orientation == Qt::Horizontal ) + { + switch(section) + { + case 0: + return QVariant(tr("Title")); + } + } + return QVariant(); +} + +bool AnnounceModel::removeRows(int row, int count, const QModelIndex &parent) +{ + beginRemoveRows(parent,row,row+count-1); + for(int i=row+count-1; i>=row;i--) + announceList.removeAt(i); + endRemoveRows(); + return true; +} + +void AnnounceModel::emitLayoutChanged() +{ + emit layoutChanged(); +} + +void AnnounceModel::emitLayoutAboutToBeChanged() +{ + emit layoutAboutToBeChanged(); +} + +void AnnounceModel::updateAnnounceFromDatabase(int annId) +{ + emit layoutAboutToBeChanged(); + for(int i=0; iidNum == annId) + { + ann->readData(); + emit layoutChanged(); + return; + } + } +} + +//void AnnounceModel::updateAnnounceFromDatabase(int newAnnId, int oldAnnId) +//{ +// // TODO: do if needed +//} + +bool AnnounceModel::isInTable(int annId) +{ + foreach(Announcement agent, announceList) + if(agent.idNum == annId) + return true; + return false; +} + +AnnounceProxyModel::AnnounceProxyModel(QObject *parent) : QSortFilterProxyModel(parent) +{ + filterString = QString(); + matchExact = false; + matchBeginning = false; +} + +void AnnounceProxyModel::setFilterString(QString new_string, bool new_match_beginning, bool new_exact_match) +{ + filterString = new_string; + matchExact = new_exact_match; + matchBeginning = new_match_beginning; +} + +bool AnnounceProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const +{ + QModelIndex index0 = sourceModel()->index(sourceRow,0,sourceParent); // Title + QString str0 = sourceModel()->data(index0).toString(); // Title + + if(filterString.isEmpty()) + return true; + + QRegExp rx; + rx.setCaseSensitivity(Qt::CaseInsensitive); + QString fs = filterString; + fs.replace(" ","\\W"); + if(matchExact) + return(str0.compare(filterString, Qt::CaseInsensitive) == 0); + else if(matchBeginning) + { + rx.setPattern("^"+fs); + return(str0.contains(rx)); + } + else + { + rx.setPattern(fs); + return(str0.contains(rx)); + } +} diff --git a/announcement.h b/announcement.h new file mode 100644 index 0000000..d6eefa2 --- /dev/null +++ b/announcement.h @@ -0,0 +1,110 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef ANNOUNCEMENT_H +#define ANNOUNCEMENT_H + +#include +#include "spfunctions.h" + +class AnnounceSlide +{ +public: + QString text; + bool usePrivateSettings; + int alignmentV; + int alignmentH; + QString backgroundPath; + QColor color; + QFont font; +}; + +class Announcement +{ +public: + Announcement(); + Announcement(int id); + int idNum; + QString title; + QString text; + bool usePrivateSettings; + bool useAutoNext; + bool loop; + int slideTimer; + QFont font; + QColor color; + bool useBackground; + QString backgroundPath; + int alignmentV; + int alignmentH; + int align_flags; + + void saveNew(); + void saveUpdate(); + void deleteAnnouce(); + void readData(); + + QStringList getAnnounceList(); + AnnounceSlide getAnnounceSlide(int current); + +private: + void setDefaults(); +}; + +class AnnounceModel : public QAbstractTableModel + // Class to store data from Announcement table +{ + Q_OBJECT + Q_DISABLE_COPY(AnnounceModel) +public: + AnnounceModel(); + void setAnnoucements(QList announcements); + void addAnnouncement(Announcement announce); + Announcement getAnnounce(int row); + Announcement getAnnounce(QModelIndex index); + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + bool removeRows( int row, int count, const QModelIndex & parent = QModelIndex() ); + + void emitLayoutChanged(); + void emitLayoutAboutToBeChanged(); + void updateAnnounceFromDatabase(int annId); + // void updateAnnounceFromDatabase(int newAnnId, int oldAnnId); + bool isInTable(int annId); + + QList announceList; +}; + +class AnnounceProxyModel : public QSortFilterProxyModel +{ + Q_OBJECT +public: + AnnounceProxyModel(QObject *parent = 0); + void setFilterString(QString new_string, bool new_match_beginning, bool new_exact_match); + bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; + +private: + QString filterString; + bool matchBeginning, matchExact; +}; + +#endif // ANNOUNCEMENT_H diff --git a/announcementsettingwidget.cpp b/announcementsettingwidget.cpp new file mode 100644 index 0000000..81c49ce --- /dev/null +++ b/announcementsettingwidget.cpp @@ -0,0 +1,272 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "announcementsettingwidget.h" +#include "ui_announcementsettingwidget.h" + +AnnouncementSettingWidget::AnnouncementSettingWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::AnnouncementSettingWidget) +{ + ui->setupUi(this); +} + +AnnouncementSettingWidget::~AnnouncementSettingWidget() +{ + delete ui; +} + +void AnnouncementSettingWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch ( e->type() ) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void AnnouncementSettingWidget::setSettings(TextSettings &settings, TextSettings &settings2) +{ + mySettings = settings; + mySettings2 = settings2; + loadSettings(); +} + +void AnnouncementSettingWidget::loadSettings() +{ + // Set Effects + ui->checkBoxUseShadow->setChecked(mySettings.useShadow); + ui->checkBoxUseFading->setChecked(mySettings.useFading); + ui->checkBoxUseBlurredShadow->setChecked(mySettings.useBlurShadow); + + ui->checkBoxUseShadow2->setChecked(mySettings2.useShadow); + ui->checkBoxUseFading2->setChecked(mySettings2.useFading); + ui->checkBoxUseBlurredShadow2->setChecked(mySettings2.useBlurShadow); + + // Set background + ui->groupBoxBackground->setChecked(mySettings.useBackground); + ui->lineEditBackground->setText(mySettings.backgroundName); + + ui->groupBoxBackground2->setChecked(mySettings2.useBackground); + ui->lineEditBackground2->setText(mySettings2.backgroundName); + + // Set Alingment + ui->comboBoxVerticalAling->setCurrentIndex(mySettings.textAlingmentV); + ui->comboBoxHorizontalAling->setCurrentIndex(mySettings.textAlingmentH); + + ui->comboBoxVerticalAling2->setCurrentIndex(mySettings2.textAlingmentV); + ui->comboBoxHorizontalAling2->setCurrentIndex(mySettings2.textAlingmentH); + + // Set text color + QPalette p; + p.setColor(QPalette::Base,mySettings.textColor); + ui->graphicViewTextColor->setPalette(p); + + p.setColor(QPalette::Base,mySettings2.textColor); + ui->graphicViewTextColor2->setPalette(p); + + // Set text font lable + ui->labelFont->setText(getFontText(mySettings.textFont)); + ui->labelFont2->setText(getFontText(mySettings2.textFont)); + + ui->groupBoxUseDisp2->setChecked(mySettings2.useDisp2settings); + on_groupBoxUseDisp2_toggled(mySettings2.useDisp2settings); +} + +void AnnouncementSettingWidget::getSettings(TextSettings &settings, TextSettings &settings2) +{ + // Effects + mySettings.useShadow = ui->checkBoxUseShadow->isChecked(); + mySettings.useFading = ui->checkBoxUseFading->isChecked(); + mySettings.useBlurShadow = ui->checkBoxUseBlurredShadow->isChecked(); + + mySettings2.useShadow = ui->checkBoxUseShadow2->isChecked(); + mySettings2.useFading = ui->checkBoxUseFading2->isChecked(); + mySettings2.useBlurShadow = ui->checkBoxUseBlurredShadow2->isChecked(); + + // Get Background + mySettings.useBackground = ui->groupBoxBackground->isChecked(); + mySettings.backgroundName = ui->lineEditBackground->text(); + + mySettings2.useBackground = ui->groupBoxBackground2->isChecked(); + mySettings2.backgroundName = ui->lineEditBackground2->text(); + + // Alingmet + mySettings.textAlingmentV = ui->comboBoxVerticalAling->currentIndex(); + mySettings.textAlingmentH = ui->comboBoxHorizontalAling->currentIndex(); + + mySettings2.textAlingmentV = ui->comboBoxVerticalAling2->currentIndex(); + mySettings2.textAlingmentH = ui->comboBoxHorizontalAling2->currentIndex(); + + mySettings2.useDisp2settings = ui->groupBoxUseDisp2->isChecked(); + + settings = mySettings; + settings2 = mySettings2; +} + +void AnnouncementSettingWidget::on_checkBoxUseShadow_stateChanged(int arg1) +{ + if(arg1==2) + ui->checkBoxUseBlurredShadow->setEnabled(true); + else + { + ui->checkBoxUseBlurredShadow->setChecked(false); + ui->checkBoxUseBlurredShadow->setEnabled(false); + } +} + +void AnnouncementSettingWidget::on_checkBoxUseShadow2_stateChanged(int arg1) +{ + if(arg1==2) + ui->checkBoxUseBlurredShadow2->setEnabled(true); + else + { + ui->checkBoxUseBlurredShadow2->setChecked(false); + ui->checkBoxUseBlurredShadow2->setEnabled(false); + } +} + +void AnnouncementSettingWidget::on_buttonBackground_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select a image for announcement wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + if(!filename.isNull()) + { + QPixmap p(filename); + if(p.width()>1280 || p.height()>1280) + mySettings.backgroundPix = p.scaled(1280,1280,Qt::KeepAspectRatio); + else + mySettings.backgroundPix = p; + QFileInfo fi(filename); + filename = fi.fileName(); + mySettings.backgroundName = filename; + ui->lineEditBackground->setText(filename); + } +} + +void AnnouncementSettingWidget::on_buttonBackground2_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select a image for announcement wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + if(!filename.isNull()) + { + QPixmap p(filename); + if(p.width()>1280 || p.height()>1280) + mySettings2.backgroundPix = p.scaled(1280,1280,Qt::KeepAspectRatio); + else + mySettings2.backgroundPix = p; + QFileInfo fi(filename); + filename = fi.fileName(); + mySettings2.backgroundName = filename; + ui->lineEditBackground2->setText(filename); + } +} + +void AnnouncementSettingWidget::setDispScreen2Visible(bool visible) +{ + ui->groupBoxUseDisp2->setVisible(visible); +} + +void AnnouncementSettingWidget::on_toolButtonColor_clicked() +{ + QColor c(QColorDialog::getColor(mySettings.textColor,this)); + if(c.isValid()) + mySettings.textColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings.textColor); + ui->graphicViewTextColor->setPalette(p); +} + +void AnnouncementSettingWidget::on_toolButtonColor2_clicked() +{ + QColor c(QColorDialog::getColor(mySettings2.textColor,this)); + if(c.isValid()) + mySettings2.textColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings2.textColor); + ui->graphicViewTextColor2->setPalette(p); +} + +void AnnouncementSettingWidget::on_toolButtonFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings.textFont,this); + if(ok) + mySettings.textFont = font; + + ui->labelFont->setText(getFontText(mySettings.textFont)); +} + +void AnnouncementSettingWidget::on_toolButtonFont2_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings2.textFont,this); + if(ok) + mySettings2.textFont = font; + + ui->labelFont2->setText(getFontText(mySettings2.textFont)); +} + +void AnnouncementSettingWidget::on_groupBoxUseDisp2_toggled(bool arg1) +{ + ui->groupBoxBackground2->setVisible(arg1); + ui->groupBoxEffects2->setVisible(arg1); + ui->groupBoxTextProperties2->setVisible(arg1); +} + +void AnnouncementSettingWidget::on_pushButtonDefault_clicked() +{ + TextSettings a; + mySettings = a; + mySettings2 = a; + loadSettings(); +} + +QString AnnouncementSettingWidget::getFontText(QFont font) +{ + QString st(QString("%1: %2").arg(font.rawName()).arg(font.pointSize())); + if(font.bold()) + st += ", " + tr("Bold"); + if(font.italic()) + st += ", " + tr("Italic"); + if(font.strikeOut()) + st += ", " + tr("StrikeOut"); + if(font.underline()) + st += ", " + tr("Underline"); + + return st; +} + +void AnnouncementSettingWidget::on_pushButtonApplyToAll_clicked() +{ + emit applyBackToAll(3,mySettings.backgroundName,mySettings.backgroundPix); +} + +void AnnouncementSettingWidget::setBackgroungds(QString name, QPixmap back) +{ + mySettings.backgroundName = name; + mySettings.backgroundPix = back; + mySettings2.backgroundName = name; + mySettings2.backgroundPix = back; + ui->lineEditBackground->setText(name); + ui->lineEditBackground2->setText(name); +} diff --git a/announcementsettingwidget.h b/announcementsettingwidget.h new file mode 100644 index 0000000..ec117db --- /dev/null +++ b/announcementsettingwidget.h @@ -0,0 +1,72 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef ANNOUNCEMENTSETTINGWIDGET_H +#define ANNOUNCEMENTSETTINGWIDGET_H + +#include +#include "theme.h" +#include "spfunctions.h" +#include "settings.h" + +namespace Ui { +class AnnouncementSettingWidget; +} + +class AnnouncementSettingWidget : public QWidget +{ + Q_OBJECT + +public: + explicit AnnouncementSettingWidget(QWidget *parent = 0); + ~AnnouncementSettingWidget(); + +public slots: + void setSettings(TextSettings& settings, TextSettings &settings2); + void getSettings(TextSettings& settings, TextSettings &settings2); + void setDispScreen2Visible(bool visible); + void setBackgroungds(QString name, QPixmap back); + +signals: + void applyBackToAll(int t, QString backName, QPixmap background); + +private slots: + void loadSettings(); + void on_buttonBackground_clicked(); + void on_pushButtonDefault_clicked(); + void on_checkBoxUseShadow_stateChanged(int arg1); + void on_groupBoxUseDisp2_toggled(bool arg1); + void on_checkBoxUseShadow2_stateChanged(int arg1); + void on_buttonBackground2_clicked(); + void on_toolButtonColor_clicked(); + void on_toolButtonColor2_clicked(); + void on_toolButtonFont_clicked(); + void on_toolButtonFont2_clicked(); + QString getFontText(QFont font); + + void on_pushButtonApplyToAll_clicked(); + +private: + TextSettings mySettings, mySettings2; + Ui::AnnouncementSettingWidget *ui; +protected: + virtual void changeEvent(QEvent *e); +}; + +#endif // ANNOUNCEMENTSETTINGWIDGET_H diff --git a/announcementsettingwidget.ui b/announcementsettingwidget.ui new file mode 100644 index 0000000..604f369 --- /dev/null +++ b/announcementsettingwidget.ui @@ -0,0 +1,745 @@ + + + AnnouncementSettingWidget + + + + 0 + 0 + 399 + 549 + + + + + + + Effects + + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + + + Use fading effects + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use shadow + + + + + + + false + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use blurred shadow + + + + + + + + + + Use Background Image + + + true + + + + + + true + + + + + + + Browse... + + + + + + + Apply this background to all active backgrounds. + + + + :/icons/icons/apply_to_all.png:/icons/icons/apply_to_all.png + + + + + + + + + + Text Properties + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 20 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + 0 + 0 + + + + true + + + + + + + + + + + Alignment: + + + + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 170 + 85 + 255 + + + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 170 + 85 + 255 + + + + + + + + + 120 + 120 + 120 + + + + + + + 120 + 120 + 120 + + + + + + + 120 + 120 + 120 + + + + + + + 51 + 153 + 255 + + + + + + + + Use Separate Secondary Display Screen Settings + + + true + + + true + + + + 0 + + + 0 + + + 0 + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Effects + + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + + + Use fading effects + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use shadow + + + + + + + false + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use blurred shadow + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Use Background Image + + + true + + + + + + true + + + + + + + Browse... + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Text Properties + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 20 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + 0 + 0 + + + + true + + + + + + + + + + + Alignment: + + + + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 59 + 20 + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + + Reset All To Default + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + checkBoxUseFading + checkBoxUseShadow + checkBoxUseBlurredShadow + groupBoxBackground + buttonBackground + lineEditBackground + toolButtonColor + graphicViewTextColor + toolButtonFont + comboBoxVerticalAling + comboBoxHorizontalAling + groupBoxUseDisp2 + checkBoxUseFading2 + checkBoxUseShadow2 + checkBoxUseBlurredShadow2 + groupBoxBackground2 + buttonBackground2 + lineEditBackground2 + toolButtonColor2 + graphicViewTextColor2 + toolButtonFont2 + comboBoxVerticalAling2 + comboBoxHorizontalAling2 + pushButtonDefault + + + + + + diff --git a/announcewidget.cpp b/announcewidget.cpp new file mode 100644 index 0000000..7ba42a4 --- /dev/null +++ b/announcewidget.cpp @@ -0,0 +1,235 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include +#include +#include "announcewidget.h" +#include "ui_announcewidget.h" + +AnnounceWidget::AnnounceWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::AnnounceWidget) +{ + ui->setupUi(this); + + editAnounceDialog = new EditAnnouncementDialog(this); + connect(editAnounceDialog,SIGNAL(announceToAdd(Announcement)),this,SLOT(addNewAnnouncement(Announcement))); + connect(editAnounceDialog,SIGNAL(announceToUpdate()),this,SLOT(updateAnnouncement())); + + announceModel = new AnnounceModel; + announceProxy = new AnnounceProxyModel(this); + announceProxy->setSourceModel(announceModel); + announceProxy->setDynamicSortFilter(true); + ui->tableViewAnnouncements->setModel(announceProxy); + setAnnounceList(); + loadAnnouncements(); + + connect(ui->tableViewAnnouncements->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), + this, SLOT(announceViewRowChanged(QModelIndex,QModelIndex))); + + // Derease row height + ui->tableViewAnnouncements->resizeRowsToContents(); +} + +AnnounceWidget::~AnnounceWidget() +{ + delete editAnounceDialog; + delete announceModel; + delete ui; +} + +void AnnounceWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void AnnounceWidget::announceViewRowChanged(const QModelIndex ¤t, const QModelIndex &previous) +{ + if(current.isValid()) + { + int row = announceProxy->mapToSource(current).row(); + previewAnnounce = announceModel->getAnnounce(row); + loadAnnouncement(); + } +} + +void AnnounceWidget::loadAnnouncements() +{ + announceModel->setAnnoucements(announceList); +} + +void AnnounceWidget::loadAnnouncement() +{ + ui->listWidgetAnnouncement->clear(); + ui->listWidgetAnnouncement->addItems(previewAnnounce.getAnnounceList()); + ui->labelAnnounceTitle->setText(previewAnnounce.title); +} + +void AnnounceWidget::setAnnounceList() +{ + QSqlQuery sq; + Announcement a; + announceList.clear(); + // 0 1 2 3 4 5 6 7 + sq.exec("SELECT title, text, usePrivate, useAuto, loop, slideTime, useBackground, backgoundPath, " + "font, color, alignment, id FROM Announcements"); + // 8 9 10 11 + while(sq.next()) + { + a.title = sq.value(0).toString().trimmed(); + a.text = sq.value(1).toString().trimmed(); + a.usePrivateSettings = sq.value(2).toBool(); + a.useAutoNext = sq.value(3).toBool(); + a.loop = sq.value(4).toBool(); + a.slideTimer = sq.value(5).toInt(); + a.useBackground = sq.value(6).toBool(); + a.backgroundPath = sq.value(7).toString().trimmed(); + a.font.fromString(sq.value(8).toString().trimmed()); + a.color = QColor(sq.value(9).toUInt()); + QString str = sq.value(10).toString().trimmed(); + QStringList l = str.split(","); + a.alignmentV = l.at(0).toInt(); + a.alignmentH = l.at(1).toInt(); + a.idNum = sq.value(11).toInt(); + + announceList.append(a); + } +} + +void AnnounceWidget::setPreview(Announcement announce) +{ + previewAnnounce = announce; + ui->listWidgetAnnouncement->clear(); + ui->labelAnnounceTitle->setText(previewAnnounce.title); + ui->listWidgetAnnouncement->addItems(previewAnnounce.getAnnounceList()); +} + +void AnnounceWidget::newAnnouncement() +{ + editAnounceDialog->setNewAnnouce(); + editAnounceDialog->exec(); +} + +void AnnounceWidget::editAnnouncement() +{ + if(previewAnnounce.idNum>0) + { + editAnounceDialog->setEditAnnouce(previewAnnounce); + editAnounceDialog->exec(); + } +} + +void AnnounceWidget::copyAnnouncement() +{ + if(previewAnnounce.idNum>0) + { + editAnounceDialog->setCopyAnnouce(previewAnnounce); + editAnounceDialog->exec(); + } +} + +void AnnounceWidget::deleteAnnouncement() +{ + if(previewAnnounce.idNum>0) + { + previewAnnounce.deleteAnnouce(); + previewAnnounce = Announcement(); + ui->listWidgetAnnouncement->clear(); + ui->labelAnnounceTitle->clear(); + int row = ui->tableViewAnnouncements->currentIndex().row(); + announceModel->removeRow(row); + } +} + +void AnnounceWidget::addNewAnnouncement(Announcement announce) +{ + announceModel->addAnnouncement(announce); + ui->tableViewAnnouncements->selectRow(announceModel->rowCount()-1); +} + +void AnnounceWidget::updateAnnouncement() +{ + announceModel->updateAnnounceFromDatabase(previewAnnounce.idNum); + setPreview(currentAnnouncement()); + loadAnnouncement(); +} + +bool AnnounceWidget::isAnnounceValid() +{ + if(ui->tableViewAnnouncements->selectionModel()->selectedRows().count()>0) + return true; + else + return false; +} + +Announcement AnnounceWidget::getAnnouncement() +{ + return previewAnnounce; +} + +void AnnounceWidget::sendToProjector() +{ + if(isAnnounceValid()) + emit sendAnnounce(previewAnnounce,ui->listWidgetAnnouncement->currentRow()); +} + +void AnnounceWidget::on_pushButtonLive_clicked() +{ + sendToProjector(); +} + +void AnnounceWidget::on_listWidgetAnnouncement_doubleClicked(const QModelIndex &index) +{ + sendToProjector(); +} + +void AnnounceWidget::on_tableViewAnnouncements_doubleClicked(const QModelIndex &index) +{ + int row = announceProxy->mapToSource(index).row(); + Announcement announce = announceModel->getAnnounce(row); + emit addToSchedule(announce); + setPreview(announce); +} + +Announcement AnnounceWidget::currentAnnouncement() +{ + Announcement ancmnt; + QModelIndex index; + int row; + index = announceProxy->mapToSource(ui->tableViewAnnouncements->currentIndex()); + row = index.row(); + + if(row>=0) + ancmnt = announceModel->getAnnounce(row); + + return ancmnt; +} + +void AnnounceWidget::setAnnouncementFromHistory(Announcement &announce) +{ + ui->tableViewAnnouncements->clearSelection(); + setPreview(announce); +} diff --git a/announcewidget.h b/announcewidget.h new file mode 100644 index 0000000..996d8a3 --- /dev/null +++ b/announcewidget.h @@ -0,0 +1,77 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef ANNOUNCEWIDGET_H +#define ANNOUNCEWIDGET_H + +#include +#include "announcement.h" +#include "editannouncementdialog.h" + +namespace Ui { +class AnnounceWidget; +} + +class AnnounceWidget : public QWidget { + Q_OBJECT + Q_DISABLE_COPY(AnnounceWidget) +public: + explicit AnnounceWidget(QWidget *parent = 0); + virtual ~AnnounceWidget(); + +public slots: + void loadAnnouncements(); + void newAnnouncement(); + void editAnnouncement(); + void copyAnnouncement(); + void deleteAnnouncement(); + bool isAnnounceValid(); + Announcement getAnnouncement(); + void setAnnouncementFromHistory(Announcement &announce); + +protected: + virtual void changeEvent(QEvent *e); + +private slots: + void loadAnnouncement(); + void announceViewRowChanged(const QModelIndex ¤t, const QModelIndex &previous); + void setAnnounceList(); + void setPreview(Announcement announce); + void addNewAnnouncement(Announcement announce); + void updateAnnouncement(); + void sendToProjector(); + void on_pushButtonLive_clicked(); + void on_listWidgetAnnouncement_doubleClicked(const QModelIndex &index); + Announcement currentAnnouncement(); + void on_tableViewAnnouncements_doubleClicked(const QModelIndex &index); + +signals: + void sendAnnounce(Announcement announce, int row); + void addToSchedule(Announcement &announce); + +private: + Ui::AnnounceWidget *ui; + EditAnnouncementDialog * editAnounceDialog; + QList announceList; + Announcement previewAnnounce; + AnnounceModel *announceModel; + AnnounceProxyModel * announceProxy; +}; + +#endif // ANNOUNCEWIDGET_H diff --git a/announcewidget.ui b/announcewidget.ui new file mode 100644 index 0000000..063d74d --- /dev/null +++ b/announcewidget.ui @@ -0,0 +1,130 @@ + + + AnnounceWidget + + + + 0 + 0 + 538 + 415 + + + + + 0 + 0 + + + + + 400 + 0 + + + + Form + + + + + + Qt::Horizontal + + + + + + + Announcements: + + + + + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + true + + + true + + + false + + + 20 + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Quickly display announcement + + + Go Live (F5) + + + + :/icons/icons/go_live.png:/icons/icons/go_live.png + + + F5 + + + + + + + + + Announcement Preview: + + + + + + + true + + + 3 + + + + + + + + + + + + + + diff --git a/bible.cpp b/bible.cpp new file mode 100644 index 0000000..835cae9 --- /dev/null +++ b/bible.cpp @@ -0,0 +1,433 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "bible.h" + +Bible::Bible() +{ +} + +void Bible::setBiblesId(QString& id) +{ + bibleId = id; + retrieveBooks(); +} + +QString Bible::getBibleName() +{ + if(bibleId.isEmpty()) + return ""; + QSqlQuery sq; + sq.exec("SELECT bible_name FROM BibleVersions WHERE id = "+ bibleId ); + sq.first(); + QString b = sq.value(0).toString().trimmed(); + return b; +} + +void Bible::retrieveBooks() +{ + BibleBook book; + QSqlQuery sq; + books.clear(); + sq.exec("SELECT book_name, id, chapter_count FROM BibleBooks WHERE bible_id = "+ bibleId ); + while (sq.next()) + { + book.book = sq.value(0).toString().trimmed(); + book.bookId = sq.value(1).toString(); + book.chapterCount = sq.value(2).toInt(); + books.append(book); + } +} + +QStringList Bible::getBooks() +{ + QStringList book_list; + if( books.count() == 0 ) + retrieveBooks(); + for(int i(0); books.count()>i;++i) + book_list.append(books.at(i).book); + + return book_list; +} + +QString Bible::getBookName(int id) +{ + QString book; + foreach (const BibleBook bk, books) + { + if(bk.bookId.toInt() == id) + { + book = bk.book; + break; + } + } + return book; +} + +void Bible::getVerseRef(QString vId, QString &book, int &chapter, int &verse) +{ + if(vId.contains(",")) + vId = vId.split(",").first(); + + foreach(const BibleVerse &bv, operatorBible) + { + if(bv.verseId == vId) + { + book = QString::number(bv.book); + chapter = bv.chapter; + verse = bv.verseNumber; + } + } + + foreach (const BibleBook bk, books) + { + if(bk.bookId == book) + book = bk.book; + } +} + +int Bible::getVerseNumberLast(QString vId) +{ + int vernum(0); + if(vId.contains(",")) + vId = vId.split(",").last(); + + foreach(const BibleVerse &bv, operatorBible) + { + if(bv.verseId == vId) + { + vernum = bv.verseNumber; + break; + } + } + return vernum; +} + +int Bible::getCurrentBookRow(QString book) +{ + int chapters(0); + for(int i(0); books.count()>i;++i) + { + if(books.at(i).book==book) + { + chapters = i; + break; + } + } + return chapters; +} + +QStringList Bible::getChapter(int book, int chapter) +{ + QString verseText, id; + int verse(0), verse_old(0); + + previewIdList.clear(); + verseList.clear(); + foreach (const BibleVerse &bv,operatorBible) + { + if(bv.book == book && bv.chapter == chapter) + { + verse = bv.verseNumber; + if(verse==verse_old) + { + verseText = verseText.simplified() + " " + bv.verseText; + id += "," + bv.verseId; + verseList.removeLast(); + previewIdList.removeLast(); + } + else + { + verseText = bv.verseText; + id = bv.verseId; + } + verseList << QString::number(verse) + ". " + verseText; + previewIdList << id; + verse_old = verse; + } + } + + return verseList; +} + +Verse Bible::getCurrentVerseAndCaption(QList currentRows, BibleSettings& sets, BibleVersionSettings &bv) +{ + QString verse_id; + for(int i(0);i Bible::searchBible(bool allWords, QRegExp searchExp) +{ ///////// Search entire Bible ////////// + + QList return_results; + + QString sw = searchExp.pattern(); + sw.remove("\\b("); + sw.remove(")\\b"); + + foreach(const BibleVerse &bv,operatorBible) + { + if(bv.verseText.contains(searchExp)) + { + if(allWords) + { + QStringList stl = sw.split("|"); + bool hasAll = false; + for (int j(0);j Bible::searchBible(bool allWords, QRegExp searchExp, int book) +{ ///////// Search in selected book ////////// + + QList return_results; + + QString sw = searchExp.pattern(); + sw.remove("\\b("); + sw.remove(")\\b"); + + foreach(const BibleVerse &bv,operatorBible) + { + if(bv.verseText.contains(searchExp) && bv.book == book) + { + if(allWords) + { + QStringList stl = sw.split("|"); + bool hasAll = false; + for (int j(0);j Bible::searchBible(bool allWords, QRegExp searchExp, int book, int chapter) +{ ///////// Search in selected chapter ////////// + + QList return_results; + + QString sw = searchExp.pattern(); + sw.remove("\\b("); + sw.remove(")\\b"); + + foreach(const BibleVerse &bv,operatorBible) + { + if(bv.verseText.contains(searchExp) && bv.book == book && bv.chapter == chapter) + { + if(allWords) + { + QStringList stl = sw.split("|"); + bool hasAll = false; + for (int j(0);j &bsl) +{ + BibleSearch results; + foreach (const BibleBook &bk,books) + { + if(bk.bookId == QString::number(bv.book)) + { + results.book = bk.book; + break; + } + } + results.chapter = QString::number(bv.chapter); + results.verse = QString::number(bv.verseNumber); + results.verse_text = QString("%1 %2:%3 %4").arg(results.book).arg(results.chapter).arg(results.verse).arg(bv.verseText); + + bsl.append(results); +} + +void Bible::loadOperatorBible() +{ + operatorBible.clear(); + BibleVerse bv; + QSqlQuery sq; + sq.exec("SELECT verse_id, book, chapter, verse, verse_text FROM BibleVerse WHERE bible_id = '"+bibleId+"'"); + while(sq.next()) + { + bv.verseId = sq.value(0).toString().trimmed(); + bv.book = sq.value(1).toInt(); + bv.chapter = sq.value(2).toInt(); + bv.verseNumber = sq.value(3).toInt(); + bv.verseText = sq.value(4).toString().trimmed(); + operatorBible.append(bv); + } +} diff --git a/bible.h b/bible.h new file mode 100644 index 0000000..2aa9cfa --- /dev/null +++ b/bible.h @@ -0,0 +1,113 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef BIBLE_H +#define BIBLE_H + +#include +#include "theme.h" +#include "settings.h" + +class BibleVerse +{ +public: + // Hold Bible Verse Info + QString verseId; + int book; + int chapter; + int verseNumber; + QString verseText; +}; + +class Verse +{ +public: + // For now both primary and secondary information is stored in + // primary_text and primary_caption + QString primary_text; + QString secondary_text; + QString primary_caption; + QString secondary_caption; + QString trinary_text; + QString trinary_caption; +}; + +class BibleSearch +{ + // For holding search results +public: + QString book; + QString chapter; + QString verse; + QString verse_text; + QString verse_id; + QString display_text; + int first_v; + int last_v; +}; + +class BibleHistory +{ +public: + QString verseIds; + QString caption; + QString captionLong; +}; + +class BibleBook +{ + // For Holding Bible book infromation +public: + QString book; + QString bookId; + int chapterCount; +}; + +class Bible +{ +public: + Bible(); + QStringList verseList; + QStringList previewIdList; // Verses that are in the preview (chapter) list + QStringList currentIdList; // Verses that are in the show list + QList books; +public slots: + QList searchBible(bool begins, QRegExp searchExp); + QList searchBible(bool allWords, QRegExp searchExp, int book); + QList searchBible(bool allWords, QRegExp searchExp, int book, int chapter); + QStringList getBooks(); + QString getBookName(int id); + void getVerseRef(QString vId, QString &book, int &chapter, int &verse); + int getVerseNumberLast(QString vId); + QStringList getChapter(int book, int chapter); + void getVerseAndCaption(QString &verse, QString &caption, QString verId, QString &bibId, bool useAbbr); + int getCurrentBookRow(QString book); + Verse getCurrentVerseAndCaption(QList currentRows, BibleSettings& sets, BibleVersionSettings& bv); + void setBiblesId(QString& id); + QString getBibleName(); + void loadOperatorBible(); +private: + QString bibleId; + QList operatorBible; + void retrieveBooks(); +private slots: + void addSearchResult(const BibleVerse &bv,QList &bsl); +}; + +#endif // BIBLE_H diff --git a/bibleinformationdialog.cpp b/bibleinformationdialog.cpp new file mode 100644 index 0000000..d62eff9 --- /dev/null +++ b/bibleinformationdialog.cpp @@ -0,0 +1,59 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "bibleinformationdialog.h" +#include "ui_bibleinformationdialog.h" + +BibleInformationDialog::BibleInformationDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::BibleInformationDialog) +{ + ui->setupUi(this); +} + +BibleInformationDialog::~BibleInformationDialog() +{ + delete ui; +} + +void BibleInformationDialog::on_buttonBox_accepted() +{ + title = ui->bible_name_lineEdit->text().trimmed(); + abbr = ui->abbr_lineEdit->text().trimmed(); + info = ui->info_TextEdit->toPlainText().trimmed(); + if (ui->rtol_checkBox->isChecked()) + isRtoL = true; + else + isRtoL = false; + + close(); +} + +void BibleInformationDialog::on_buttonBox_rejected() +{ + close(); +} + +void BibleInformationDialog::setBibleIformation(QString _title, QString _abbr, QString _info, bool is_rtol) +{ + ui->bible_name_lineEdit->setText(_title); + ui->abbr_lineEdit->setText(_abbr); + ui->info_TextEdit->setPlainText(_info); + ui->rtol_checkBox->setChecked(is_rtol); +} diff --git a/bibleinformationdialog.h b/bibleinformationdialog.h new file mode 100644 index 0000000..9d824f2 --- /dev/null +++ b/bibleinformationdialog.h @@ -0,0 +1,52 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef BIBLEINFORMATIONDIALOG_H +#define BIBLEINFORMATIONDIALOG_H + +#include + +namespace Ui { + class BibleInformationDialog; +} + +class BibleInformationDialog : public QDialog +{ + Q_OBJECT + +public: + QString title; + QString abbr; + QString info; + bool isRtoL; + explicit BibleInformationDialog(QWidget *parent = 0); + ~BibleInformationDialog(); + +public slots: + void setBibleIformation(QString title, QString abbreviation, QString info, bool is_rtol); + +private: + Ui::BibleInformationDialog *ui; + +private slots: + void on_buttonBox_rejected(); + void on_buttonBox_accepted(); +}; + +#endif // BIBLEINFORMATIONDIALOG_H diff --git a/bibleinformationdialog.ui b/bibleinformationdialog.ui new file mode 100644 index 0000000..f09eecd --- /dev/null +++ b/bibleinformationdialog.ui @@ -0,0 +1,130 @@ + + + BibleInformationDialog + + + + 0 + 0 + 400 + 300 + + + + Bible Information + + + + :/icons/icons/book.png:/icons/icons/book.png + + + + + + Bible Name: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Abbreviation: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Information\ +Copyright: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Qt::Vertical + + + + 20 + 143 + + + + + + + + Right to left + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + + buttonBox + accepted() + BibleInformationDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + BibleInformationDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/biblesettingwidget.cpp b/biblesettingwidget.cpp new file mode 100644 index 0000000..201d9ec --- /dev/null +++ b/biblesettingwidget.cpp @@ -0,0 +1,661 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "biblesettingwidget.h" +#include "ui_biblesettingwidget.h" + +BibleSettingWidget::BibleSettingWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::BibleSettingWidget) +{ + ui->setupUi(this); +} + +BibleSettingWidget::~BibleSettingWidget() +{ + delete ui; +} + +void BibleSettingWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch ( e->type() ) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void BibleSettingWidget::setSettings(BibleSettings &settings, BibleSettings &settings2) +{ + mySettings = settings; + mySettings2 = settings2; + + loadSettings(); +} + +void BibleSettingWidget::getSettings(BibleSettings &settings, BibleSettings &settings2) +{ + // Effects + mySettings.useShadow = ui->checkBoxUseShadow->isChecked(); + mySettings.useFading = ui->checkBoxUseFading->isChecked(); + mySettings.useBlurShadow = ui->checkBoxUseBlurredShadow->isChecked(); + + mySettings2.useShadow = ui->checkBoxUseShadow2->isChecked(); + mySettings2.useFading = ui->checkBoxUseFading2->isChecked(); + mySettings2.useBlurShadow = ui->checkBoxUseBlurredShadow2->isChecked(); + + // Backgroud + mySettings.useBackground = ui->groupBoxBackground->isChecked(); + mySettings.backgroundName = ui->lineEditBackPath->text(); + + mySettings2.useBackground = ui->groupBoxBackground2->isChecked(); + mySettings2.backgroundName = ui->lineEditBackPath2->text(); + + //Alingment + mySettings.textAlingmentV = ui->comboBoxVerticalAling->currentIndex(); + mySettings.textAlingmentH = ui->comboBoxHorizontalAling->currentIndex(); + + mySettings2.textAlingmentV = ui->comboBoxVerticalAling2->currentIndex(); + mySettings2.textAlingmentH = ui->comboBoxHorizontalAling2->currentIndex(); + + //Caption Alignment + mySettings.captionPosition = ui->comboBoxCaptionPosition->currentIndex(); + mySettings.captionAlingment = ui->comboBoxCaptionAlign->currentIndex(); + + mySettings2.captionPosition = ui->comboBoxCaptionPosition2->currentIndex(); + mySettings2.captionAlingment = ui->comboBoxCaptionAlign2->currentIndex(); + + // Version Abbreviations + mySettings.useAbbriviation = ui->checkBoxAbbiviations->isChecked(); + mySettings2.useAbbriviation = ui->checkBoxAbbiviations2->isChecked(); + + // Max screen use + mySettings.screenUse = ui->spinBoxMaxScreen->value(); + mySettings.screenPosition = ui->comboBoxScreenPosition->currentIndex(); + + mySettings2.screenUse = ui->spinBoxMaxScreen2->value(); + mySettings2.screenPosition = ui->comboBoxScreenPosition2->currentIndex(); + + // Get if to use secodary screen settings + mySettings2.useDisp2settings = ui->groupBoxUseDisp2->isChecked(); + + settings = mySettings; + settings2 = mySettings2; +} + +void BibleSettingWidget::setBibleVersions(BibleVersionSettings &bver, BibleVersionSettings &bver2) +{ + bversion = bver; + bversion2 = bver2; + loadBibleVersions(); +} + +void BibleSettingWidget::getBibleVersions(BibleVersionSettings &bver, BibleVersionSettings &bver2) +{ + int pbx = ui->comboBoxPrimaryBible->currentIndex(); + int sbx = ui->comboBoxSecondaryBible->currentIndex(); + int tbx = ui->comboBoxTrinaryBible->currentIndex(); + int obx = ui->comboBoxOperatorBible->currentIndex(); + + // Get Bible version settings + if(pbx != -1) + { + // Primary + bversion.primaryBible = bible_id_list.at(pbx); + // Secondary + if(sbx <=0) + bversion.secondaryBible = "none"; + else + bversion.secondaryBible = secondary_id_list.at(sbx-1); + // Trinary + if(tbx <=0) + bversion.trinaryBible = "none"; + else + bversion.trinaryBible = trinary_id_list.at(tbx-1); + // Operatror + if(obx <=0) + bversion.operatorBible = "same"; + else + bversion.operatorBible = operator_id_list.at(obx-1); + } + else + { + // There are no bibles in the database + bversion.primaryBible = "none"; + bversion.secondaryBible = "none"; + bversion.trinaryBible = "none"; + bversion.operatorBible = "same"; + } + + // Get Bible versions for secondary screen + pbx = ui->comboBoxPrimaryBible2->currentIndex(); + sbx = ui->comboBoxSecondaryBible2->currentIndex(); + tbx = ui->comboBoxTrinaryBible2->currentIndex(); + if(pbx != -1) + { + // Primary + bversion2.primaryBible = bible_id_list.at(pbx); + // Secondary + if(sbx <=0) + bversion2.secondaryBible = "none"; + else + bversion2.secondaryBible = secondary_id_list2.at(sbx-1); + // Trinary + if(tbx <=0) + bversion2.trinaryBible = "none"; + else + bversion2.trinaryBible = trinary_id_list2.at(tbx-1); + } + else + { + // There are no bibles in the database + bversion2.primaryBible = "none"; + bversion2.secondaryBible = "none"; + bversion2.trinaryBible = "none"; + bversion2.operatorBible = "same"; + } + + bver = bversion; + bver2 = bversion2; +} + +void BibleSettingWidget::loadSettings() +{ + // Set Effects + ui->checkBoxUseShadow->setChecked(mySettings.useShadow); + ui->checkBoxUseFading->setChecked(mySettings.useFading); + ui->checkBoxUseBlurredShadow->setChecked(mySettings.useBlurShadow); + + ui->checkBoxUseShadow2->setChecked(mySettings2.useShadow); + ui->checkBoxUseFading2->setChecked(mySettings2.useFading); + ui->checkBoxUseBlurredShadow2->setChecked(mySettings2.useBlurShadow); + + // Set background use + ui->groupBoxBackground->setChecked(mySettings.useBackground); + ui->lineEditBackPath->setText(mySettings.backgroundName); + + ui->groupBoxBackground2->setChecked(mySettings2.useBackground); + ui->lineEditBackPath2->setText(mySettings2.backgroundName); + + // Set text color + QPalette p; + p.setColor(QPalette::Base,mySettings.textColor); + ui->graphicViewTextColor->setPalette(p); + + p.setColor(QPalette::Base,mySettings2.textColor); + ui->graphicViewTextColor2->setPalette(p); + + // Set text font + ui->labelFont->setText(getFontText(mySettings.textFont)); + ui->labelFont2->setText(getFontText(mySettings2.textFont)); + + // Set alingment + ui->comboBoxVerticalAling->setCurrentIndex(mySettings.textAlingmentV); + ui->comboBoxHorizontalAling->setCurrentIndex(mySettings.textAlingmentH); + + ui->comboBoxVerticalAling2->setCurrentIndex(mySettings2.textAlingmentV); + ui->comboBoxHorizontalAling2->setCurrentIndex(mySettings2.textAlingmentH); + + // Set caption color + p.setColor(QPalette::Base,mySettings.captionColor); + ui->graphicViewCaptionColor->setPalette(p); + + p.setColor(QPalette::Base,mySettings2.captionColor); + ui->graphicViewCaptionColor2->setPalette(p); + + // Set caption font + ui->labelFontCaption->setText(getFontText(mySettings.captionFont)); + ui->labelFontCaption2->setText(getFontText(mySettings2.captionFont)); + + // Set caption alignment + ui->comboBoxCaptionPosition->setCurrentIndex(mySettings.captionPosition); + ui->comboBoxCaptionPosition2->setCurrentIndex(mySettings2.captionPosition); + + ui->comboBoxCaptionAlign->setCurrentIndex(mySettings.captionAlingment); + ui->comboBoxCaptionAlign2->setCurrentIndex(mySettings2.captionAlingment); + + // Set abbriviations use + ui->checkBoxAbbiviations->setChecked(mySettings.useAbbriviation); + ui->checkBoxAbbiviations2->setChecked(mySettings2.useAbbriviation); + + // Set max screen use + ui->spinBoxMaxScreen->setValue(mySettings.screenUse); + ui->comboBoxScreenPosition->setCurrentIndex(mySettings.screenPosition); + + ui->spinBoxMaxScreen2->setValue(mySettings2.screenUse); + ui->comboBoxScreenPosition2->setCurrentIndex(mySettings2.screenPosition); + + // Set if to use secondary screen settings + ui->groupBoxUseDisp2->setChecked(mySettings2.useDisp2settings); + on_groupBoxUseDisp2_toggled(mySettings2.useDisp2settings); +} + +void BibleSettingWidget::loadBibleVersions() +{ + // Clear items if exitst + bibles.clear(); + bible_id_list.clear(); + + // Get Bibles that exist in the database + QSqlQuery sq; + sq.exec("SELECT bible_name, id FROM BibleVersions"); + while(sq.next()) + { + bibles << sq.value(0).toString(); + bible_id_list << sq.value(1).toString(); + } + sq.clear(); + + // Fill bibles comboboxes + ui->comboBoxPrimaryBible->clear(); + ui->comboBoxPrimaryBible->addItems(bibles); + ui->comboBoxSecondaryBible->clear(); + ui->comboBoxSecondaryBible->addItem(tr("None")); + ui->comboBoxSecondaryBible->addItems(bibles); + ui->comboBoxTrinaryBible->clear(); + ui->comboBoxTrinaryBible->addItem(tr("None")); + ui->comboBoxTrinaryBible->addItems(bibles); + ui->comboBoxOperatorBible->clear(); + ui->comboBoxOperatorBible->addItem(tr("Same as primary Bible")); + ui->comboBoxOperatorBible->addItems(bibles); + + ui->comboBoxPrimaryBible2->clear(); + ui->comboBoxPrimaryBible2->addItems(bibles); + ui->comboBoxSecondaryBible2->clear(); + ui->comboBoxSecondaryBible2->addItem(tr("None")); + ui->comboBoxSecondaryBible2->addItems(bibles); + ui->comboBoxTrinaryBible2->clear(); + ui->comboBoxTrinaryBible2->addItem(tr("None")); + ui->comboBoxTrinaryBible2->addItems(bibles); + + // Set current primary bible + if(bversion.primaryBible == "none") + ui->comboBoxPrimaryBible->setCurrentIndex(0); + else + ui->comboBoxPrimaryBible->setCurrentIndex(bible_id_list.indexOf(bversion.primaryBible)); + + if(bversion2.primaryBible == "none") + ui->comboBoxPrimaryBible2->setCurrentIndex(0); + else + ui->comboBoxPrimaryBible2->setCurrentIndex(bible_id_list.indexOf(bversion2.primaryBible)); + + // Set current secondary bible + if(bversion.secondaryBible == "none") + ui->comboBoxSecondaryBible->setCurrentIndex(0); + else + ui->comboBoxSecondaryBible->setCurrentIndex(bible_id_list.indexOf(bversion.secondaryBible)+1); + + if(bversion2.secondaryBible == "none") + ui->comboBoxSecondaryBible2->setCurrentIndex(0); + else + ui->comboBoxSecondaryBible2->setCurrentIndex(bible_id_list.indexOf(bversion2.secondaryBible)+1); + + // Set current trinaty bibile + if(bversion.trinaryBible == "none") + ui->comboBoxTrinaryBible->setCurrentIndex(0); + else + ui->comboBoxTrinaryBible->setCurrentIndex(bible_id_list.indexOf(bversion.trinaryBible)+1); + updateSecondaryBibleMenu(); + + if(bversion2.trinaryBible == "none") + ui->comboBoxTrinaryBible2->setCurrentIndex(0); + else + ui->comboBoxTrinaryBible2->setCurrentIndex(bible_id_list.indexOf(bversion2.trinaryBible)+1); + updateSecondaryBibleMenu2(); + + // Set current operator bibile + if(bversion.operatorBible == "same") + ui->comboBoxOperatorBible->setCurrentIndex(0); + else + ui->comboBoxOperatorBible->setCurrentIndex(bible_id_list.indexOf(bversion.operatorBible)+1); + updateOperatorBibleMenu(); +} + +void BibleSettingWidget::updateSecondaryBibleMenu() +{ + QString pbible = ui->comboBoxPrimaryBible->currentText(); + QString sbible = ui->comboBoxSecondaryBible->currentText(); + secondary_bibles = bibles; + secondary_bibles.removeOne(pbible); + + secondary_id_list = bible_id_list; + secondary_id_list.removeAt(ui->comboBoxPrimaryBible->currentIndex()); + ui->comboBoxSecondaryBible->clear(); + ui->comboBoxSecondaryBible->addItem(tr("None")); + ui->comboBoxSecondaryBible->addItems(secondary_bibles); + + int i = ui->comboBoxSecondaryBible->findText(sbible); + if( i != -1 ) + // The same secondary bible is still available + ui->comboBoxSecondaryBible->setCurrentIndex(i); + + updateTrinaryBibleMenu(); +} + +void BibleSettingWidget::updateSecondaryBibleMenu2() +{ + QString pbible = ui->comboBoxPrimaryBible2->currentText(); + QString sbible = ui->comboBoxSecondaryBible2->currentText(); + secondary_bibles2 = bibles; + secondary_bibles2.removeOne(pbible); + + secondary_id_list2 = bible_id_list; + secondary_id_list2.removeAt(ui->comboBoxPrimaryBible2->currentIndex()); + ui->comboBoxSecondaryBible2->clear(); + ui->comboBoxSecondaryBible2->addItem(tr("None")); + ui->comboBoxSecondaryBible2->addItems(secondary_bibles2); + + int i = ui->comboBoxSecondaryBible2->findText(sbible); + if( i != -1 ) // The same secondary bible is still available + ui->comboBoxSecondaryBible2->setCurrentIndex(i); + + updateTrinaryBibleMenu2(); +} + +void BibleSettingWidget::updateTrinaryBibleMenu() +{ + if (ui->comboBoxSecondaryBible->currentIndex() == 0) + { + ui->comboBoxTrinaryBible->setCurrentIndex(0); + ui->comboBoxTrinaryBible->setEnabled(false); + } + else + { + ui->comboBoxTrinaryBible->setEnabled(true); + QString sbible = ui->comboBoxSecondaryBible->currentText(); + QString tbible = ui->comboBoxTrinaryBible->currentText(); + QStringList trinary_bibles = secondary_bibles; + trinary_bibles.removeOne(sbible); + + trinary_id_list = secondary_id_list; + trinary_id_list.removeAt(ui->comboBoxSecondaryBible->currentIndex()-1); + ui->comboBoxTrinaryBible->clear(); + ui->comboBoxTrinaryBible->addItem(tr("None")); + ui->comboBoxTrinaryBible->addItems(trinary_bibles); + + int i = ui->comboBoxTrinaryBible->findText(tbible); + if( i != -1 ) + // The same secondary bible is still available + ui->comboBoxTrinaryBible->setCurrentIndex(i); + } +} + +void BibleSettingWidget::updateTrinaryBibleMenu2() +{ + if (ui->comboBoxSecondaryBible2->currentIndex() == 0) + { + ui->comboBoxTrinaryBible2->setCurrentIndex(0); + ui->comboBoxTrinaryBible2->setEnabled(false); + } + else + { + ui->comboBoxTrinaryBible2->setEnabled(true); + QString sbible = ui->comboBoxSecondaryBible2->currentText(); + QString tbible = ui->comboBoxTrinaryBible2->currentText(); + QStringList trinary_bibles = secondary_bibles2; + trinary_bibles.removeOne(sbible); + + trinary_id_list2 = secondary_id_list2; + trinary_id_list2.removeAt(ui->comboBoxSecondaryBible2->currentIndex()-1); + ui->comboBoxTrinaryBible2->clear(); + ui->comboBoxTrinaryBible2->addItem(tr("None")); + ui->comboBoxTrinaryBible2->addItems(trinary_bibles); + + int i = ui->comboBoxTrinaryBible2->findText(tbible); + if( i != -1 ) + // The same secondary bible is still available + ui->comboBoxTrinaryBible2->setCurrentIndex(i); + } +} + +void BibleSettingWidget::updateOperatorBibleMenu() +{ + QString pbible = ui->comboBoxPrimaryBible->currentText(); + QString obible = ui->comboBoxOperatorBible->currentText(); + QStringList operator_bibles = bibles; + operator_bibles.removeOne(pbible); + + operator_id_list = bible_id_list; + operator_id_list.removeAt(ui->comboBoxPrimaryBible->currentIndex()); + ui->comboBoxOperatorBible->clear(); + ui->comboBoxOperatorBible->addItem(tr("Same as primary Bible")); + ui->comboBoxOperatorBible->addItems(operator_bibles); + + int i = ui->comboBoxOperatorBible->findText(obible); + if( i != -1 ) + // The same operaotr bible is still available + ui->comboBoxOperatorBible->setCurrentIndex(i); +} + +void BibleSettingWidget::setDispScreen2Visible(bool visible) +{ + ui->groupBoxUseDisp2->setVisible(visible); +} + +void BibleSettingWidget::on_comboBoxPrimaryBible_activated(const QString &arg1) +{ + updateSecondaryBibleMenu(); + updateOperatorBibleMenu(); +} + +void BibleSettingWidget::on_comboBoxPrimaryBible2_activated(const QString &arg1) +{ + updateSecondaryBibleMenu2(); + updateTrinaryBibleMenu2(); +} + +void BibleSettingWidget::on_comboBoxSecondaryBible_activated(const QString &arg1) +{ + updateTrinaryBibleMenu(); +} + +void BibleSettingWidget::on_comboBoxSecondaryBible2_activated(const QString &arg1) +{ + updateTrinaryBibleMenu2(); +} + +void BibleSettingWidget::on_checkBoxUseShadow_stateChanged(int arg1) +{ + if(arg1==2) + ui->checkBoxUseBlurredShadow->setEnabled(true); + else + { + ui->checkBoxUseBlurredShadow->setChecked(false); + ui->checkBoxUseBlurredShadow->setEnabled(false); + } +} + +void BibleSettingWidget::on_checkBoxUseShadow2_stateChanged(int arg1) +{ + if(arg1==2) + ui->checkBoxUseBlurredShadow2->setEnabled(true); + else + { + ui->checkBoxUseBlurredShadow2->setChecked(false); + ui->checkBoxUseBlurredShadow2->setEnabled(false); + } +} + +void BibleSettingWidget::on_buttonBrowseBackground_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select a image for Bible wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + if(!filename.isNull()) + { + QPixmap p(filename); + if(p.width()>1280 || p.height()>1280) + mySettings.backgroundPix = p.scaled(1280,1280,Qt::KeepAspectRatio); + else + mySettings.backgroundPix = p; + QFileInfo fi(filename); + filename = fi.fileName(); + mySettings.backgroundName = filename; + ui->lineEditBackPath->setText(filename); + } +} + +void BibleSettingWidget::on_buttonBrowseBackground2_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select a image for Bible wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + if(!filename.isNull()) + { + QPixmap p(filename); + if(p.width()>1280 || p.height()>1280) + mySettings2.backgroundPix = p.scaled(1280,1280,Qt::KeepAspectRatio); + else + mySettings2.backgroundPix = p; + QFileInfo fi(filename); + filename = fi.fileName(); + mySettings2.backgroundName = filename; + ui->lineEditBackPath2->setText(filename); + } +} + +void BibleSettingWidget::on_toolButtonTextColor_clicked() +{ + QColor c(QColorDialog::getColor(mySettings.textColor,this)); + if(c.isValid()) + mySettings.textColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings.textColor); + ui->graphicViewTextColor->setPalette(p); +} + +void BibleSettingWidget::on_toolButtonTextColor2_clicked() +{ + QColor c(QColorDialog::getColor(mySettings2.textColor,this)); + if(c.isValid()) + mySettings2.textColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings2.textColor); + ui->graphicViewTextColor2->setPalette(p); +} + +void BibleSettingWidget::on_toolButtonTextFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings.textFont,this); + if(ok) + mySettings.textFont = font; + + ui->labelFont->setText(getFontText(mySettings.textFont)); +} + +void BibleSettingWidget::on_toolButtonTextFont2_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings2.textFont,this); + if(ok) + mySettings2.textFont = font; + + ui->labelFont2->setText(getFontText(mySettings2.textFont)); +} + +void BibleSettingWidget::on_toolButtonCaptionColor_clicked() +{ + QColor c(QColorDialog::getColor(mySettings.captionColor,this)); + if(c.isValid()) + mySettings.captionColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings.captionColor); + ui->graphicViewCaptionColor->setPalette(p); +} + +void BibleSettingWidget::on_toolButtonCaptionColor2_clicked() +{ + QColor c(QColorDialog::getColor(mySettings2.captionColor,this)); + if(c.isValid()) + mySettings2.captionColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings2.captionColor); + ui->graphicViewCaptionColor2->setPalette(p); +} + +void BibleSettingWidget::on_toolButtonCaptionFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings.captionFont,this); + if(ok) + mySettings.captionFont = font; + + ui->labelFontCaption->setText(getFontText(mySettings.captionFont)); +} + +void BibleSettingWidget::on_toolButtonCaptionFont2_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings2.captionFont,this); + if(ok) + mySettings2.captionFont = font; + + ui->labelFontCaption2->setText(getFontText(mySettings2.captionFont)); +} + +void BibleSettingWidget::on_groupBoxUseDisp2_toggled(bool arg1) +{ + ui->widgetBibles2->setVisible(arg1); + ui->groupBoxEffects2->setVisible(arg1); + ui->groupBoxBackground2->setVisible(arg1); + ui->groupBoxMaxScreen2->setVisible(arg1); + ui->groupBoxCaptionProperties2->setVisible(arg1); + ui->groupBoxTextProperties2->setVisible(arg1); + ui->checkBoxAbbiviations2->setVisible(arg1); +} + +void BibleSettingWidget::on_pushButtonDefault_clicked() +{ + BibleSettings b; + mySettings = b; + mySettings2 = b; + loadSettings(); +} + +QString BibleSettingWidget::getFontText(QFont font) +{ + QString st(QString("%1: %2").arg(font.rawName()).arg(font.pointSize())); + if(font.bold()) + st += ", " + tr("Bold"); + if(font.italic()) + st += ", " + tr("Italic"); + if(font.strikeOut()) + st += ", " + tr("StrikeOut"); + if(font.underline()) + st += ", " + tr("Underline"); + + return st; +} + +void BibleSettingWidget::on_pushButtonApplyToAll_clicked() +{ + emit applyBackToAll(1,mySettings.backgroundName,mySettings.backgroundPix); +} + +void BibleSettingWidget::setBackgroungds(QString name, QPixmap back) +{ + mySettings.backgroundName = name; + mySettings.backgroundPix = back; + mySettings2.backgroundName = name; + mySettings2.backgroundPix = back; + ui->lineEditBackPath->setText(name); + ui->lineEditBackPath2->setText(name); +} diff --git a/biblesettingwidget.h b/biblesettingwidget.h new file mode 100644 index 0000000..17a3d8c --- /dev/null +++ b/biblesettingwidget.h @@ -0,0 +1,94 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef BIBLESETTINGWIDGET_H +#define BIBLESETTINGWIDGET_H + +#include +#include +#include "theme.h" +#include "settings.h" +#include "spfunctions.h" + +namespace Ui { +class BibleSettingWidget; +} + +class BibleSettingWidget : public QWidget +{ + Q_OBJECT + +public: + explicit BibleSettingWidget(QWidget *parent = 0); + ~BibleSettingWidget(); + +public slots: + void setSettings(BibleSettings &settings, BibleSettings &settings2); + void getSettings(BibleSettings &settings, BibleSettings &settings2); + void setBibleVersions(BibleVersionSettings &bver, BibleVersionSettings &bver2); + void getBibleVersions(BibleVersionSettings &bver, BibleVersionSettings &bver2); + void setDispScreen2Visible(bool visible); + void setBackgroungds(QString name, QPixmap back); + +signals: + void applyBackToAll(int t, QString backName, QPixmap background); + +private slots: + void loadSettings(); + void loadBibleVersions(); + void updateSecondaryBibleMenu(); + void updateSecondaryBibleMenu2(); + void updateTrinaryBibleMenu(); + void updateTrinaryBibleMenu2(); + void updateOperatorBibleMenu(); + + void on_comboBoxPrimaryBible_activated(const QString &arg1); + void on_comboBoxPrimaryBible2_activated(const QString &arg1); + void on_comboBoxSecondaryBible_activated(const QString &arg1); + void on_comboBoxSecondaryBible2_activated(const QString &arg1); + void on_buttonBrowseBackground_clicked(); + void on_buttonBrowseBackground2_clicked(); + void on_checkBoxUseShadow_stateChanged(int arg1); + void on_checkBoxUseShadow2_stateChanged(int arg1); + void on_toolButtonTextColor_clicked(); + void on_toolButtonTextColor2_clicked(); + void on_toolButtonTextFont_clicked(); + void on_toolButtonTextFont2_clicked(); + void on_toolButtonCaptionColor_clicked(); + void on_toolButtonCaptionColor2_clicked(); + void on_toolButtonCaptionFont_clicked(); + void on_toolButtonCaptionFont2_clicked(); + void on_groupBoxUseDisp2_toggled(bool arg1); + void on_pushButtonDefault_clicked(); + + QString getFontText(QFont font); + void on_pushButtonApplyToAll_clicked(); + +private: + QStringList bibles, secondary_bibles; + QStringList bible_id_list, secondary_id_list, trinary_id_list, operator_id_list; + QStringList secondary_bibles2, secondary_id_list2, trinary_id_list2; + BibleSettings mySettings, mySettings2; + BibleVersionSettings bversion,bversion2; + Ui::BibleSettingWidget *ui; +protected: + virtual void changeEvent(QEvent *e); +}; + +#endif // BIBLESETTINGWIDGET_H diff --git a/biblesettingwidget.ui b/biblesettingwidget.ui new file mode 100644 index 0000000..da0aa4f --- /dev/null +++ b/biblesettingwidget.ui @@ -0,0 +1,1427 @@ + + + BibleSettingWidget + + + + 0 + 0 + 426 + 1015 + + + + + 9 + + + 9 + + + 9 + + + + + + + Primary Bible: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + + + + Secondary Bible: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + + + + Trinary Bible: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + + + + Operator Screen Bible: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + This bible version will be used for the operator to select verses and search bible + + + + + + + + + Effects + + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + + + Use fading effects + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use shadow + + + + + + + false + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use blurred shadow + + + + + + + + + + Use Background Image + + + true + + + + + + true + + + + + + + Browse... + + + + + + + Apply this background to all active backgrounds. + + + + :/icons/icons/apply_to_all.png:/icons/icons/apply_to_all.png + + + + + + + + + + Text Properties + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 20 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + 0 + 0 + + + + true + + + + + + + + + + + Alignment: + + + + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Caption Properties + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 20 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + 0 + 0 + + + + true + + + + + + + + + + + Position: + + + + + + + + Above Text + + + + + Below Text + + + + + + + + Alignment: + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Show Bible Version Abbriviation + + + + + + + Amount Of Screen To Use + + + + + + + + Amount of screen to use: + + + + + + + Percent of screen to be used. + + + % + + + 100 + + + + + + + Position: + + + + + + + Select to use either top portion of the screen or bottom. + + + + Top of Screen + + + + + Botton of Screen + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 170 + 85 + 255 + + + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 170 + 85 + 255 + + + + + + + + + 120 + 120 + 120 + + + + + + + 120 + 120 + 120 + + + + + + + 120 + 120 + 120 + + + + + + + 51 + 153 + 255 + + + + + + + + Use Separate Secondary Display Screen Settings + + + true + + + true + + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + + + Primary Bible: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + + + + Secondary Bible: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + + + + Trinary Bible: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Effects + + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + + + Use fading effects + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use shadow + + + + + + + false + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use blurred shadow + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Use Background Image + + + true + + + + + + true + + + + + + + Browse... + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Text Properties + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 20 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + 0 + 0 + + + + true + + + + + + + + + + + Alignment: + + + + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Caption Properties + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 20 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + 0 + 0 + + + + true + + + + + + + + + + + Position: + + + + + + + + Above Text + + + + + Below Text + + + + + + + + Alignment: + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Show Bible Version Abbriviation + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Amount Of Screen To Use + + + + + + + + Amount of screen to use: + + + + + + + Percent of screen to be used. + + + % + + + 100 + + + + + + + Position: + + + + + + + Select to use either top portion of the screen or bottom. + + + + Top of Screen + + + + + Bottom of Screen + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Reset All To Default + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + comboBoxPrimaryBible + comboBoxSecondaryBible + comboBoxTrinaryBible + comboBoxOperatorBible + checkBoxUseFading + checkBoxUseShadow + checkBoxUseBlurredShadow + groupBoxBackground + buttonBrowseBackground + lineEditBackPath + toolButtonTextColor + graphicViewTextColor + toolButtonTextFont + comboBoxVerticalAling + comboBoxHorizontalAling + toolButtonCaptionColor + graphicViewCaptionColor + toolButtonCaptionFont + comboBoxCaptionPosition + comboBoxCaptionAlign + checkBoxAbbiviations + spinBoxMaxScreen + comboBoxScreenPosition + groupBoxUseDisp2 + comboBoxPrimaryBible2 + comboBoxSecondaryBible2 + comboBoxTrinaryBible2 + checkBoxUseFading2 + checkBoxUseShadow2 + checkBoxUseBlurredShadow2 + groupBoxBackground2 + buttonBrowseBackground2 + lineEditBackPath2 + toolButtonTextColor2 + graphicViewTextColor2 + toolButtonTextFont2 + comboBoxVerticalAling2 + comboBoxHorizontalAling2 + toolButtonCaptionColor2 + graphicViewCaptionColor2 + toolButtonCaptionFont2 + comboBoxCaptionPosition2 + comboBoxCaptionAlign2 + checkBoxAbbiviations2 + spinBoxMaxScreen2 + comboBoxScreenPosition2 + pushButtonDefault + + + + + + diff --git a/biblewidget.cpp b/biblewidget.cpp new file mode 100644 index 0000000..26c2bd9 --- /dev/null +++ b/biblewidget.cpp @@ -0,0 +1,568 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "biblewidget.h" +#include "ui_biblewidget.h" +#include "song.h" +//#include + +//double diffclock(clock_t clock1,clock_t clock2) +//{ +// double diffticks=clock1-clock2; +// double diffms=(diffticks*1000)/CLOCKS_PER_SEC; +// return diffms; +//} + +BibleWidget::BibleWidget(QWidget *parent) : + QWidget(parent), ui(new Ui::BibleWidget) +{ + ui->setupUi(this); + on_hide_result_button_clicked(); + + chapter_validator = new QIntValidator(1, 1, ui->chapter_ef); + verse_validator = new QIntValidator(1, 1, ui->verse_ef); + + ui->chapter_ef->setValidator( chapter_validator ); + ui->verse_ef->setValidator( verse_validator ); + + highlight = new HighlighterDelegate(ui->search_results_list); + ui->search_results_list->setItemDelegate(highlight); +} + +BibleWidget::~BibleWidget() +{ + delete chapter_validator; + delete verse_validator; + delete ui; +} + +void BibleWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void BibleWidget::setSettings(BibleVersionSettings &sets) +{ + QString initial_bible = mySettings.operatorBible; + mySettings = sets; + loadBibles(initial_bible); +} + +void BibleWidget::loadBibles(QString initialId) +{ + // if operator bible = "same", then set it to primary bible + if(mySettings.operatorBible == "same") + mySettings.operatorBible = mySettings.primaryBible; + + // make sure that program does not drop if no bible is present + if(mySettings.operatorBible == "none") + ui->btnLive->setEnabled(false); + else + ui->btnLive->setEnabled(true); + + // Check if primary bible is different that what has been loaded already + // If it is different, then reload the bible list + if(initialId!=mySettings.operatorBible) + { + bible.setBiblesId(mySettings.operatorBible); + bible.loadOperatorBible(); + ui->listBook->clear(); + ui->listBook->addItems(bible.getBooks()); + ui->listBook->setCurrentRow(0); + } +} + +void BibleWidget::on_listBook_currentTextChanged(QString currentText) +{ + int s = ui->listBook->currentRow(); + if( s != -1 ) + { + int max_chapter = bible.books.at(bible.getCurrentBookRow(currentText)).chapterCount; + ui->listChapterNum->clear(); + for(int i=0; ilistChapterNum->addItem(QString::number(i+1)); + chapter_validator->setTop(max_chapter); + if( ui->listChapterNum->currentRow() != 0 ) + ui->listChapterNum->setCurrentRow(0); + } + else + { + // No bible book selected + chapter_validator->setTop(1); + ui->listChapterNum->clear(); + } +} + +void BibleWidget::on_listChapterNum_currentTextChanged(QString currentText) +{ + int s = ui->listChapterNum->currentRow(); + if( s != -1 ) + { + // This optimization is required in order for the bible filter entry field to work fast: + if( currentBook != getCurrentBook() || currentChapter != currentText.toInt() ) + { + currentBook = getCurrentBook(); + currentChapter = currentText.toInt(); + currentChapterList = bible.getChapter(bible.books.at(bible.getCurrentBookRow(currentBook)).bookId.toInt(), currentChapter); + } + + ui->chapter_preview_list->clear(); + ui->chapter_preview_list->addItems(currentChapterList); + ui->chapter_ef->setText(currentText); + verse_validator->setTop(ui->chapter_preview_list->count()); + ui->chapter_preview_list->setCurrentRow(0); + } + else + { + ui->chapter_preview_list->clear(); + } +} + +QString BibleWidget::getCurrentBook() +{ + return ui->listBook->currentItem()->text(); +} + +int BibleWidget::getCurrentChapter() +{ + return ui->listChapterNum->currentItem()->text().toInt(); +} + +/* +bool BibleWidget::eventFilter(QObject *object, QEvent *event) +{ + if (object == ui->spinVerse && event->type() == QEvent::KeyPress) + { + QKeyEvent *keyEvent = static_cast(event); + if (keyEvent->key() == Qt::KeyDown) { + qDebug() << "DOWN KEY"; + // Special tab handling + return true; + } else + return false; + } + return false; +} +*/ + +void BibleWidget::on_chapter_preview_list_currentRowChanged(int currentRow) +{ + ui->verse_ef->setText(QString::number(currentRow+1)); +} + +void BibleWidget::on_chapter_preview_list_doubleClicked(QModelIndex index) +{ + // Called when a chapter or verse is double clicked + sendToProjector(true); +} + +void BibleWidget::sendToProjector(bool add_to_history) +{ + bible.currentIdList = bible.previewIdList; + QItemSelection selectedItems = ui->chapter_preview_list->selectionModel()->selection(); + // Get the caption string to show above the show list (right-most list) + QString cap = QString("%1 %2").arg(ui->listBook->currentItem()->text()).arg(ui->listChapterNum->currentItem()->text()); + emit goLive(bible.verseList, cap,selectedItems); + if (add_to_history) + addToHistory(); +} + +void BibleWidget::on_lineEditBook_textChanged(QString text) +{ + // Called when the bible book filter field is modified. + QStringList all_books = bible.getBooks(); + + // Remove trailing spaces: + text = text.trimmed(); + + int chapter = 0; + int verse = 0; + + // Check whether the user entered a search string that include book, chapter, + // and verse. For example: "1King 3 13" + QStringList search_words = text.split(" "); + + // Allows the user to use more than one space as a seperator: + search_words.removeAll(""); + + if( search_words.count() > 1 ) + { + bool ok; + int num1 = search_words.last().toInt(&ok); + if( ok ) + { + chapter = num1; + search_words.removeLast(); + if( search_words.count() > 1 ) + { + bool ok2; + int num2 = search_words.last().toInt(&ok2); + if( ok2 ) + { + search_words.removeLast(); + chapter = num2; + verse = num1; + } + } + text = search_words.join(" "); + } + } + + // Now search all books to find the matching book: + if( text.isEmpty() ) + { + // Show all bible books + if( ui->listBook->count() != all_books.count() ) + { + // This is an important optimization + ui->listBook->clear(); + ui->listBook->addItems(all_books); + } + } + else + { + // Show only the bible books that match the filter + QStringList filtered_books; + if( text.at(0).isDigit() ) + { + // First character of filter text is a number. Special search, where the + // first character must be the first character of the first word of the book; + // while the rest of the filter must be the beginning of the second book word. + QString num_str(text.at(0)); + QString name_str = text.remove(0, 1); + for(int i=0; ilistBook->count() != filtered_books.count() ) + { + // This is an important optimization + // FIXME don't just check the count; check values + ui->listBook->clear(); + ui->listBook->addItems(filtered_books); + } + } + + if( ui->listBook->count() > 0 ) + // Select the first row. This will take a longer time only if it will cause + // a new chapter to be loaded into the preview + ui->listBook->setCurrentRow(0); + + if( chapter != 0 && chapter <= ui->listChapterNum->count() ) + { + if( ui->listChapterNum->currentRow() != (chapter-1) ) + ui->listChapterNum->setCurrentRow(chapter-1); + if( verse != 0 && verse <= ui->chapter_preview_list->count() ) + ui->chapter_preview_list->setCurrentRow(verse-1); + } +} + +void BibleWidget::on_btnLive_clicked() +{ + sendToProjector(true); +} + +void BibleWidget::on_verse_ef_textChanged(QString new_string) +{ + int value = new_string.toInt(); + ui->chapter_preview_list->setCurrentRow(value-1); +} + +void BibleWidget::on_chapter_ef_textChanged(QString new_string) +{ + int value = new_string.toInt(); + ui->listChapterNum->setCurrentRow(value-1); +} + +void BibleWidget::on_search_button_clicked() +{ + QString search_text = ui->search_ef->text(); + search_text = clean(search_text); // remove all none alphanumeric charecters + + // Make sure that there is some text to do a search for, if none, then return + if(search_text.count()<1) + { + ui->search_ef->clear(); + ui->search_ef->setPlaceholderText(tr("Please enter search text")); + return; + } + + emit setWaitCursor(); + int type = ui->comboBoxSearchType->currentIndex(); + int range = ui->comboBoxSearchRange->currentIndex(); + + QRegExp rx, rxh; + rx.setCaseSensitivity(Qt::CaseInsensitive); + search_text.replace(" ","\\W*"); + if(type == 0) + { + // Search text phrase + rx.setPattern(search_text); + rxh.setPattern(search_text); + } + else if(type == 1) + { + // Search whole word exsact phrase only + rx.setPattern("\\b"+search_text+"\\b"); + rxh.setPattern("\\b"+search_text+"\\b"); + } + else if(type == 2) + { + // Search begining of every line + rx.setPattern("^"+search_text); + rxh.setPattern(search_text); + } + else if(type == 3 || type == 4) + { + // Search for any of the search words + search_text.replace("\\W*","|"); + rx.setPattern("\\b("+search_text+")\\b"); + rxh.setPattern("\\b("+search_text+")\\b"); + } + + highlight->highlighter->setHighlightText(rxh.pattern()); // set highlighting rule + + if(range == 0) // Search entire Bible + search_results = bible.searchBible((type == 4),rx); + else if(range == 1) // Search current book only + search_results = bible.searchBible((type == 4),rx, + bible.books.at(bible.getCurrentBookRow(ui->listBook->currentItem()->text())).bookId.toInt()); + else if (range == 2) // Search current chapter only + search_results = bible.searchBible((type == 4),rx, + bible.books.at(bible.getCurrentBookRow(ui->listBook->currentItem()->text())).bookId.toInt(), + ui->listChapterNum->currentItem()->text().toInt()); + + ui->search_results_list->clear(); + + if (!search_results.isEmpty()) // If have results, then show them + { + if( not ui->result_label->isVisible() ) + { + ui->lineEditBook->clear(); + hidden_splitter_state = ui->results_splitter->saveState(); + ui->result_label->show(); + ui->result_count_label->show(); + ui->search_results_list->show(); + ui->hide_result_button->show(); + ui->search_layout->addItem(ui->results_layout); + ui->results_splitter->restoreState(shown_splitter_state); + } + QStringList verse_list; + int count = search_results.count(); + + ui->result_count_label->setText(tr("Total\nresutls:\n%1").arg(count)); + + for(int i(0);isearch_results_list->addItems(verse_list); + } + else // If no relust, notify the user and hide result list + ui->result_count_label->setText(tr("No search\nresults.")); + + emit setArrowCursor(); +} + +void BibleWidget::on_hide_result_button_clicked() +{ + shown_splitter_state = ui->results_splitter->saveState(); + ui->result_label->hide(); + ui->result_count_label->hide(); + ui->search_results_list->hide(); + ui->hide_result_button->hide(); + ui->search_layout->removeItem(ui->results_layout); + ui->results_splitter->restoreState(hidden_splitter_state); +} + +void BibleWidget::on_search_results_list_currentRowChanged(int currentRow) +{ + if (currentRow >=0) + { + QStringList all_books = bible.getBooks(); + + if(ui->listBook->count() != all_books.count()) + { + ui->listBook->clear(); + ui->listBook->addItems(all_books); + } + + int row = all_books.indexOf(search_results.at(currentRow).book); + ui->listBook->setCurrentRow(row); + + ui->chapter_ef->setText(search_results.at(currentRow).chapter); + ui->verse_ef->setText(search_results.at(currentRow).verse); + } +} + +void BibleWidget::on_search_results_list_doubleClicked(QModelIndex index) +{ + on_search_results_list_currentRowChanged(index.row()); + on_btnLive_clicked(); +} + +void BibleWidget::addToHistory() +{ + BibleHistory b = getCurrentVerse(); + history_items.append(b); + ui->history_listWidget->addItem(b.captionLong); +} + +void BibleWidget::addToHistory(BibleHistory &b) +{ + history_items.append(b); + ui->history_listWidget->addItem(b.captionLong); +} + +void BibleWidget::clearHistory() +{ + ui->history_listWidget->clear(); + history_items.clear(); +} + +void BibleWidget::on_history_listWidget_currentRowChanged(int currentRow) +{ + if (currentRow >= 0) + { + BibleHistory bh = history_items.at(currentRow); + setSelectedHistory(bh); + } +} + +void BibleWidget::setSelectedHistory(BibleHistory &b) +{ + QStringList all_books = bible.getBooks(); + if(ui->listBook->count()!=all_books.count()) + { + ui->listBook->clear(); + ui->listBook->addItems(all_books); + } + QString bk; + int ch,vr,vrl; + bible.getVerseRef(b.verseIds,bk,ch,vr); + vrl = bible.getVerseNumberLast(b.verseIds); + + ui->listBook->setCurrentRow(all_books.indexOf(bk)); + ui->chapter_ef->setText(QString::number(ch)); + QItemSelection sel; + sel.select(ui->chapter_preview_list->model()->index(vr-1,0,QModelIndex()), + ui->chapter_preview_list->model()->index(vrl-1,0,QModelIndex())); + ui->chapter_preview_list->clearSelection(); + ui->verse_ef->setText(QString::number(vr)); + ui->chapter_preview_list->selectionModel()->select(sel,QItemSelectionModel::Select); +} + +void BibleWidget::on_history_listWidget_doubleClicked(QModelIndex index) +{ + sendToProjector( false); +} + +QByteArray BibleWidget::getHiddenSplitterState() +{ + if(ui->hide_result_button->isHidden()) + hidden_splitter_state = ui->results_splitter->saveState(); + return hidden_splitter_state; +} + +QByteArray BibleWidget::getShownSplitterState() +{ + if(!ui->hide_result_button->isHidden()) + shown_splitter_state = ui->results_splitter->saveState(); + return shown_splitter_state; +} + +void BibleWidget::setHiddenSplitterState(QByteArray& state) +{ + hidden_splitter_state = state; + ui->results_splitter->restoreState(hidden_splitter_state); +} + +void BibleWidget::setShownSplitterState(QByteArray& state) +{ + shown_splitter_state = state; +} + +BibleHistory BibleWidget::getCurrentVerse() +{ + BibleHistory b; + QString selected_ids; + + QString book = ui->listBook->currentItem()->text(); + QString chapter = ui->chapter_ef->text(); + + int first_selected(-1),last_selected(-1); + for(int i(0);ichapter_preview_list->count();++i) + { + if(ui->chapter_preview_list->item(i)->isSelected()) + { + if(first_selected == -1) + first_selected = i; + last_selected = i; + selected_ids += bible.previewIdList.at(i) + ","; + } + } + selected_ids.chop(1); + + QString verse_text = ui->chapter_preview_list->item(first_selected)->text().trimmed(); + b.verseIds = selected_ids; + + if(first_selected==last_selected) + { + b.caption = book + " " + chapter + ":" + QString::number(first_selected+1); + b.captionLong = book + " " + chapter + ":" + verse_text; + } + else + { // Create multi verse caption for display + int f(first_selected+1), l(last_selected+1),j(0); + QString v=verse_text,p="."; + while(v.at(j)!=p.at(0)) + ++j; + v = v.remove(0,j); + + b.caption = book + " " + chapter + ":" + QString::number(f) + "-" + QString::number(l); + b.captionLong = book + " " + chapter + ":" + QString::number(f) + "-" + QString::number(l) + v + "..."; + } + + return b; +} + +bool BibleWidget::isVerseSelected() +{ + if(ui->chapter_preview_list->selectedItems().count() >= 1) + return true; + else + return false; +} diff --git a/biblewidget.h b/biblewidget.h new file mode 100644 index 0000000..2a9cd32 --- /dev/null +++ b/biblewidget.h @@ -0,0 +1,100 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef BIBLEWIDGET_H +#define BIBLEWIDGET_H + +#include +#include +#include +#include "bible.h" +#include "highlight.h" +#include "settings.h" + +namespace Ui { +class BibleWidget; +} + +class BibleWidget : public QWidget { + Q_OBJECT + Q_DISABLE_COPY(BibleWidget) +public: + explicit BibleWidget(QWidget *parent = 0); + virtual ~BibleWidget(); + Bible bible; + QString getCurrentBook(); + + // For optimization: + QString currentBook; + int currentChapter; + QStringList currentChapterList; + + int getCurrentChapter(); + +public slots: + QByteArray getHiddenSplitterState(); + QByteArray getShownSplitterState(); + void setHiddenSplitterState(QByteArray& state); + void setShownSplitterState(QByteArray& state); + void loadBibles(QString initialId); + void sendToProjector(bool add_to_history); + void setSettings(BibleVersionSettings& sets); + BibleHistory getCurrentVerse(); + void addToHistory(BibleHistory &b); + void clearHistory(); + void setSelectedHistory(BibleHistory &b); + bool isVerseSelected(); + +protected: + virtual void changeEvent(QEvent *e); + +signals: + void setWaitCursor(); + void setArrowCursor(); + void goLive(QStringList chapter_list, QString caption, QItemSelection selectItems); + +private slots: + void on_history_listWidget_doubleClicked(QModelIndex index); + void on_history_listWidget_currentRowChanged(int currentRow); + void on_search_results_list_doubleClicked(QModelIndex index); + void on_search_results_list_currentRowChanged(int currentRow); + void on_hide_result_button_clicked(); + void on_search_button_clicked(); + void on_chapter_ef_textChanged(QString new_string); + void on_verse_ef_textChanged(QString new_string); + void on_btnLive_clicked(); + void on_lineEditBook_textChanged(QString ); + void on_chapter_preview_list_doubleClicked(QModelIndex index); + void on_chapter_preview_list_currentRowChanged(int currentRow); + void on_listChapterNum_currentTextChanged(QString currentText); + void on_listBook_currentTextChanged(QString currentText); + void addToHistory(); + +private: + BibleVersionSettings mySettings; + Ui::BibleWidget *ui; + HighlighterDelegate *highlight; + QList search_results; + QList history_items; + QIntValidator *chapter_validator, *verse_validator; + QByteArray hidden_splitter_state, shown_splitter_state; + QButtonGroup search_type_buttongroup; +}; + +#endif // BIBLEWIDGET_H diff --git a/biblewidget.ui b/biblewidget.ui new file mode 100644 index 0000000..1126b4a --- /dev/null +++ b/biblewidget.ui @@ -0,0 +1,589 @@ + + + BibleWidget + + + + 0 + 0 + 488 + 772 + + + + + 400 + 0 + + + + Form + + + + + + Qt::Vertical + + + false + + + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Search: + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Search the bible for specified text. Matched verses will appear in the list below. If a bible book is selected, only that book will be searched. + + + + + + + Select search range + + + + Entire Bible + + + + + Current Book + + + + + Current Chapter + + + + + + + + Select search type + + + + Contains Phrase + + + + + Contains Word Phrase + + + + + Verse Begins + + + + + Contains Any Word + + + + + Contains All Words + + + + + + + + Quickly display the selected Bible verse on the screen + + + Search + + + + :/icons/icons/search.png:/icons/icons/search.png + + + Return + + + + + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 16777215 + 20 + + + + Results: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + + + + 0 + 61 + 90 + + + + + + + + + 0 + 61 + 90 + + + + + + + + + 118 + 116 + 108 + + + + + + + + + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + 160 + 0 + + + + + 16777215 + 16777215 + + + + false + + + + + + + + + + + Hide +Results + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + + + + + + QLayout::SetNoConstraint + + + + + + + + 160 + 0 + + + + + 160 + 16777215 + + + + Book: + + + + + + + + 0 + 0 + + + + + 160 + 0 + + + + + 160 + 16777215 + + + + Filter criteria for the bible list. If the first character of the filter is a number, then only books starting with this number are matched. Example filters: "Deuter", "1Thes". + + + + + + + + 0 + 0 + + + + + 160 + 0 + + + + + 160 + 16777215 + + + + false + + + + + + + + + QLayout::SetDefaultConstraint + + + + + + 16777215 + 16777215 + + + + Chapter: + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 60 + 16777215 + + + + Filter criteria for the bible list. If the first character of the filter is a number, then only books starting with this number are matched. Example filters: "Deuter", "1Thes". + + + + + + + + 0 + 0 + + + + + 60 + 16777215 + + + + false + + + + + + + + + 6 + + + + + 6 + + + + + + + Verse: + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 50 + 16777215 + + + + Filter criteria for the bible list. If the first character of the filter is a number, then only books starting with this number are matched. Example filters: "Deuter", "1Thes". + + + + + + + + + Qt::Horizontal + + + + 17 + 13 + + + + + + + + + 0 + 0 + + + + Quickly display the selected Bible verse on the screen + + + Go Live (F5) + + + + :/icons/icons/go_live.png:/icons/icons/go_live.png + + + F5 + + + + + + + 0 + + + + + + + + + false + + + QAbstractItemView::ContiguousSelection + + + true + + + + + + + + + + + QLayout::SetMinimumSize + + + + + This list contains verses that were sent to be shown + + + + + + + + + + + lineEditBook + chapter_ef + verse_ef + listBook + listChapterNum + chapter_preview_list + btnLive + search_ef + comboBoxSearchRange + comboBoxSearchType + search_button + search_results_list + hide_result_button + history_listWidget + + + + + + diff --git a/controlbutton.cpp b/controlbutton.cpp new file mode 100644 index 0000000..e5207a3 --- /dev/null +++ b/controlbutton.cpp @@ -0,0 +1,123 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "controlbutton.h" + +ControlButton::ControlButton(QWidget * parent) + : QPushButton(parent) +{ + m_hovered = false; + m_pressed = false; + m_opacity = 1.0; +} + +ControlButton::ControlButton(const QIcon & icon, const QIcon &iconHovered, const QIcon &iconPressed, QWidget *parent) + : QPushButton(parent) +{ + m_icon = icon; + m_iconHovered = iconHovered; + m_iconPressed = iconPressed; + m_hovered = false; + m_pressed = false; + m_opacity = 1.0; +} + +ControlButton::~ControlButton(){} + +void ControlButton::paintEvent(QPaintEvent * pe) +{ + Q_UNUSED(pe); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + //test for state changes + QColor button_color; + QIcon button_icon; + if(this->isEnabled()) + { + if(m_hovered) + button_icon = m_iconHovered; + else + button_icon = m_icon; + + if(m_pressed) + button_icon = m_iconPressed; + } + else + button_color = QColor(50, 50, 50); + + QRect button_rect = this->geometry(); + + if(!button_icon.isNull()) + { + QSize icon_size = this->iconSize(); + QRect icon_position = this->calculateIconPosition(button_rect, icon_size); + painter.setOpacity(m_opacity); + painter.drawPixmap(icon_position, QPixmap(button_icon.pixmap(icon_size))); + } +} + +void ControlButton::enterEvent(QEvent * e) +{ + m_hovered = true; + this->repaint(); + + QPushButton::enterEvent(e); +} + +void ControlButton::leaveEvent(QEvent * e) +{ + m_hovered = false; + this->repaint(); + + QPushButton::leaveEvent(e); +} + +void ControlButton::mousePressEvent(QMouseEvent * e) +{ + m_pressed = true; + this->repaint(); + + QPushButton::mousePressEvent(e); +} + +void ControlButton::mouseReleaseEvent(QMouseEvent * e) +{ + m_pressed = false; + this->repaint(); + + QPushButton::mouseReleaseEvent(e); +} + +QRect ControlButton::calculateIconPosition(QRect button_rect, QSize icon_size) +{ + int x = (button_rect.width() / 2) - (icon_size.width() / 2); + int y = (button_rect.height() / 2) - (icon_size.height() / 2); + int width = icon_size.width(); + int height = icon_size.height(); + + QRect icon_position; + icon_position.setX(x); + icon_position.setY(y); + icon_position.setWidth(width); + icon_position.setHeight(height); + + return icon_position; +} diff --git a/controlbutton.h b/controlbutton.h new file mode 100644 index 0000000..bfab6c0 --- /dev/null +++ b/controlbutton.h @@ -0,0 +1,59 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef CONTROLBUTTON_H +#define CONTROLBUTTON_H + +#include +//#include + +class ControlButton : public QPushButton +{ + Q_OBJECT + +public: + ControlButton(QWidget * parent = 0); + ControlButton(const QIcon & icon, const QIcon & iconHovered, const QIcon & iconPressed, QWidget * parent = 0); + + ~ControlButton(); + + //Range: 0.0 [invisible] - 1.0 [opaque] + void setOpacity(qreal opacity) { m_opacity = opacity; } + +protected: + void paintEvent(QPaintEvent * pe); + void enterEvent(QEvent * e); + void leaveEvent(QEvent * e); + void mousePressEvent(QMouseEvent * e); + void mouseReleaseEvent(QMouseEvent * e); + +private: + QRect calculateIconPosition(QRect button_rect, QSize icon_size); + +private: + bool m_hovered; + bool m_pressed; + + qreal m_opacity; + QIcon m_icon; + QIcon m_iconHovered; + QIcon m_iconPressed; +}; + +#endif // CONTROLBUTTON_H diff --git a/displayscreen.cpp b/displayscreen.cpp new file mode 100644 index 0000000..82a297a --- /dev/null +++ b/displayscreen.cpp @@ -0,0 +1,1476 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "displayscreen.h" +#include "ui_displayscreen.h" + +#define BLUR_RADIUS 5 + +DisplayScreen::DisplayScreen(QWidget *parent) : + QWidget(parent), + ui(new Ui::DisplayScreen) +{ + ui->setupUi(this); + /* + setPalette(QPalette(QColor(Qt::black),QColor(Qt::black))); + + timer = new QTimer(this); + timer_out = new QTimer(this); + + acounter[0]=255; + + // add video player + + videoPlayer = new Phonon::MediaObject; + videoWidget = new Phonon::VideoWidget(this); + videoWidget->setVisible(false); + Phonon::createPath(videoPlayer,videoWidget); + + connect(videoPlayer, SIGNAL(tick(qint64)),this,SLOT(updateTimeText())); + connect(videoPlayer, SIGNAL(totalTimeChanged(qint64)),this,SLOT(updateTimeText())); + connect(videoPlayer, SIGNAL(stateChanged(Phonon::State,Phonon::State)),this,SLOT(playerStateChanged(Phonon::State,Phonon::State))); + + + // add text render lable + textRenderLabel = new QLabel(this); + + // Add control buttons + btnNext = new ControlButton(QIcon(":/icons/icons/controlNext.png"), + QIcon(":/icons/icons/controlNextHovered.png"), + QIcon(":/icons/icons/controlNextPressed.png"),this); + btnPrev = new ControlButton(QIcon(":/icons/icons/controlPrev.png"), + QIcon(":/icons/icons/controlPrevHovered.png"), + QIcon(":/icons/icons/controlPrevPressed.png"),this); + btnExit = new ControlButton(QIcon(":/icons/icons/controlExit.png"), + QIcon(":/icons/icons/controlExitHovered.png"), + QIcon(":/icons/icons/controlExitPressed.png"),this); + + connect(timer, SIGNAL(timeout()), this, SLOT(fadeIn())); + connect(btnNext,SIGNAL(clicked()),this,SLOT(btnNextClicked())); + connect(btnPrev,SIGNAL(clicked()),this,SLOT(btnPrevClicked())); + connect(btnExit,SIGNAL(clicked()),this,SLOT(btnExitClicked())); + */ +} + +DisplayScreen::~DisplayScreen() +{ +// delete timer; +// delete timer_out; +// delete videoPlayer; +// delete videoWidget; +// delete textRenderLabel; +// delete btnPrev; +// delete btnNext; +// delete btnExit; + delete ui; +} +/* +void DisplayScreen::keyReleaseEvent(QKeyEvent *event) +{ + // Will get called when a key is released + int key = event->key(); + if(key == Qt::Key_Left) + prevSlide(); + else if(key == Qt::Key_Up) + prevSlide(); + else if(key == Qt::Key_PageUp) + prevSlide(); + else if(key == Qt::Key_Back) + prevSlide(); + else if(key == Qt::Key_Right) + nextSlide(); + else if(key == Qt::Key_Down) + nextSlide(); + else if(key == Qt::Key_PageDown) + nextSlide(); + else if(key == Qt::Key_Forward) + nextSlide(); + else if(key == Qt::Key_Enter) + nextSlide(); + else if(key == Qt::Key_Return) + nextSlide(); + else if(key == Qt::Key_Escape) + exitSlide(); + else + QWidget::keyReleaseEvent(event); +} + +void DisplayScreen::positionOpjects() +{ +// videoWidget->setGeometry(0,0,width(),height()); + textRenderLabel->setGeometry(0,0,width(),height()); +} + +void DisplayScreen::setControlsSettings(DisplayControlsSettings &settings) +{ + controlsSettings = settings; + positionControlButtons(); +} + +void DisplayScreen::setControlButtonsVisible(bool visible) +{ + btnPrev->setVisible(visible); + btnNext->setVisible(visible); + btnExit->setVisible(visible); +} + +void DisplayScreen::positionControlButtons() +{ + // set icon sise + int buttonSize(controlsSettings.buttonSize); + if(buttonSize == 0) + buttonSize = 16; + else if(buttonSize == 1) + buttonSize = 24; + else if(buttonSize == 2) + buttonSize = 32; + else if(buttonSize == 3) + buttonSize = 48; + else if(buttonSize == 4) + buttonSize = 64; + else if(buttonSize == 5) + buttonSize = 96; + else + buttonSize = 48; + btnNext->setIconSize(QSize(buttonSize,buttonSize)); + btnPrev->setIconSize(QSize(buttonSize,buttonSize)); + btnExit->setIconSize(QSize(buttonSize,buttonSize)); + + // set buttons size to be 2px greater than the icon size + buttonSize +=2; + + // calculate button position + int y(this->height()), x(this->width()), margin(5); + + // calculate y position + if(controlsSettings.alignmentV==0)//top + y = margin; + else if(controlsSettings.alignmentV==1)//middle + y = (y-buttonSize)/2; + else if(controlsSettings.alignmentV==2)//buttom + y = y-buttonSize-margin; + else + y = y-buttonSize-margin; + + // calculate x position + int xt((buttonSize*3)+10); //total width of the button group + if(controlsSettings.alignmentH==0) + x = margin; + else if(controlsSettings.alignmentH==1) + x = (x-xt)/2; + else if (controlsSettings.alignmentH==2) + x = x-xt-margin; + else + x = (x-xt)/2; + + int x1(x); + int x2(x1+buttonSize+5); + int x3(x2+buttonSize+5); + + //set button positon + btnPrev->setGeometry(x1,y,buttonSize,buttonSize); + btnNext->setGeometry(x2,y,buttonSize,buttonSize); + btnExit->setGeometry(x3,y,buttonSize,buttonSize); + + //set button opacity + btnPrev->setOpacity(controlsSettings.opacity); + btnNext->setOpacity(controlsSettings.opacity); + btnExit->setOpacity(controlsSettings.opacity); + + // repaint buttons + btnPrev->repaint(); + btnNext->repaint(); + btnExit->repaint(); +} + +void DisplayScreen::btnNextClicked() +{ + emit nextSlide(); +} + +void DisplayScreen::btnPrevClicked() +{ + emit prevSlide(); +} + +void DisplayScreen::btnExitClicked() +{ + emit exitSlide(); +} + +void DisplayScreen::fadeIn() +{ + if (useFading) + { + acounter[0]+=64; // fade step increaments + if (acounter[0]>255) + acounter[0]=255; + + if (acounter[0]>254) + timer->stop(); + update(); + } +} + +void DisplayScreen::fadeOut() // For future +{ + // acounter[0]-=24; + // if (acounter[0]<0)acounter[0]=0; + // if (acounter[0]<1){timer_out->stop();} + // update(); +} + +void DisplayScreen::renderText(bool text_present) +{ +// if(displayType=="video") +// { +// if(!videoWidget->isVisible()) +// videoWidget->setVisible(true); +// if(textRenderLabel->isVisible()) // Need to remove when text lable on top of video properly works +// textRenderLabel->setVisible(false); +// } +// else +// { + if(!textRenderLabel->isVisible()) // Need to remove when text lable on top of video properly works + textRenderLabel->setVisible(true); +// if(videoWidget->isVisible()) +// { +// videoPlayer->stop(); +// videoWidget->setVisible(false); +// } +// } + + if(!text_present) + displayType.clear(); + + if(useFading) + { + acounter[0]=0; + } + // Save the previous image for fade-out effect: + previous_image_pixmap = QPixmap::fromImage(output_image); + + // For later determening which background to draw, and whether to transition to it: + background_needs_transition = ( use_active_background != text_present ); + use_active_background = text_present; + + // Render the foreground text: + QImage text_image(width(), height(), QImage::Format_ARGB32);//_Premultiplied); + + // Fill transparent background instead of initial garbage (fixes issues on MacOSX): + text_image.fill(qRgba(0, 0, 0, 0)); //transparent background + + QPainter text_painter(&text_image); + //text_painter.setRenderHint(QPainter::TextAntialiasing); + //text_painter.setRenderHint(QPainter::Antialiasing); + + // Request to write its text to the QPainter: + if(displayType == "bible") + drawBibleText(&text_painter, width(), height(),false); + else if(displayType == "song") + drawSongText(&text_painter, width(), height(),false); + else if(displayType == "announce") + drawAnnounceText(&text_painter, width(), height(),false); + text_painter.end(); + + // Draw the shadow image: + QImage shadow_image(width(), height(), QImage::Format_ARGB32);//_Premultiplied); + shadow_image.fill(qRgba(0, 0, 0, 0)); //transparent background + QPainter shadow_painter(&shadow_image); + shadow_painter.setPen(QColor(Qt::black)); + + if(useShadow) + { + if(displayType == "bible") + drawBibleText(&shadow_painter, width(), height(),true); + else if(displayType == "song") + drawSongText(&shadow_painter, width(), height(),true); + else if(displayType == "announce") + drawAnnounceText(&shadow_painter, width(), height(),true); + shadow_painter.end(); + } + + // Set the blured image to the produced text image: + if(useBluredShadow) // Blur the shadow: + fastbluralpha(shadow_image, BLUR_RADIUS); + + QImage temp_image(width(), height(), QImage::Format_ARGB32);//_Premultiplied); + output_image = temp_image; + output_image.fill(qRgba(0, 0, 0, 0)); //transparent background + + // Painter for drawing the final image: + QPainter output_painter(&output_image); + //output_painter.setRenderHint(QPainter::TextAntialiasing); + //output_painter.setRenderHint(QPainter::Antialiasing); + + // Offset the shadow by a fraction of the font size: + int shadow_offset(0); + if(displayType == "bible") + shadow_offset = (bdSets.tFont.pointSize() / 15); + else if(displayType == "song") + shadow_offset = (songSets.textFont.pointSize() / 15); + else if(displayType == "announce") + shadow_offset = (annouceSets.textFont.pointSize() / 15 ); + + // Draw the shadow: + output_painter.drawImage(shadow_offset, shadow_offset, shadow_image); + + // Draw the text: + output_painter.drawImage(0, 0, text_image); + output_painter.end(); + + if(useFading) + timer->start(32); // time beween fade steps in milliseconds + else + update(); +} + +void DisplayScreen::renderBibleText(Verse verse, BibleSettings &bibleSetings) +{ + // Render bible verse text + displayType = "bible"; + bibleVerse = verse; + bibleSets = bibleSetings; + + useFading = bibleSets.useFading; + useShadow = bibleSets.useShadow; + useBluredShadow = bibleSets.useBlurShadow; + setNewWallpaper(bibleSets.background,bibleSets.useBackground); + + isTextPrepared = false; + renderText(true); +} + +void DisplayScreen::renderSongText(Stanza stanza, SongSettings &songSettings) +{ + // Render song stanza text + displayType = "song"; + songStanza = stanza; + songSets = songSettings; + + useFading = songSets.useFading; + useShadow = songSets.useShadow; + useBluredShadow = songSets.useBlurShadow; + if(songStanza.usePrivateSettings) + { + // Set song specific settings + songSets.useBackground = songStanza.useBackground; + songSets.backgroundName = songStanza.backgroundName; + songSets.background = songStanza.background; + songSets.textFont = songStanza.font; + songSets.textColor = songStanza.color; + songSets.infoColor = songStanza.infoColor; + songSets.infoFont = songStanza.infoFont; + songSets.endingColor = songStanza.endingColor; + songSets.infoFont = songStanza.endingFont; + songSets.textAlingmentV = songStanza.alignmentV; + songSets.textAlingmentH = songStanza.alignmentH; + } + + setNewWallpaper(songSets.background,songSets.useBackground); + + isTextPrepared = false; + renderText(true); +} + +void DisplayScreen::renderAnnounceText(AnnounceSlide announce, AnnounceSettings &announceSettings) +{ + // Render announcement slide text + displayType = "announce"; + announcement = announce; + annouceSets = announceSettings; + + useFading = annouceSets.useFading; + useShadow = annouceSets.useShadow; + useBluredShadow = annouceSets.useBlurShadow; + setNewWallpaper(annouceSets.background,annouceSets.useBackground); + + isTextPrepared = false; + renderText(true); +} + +void DisplayScreen::renderPicture(QPixmap image, SlideShowSettings ssSets) +{ + displayType = "pix"; + bool expand; + if(image.width()stop(); +// videoPlayer->setCurrentSource(Phonon::MediaSource(vid.filePath)); +// videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatio(vid.aspectRatio)); +// videoPlayer->play(); +} + +void DisplayScreen::renderClear() +{ + displayType = "clear"; + renderText(true); +} + +void DisplayScreen::updateTimeText() +{ + long len = 0;//videoPlayer->totalTime(); + long pos = 0;//videoPlayer->currentTime(); + QString timeString; + if (pos || len) + { + int sec = pos/1000; + int min = sec/60; + int hour = min/60; + int msec = pos; + + QTime playTime(hour%60, min%60, sec%60, msec%1000); + sec = len / 1000; + min = sec / 60; + hour = min / 60; + msec = len; + + QTime stopTime(hour%60, min%60, sec%60, msec%1000); + QString timeFormat = "m:ss"; + if (hour > 0) + timeFormat = "h:mm:ss"; + timeString = playTime.toString(timeFormat); + if (len) + timeString += " / " + stopTime.toString(timeFormat); + } + + emit sendTimeText(timeString); +} + +void DisplayScreen::playerStateChanged(Phonon::State newstate, Phonon::State oldstate) +{ + Q_UNUSED(oldstate); + switch (newstate) + { + case Phonon::ErrorState: + videoPlayer->pause(); + QMessageBox::warning(this,tr("Video Player Error"),videoPlayer->errorString(),QMessageBox::Close); + break; + case Phonon::StoppedState: + case Phonon::PausedState: + emit updatePlayButton(false); + break; + case Phonon::PlayingState: + emit updatePlayButton(true); + case Phonon::BufferingState: + break; + case Phonon::LoadingState: + break; + } +} + + +void DisplayScreen::drawBibleText(QPainter *painter, int width, int height, bool isShadow) +{ + // Margins: + int left = 30; + int top = 20; + + //int right = width - left; + int w = width - left - left; + int h = height - top - top; + + // set maximum screen size - For primary bibile only + int maxh = h * bibleSets.screenUse/100; // maximun screen height + int maxtop; // top of max screen + if(bibleSets.screenPosition == 0) + maxtop = top; + if(bibleSets.screenPosition == 1) + maxtop = top+h-maxh; + + // apply max screen use settings + h=maxh; + top=maxtop; + + // Keep decreasing the font size until the text fits into the allocated space: + + // Rects for storing the position of the text and caption drawing: + QRect trect1, crect1, trect2, crect2, trect3, crect3; + // Flags to be used for drawing verse text and caption: + int tflags = Qt::TextWordWrap; + tflags = Qt::TextWordWrap; + + if(bibleSets.textAlingmentV==0) + tflags += Qt::AlignTop; + else if(bibleSets.textAlingmentV==1) + tflags += Qt::AlignVCenter; + else if(bibleSets.textAlingmentV==2) + tflags += Qt::AlignBottom; + + if(bibleSets.textAlingmentH==0) + tflags += Qt::AlignLeft; + else if(bibleSets.textAlingmentH==1) + tflags += Qt::AlignHCenter; + else if(bibleSets.textAlingmentH==2) + tflags += Qt::AlignRight; + + int cflags = Qt::AlignTop ; + if(bibleSets.captionAlingment==0) + cflags += Qt::AlignLeft; + else if(bibleSets.captionAlingment==1) + cflags += Qt::AlignHCenter; + else if(bibleSets.captionAlingment==2) + cflags += Qt::AlignRight; + + bool exit = false; + if(!isTextPrepared) + { + bdSets.clear(); + while( !exit ) + { + if(bibleVerse.secondary_text.isEmpty() && bibleVerse.trinary_text.isEmpty()) + { + // Prepare primary version only, 2nd and 3rd do not exist + // Figure out how much space the drawing will take at the current font size: + drawBibleTextToRect(painter,trect1,crect1,bibleVerse.primary_text,bibleVerse.primary_caption, + tflags,cflags,top,left,w,h); + + // Make sure that all fits into the screen + int th = trect1.height()+crect1.height(); + exit = (th<=h); + } + else if(!bibleVerse.secondary_text.isEmpty() && bibleVerse.trinary_text.isEmpty()) + { + // Prepare primary and secondary versions, trinary does not exist + // Figure out how much space the drawing will take at the current font size for primary: + drawBibleTextToRect(painter,trect1,crect1,bibleVerse.primary_text,bibleVerse.primary_caption, + tflags,cflags,top,left,w,h/2); + + // set new top for secondary + int top2 = crect1.bottom(); + if(top2setFont(bdSets.tFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(bibleSets.textColor); + painter->drawText(bdSets.ptRect, tflags, bibleVerse.primary_text); + if(!bibleVerse.secondary_text.isNull()) + painter->drawText(bdSets.stRect, tflags, bibleVerse.secondary_text); + if(!bibleVerse.trinary_text.isNull()) + painter->drawText(bdSets.ttRect, tflags, bibleVerse.trinary_text); + + // Draw the verse caption(s) at the final size: + painter->setFont(bdSets.cFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(bibleSets.captionColor); + painter->drawText(bdSets.pcRect, cflags, bibleVerse.primary_caption); + if(!bibleVerse.secondary_text.isNull()) + painter->drawText(bdSets.scRect, cflags, bibleVerse.secondary_caption); + if(!bibleVerse.trinary_caption.isNull()) + painter->drawText(bdSets.tcRect, cflags, bibleVerse.trinary_caption); +} + +void DisplayScreen::drawBibleTextToRect(QPainter *painter, QRect& trect, QRect& crect, QString ttext, + QString ctext, int tflags, int cflags, int top, int left, + int width, int height) +{ + // prepare caption + painter->setFont(bibleSets.captionFont); + crect = painter->boundingRect(left, top, width, height, cflags, ctext); + + // prepare text + painter->setFont(bibleSets.textFont); + trect = painter->boundingRect(left, top, width, height-crect.height(), tflags, ttext); + + // reset capion location + int ch = crect.height(); + int th = trect.height(); + if(bibleSets.captionPosition == 0) + { + crect.setTop(trect.top()); + crect.setHeight(ch); + trect.setTop(crect.bottom()); + trect.setHeight(th); + } + else if(bibleSets.captionPosition == 1) + { + crect.setTop(trect.bottom()); + crect.setHeight(ch); + } +} + +void DisplayScreen::drawSongText(QPainter *painter, int width, int height, bool isShadow) +{ + // Draw the text of the current song verse to the specified painter; making + // sure that the output rect is narrower than and shorter than . + + QString main_text = songStanza.stanza; + QString caption_str; + QString song_ending = " "; + + //QStringList lines_list = song_list.at(current_song_verse).split("\n"); + QString song_num_str = QString::number(songStanza.number); + QString song_key_str = songStanza.tune; + + // Check whether to display song numbers + if (songSets.showSongNumber) + song_num_str = song_num_str; + else + song_num_str = " "; + + // Check whether to display song key + if (songSets.showSongKey) + song_num_str = song_key_str + " " + song_num_str; + else + song_num_str = song_num_str; + + // Check wheter to display stanza tiles + if (songSets.showStanzaTitle) + caption_str = songStanza.stanzaTitle; + else + caption_str = " "; + + // If No cation,number or tune, give the space to song text + if(!songSets.showSongNumber && !songSets.showSongKey && !songSets.showStanzaTitle) + { + song_num_str.clear(); + caption_str.clear(); + } + + // Prepare Song ending string + if(songStanza.isLast) + { + // first check if to show ending + if(songSets.showSongEnding) + { + if(songSets.endingType == 0) + song_ending = "* * *"; + else if(songSets.endingType == 1) + song_ending = "- - -"; + else if(songSets.endingType == 2) + song_ending = QString::fromUtf8("° ° °"); + else if(songSets.endingType == 3) + song_ending = QString::fromUtf8("• • •"); + else if(songSets.endingType == 4) + song_ending = QString::fromUtf8("● ● ●"); + else if(songSets.endingType == 5) + song_ending = QString::fromUtf8("▪ ▪ ▪"); + else if(songSets.endingType == 6) + song_ending = QString::fromUtf8("■ ■ ■"); + else if(songSets.endingType == 7) + { + // First check if copyrigth info exist. If it does show it. + // If some exist, then show what exist. If nothing exist, then show '* * *' + if(!songStanza.wordsBy.isEmpty() && !songStanza.musicBy.isEmpty()) + song_ending = QString(tr("Words by: %1, Music by: %2")).arg(songStanza.wordsBy).arg(songStanza.musicBy); + else if(!songStanza.wordsBy.isEmpty() && songStanza.musicBy.isEmpty()) + song_ending = QString(tr("Words by: %1")).arg(songStanza.wordsBy); + else if(songStanza.wordsBy.isEmpty() && !songStanza.musicBy.isEmpty()) + song_ending = QString(tr("Music by: %1")).arg(songStanza.musicBy); + else if(songStanza.wordsBy.isEmpty() && songStanza.musicBy.isEmpty()) + song_ending = "* * *"; + } + } + } + + // if not to show song ending, return its space to main text + if(!songSets.showSongEnding) + song_ending.clear(); + + // Margins: + int left = 30; + int top = 20; + int w = width - left - left; + int h = height - top - top; + int maxh = h * songSets.screenUse/100; + int maxtop; // top of max screen + if(songSets.screenPositon == 0) + maxtop = top; + if(songSets.screenPositon == 1) + maxtop = top+h-maxh; + + height = maxh; + top = maxtop; + width = w; + + QRect caption_rect, num_rect, main_rect, ending_rect; + int main_flags(0); + + if(songSets.textAlingmentV==0) + main_flags += Qt::AlignTop; + else if(songSets.textAlingmentV==1) + main_flags += Qt::AlignVCenter; + else if(songSets.textAlingmentV==2) + main_flags += Qt::AlignBottom; + if(songSets.textAlingmentH==0) + main_flags += Qt::AlignLeft; + else if(songSets.textAlingmentH==1) + main_flags += Qt::AlignHCenter; + else if(songSets.textAlingmentH==2) + main_flags += Qt::AlignRight; + + QFont main_font = songSets.textFont; + + int caph, endh, mainh, mainw, totalh; + + if(!isTextPrepared) + { + sdSets.clear(); + + // Prepare Caption + painter->setFont(songSets.infoFont); + caption_rect = boundRectOrDrawText(painter, false, left, top, width, height, Qt::AlignLeft | Qt::AlignTop, caption_str); + caph = caption_rect.height(); + + // Prepare Ending + painter->setFont(songSets.endingFont); + ending_rect = boundRectOrDrawText(painter, false, left, top, width, height, Qt::AlignHCenter | Qt::AlignTop, song_ending); + + // Decrease songe ending font size so that it would fit in the screen width + while(ending_rect.width()> width) + { + songSets.endingFont.setPointSize(songSets.endingFont.pointSize()-1); + painter->setFont(songSets.endingFont); + ending_rect = boundRectOrDrawText(painter, false, left, top, width, height, Qt::AlignHCenter | Qt::AlignTop, song_ending); + } + endh = ending_rect.height(); + + // Prepare Main Text + painter->setFont(main_font); + main_rect = boundRectOrDrawText(painter, false, left, top, width, height, main_flags, main_text); + mainh = main_rect.height(); + mainw = main_rect.width(); + totalh = caph+endh+mainh; + + // Decrease song text to fit the screen + while(mainw > width || totalh > height) + { + main_font.setPointSize(main_font.pointSize() - 1); + painter->setFont(main_font); + main_rect = boundRectOrDrawText(painter, false, left, top, width, height, main_flags, main_text); + mainh = main_rect.height(); + mainw = main_rect.width(); + totalh = caph+endh+mainh; + } + + // Check if main font is less then 4/5 of original. if so, then song preparation again with text wrap + if(main_font.pointSize() <(songSets.textFont.pointSize()*4/5)) + { + main_flags += Qt::TextWordWrap; + main_font = songSets.textFont; + + // Prepare Main Text + painter->setFont(songSets.textFont); + main_rect = boundRectOrDrawText(painter, false, left, top, width, height, main_flags, main_text); + mainh = main_rect.height(); + mainw = main_rect.width(); + totalh = caph+endh+mainh; + + // Decrease song text to fit the screen + while(mainw > width || totalh > height) + { + main_font.setPointSize(main_font.pointSize() - 1); + painter->setFont(main_font); + main_rect = boundRectOrDrawText(painter, false, left, top, width, height, main_flags, main_text); + mainh = main_rect.height(); + mainw = main_rect.width(); + totalh = caph+endh+mainh; + } + } + songSets.textFont = main_font; + isTextPrepared = true; + sdSets.cRect = caption_rect; + sdSets.tRect = main_rect; + sdSets.eRect = ending_rect; + sdSets.tFlags = main_flags; + } + + // AT This piont, all sizes should be good. + // Set object location and DRAW + caption_rect = sdSets.cRect; + main_rect = sdSets.tRect; + ending_rect = sdSets.eRect; + caph = sdSets.cRect.height(); + endh = sdSets.eRect.height(); + main_flags = sdSets.tFlags; + mainh = height-caph-endh; + if(songSets.infoAling == 0 && songSets.endingPosition == 0) + { + painter->setFont(songSets.infoFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.infoColor); + caption_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignLeft | Qt::AlignTop, caption_str); + num_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignRight | Qt::AlignTop, song_num_str); + painter->setFont(songSets.textFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.textColor); + main_rect = boundRectOrDrawText(painter, true, left, caption_rect.bottom(), width, mainh, main_flags, main_text); + painter->setFont(songSets.endingFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.endingColor); + ending_rect = boundRectOrDrawText(painter, true, left, main_rect.bottom(), width, height, Qt::AlignHCenter | Qt::AlignTop, song_ending); + } + else if(songSets.infoAling == 0 && songSets.endingPosition == 1) + { + painter->setFont(songSets.infoFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.infoColor); + caption_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignLeft | Qt::AlignTop, caption_str); + num_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignRight | Qt::AlignTop, song_num_str); + painter->setFont(songSets.endingFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.endingColor); + ending_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignHCenter | Qt::AlignBottom, song_ending); + painter->setFont(songSets.textFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.textColor); + main_rect = boundRectOrDrawText(painter, true, left, caption_rect.bottom(), width, mainh, main_flags, main_text); + } + else if(songSets.infoAling == 1 && songSets.endingPosition == 0) + { + painter->setFont(songSets.textFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.textColor); + main_rect = boundRectOrDrawText(painter, true, left, top, width, mainh, main_flags, main_text); + painter->setFont(songSets.infoFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.infoColor); + caption_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignLeft | Qt::AlignBottom, caption_str); + num_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignRight | Qt::AlignBottom, song_num_str); + painter->setFont(songSets.endingFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.endingColor); + ending_rect = boundRectOrDrawText(painter, true, left, main_rect.bottom(), width, height, Qt::AlignHCenter | Qt::AlignTop, song_ending); + } + else if(songSets.infoAling == 1 && songSets.endingPosition == 1) + { + endh = height-caph; + painter->setFont(songSets.textFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.textColor); + main_rect = boundRectOrDrawText(painter, true, left, top, width, mainh, main_flags, main_text); + painter->setFont(songSets.infoFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.infoColor); + caption_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignLeft | Qt::AlignBottom, caption_str); + num_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignRight | Qt::AlignBottom, song_num_str); + painter->setFont(songSets.endingFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(songSets.endingColor); + ending_rect = boundRectOrDrawText(painter, true, left, top, width, endh, Qt::AlignHCenter | Qt::AlignBottom, song_ending); + } +} + +QRect DisplayScreen::boundRectOrDrawText(QPainter *painter, bool draw, int left, int top, int width, int height, int flags, QString text) +{ + // If draw is false, calculate the rectangle that the specified text would be + // drawn into if it was draw. If draw is true, draw as well. + // Output rect is returned. + + QRect out_rect; + if(draw) + painter->drawText(left, top, width, height, flags, text, &out_rect); + else + out_rect = painter->boundingRect(left, top, width, height, flags, text); + return out_rect; +} + +void DisplayScreen::drawAnnounceText(QPainter *painter, int width, int height, bool isShadow) +{ + // Margins: + int left = 30; + int top = 20; + int w = width - left - left; + int h = height - top - top; + + int flags = Qt::TextWordWrap; + if(annouceSets.textAlingmentV==0) + flags += Qt::AlignTop; + else if(annouceSets.textAlingmentV==1) + flags += Qt::AlignVCenter; + else if(annouceSets.textAlingmentV==2) + flags += Qt::AlignBottom; + if(annouceSets.textAlingmentH==0) + flags += Qt::AlignLeft; + else if(annouceSets.textAlingmentH==1) + flags += Qt::AlignHCenter; + else if(annouceSets.textAlingmentH==2) + flags += Qt::AlignRight; + + QFont font = annouceSets.textFont; + int orig_font_size = font.pointSize(); + + // Keep decreasing the font size until the text fits into the allocated space: + QRect rect; + + if(!isTextPrepared) + { + painter->setFont(font); + bool exit = false; + while( !exit ) + { + rect = painter->boundingRect(left, top, w, h, flags, announcement.text); + exit = ( rect.width() <= w && rect.height() <= h ); + if( !exit ) + { + font.setPointSize( font.pointSize()-1 ); + painter->setFont(font); + } + } + + // Force wrapping of songs that have really wide lines: + // (Do not allow font to be shrinked less than a 4/5 of the desired font) + if( font.pointSize() < (orig_font_size*4/5) ) + { + font.setPointSize(orig_font_size); + painter->setFont(font); + flags = (flags | Qt::TextWordWrap); + exit = false; + while( !exit ) + { + rect = painter->boundingRect(left, top, w, h, flags, announcement.text); + exit = ( rect.width() <= w && rect.height() <= h ); + if( !exit ) + { + font.setPointSize( font.pointSize()-1 ); + painter->setFont(font); + } + } + } + annouceSets.textFont = font; + adSets.tRect = rect; + isTextPrepared = true; + } + + painter->setFont(annouceSets.textFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(annouceSets.textColor); + painter->drawText(adSets.tRect, flags, announcement.text); +} + +void DisplayScreen::setFading(bool fade) +{ + useFading = fade; +} + +void DisplayScreen::setDisplaySettings(DisplaySettings sets) +{ +} + +void DisplayScreen::setNewWallpaper(QString path, bool isToUse) +{ + if(isToUse) + wallpaperPath = path; + else + wallpaperPath.clear(); + + if(wallpaperPath.simplified().isEmpty() ) + wallpaper = QPixmap(); + else + { + wallpaper.load(wallpaperPath); + wallpaper = wallpaper.scaled(width(),height()); + } +} + +void DisplayScreen::setNewWallpaper(QPixmap wallPix, bool isToUse) +{ + if(isToUse) + wallpaper = wallPix.scaled(width(),height()); + else + wallpaper = QPixmap(); +} + +void DisplayScreen::setNewPassiveWallpaper(QPixmap wallPix, bool isToUse) +{ + if(isToUse) + //passiveWallpaper = wallPix.scaled(width(),height(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation); + passiveWallpaper = wallPix; + else + passiveWallpaper = QPixmap(); +} + +void DisplayScreen::paintEvent(QPaintEvent *event ) +{ + QPainter painter(this); + QImage txtPix(width(), height(), QImage::Format_ARGB32);//_Premultiplied); + txtPix.fill(qRgba(0, 0, 0, 0)); //transparent background + QPainter txtPainter(&txtPix); + + // This code will, with each iteraction, draw the previous image with increasing transparency, and draw + // the current image with increasing opacity; making a smooth transition: + double curr_opacity = acounter[0] / 255.0; + double prev_opacity = 1.0 - curr_opacity; + + // FIXME transition out of the previous background as well + // Draw the background at the current opacity: + if(background_needs_transition) + painter.setOpacity(curr_opacity); + + if( use_active_background ) + { + // Draw the active wallpaper if there is text to display + if (displayType != "pix" && (wallpaper.width()!=width() || wallpaper.isNull())) + { + wallpaper.load(wallpaperPath); + if( !wallpaper.isNull() ) + wallpaper = wallpaper.scaled(width(),height()); + } + if( ! wallpaper.isNull() ) + { + int ww = wallpaper.width(); + int wh = wallpaper.height(); + if(displayType == "pix" && ww!=width() && wh!=height()) + painter.drawPixmap((width()-ww)/2,(height()-wh)/2,wallpaper); + else if(displayType == "pix" && ww!=width()) + painter.drawPixmap((width()-ww)/2,0,wallpaper); + else if(displayType == "pix" && wh!=height()) + painter.drawPixmap(0,(height()-wh)/2,wallpaper); + else + painter.drawPixmap(0,0,wallpaper); + } + else + { + // Use black for the background: + painter.setPen(QColor(Qt::black)); + painter.drawRect( 0, 0, width(), height() ); + } + } + else + { + // Draw the passive wallpaper if set: + if(!passiveWallpaper.isNull()) + { + if(passiveWallpaper.width()!=width() || passiveWallpaper.height()!=height()) + passiveWallpaper = passiveWallpaper.scaled(width(),height()); + + painter.drawPixmap(0,0, passiveWallpaper); + } + else + { + // Use black for the background: + painter.setPen(QColor(Qt::black)); + painter.drawRect( 0, 0, width(), height() ); + } +// if (passiveWallpaper.width()!=width() || passiveWallpaper.isNull()) +// { +// passiveWallpaper.load(passiveWallpaperPath); +// if( !passiveWallpaper.isNull() ) +// //passiveWallpaper = passiveWallpaper.scaled(width(),height(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation); +// passiveWallpaper = passiveWallpaper.scaled(width(),height()); +// } +// if( ! passiveWallpaper.isNull() ) +// painter.drawPixmap(0,0, passiveWallpaper); +// else +// { +// // Use black for the background: +// painter.setPen(QColor(Qt::black)); +// painter.drawRect( 0, 0, width(), height() ); +// } + } + + // Draw the previous image into the window, at decreasing opacity: + txtPainter.setOpacity(prev_opacity); + txtPainter.drawPixmap(0, 0, previous_image_pixmap); + + // Draw the output_image into the window, at increasing opacity: + txtPainter.setOpacity(curr_opacity); + txtPainter.drawImage(0, 0, output_image); + + textRenderLabel->setPixmap(QPixmap::fromImage(txtPix)); + + // Reset the opacity to default opaque: + painter.setOpacity(1.0); + txtPainter.setOpacity(1.0); +} + +// Stack Blur Algorithm by Mario Klingemann +void DisplayScreen::fastbluralpha(QImage &img, int radius) +{ + if (radius < 1) + return; + + QRgb *pix = (QRgb*)img.bits(); + int w = img.width(); + int h = img.height(); + int wm = w-1; + int hm = h-1; + int wh = w*h; + int div = radius+radius+1; + double junk; + + int *r = new int[wh]; + int *g = new int[wh]; + int *b = new int[wh]; + int *a = new int[wh]; + int rsum, gsum, bsum, asum, x, y, i, yp, yi, yw; + QRgb p; + int *vmin = new int[qMax(w,h)]; + + int divsum = (div+1)>>1; + divsum *= divsum; + int *dv = new int[256*divsum]; + for (i=0; i < 256*divsum; ++i) + { + dv[i] = (i/divsum); + } + + yw = yi = 0; + + int **stack = new int*[div]; + for (int i = 0; i < div; ++i) + { + stack[i] = new int[4]; + } + + int stackpointer; + int stackstart; + int *sir; + int rbs; + int r1 = radius+1; + int routsum, goutsum, boutsum, aoutsum; + int rinsum, ginsum, binsum, ainsum; + + for (y = 0; y < h; ++y) + { + rinsum = ginsum = binsum = ainsum + = routsum = goutsum = boutsum = aoutsum + = rsum = gsum = bsum = asum = 0; + for (i =- radius; i <= radius; ++i) + { + p = pix[yi+qMin(wm,qMax(i,0))]; + sir = stack[i+radius]; + sir[0] = qRed(p); + sir[1] = qGreen(p); + sir[2] = qBlue(p); + sir[3] = qAlpha(p); + + rbs = r1-abs(i); + rsum += sir[0]*rbs; + gsum += sir[1]*rbs; + bsum += sir[2]*rbs; + asum += sir[3]*rbs; + + if (i > 0) + { + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + ainsum += sir[3]; + } + else + { + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + aoutsum += sir[3]; + } + } + stackpointer = radius; + + for (x=0; x < w; ++x) + { + r[yi] = dv[rsum]; + g[yi] = dv[gsum]; + b[yi] = dv[bsum]; + a[yi] = dv[asum]; + + rsum -= routsum; + gsum -= goutsum; + bsum -= boutsum; + asum -= aoutsum; + + stackstart = stackpointer-radius+div; + sir = stack[stackstart%div]; + + routsum -= sir[0]; + goutsum -= sir[1]; + boutsum -= sir[2]; + aoutsum -= sir[3]; + + if (y == 0) + { + vmin[x] = qMin(x+radius+1,wm); + } + p = pix[yw+vmin[x]]; + + sir[0] = qRed(p); + sir[1] = qGreen(p); + sir[2] = qBlue(p); + sir[3] = qAlpha(p); + + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + ainsum += sir[3]; + + rsum += rinsum; + gsum += ginsum; + bsum += binsum; + asum += ainsum; + + stackpointer = (stackpointer+1)%div; + sir = stack[(stackpointer)%div]; + + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + aoutsum += sir[3]; + + rinsum -= sir[0]; + ginsum -= sir[1]; + binsum -= sir[2]; + ainsum -= sir[3]; + + ++yi; + } + yw += w; + } + for (x=0; x < w; ++x) + { + rinsum = ginsum = binsum = ainsum + = routsum = goutsum = boutsum = aoutsum + = rsum = gsum = bsum = asum = 0; + + yp =- radius * w; + + for (i=-radius; i <= radius; ++i) + { + yi=qMax(0,yp)+x; + + sir = stack[i+radius]; + + sir[0] = r[yi]; + sir[1] = g[yi]; + sir[2] = b[yi]; + sir[3] = a[yi]; + + rbs = r1-abs(i); + + rsum += r[yi]*rbs; + gsum += g[yi]*rbs; + bsum += b[yi]*rbs; + asum += a[yi]*rbs; + + if (i > 0) + { + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + ainsum += sir[3]; + } + else + { + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + aoutsum += sir[3]; + } + + if (i < hm) + { + yp += w; + } + } + + yi = x; + stackpointer = radius; + + for (y=0; y < h; ++y) + { + junk=dv[asum]; + junk=junk*2.4; + if (junk>255)junk=255; + pix[yi] = qRgba(dv[rsum], dv[gsum], dv[bsum], int(junk));///dv[asum]); + + rsum -= routsum; + gsum -= goutsum; + bsum -= boutsum; + asum -= aoutsum; + + stackstart = stackpointer-radius+div; + sir = stack[stackstart%div]; + + routsum -= sir[0]; + goutsum -= sir[1]; + boutsum -= sir[2]; + aoutsum -= sir[3]; + + if (x==0) + { + vmin[y] = qMin(y+r1,hm)*w; + } + p = x+vmin[y]; + + sir[0] = r[p]; + sir[1] = g[p]; + sir[2] = b[p]; + sir[3] = a[p]; + + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + ainsum += sir[3]; + + rsum += rinsum; + gsum += ginsum; + bsum += binsum; + asum += ainsum; + + stackpointer = (stackpointer+1)%div; + sir = stack[stackpointer]; + + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + aoutsum += sir[3]; + + rinsum -= sir[0]; + ginsum -= sir[1]; + binsum -= sir[2]; + ainsum -= sir[3]; + + yi += w; + } + } + delete [] r; + delete [] g; + delete [] b; + delete [] a; + delete [] vmin; + delete [] dv; +} +*/ diff --git a/displayscreen.h b/displayscreen.h new file mode 100644 index 0000000..cb751ba --- /dev/null +++ b/displayscreen.h @@ -0,0 +1,141 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef DISPLAYSCREEN_H +#define DISPLAYSCREEN_H + +#include +//#include +//#include +//#include +#include "settings.h" +#include "theme.h" +#include "controlbutton.h" +#include "bible.h" +#include "song.h" +#include "announcewidget.h" +#include "videoinfo.h" +#include "displaysetting.h" + +namespace Ui { +class DisplayScreen; +} + +class DisplayScreen : public QWidget +{ + Q_OBJECT + +public: + explicit DisplayScreen(QWidget *parent = 0); + ~DisplayScreen(); +// Phonon::MediaObject *videoPlayer; +/* +public slots: + void setNewWallpaper(QString path, bool isToUse); + void setNewWallpaper(QPixmap wallPix, bool isToUse); + void setNewPassiveWallpaper(QPixmap wallPix, bool isToUse); + + void fadeIn(); + void fadeOut(); + void setDisplaySettings(DisplaySettings sets); + void setFading(bool fade); + + void fastbluralpha(QImage &img, int radius); + void setControlsSettings(DisplayControlsSettings &settings); + void setControlButtonsVisible(bool visible); + void positionOpjects(); + + void renderText(bool text_present); + void renderBibleText(Verse verse, BibleSettings &bibleSetings); + void renderSongText(Stanza stanza, SongSettings &songSettings); + void renderAnnounceText(AnnounceSlide announce, TextSettings &announceSettings); + void renderPicture(QPixmap image, SlideShowSettings ssSets); + void renderVideo(VideoInfo &vid); + void renderClear(); + +signals: + void exitSlide(); + void nextSlide(); + void prevSlide(); + void sendTimeText(QString cTime); + void updatePlayButton(bool isPlaying); + +protected: + void paintEvent(QPaintEvent *event); + void keyReleaseEvent(QKeyEvent *event); + +private slots: + void positionControlButtons(); + void btnNextClicked(); + void btnPrevClicked(); + void btnExitClicked(); + + void drawBibleText(QPainter *painter, int width, int height, bool isShadow); + void drawBibleTextToRect(QPainter *painter, QRect& trect, QRect& crect, QString ttext, QString ctext, int tflags, int cflags, int top, int left, int width, int height); + void drawSongText(QPainter *painter, int width, int height, bool isShadow); + QRect boundRectOrDrawText(QPainter *painter, bool draw, int left, int top, int width, int height, int flags, QString text); + void drawAnnounceText(QPainter *painter, int width, int height, bool isShadow); + + void updateTimeText(); +// void playerStateChanged(Phonon::State newstate, Phonon::State oldstate); + +private: + Ui::DisplayScreen *ui; + DisplayControlsSettings controlsSettings; + bool useFading; + bool useShadow; + bool useBluredShadow; + bool isTextPrepared; + QString wallpaperPath; // Wallpaper image file path + QPixmap wallpaper; + QString passiveWallpaperPath; + QPixmap passiveWallpaper; + QColor foregroundColor; + + QPixmap previous_image_pixmap; + QImage output_image; + bool use_active_background; + bool background_needs_transition; + int acounter[2]; + QTimer *timer; + QTimer *timer_out; + + ControlButton *btnNext; + ControlButton *btnPrev; + ControlButton *btnExit; + + SongSettings songSets; + BibleSettings bibleSets; + TextSettings annouceSets; + + Verse bibleVerse; + Stanza songStanza; + AnnounceSlide announcement; + + QString displayType; + QLabel *textRenderLabel; +// Phonon::VideoWidget *videoWidget; + + BibleDisplaySettings bdSets; + SongDisplaySettings sdSets; + AnnounceDisplaySettings adSets; + */ +}; + +#endif // DISPLAYSCREEN_H diff --git a/displayscreen.ui b/displayscreen.ui new file mode 100644 index 0000000..90c0551 --- /dev/null +++ b/displayscreen.ui @@ -0,0 +1,33 @@ + + + DisplayScreen + + + + 0 + 0 + 578 + 442 + + + + Dispaly Screen + + + + :/icons/icons/display.png:/icons/icons/display.png + + + + 0 + + + 0 + + + + + + + + diff --git a/displaysetting.cpp b/displaysetting.cpp new file mode 100644 index 0000000..ff8992a --- /dev/null +++ b/displaysetting.cpp @@ -0,0 +1,50 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "displaysetting.h" + +DisplaySetting::DisplaySetting() +{ +} + +void BibleDisplaySettings::clear() +{ + ptRect = QRect(); + pcRect = QRect(); + stRect = QRect(); + scRect = QRect(); + ttRect = QRect(); + scRect = QRect(); + tFont = QFont(); + cFont = QFont(); +} + +void SongDisplaySettings::clear() +{ + cRect = QRect(); + nRect = QRect(); + tRect = QRect(); + eRect = QRect(); + tFlags = 0; +} + +void AnnounceDisplaySettings::clear() +{ + tRect = QRect(); +} diff --git a/displaysetting.h b/displaysetting.h new file mode 100644 index 0000000..877bfbd --- /dev/null +++ b/displaysetting.h @@ -0,0 +1,64 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef DISPLAYSETTING_H +#define DISPLAYSETTING_H + +#include +#include + +class DisplaySetting +{ +public: + DisplaySetting(); +}; + +class BibleDisplaySettings +{ +public: + QRect ptRect; + QRect pcRect; + QRect stRect; + QRect scRect; + QRect ttRect; + QRect tcRect; + QFont tFont; + QFont cFont; + void clear(); +}; + +class SongDisplaySettings +{ +public: + QRect cRect; + QRect nRect; + QRect tRect; + QRect eRect; + int tFlags; + void clear(); +}; + +class AnnounceDisplaySettings +{ +public: + QRect tRect; + void clear(); +}; + +#endif // DISPLAYSETTING_H diff --git a/editannouncementdialog.cpp b/editannouncementdialog.cpp new file mode 100644 index 0000000..5adf346 --- /dev/null +++ b/editannouncementdialog.cpp @@ -0,0 +1,157 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "editannouncementdialog.h" +#include "ui_editannouncementdialog.h" + +EditAnnouncementDialog::EditAnnouncementDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::EditAnnouncementDialog) +{ + ui->setupUi(this); + highlight = new HighlightAnnounce(ui->textEditAnnouncement->document()); + ui->groupBoxPrivateSettings->setVisible(false); + ui->checkBoxUsePrivateSettings->setVisible(false); +} + +EditAnnouncementDialog::~EditAnnouncementDialog() +{ + delete highlight; + delete ui; +} + +void EditAnnouncementDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch ( e->type() ) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void EditAnnouncementDialog::on_checkBoxUsePrivateSettings_stateChanged(int arg1) +{ + ui->groupBoxPrivateSettings->setVisible(arg1 == 2); +} + +void EditAnnouncementDialog::on_checkBoxTimedSlides_stateChanged(int arg1) +{ + ui->spinBoxTimeOut->setEnabled(arg1 == 2); + ui->checkBoxLoop->setEnabled(arg1 == 2); +} + +void EditAnnouncementDialog::setNewAnnouce() +{ + resetUiItems(); + isNew = true; +} + +void EditAnnouncementDialog::setEditAnnouce(Announcement &editAnnoucement) +{ + editAnnounce = editAnnoucement; + setUiItems(); + isNew = false; +} + +void EditAnnouncementDialog::setCopyAnnouce(Announcement ©Annoucement) +{ + editAnnounce = copyAnnoucement; + editAnnounce.idNum = 0; + setUiItems(); + isNew = true; +} + +void EditAnnouncementDialog::setUiItems() +{ + ui->lineEditTitle->setText(editAnnounce.title); + ui->labelIdNum->setText(QString::number(editAnnounce.idNum)); + ui->textEditAnnouncement->setPlainText(editAnnounce.text); + ui->checkBoxUsePrivateSettings->setChecked(editAnnounce.usePrivateSettings); + ui->checkBoxTimedSlides->setChecked(editAnnounce.useAutoNext); + ui->spinBoxTimeOut->setValue(editAnnounce.slideTimer); + ui->checkBoxLoop->setChecked(editAnnounce.loop); +} + +void EditAnnouncementDialog::resetUiItems() +{ + Announcement a; + a.text = tr("Announce\n - Text of the announcement goes here\n\n" + "Slide\n - Text of the announcement goes here\n" + "You can have both Annouce or Slide as announcement block titles."); + ui->lineEditTitle->setText(a.title); + ui->labelIdNum->setText(QString::number(a.idNum)); + ui->textEditAnnouncement->setPlainText(a.text); + ui->checkBoxUsePrivateSettings->setChecked(a.usePrivateSettings); + ui->checkBoxTimedSlides->setChecked(a.useAutoNext); + ui->spinBoxTimeOut->setValue(a.slideTimer); + ui->checkBoxLoop->setChecked(a.loop); +} + +bool EditAnnouncementDialog::setSave() +{ + QString t = ui->lineEditTitle->text(); + t = t.simplified(); + if(!t.isEmpty()) + { + editAnnounce.title = t; + editAnnounce.text = ui->textEditAnnouncement->toPlainText(); + editAnnounce.usePrivateSettings = ui->checkBoxUsePrivateSettings->isChecked(); + editAnnounce.useAutoNext = ui->checkBoxTimedSlides->isChecked(); + editAnnounce.slideTimer = ui->spinBoxTimeOut->value(); + editAnnounce.loop = ui->checkBoxLoop->isChecked(); + return true; + } + else + { + QMessageBox mb(this); + mb.setText(tr("Announcement title cannot be left empty.\nPlease enter announcement title.")); + mb.setWindowTitle(tr("Announcement title is missing")); + mb.setIcon(QMessageBox::Warning); + mb.exec(); + ui->lineEditTitle->setFocus(); + return false; + } +} + +void EditAnnouncementDialog::on_pushButtonSave_clicked() +{ + if(!setSave()) + return; + + if(isNew) + { + editAnnounce.saveNew(); + emit announceToAdd(editAnnounce); + } + else + { + editAnnounce.saveUpdate(); + emit announceToUpdate(); + } + + close(); +} + +void EditAnnouncementDialog::on_pushButtonCancel_clicked() +{ + close(); +} diff --git a/editannouncementdialog.h b/editannouncementdialog.h new file mode 100644 index 0000000..86d1040 --- /dev/null +++ b/editannouncementdialog.h @@ -0,0 +1,68 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef EDITANNOUNCEMENTDIALOG_H +#define EDITANNOUNCEMENTDIALOG_H + +#include +#include +#include "announcement.h" +#include "highlight.h" + +namespace Ui { +class EditAnnouncementDialog; +} + +class EditAnnouncementDialog : public QDialog +{ + Q_OBJECT + +public: + explicit EditAnnouncementDialog(QWidget *parent = 0); + ~EditAnnouncementDialog(); + +public slots: + void setNewAnnouce(); + void setEditAnnouce(Announcement &editAnnoucement); + void setCopyAnnouce(Announcement ©Annoucement); + +signals: + void announceToAdd(Announcement announce); + void announceToUpdate(); + +private slots: + void on_checkBoxUsePrivateSettings_stateChanged(int arg1); + void on_checkBoxTimedSlides_stateChanged(int arg1); + void on_pushButtonSave_clicked(); + void on_pushButtonCancel_clicked(); + + void resetUiItems(); + void setUiItems(); + bool setSave(); + +private: + Ui::EditAnnouncementDialog *ui; + Announcement editAnnounce; + bool isNew; + HighlightAnnounce * highlight; +protected: + virtual void changeEvent(QEvent *e); +}; + +#endif // EDITANNOUNCEMENTDIALOG_H diff --git a/editannouncementdialog.ui b/editannouncementdialog.ui new file mode 100644 index 0000000..1f79149 --- /dev/null +++ b/editannouncementdialog.ui @@ -0,0 +1,173 @@ + + + EditAnnouncementDialog + + + + 0 + 0 + 377 + 449 + + + + Edit Announcement + + + + :/icons/icons/announce_edit.png:/icons/icons/announce_edit.png + + + + + + + + Title: + + + + + + + + + + ID: + + + + + + + QFrame::Box + + + QFrame::Sunken + + + + + + + + + Use Private Settings + + + + + + + true + + + + 0 + + + 6 + + + 0 + + + 0 + + + + + + + Timed slides: + + + + + + + sec + + + 1000 + + + + + + + Loop + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + false + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Save + + + + + + + Cancel + + + + + + + + + lineEditTitle + checkBoxUsePrivateSettings + checkBoxTimedSlides + spinBoxTimeOut + checkBoxLoop + textEditAnnouncement + + + + + + diff --git a/editwidget.cpp b/editwidget.cpp new file mode 100644 index 0000000..bdac752 --- /dev/null +++ b/editwidget.cpp @@ -0,0 +1,552 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "editwidget.h" +#include "ui_editwidget.h" +#include "song.h" + +EditWidget::EditWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::EditWidget) +{ + song_database = SongDatabase(); + ui->setupUi(this); + highlight = new Highlight(ui->textEditSong->document()); + + //Add caterories to the list + loadCategories(false); + + // Allow only positive values for the song number: + song_num_validator = new QIntValidator(1,10000000,ui->lineEditSongNumber); + ui->lineEditSongNumber->setValidator(song_num_validator); +} + +EditWidget::~EditWidget() +{ + delete highlight; + delete ui; +} + +void EditWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void EditWidget::on_btnSave_clicked() +{ + // Check if song title exists. A song title MUST exits + QString song_title = ui->lineEditTitle->text(); + song_title = song_title.simplified(); // make sure that its not all empty spaces + + if(song_title.isEmpty()) + { + QMessageBox mb(this); + mb.setText(tr("Song title cannot be left empty.\nPlease enter song title.")); + mb.setWindowTitle(tr("Song title is missing")); + mb.setIcon(QMessageBox::Warning); + mb.exec(); + ui->lineEditTitle->setFocus(); + return; + } + setSave(); + + setWaitCursor(); + if (is_new) + { + newSong.saveNew(); + // Get new songs ID + QSqlQuery sq; + sq.exec("SELECT seq FROM sqlite_sequence WHERE name = 'Songs'"); + sq.last(); + newSong.songID = sq.value(0).toInt(); + + emit addedNew(newSong,song_to_edit_id); + } + else + { + newSong.saveUpdate(); + emit updateSongFromDatabase(newSong.songID,song_to_edit_id); + } + setArrowCursor(); + + resetUiItems(); + close(); +} + +void EditWidget::setArrowCursor() +{ + this->setCursor(Qt::ArrowCursor); +} + +void EditWidget::setWaitCursor() +{ + this->setCursor(Qt::WaitCursor); +} + +void EditWidget::on_btnCancel_clicked() +{ + resetUiItems(); + close(); +} + +QString EditWidget::setSongText(QString song) +{ + QString text, text2, verselist; + QStringList split, editlist; + int i(0),j(0),k(0); + + editlist = song.split("@$");// split the text into verses seperated by @$ + + while (i lineEditTitle->setText(ss.title); + ui->lineEditMusicBy->setText(ss.musicBy); + ui->lineEditWordsBy->setText(ss.wordsBy); + ui->lineEditKey->setText(ss.tune); + ui->comboBoxCategory->setCurrentIndex(cat_ids.indexOf(ss.category)); + ui->checkBoxSongSettings->setChecked(ss.usePrivateSettings); + ui->groupBoxSettings->setVisible(ss.usePrivateSettings); + ui->comboBoxVAlignment->setCurrentIndex(ss.alignmentV); + ui->comboBoxHAlignment->setCurrentIndex(ss.alignmentH); + QPalette p; + p.setColor(QPalette::Base,ss.color); + ui->graphicsViewTextColor->setPalette(p); + p.setColor(QPalette::Base,ss.infoColor); + ui->graphicsViewInfoColor->setPalette(p); + p.setColor(QPalette::Base,ss.endingColor); + ui->graphicsViewEndingColor->setPalette(p); + ui->checkBoxUseBackground->setChecked(ss.useBackground); + ui->lineEditBackgroundPath->setText(ss.backgroundName); + //ui->textEditSong->setPlainText(setSongText(ss.songText)); + ui->textEditSong->setPlainText(ss.songText); + ui->plainTextEditNotes->setPlainText(ss.notes); +} + +void EditWidget::setUiItems() +{ + ui->lineEditTitle->setText(editSong.title); + ui->lineEditMusicBy->setText(editSong.musicBy); + ui->lineEditWordsBy->setText(editSong.wordsBy); + ui->lineEditKey->setText(editSong.tune); + ui->comboBoxCategory->setCurrentIndex(cat_ids.indexOf(editSong.category)); + setSongbook(editSong.songID); + ui->checkBoxSongSettings->setChecked(editSong.usePrivateSettings); + ui->groupBoxSettings->setVisible(editSong.usePrivateSettings); + ui->comboBoxVAlignment->setCurrentIndex(editSong.alignmentV); + ui->comboBoxHAlignment->setCurrentIndex(editSong.alignmentH); + updateColor(); + updateInfoColor(); + updateEndingColor(); + ui->checkBoxUseBackground->setChecked(editSong.useBackground); + ui->lineEditBackgroundPath->setEnabled(editSong.useBackground); + ui->toolButtonBrowseBackground->setEnabled(editSong.useBackground); + ui->lineEditBackgroundPath->setText(editSong.backgroundName); +// ui->textEditSong->setPlainText(setSongText(editSong.songText)); + ui->textEditSong->setPlainText(editSong.songText); + ui->plainTextEditNotes->setPlainText(editSong.notes); +} + +void EditWidget::setSave(){ + newSong = editSong; + newSong.number = ui->lineEditSongNumber->text().toInt(); + newSong.songbook_id = song_database.getSongbookIdStringFromName(ui->songbook_label->text()); + newSong.songbook_name = ui->songbook_label->text(); + newSong.title = ui->lineEditTitle->text(); + newSong.category = cat_ids.at(ui->comboBoxCategory->currentIndex()); + newSong.tune = ui->lineEditKey->text(); + newSong.wordsBy = ui->lineEditWordsBy->text(); + newSong.musicBy = ui->lineEditMusicBy->text(); +// newSong.songText = resetLyric(ui->textEditSong->toPlainText()); + newSong.songText = ui->textEditSong->toPlainText().trimmed(); + newSong.alignmentV = ui->comboBoxVAlignment->currentIndex(); + newSong.alignmentH = ui->comboBoxHAlignment->currentIndex(); + newSong.usePrivateSettings = ui->checkBoxSongSettings->isChecked(); + newSong.useBackground = ui->checkBoxUseBackground->isChecked(); + newSong.backgroundName = ui->lineEditBackgroundPath->text(); + newSong.notes = ui->plainTextEditNotes->toPlainText(); +} + +QString EditWidget::resetLyric(QString lyric) +{ + QString fSong; + QStringList lSong = lyric.split("\n"); + int i(1); + lyric = lSong[0]; + while (itextEditSong->setPlainText(song.songText); + else + setUiItems(); + is_new = true; + bool ok; + + QSqlQuery sq; + QStringList songbook_list; + songbook_list << msgNewSongbook; + sq.exec("SELECT id, name FROM Songbooks"); + while (sq.next()) + songbook_list << sq.value(1).toString(); + + int current_songbook(0); + if (!add_to_songbook.isEmpty()) + current_songbook = songbook_list.indexOf(add_to_songbook); + else + current_songbook = 0; + + add_to_songbook = QInputDialog::getItem(this,tr("Select Songbook"),msgCaption, + songbook_list,current_songbook,false,&ok); + + if (ok && !add_to_songbook.isEmpty()) + { + if (add_to_songbook == msgNewSongbook) + { + // Add a Songbook to add a new song into + addSongbook(); + } + else + { + int last = song_database.lastUser(song_database.getSongbookIdStringFromName(add_to_songbook)); + ui->songbook_label->setText(add_to_songbook); + ui->lineEditSongNumber->setText(QString::number(last)); + } + } + else + close(); +} + +void EditWidget::addSongbook() +{ + AddSongbookDialog add_sbor; + add_sbor.setWindowTitle(tr("Add a Songbook")); + int last(0); + int ret = add_sbor.exec(); + switch(ret) + { + case AddSongbookDialog::Accepted: + song_database.addSongbook(add_sbor.title,add_sbor.info); + last = song_database.lastUser(song_database.getSongbookIdStringFromName(add_sbor.title)); + ui->songbook_label->setText(add_sbor.title); + ui->lineEditSongNumber->setText(QString::number(last)); + add_to_songbook = add_sbor.title; + break; + case AddSongbookDialog::Rejected: + close(); + break; + } +} + +QStringList EditWidget::categories() +{ + QStringList cat; + cat<comboBoxCategory->currentIndex(); + if(cur_index>=0) + cur_cat_id = cat_ids.at(cur_index); + + // get categories + QStringList cat_list; + cat_list = categories(); + + // create sorting by name and refrance categories id + QMap cmap; + for(int i(0); i< cat_list.count(); ++i) + cmap.insert(cat_list.at(i),i); + cat_ids.clear(); + cat_list.clear(); + cat_ids.append(cmap.values()); + cat_list.append(cmap.keys()); + + if(ui_update)// update ui translations + { + for(int i(0); i<= ui->comboBoxCategory->count()-1;++i) + ui->comboBoxCategory->setItemText(i,cat_list.at(i)); + + // reset to selected category + if(cur_cat_id>=0) + cur_index = cat_ids.indexOf(cur_cat_id); + ui->comboBoxCategory->setCurrentIndex(cur_index); + } + else if(!ui_update)// initialize + ui->comboBoxCategory->addItems(cat_list); +} + +int EditWidget::isInDatabase(Song *song) +{ + QString s_title(""), s_id("0"), sb_id("0"); + QSqlQuery sq; + + // check if song is part of songbook + sq.exec("SELECT id FROM Songbooks WHERE name = '" + song->songbook_name + "'"); + while(sq.next()) + sb_id = sq.value(0).toString().trimmed(); + sq.clear(); + if(sb_id == "0") + return 0; // no such songbook in database + + // get song id + sq.exec("SELECT id, title from Songs WHERE songbook_id = '" + sb_id +"' AND number = '" + QString::number(song->number) +"'"); + while(sq.next()) + { + s_id = sq.value(0).toString().trimmed(); + s_title = sq.value(1).toString().trimmed(); + } + sq.clear(); + if(s_id == "0") + return 0; // no matching song + song->songID = s_id.toInt(); + + // get song title + if(s_title!=song->title) + return 0; + else + return s_id.toInt(); +} + +void EditWidget::on_checkBoxSongSettings_toggled(bool checked) +{ + ui->groupBoxSettings->setVisible(checked); +} + +void EditWidget::updateColor() +{ + QPalette p; + p.setColor(QPalette::Base,editSong.color); + ui->graphicsViewTextColor->setPalette(p); +} + +void EditWidget::updateInfoColor() +{ + QPalette p; + p.setColor(QPalette::Base,editSong.infoColor); + ui->graphicsViewInfoColor->setPalette(p); +} + +void EditWidget::updateEndingColor() +{ + QPalette p; + p.setColor(QPalette::Base,editSong.endingColor); + ui->graphicsViewEndingColor->setPalette(p); +} + +void EditWidget::on_pushButtonPrint_clicked() +{ + setSave(); + PrintPreviewDialog* p; + p = new PrintPreviewDialog(this); + p->setText(newSong); + p->exec(); +} + +void EditWidget::on_toolButtonMainColor_clicked() +{ + QColor c(QColorDialog::getColor(editSong.color,this)); + if(c.isValid()) + editSong.color = c; + updateColor(); +} + +void EditWidget::on_toolButtonMainFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,editSong.font,this); + if(ok) + editSong.font = font; +} + +void EditWidget::on_toolButtonInfoColor_clicked() +{ + QColor c(QColorDialog::getColor(editSong.infoColor,this)); + if(c.isValid()) + editSong.infoColor = c; + updateInfoColor(); +} + +void EditWidget::on_toolButtonFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,editSong.infoFont,this); + if(ok) + editSong.infoFont = font; +} + +void EditWidget::on_toolButtonEndingColor_clicked() +{ + QColor c(QColorDialog::getColor(editSong.endingColor,this)); + if(c.isValid()) + editSong.endingColor = c; + updateEndingColor(); +} + +void EditWidget::on_toolButtonEndingFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,editSong.endingFont,this); + if(ok) + editSong.endingFont = font; +} + +void EditWidget::on_checkBoxUseBackground_toggled(bool checked) +{ + ui->lineEditBackgroundPath->setEnabled(checked); + ui->toolButtonBrowseBackground->setEnabled(checked); +} + +void EditWidget::on_toolButtonBrowseBackground_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select an image for the wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + + if( !filename.isNull() ) + { + QPixmap p(filename); + editSong.background = p.scaled(1280,1280,Qt::KeepAspectRatio); + QFileInfo fi(filename); + filename = fi.fileName(); + editSong.backgroundName = filename; + ui->lineEditBackgroundPath->setText(filename); + } +} diff --git a/editwidget.h b/editwidget.h new file mode 100644 index 0000000..ca6b6b7 --- /dev/null +++ b/editwidget.h @@ -0,0 +1,97 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef EDITWIDGET_H +#define EDITWIDGET_H + +#include +#include +#include "song.h" +#include "addsongbookdialog.h" +#include "highlight.h" +#include "printpreviewdialog.h" + +namespace Ui { +class EditWidget; +} + +class EditWidget : public QWidget { + Q_OBJECT + Q_DISABLE_COPY(EditWidget) +public: + explicit EditWidget(QWidget *parent = 0); + virtual ~EditWidget(); + +public slots: + void setCopy(Song copy); + void setEdit(Song sEdit); + void setNew(); + QStringList categories(); + void retranslateUis(); + +signals: + // For communicating with SongsModel + void updateSongFromDatabase(int songid, int initial_song_id); + void addedNew(Song song, int initial_song_id); + +protected: + virtual void changeEvent(QEvent *e); + +private: + Ui::EditWidget *ui; + Song editSong, newSong; + SongDatabase song_database; + bool is_new; + Highlight *highlight; + QIntValidator *song_num_validator; + void setWaitCursor(); + void setArrowCursor(); + QString add_to_songbook; + QList cat_ids; + int song_to_edit_id; + +private slots: + void addNewSong(Song song, QString msgNewSongbook, QString msgCaption); + void addSongbook(); + void on_btnCancel_clicked(); + void on_btnSave_clicked(); + void resetUiItems(); + void setUiItems(); + void setSave(); + void setSongbook(int id); + void loadCategories(bool ui_update); + QString resetLyric(QString lyric); + QString setSongText(QString text); + int isInDatabase(Song *song); + void on_checkBoxSongSettings_toggled(bool checked); + void updateColor(); + void updateInfoColor(); + void updateEndingColor(); + void on_pushButtonPrint_clicked(); + void on_toolButtonMainColor_clicked(); + void on_toolButtonMainFont_clicked(); + void on_toolButtonInfoColor_clicked(); + void on_toolButtonFont_clicked(); + void on_toolButtonEndingColor_clicked(); + void on_toolButtonEndingFont_clicked(); + void on_checkBoxUseBackground_toggled(bool checked); + void on_toolButtonBrowseBackground_clicked(); +}; + +#endif // EDITWIDGET_H diff --git a/editwidget.ui b/editwidget.ui new file mode 100644 index 0000000..49ef8f8 --- /dev/null +++ b/editwidget.ui @@ -0,0 +1,621 @@ + + + EditWidget + + + + 0 + 0 + 400 + 531 + + + + + 400 + 0 + + + + Edit and/or Add New songs + + + + :/icons/icons/edit.png:/icons/icons/edit.png + + + + + + + + Songbook: + + + + + + + + 100 + 0 + + + + + + + + + + + + 75 + 16777215 + + + + + + + + Print + + + + :/icons/icons/print.png:/icons/icons/print.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Title: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + Words by: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Music by: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + Key: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Category: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 200 + 0 + + + + QComboBox::AdjustToMinimumContentsLength + + + + + + + + + + + Use Private Song Settings + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + true + + + + 0 + + + + + + + Main Text Properties: + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 19 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Main Text Alignment: + + + + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Song Information Properties: + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 19 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Song Ending Properties: + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 19 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Use Background: + + + + + + + true + + + true + + + + + + + Browse... + + + + + + + + + + + + false + + + + + + + Qt::Horizontal + + + + + + + + + Notes: + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 16777215 + 55 + + + + + + + + + + Qt::Horizontal + + + + 168 + 20 + + + + + + + + Save + + + Ctrl+S + + + + + + + Cancel + + + Ctrl+Q + + + + + + + + + lineEditSongNumber + lineEditTitle + lineEditWordsBy + lineEditMusicBy + lineEditKey + comboBoxCategory + textEditSong + plainTextEditNotes + pushButtonPrint + checkBoxSongSettings + toolButtonMainColor + graphicsViewTextColor + toolButtonMainFont + comboBoxVAlignment + comboBoxHAlignment + toolButtonInfoColor + graphicsViewInfoColor + toolButtonFont + toolButtonEndingColor + graphicsViewEndingColor + toolButtonEndingFont + checkBoxUseBackground + toolButtonBrowseBackground + lineEditBackgroundPath + btnSave + btnCancel + + + + + + diff --git a/generalsettingwidget.cpp b/generalsettingwidget.cpp new file mode 100644 index 0000000..d50615b --- /dev/null +++ b/generalsettingwidget.cpp @@ -0,0 +1,218 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "generalsettingwidget.h" +#include "ui_generalsettingwidget.h" + +GeneralSettingWidget::GeneralSettingWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::GeneralSettingWidget) +{ + ui->setupUi(this); +} + +GeneralSettingWidget::~GeneralSettingWidget() +{ + delete ui; +} + +void GeneralSettingWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch ( e->type() ) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void GeneralSettingWidget::setSettings(GeneralSettings settings) +{ + mySettings = settings; + loadSettings(); +} + +void GeneralSettingWidget::loadSettings() +{ + ui->checkBoxDisplayOnTop->setChecked(mySettings.displayIsOnTop); + + // Load Themes + loadThemes(); + ui->comboBoxTheme->setCurrentIndex(themeIdList.indexOf(mySettings.currentThemeId)); + + // Get display screen infomration + monitors.clear(); + QDesktopWidget d; + int screen_count = d.screenCount(); + ui->comboBoxDisplayScreen->clear(); + for(int i(0); i1) + ui->groupBoxDisplayScreen->setEnabled(true); + else + ui->groupBoxDisplayScreen->setEnabled(false); + + // Fill display screen comboBoxes + ui->comboBoxDisplayScreen->clear(); + ui->comboBoxDisplayScreen->addItems(monitors); + ui->comboBoxDisplayScreen_2->clear(); + ui->comboBoxDisplayScreen_2->addItem(tr("none")); + ui->comboBoxDisplayScreen_2->addItems(monitors); + + // Set primary display screen + if(mySettings.displayScreen<0 || mySettings.displayScreen>=screen_count) + ui->comboBoxDisplayScreen->setCurrentIndex(0); + else + ui->comboBoxDisplayScreen->setCurrentIndex(mySettings.displayScreen); + + // Set secondaty display screen + if(mySettings.displayScreen2<-1 || mySettings.displayScreen2>=screen_count) + ui->comboBoxDisplayScreen_2->setCurrentIndex(0); + else + ui->comboBoxDisplayScreen_2->setCurrentIndex(mySettings.displayScreen2+1); + updateSecondaryDisplayScreen(); + + // Set Display Controls + if(screen_count>1) + ui->groupBoxDisplayControls->setEnabled(false); + else + ui->groupBoxDisplayControls->setEnabled(true); + ui->comboBoxIconSize->setCurrentIndex(mySettings.displayControls.buttonSize); + ui->comboBoxControlsAlignV->setCurrentIndex(mySettings.displayControls.alignmentV); + ui->comboBoxControlsAlignH->setCurrentIndex(mySettings.displayControls.alignmentH); + ui->horizontalSliderOpacity->setValue(mySettings.displayControls.opacity*100); +} + +void GeneralSettingWidget::loadThemes() +{ + QSqlQuery sq; + sq.exec("SELECT id, name FROM Themes"); + themeIdList.clear(); + themes.clear(); + while(sq.next()) + { + themeIdList<< sq.value(0).toInt(); + themes<comboBoxTheme->clear(); + ui->comboBoxTheme->addItems(themes); +} + +GeneralSettings GeneralSettingWidget::getSettings() +{ + mySettings.displayIsOnTop = ui->checkBoxDisplayOnTop->isChecked(); + + int tmx = ui->comboBoxTheme->currentIndex(); + if(tmx != -1) + mySettings.currentThemeId = themeIdList.at(tmx); + else + mySettings.currentThemeId = 0; + + mySettings.displayScreen = ui->comboBoxDisplayScreen->currentIndex(); + mySettings.displayScreen2 = monitors.indexOf(ui->comboBoxDisplayScreen_2->currentText()); + + mySettings.displayControls.buttonSize = ui->comboBoxIconSize->currentIndex(); + mySettings.displayControls.alignmentV = ui->comboBoxControlsAlignV->currentIndex(); + mySettings.displayControls.alignmentH = ui->comboBoxControlsAlignH->currentIndex(); + qreal r = ui->horizontalSliderOpacity->value(); + r = r/100; + mySettings.displayControls.opacity = r; + + return mySettings; +} + +void GeneralSettingWidget::on_pushButtonDefault_clicked() +{ + GeneralSettings g; + mySettings = g; + loadSettings(); +} + +void GeneralSettingWidget::updateSecondaryDisplayScreen() +{ + QString ds1 = ui->comboBoxDisplayScreen->currentText(); + QString ds2 = ui->comboBoxDisplayScreen_2->currentText(); + QStringList monitors2 = monitors; + monitors2.removeOne(ds1); + + ui->comboBoxDisplayScreen_2->clear(); + ui->comboBoxDisplayScreen_2->addItem(tr("None")); + ui->comboBoxDisplayScreen_2->addItems(monitors2); + + int i = ui->comboBoxDisplayScreen_2->findText(ds2); + if(i != -1) + ui->comboBoxDisplayScreen_2->setCurrentIndex(i); + else + { + ui->comboBoxDisplayScreen_2->setCurrentIndex(0); + emit setDisp2Use(false); + } +} + +void GeneralSettingWidget::on_comboBoxDisplayScreen_activated(const QString &arg1) +{ + updateSecondaryDisplayScreen(); +} + +void GeneralSettingWidget::on_comboBoxDisplayScreen_2_activated(int index) +{ + if(index<=0) + emit setDisp2Use(false); + else + emit setDisp2Use(true); +} + +void GeneralSettingWidget::on_pushButtonAddTheme_clicked() +{ + Theme tm; + ThemeInfo tmi; + int nId; + + AddSongbookDialog theme_dia; + theme_dia.setWindowTitle(tr("Edit Theme")); + theme_dia.setWindowText(tr("Theme Name:"),tr("Comments:")); + theme_dia.setSongbook(tr("Default"),tr("This theme will contain program default settings.")); + int ret = theme_dia.exec(); + switch(ret) + { + case AddSongbookDialog::Accepted: + tmi.name = theme_dia.title; + tmi.comments = theme_dia.info; + tm.setThemeInfo(tmi); + tm.saveThemeNew(); + nId = tm.getThemeId(); + + loadThemes(); + + ui->comboBoxTheme->setCurrentIndex(themeIdList.indexOf(nId)); + emit themeChanged(nId); + + break; + case AddSongbookDialog::Rejected: + break; + } +} + +void GeneralSettingWidget::on_comboBoxTheme_activated(int index) +{ + emit themeChanged(themeIdList.at(index)); +} diff --git a/generalsettingwidget.h b/generalsettingwidget.h new file mode 100644 index 0000000..3367ccc --- /dev/null +++ b/generalsettingwidget.h @@ -0,0 +1,69 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef GENERALSETTINGWIDGET_H +#define GENERALSETTINGWIDGET_H + +#include +#include "settings.h" +#include "addsongbookdialog.h" +#include "theme.h" + +namespace Ui { +class GeneralSettingWidget; +} + +class GeneralSettingWidget : public QWidget +{ + Q_OBJECT + +public: + explicit GeneralSettingWidget(QWidget *parent = 0); + ~GeneralSettingWidget(); + +private: + Ui::GeneralSettingWidget *ui; + GeneralSettings mySettings; + Settings allSetings; + QStringList monitors; + QStringList themes; + QList themeIdList; + +public slots: + void setSettings(GeneralSettings settings); + void updateSecondaryDisplayScreen(); + GeneralSettings getSettings(); + +signals: + void setDisp2Use(bool toUse); + void themeChanged(int theme_id); + +private slots: + void on_pushButtonDefault_clicked(); + void loadThemes(); + void loadSettings(); + void on_comboBoxDisplayScreen_activated(const QString &arg1); + void on_comboBoxDisplayScreen_2_activated(int index); + void on_pushButtonAddTheme_clicked(); + void on_comboBoxTheme_activated(int index); +protected: + virtual void changeEvent(QEvent *e); +}; + +#endif // GENERALSETTINGWIDGET_H diff --git a/generalsettingwidget.ui b/generalsettingwidget.ui new file mode 100644 index 0000000..76f3368 --- /dev/null +++ b/generalsettingwidget.ui @@ -0,0 +1,349 @@ + + + GeneralSettingWidget + + + + 0 + 0 + 412 + 440 + + + + + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + + + Display window always on top + + + + + + + + + Theme: + + + + + + + + 0 + 0 + + + + + + + + Add New Theme + + + + :/icons/icons/add.png:/icons/icons/add.png + + + + + + + + + Display Screen Selection + + + + + + Primary Display Screen: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + Select onto which screen to dispaly + + + + + + + Qt::Horizontal + + + + 162 + 20 + + + + + + + + Secondary Display Screen: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + Select onto which screen to dispaly + + + + + + + Qt::Horizontal + + + + 162 + 20 + + + + + + + + + + + Primary Display Screen Controls + + + + + + + + Button Size: + + + + + + + + 16x16 + + + + + 24x24 + + + + + 32x32 + + + + + 48x48 + + + + + 64x64 + + + + + 96x96 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Alignment: + + + + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + + + + + Opacity: + + + + + + + Transparent + + + + + + + 102 + + + Qt::Horizontal + + + + + + + Opaque + + + + + + + + + NOTE: Display screen controls will be visible on the primary display screen only when one monitor is avaliable. + + + true + + + + + + + + + + Qt::Vertical + + + + 20 + 14 + + + + + + + + + + Reset All To Default + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + checkBoxDisplayOnTop + comboBoxTheme + pushButtonAddTheme + comboBoxDisplayScreen + comboBoxDisplayScreen_2 + comboBoxIconSize + comboBoxControlsAlignV + comboBoxControlsAlignH + horizontalSliderOpacity + pushButtonDefault + + + + + + diff --git a/help/about.html b/help/about.html new file mode 100644 index 0000000..85100d7 --- /dev/null +++ b/help/about.html @@ -0,0 +1,71 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

1.1 About softProjector

+

 

+

In about 2007 a program called BibleProjector has been released by Ilya + Spivakov. It was a very simple program that showed Bible verses on the + screen in church. He also added ability to show song. In early 2009, one + more developer, Vladislav Kobzar has joined the programming. By now, + plans for have been set to rewrite initial program and call it "softProject". + So the writing has started again and in spring of 2009 fist development + release of soft projector has been released. During summer of 2009, + one more developer has joined the team, Matvey Adzhigirey, and with his + help, in the fall first alpha + release of softProjector has been released to the public and in spring + of 2010 first beta version has been made available. With Gods help and + wisdom, many changes improvements has been made, many new features has + been added, while keeping it simple and easy to use, but still powerful. +

+

Programming:
+ softProjector is written in C++ with Qt libraries. Writing with Qt + libraries, it enable to have this program easily complied on any operating + system without writing any additional code. All code is open source and + anyone who can program can do their modifications to it. Source code can be + downloaded form http://sourceforge.net/projects/softprojector/ without any charge. Qt + libraries are available from http://qt.nokia.com/

+

Distribution:
+ As softProjector is written as open source program, this means that + softProjector is completely free. There is no charge to use this program.

+

Minimum Requirements:
+ Minimum requirements for softProjector has not been set. softProjector has + been successfully build and tested on Linux (Fedora), Mac, and Windows (Xp, + Vista, 7).
+ Dual monitor support is required for softProjector to display as designed. + See section 5.4. Dual Screen Settings

Previous
Next
+ \ No newline at end of file diff --git a/help/about_de.html b/help/about_de.html new file mode 100644 index 0000000..ea7b4a2 --- /dev/null +++ b/help/about_de.html @@ -0,0 +1,72 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

1.1 Über softProjector

+

 

+

Im Jahre 2007 hat Ilya Spivakov ein Programm unter dem Namen BibleProjector + entworfen. Dies war ein sehr einfaches Programm zum Anzeigen der Bibelverse + an der Leinwand in der Kirche. Später fügte er die Option zum Anzeigen der Lieder zu. + Anfang 2009 stieß der Programmierer Vladislav Kobzar zu dem Projekt hinzu. + Die beiden haben sich entschloßen, den ursprünglichen Code neu zu schreiben + und nannten ihn "softProject". + Die Arbeit mit dem Programm bekam einen neuen Impuls, und im Frühjahr 2009 + ist die erste Herausgabe erschienen. Im Sommer 2009 kam der Programmierer + Matvey Adzhigirey dazu, und Dank seiner Teilnahme, erschien im Herbst des + gleichen Jahres die erste Alfa-, und im Frühjahr 2010 die erste Beta-Versionen. + Mit Gottes Hilfe wurden viele Verbesserungen unternommen und neue Optionen + hinzugefügt. Das Programm blieb, wie auch am Anfang geplant, ganz einfach + in der Bedienung, aber stark in der Leistung. +

+

Für Programmierer:
+ softProjector ist in C++ mit Qt Bibliotheken geschrieben. Dank der Nutzung der Qt + Bibliotheken, ist es einfach, dieses Programm in jedes beliebige System, ohne Zufügung + eines zusätzlichen Codes, zu kompilieren. Der Code ist offen, und jeder Programmierer + kann seine Änderungen unternehmen. + Den Code kann man hier kostenlos herunterladen: http://sourceforge.net/projects/softprojector/ + Qt Bibliotheken sind hier erhältlich: http://qt.nokia.com/

+

Vertrieb:
+ Da softProjector als ein freigegebenes Programm entwickelt wurde, ist es absolut + kostenlos. + Für die Nutzung des Programms werden keine Gebühren erhoben.

+

Mindestforderungen:
+ Es wurden keine Mindestforderungen für softProjector festgestellt. + softProjector wurde erfolgreich auf Linux, Mac und Windows (Xp, + Vista, 7) kompiliert und getestet.
+ Für die Nutzung des Programms ist die Unterstützung zweier Monitoren erfoderlich. + Siehe 5.4. Bildschirm-Einstellungen

Previous
Next
+ \ No newline at end of file diff --git a/help/about_ru.html b/help/about_ru.html new file mode 100644 index 0000000..651fc5c --- /dev/null +++ b/help/about_ru.html @@ -0,0 +1,69 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

1.1 О программе

+

 

+

В 2007 году Илья Спиваков создал программу под названием BibleProjector. + Это была очень простая программа для высвечивания на экране в церкви стихов из Библии. + Затем он добавил опцию показа песен. В начале 2009 к созданию программы подключился еще один + разработчик, Владислав Кобзар. Было решено переписать заново первоначальный код программы и назвать ее + "softProject" (далее "Софт Проектор"). Работа над программой получила новый импульс, и весной 2009 вышел в свет + ее первый выпуск. Летом 2009 в команду вошел еще один разработчик, Матвей Аджигирей, и при его + участии, осенью того же года вышла в свет первая альфа, а весной 2010 первая бета версия. + С Божьей помощью, было сделано много улучшений и добавлено много новых опций, + в то же время программа осталась, как и было задумано, простой в употреблении + но мощной по своим возможностям. +

+

Для программистов:
+ Софт Проектор написан на C++ с Qt библиотеками. Благодаря использованию Qt + библиотек, программу легко компилировать под любую операционную систему + без добавления дополнительного кода. Весь код открыт, и любой программист + может вносить в него свои изменения. + Скачать код можно бесплатно здесь: + http://sourceforge.net/projects/softprojector/. + Qt библиотеки можно скачать здесь: http://qt.nokia.com/

+

Распространение:
+ Поскольку softProjector создан как открытая программа, он абсолютно бесплатен. + За пользование программой не нужно ничего платить.

+

Минимальные требования:
+ Минимальные требования для Софт Проектора не установлены. + Софт Проектор успешно компилировался и тестировался на Линуксе (Федора), Макинтоше и Виндовзе + (XP, Vista, 7).
+ Для работы программы обязательна поддержка двух мониторов. + Подробнее

Previous
Next
+ \ No newline at end of file diff --git a/help/addsongbooks.html b/help/addsongbooks.html new file mode 100644 index 0000000..8e7e14e --- /dev/null +++ b/help/addsongbooks.html @@ -0,0 +1,48 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1.1 Adding New + Songbooks

+

When adding or copping a song, at an option to add a new + songbook, a dialog will popup to add a new songbook. Enter new songbook information + and click okay to continue to add/copy a song.
+ Songbook can be also imported from softProjector songbook file (*.sps). See + Manage Songbooks to learn more.

+


+ Add Songbook
+ 1. "Songbook title". Enter the title of the new songbook.
+ 2. "Description". Enter short description about new songbook.
+ 3. Click "Ok" button. This will add a new songbook into the database. + This dialog box will close and now you will continue to add/copy your song.

+
Previous
Next
+ \ No newline at end of file diff --git a/help/addsongbooks_de.html b/help/addsongbooks_de.html new file mode 100644 index 0000000..8293887 --- /dev/null +++ b/help/addsongbooks_de.html @@ -0,0 +1,47 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1.1 Gesangbuch hinzufügen

+

Beim Hinzufügen (speichern) neuer Lieder, erscheint ein Dialog-Fenster mit dem Vorschlag, + ein neues Gesangbuch hinzufügen. Tragen Sie bitte die Information über das neue Gesangbuch ein und + drücken Sie "Speichern", und tragen Sie in das Buch das Lied ein.
+ Ein Gesangbuch kann man auch aus der Datei (*.sps) importieren. Siehe + Ausführlicher: um mehr zu lernen.

+


+ Add Songbook
+ 1. "Name des Gesangbuches". Tragen Sie bitte den Namen des neuen Gesangbuches ein.
+ 2. "Beschreibung". Tragen Sie bitte eine kurze Beschreibung des neuen Gesangbuches ein.
+ 3. Klicken Sie den "Speichern" Knopf. Das neue Gesangbuch wird in die Datenbank hinzugefügt. + Das Dialog-Fenster wird geschlossen und Sie können mit dem Hinzufügen (speichern) der Lieder in dieses Gesangbuch fortsetzen.

+
Previous
Next
+ \ No newline at end of file diff --git a/help/addsongbooks_ru.html b/help/addsongbooks_ru.html new file mode 100644 index 0000000..64c73e6 --- /dev/null +++ b/help/addsongbooks_ru.html @@ -0,0 +1,47 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1.1 + Добавление новых сборников

+

При добавлении (копировании) новых песен, появляется диалоговое окно с предложением добавить новый сборник. + Введите информацию о новом сборнике, нажмите на кнопку "Сохранить" и внесите в него песню. + Сборник можно также импортировать из файла базы данных (*.sps).
+ Подробнее:

+


+ Add Songbook
+ 1. "Название сборника". Введите название нового сборника.
+ 2. "Описание". Введите краткое описание нового сборника.
+ 3. Нажмите на кнопку "Сохранить". Новый сборник будет добавлен в базу данных. + Диалоговое окно закроется и вы сможете продолжать добавление (копирование) песни в данный сборник.

+
Previous
Next
+ \ No newline at end of file diff --git a/help/addsongs.html b/help/addsongs.html new file mode 100644 index 0000000..265cdc4 --- /dev/null +++ b/help/addsongs.html @@ -0,0 +1,63 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1 Adding New Songs

+

To add a new song:
+ 1. Select "Songs" tab. + SoftProjector will allow song to be added only when "Songs" tab in selected.
+ 2. Edit>New Song. Shortcut: Crtl+N
+ Select Songbook
+ 3. Select Songbook.
Select a songbook to which you would want to add a new song to. If you do not want to add to any existing songbooks, you may + also add a new songbook. See + "Adding New Songbooks" for detail on adding a new songbook. + See also Editing Songs page for details on Edit Window.
+ 4. Enter song number. SoftProjector will automatically enter a next song number. If for any reason + the song number that softProjector give, is not the one you do not want to use, you may change it.
+ 5. Enter song title. You must have a song title for all song. All non-alphanumeric + characters will be removed from the title. This is done so that song searching/filtering + is made + easier.
+ 6. Enter author of the words for this song. "Words By" entry field.
+ 7. Enter author of the music for this song. "Music By" entry field.
+ 8. Enter tune(key). This is the tune/key that this song is sung in.
+ 9. Select Category.
+ 10. Enter song text. Song text must be properly + formatted in order not to crash the program and to show the song properly. See + Song Format + for detail.
+ 11. Click "Save" button. If you do not want to save changes, click "Cancel" button. + Allow few seconds for song table to reload after clicking "Save" button.
+

+
Previous
Next
+ + diff --git a/help/addsongs_de.html b/help/addsongs_de.html new file mode 100644 index 0000000..901cd9c --- /dev/null +++ b/help/addsongs_de.html @@ -0,0 +1,58 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1 Hinzufügen eines neuen Liedes

+

Neues Lied hinzufügen:
+ 1. Wählen Sie "Lied" Reiter. + Neue Lieder kann man nur in diesem Reiter hinzufügen "Lieder" Reiter.
+ 2. Ändern>Neues Lied. Abkürzung: Crtl+N
+ Select Songbook
+ 3. Wählen Sie ein Gesangbuch.
Wählen Sie ein Gesangbuch oder erstellen Sie ein neues, in das Sie ein Lied hinzufügen möchten. Ausführlicher + über Hinzufügen eines neuen Gesangbuches, siehe + "Gesangbuch hinzufügen" und über das ändern der Lieder hier .
+ 4. Tragen Sie eine Lied-Nummer ein. SoftProjector gibt eine Nummer automatisch ein. + Auf Wunsch kann man die Nummer, die mit dem Programm eingegeben worden ist, ändern.
+ 5. Tragen Sie den Namen des Liedes ein. Alle Lieder müssen ihren Namen haben! Alle nicht alphabetisch-nummerische + Zeichen werden aus der Bezeichnung entfernt! Dies ist für eine normale Arbeit der Suche/Filter-Funktion erforderlich.
+ 6. Tragen Sie den Namen des Dichters in das Feld "Dichter" ein.
+ 7. Tragen Sie den Namen des Komponisten in das Feld "Komponist" ein.
+ 8. Tragen Sie die Tonart ein.
+ 9. Wählen Sie eine Kategorie.
+ 10. Tragen Sie den Text des Liedes ein. Der Text muss richtig formatiert werden, um Abstürze in dem Programm zu vermeiden, und dass der Text auf die Leinwand richtig übertragen wird. Siehe + Lied formatieren
+ 11. Drücken Sie "Speichern" Knopf. Falls Sie nicht wünschen die Änderungen zu speichern, so drücken Sie "Abbrechen" Knopf. + Nach dem Drücken des "Speichern" Knopfes, dauert es einige Sekunden, bis das Lied in die Datenbank geladen wird.
+

+
Previous
Next
+ + diff --git a/help/addsongs_ru.html b/help/addsongs_ru.html new file mode 100644 index 0000000..b57056b --- /dev/null +++ b/help/addsongs_ru.html @@ -0,0 +1,60 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1 Добавление новых песен

+

Добавить новую песню:
+ 1. Выберите закладку "Песни". + Новые песни можно добавлять только на этой закладке.
+ 2. Выберите опцию "Правка>Новая песня". Горячие клавиши: Crtl+N
+ Select Songbook
+ 3. Выбрать сборник.
Выберите существующий сборник или создайте новый, в который вы хотите добавить песню. + Подробнее о добавлении нового сборника — здесь, + и о редактировании песен — здесь .
+ 4. Введите номер песни. Номер следующей песни программа задает автоматически. + При желании, можно изменить заданный программой номер.
+ 5. Введите название песни. Все песни должны иметь название. Любые не алфавитно-номерные знаки автоматически удаляются из названия. + Это необходимо для нормальной работы поиска / фильтрования песен.
+ 6. Введите имя автора слов в поле "Слова".
+ 7. Введите имя композитора в поле "Музыка".
+ 8. Введите тональность.
+ 9. Выберите категорию.
+ 10. Введите текст песни. Текст необходимо должным образом отформатировать, + чтобы не было сбоев в работе программы и текст выводился на экран правильно. Подробнее о форматировании — + здесь.
+ 11. Нажмите на кнопку "Сохранить". + Если вы не желаете сохранить внесенные изменения, нажмите на кнопку "Отмена". + После нажатия на кнопку "Сохранить", должно пройти несколько секунд, пока песня загрузится в базу данных.
+

+
Previous
Next
+ + diff --git a/help/biblesettings.html b/help/biblesettings.html new file mode 100644 index 0000000..bf7a3c2 --- /dev/null +++ b/help/biblesettings.html @@ -0,0 +1,43 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.2 Bible Settings

+

+ Bible Settings

+

1. Primary Bible: The Bible that version that will be display. + If secondary version is selected, it will show primary on top and secondary on the bottom. + At least one primary version needs to be selected

+

2. Secondary Bible A Bible version that will be displayed as + dual and will be below primary on the display screen. Currently there is no preview of secondary + Bible version, it shows only on the screen

Previous
Next
+ \ No newline at end of file diff --git a/help/biblesettings_de.html b/help/biblesettings_de.html new file mode 100644 index 0000000..56399dc --- /dev/null +++ b/help/biblesettings_de.html @@ -0,0 +1,41 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.2 Bible Settings

+

+ Bible Settings

+

1. Primäre Bibel: Eine Bibel, deren Text für das Zeigen an der Leinwand bestimmt ist. + Bei der gewählten sekundären Bibel, werden die Texte der primären Bibel oben und der sekundären - unten, angezeigt. + Es muss mindestens eine primäre Bibel gewählt werden.

+

2. Sekundäre Bibel Eine Bibel, deren Text, paralell zu der primären Bibel, in der unteren Hälfte der Leinwand angezeigt wird.

Previous
Next
+ \ No newline at end of file diff --git a/help/biblesettings_ru.html b/help/biblesettings_ru.html new file mode 100644 index 0000000..919b450 --- /dev/null +++ b/help/biblesettings_ru.html @@ -0,0 +1,42 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.2 Настройки для Библий

+

+ Bible Settings

+

1. Первичная Библия: Библия, текст которой предназначен для показа на экране. + При выбранной вторичной Библии, текст первичной будет расположен в верхней, а вторичной — в нижней части экрана. + Должна быть выбрана как минимум одна первичная Библия.

+

2. Вторичная Библия Библия, текст которой будет показан параллельно с первичной, в нижней части экрана. + На данный момент в программе нет предосмотра вторичной Библии, ее текст показывается только на экране.

Previous
Next
+ \ No newline at end of file diff --git a/help/copysong.html b/help/copysong.html new file mode 100644 index 0000000..8872d03 --- /dev/null +++ b/help/copysong.html @@ -0,0 +1,49 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.3 Coping Songs

+

SoftProjector allow to copy an existing song into a new songbook or an other + existing songbook.

+

To copy a song:
+ 1. Select a song that you want to copy.
+ 2. Edit>Copy Current Song...Shortcut: Crtl+C
+ Select Songbook
+ 3. Select a songbook into which to copy. If no + songbook already exits that you would like to copy the song into, select to + add a new songbook. Detail on adding new songbook.
+ 4. Edit Song. After selecting a songbook, a + song edit dialog will come up. Edit the song if + needed and click "Save"
+

+
Previous
Next
+ \ No newline at end of file diff --git a/help/copysong_de.html b/help/copysong_de.html new file mode 100644 index 0000000..80f9281 --- /dev/null +++ b/help/copysong_de.html @@ -0,0 +1,48 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.3 Lied kopieren

+

SoftProjector ermöglicht das Lied in ein neues oder in ein bereits erstelltes Gesangbuch zu kopieren.

+

Für Lied-Kopieren:
+ 1. Wählen Sie ein Lied, das Sie kopieren möchten.
+ 2. Wählen Sie "Ändern>das Lied kopieren..."Abkürz.: Crtl+C
+ Select Songbook
+ 3. Wählen Sie ein Gesangbuch, in das Sie das Lied kopieren möchten. Falls Sie nicht + möchten, dieses Lied in ein bereits erstelltes Gesangbuch zu kopieren, wählen Sie "Ein neues Gesangbuch erstellen". + Mehr hier.
+ 4. Das Lied ändern. Wählen Sie ein Gesangbuch und ein Lied. + Dann wählen Sie "Ändern" und Ändern. Nach dem Ändern drücken Sie + "Speichern"
+

+
Previous
Next
+ \ No newline at end of file diff --git a/help/copysong_ru.html b/help/copysong_ru.html new file mode 100644 index 0000000..4fc1f84 --- /dev/null +++ b/help/copysong_ru.html @@ -0,0 +1,46 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.3 Копирование песен

+

Софт Проектор позволяет копировать песню в новый или уже существующий сборник.

+

Для копирования песни:
+ 1. Выберите песню которую необходимо скопировать.
+ 2. Выберите опцию: "Правка>Копировать песню..." Горячие клавиши: Crtl+C
+ Select Songbook
+ 3. Выберите сборник в который будет скопирована песня. Если вы не желаете скопировать песню в существующий сборник, + выберите опцию создать новый сборник. Подробнее — здесь.
+ 4. Редактировать песню. Выберите нужный сборник и песню. После этого — выберите опцию "Правка" и подпункт + Редактировать песню. После завершения правки нажмите на кнопку "Сохранить"
+

+
Previous
Next
+ \ No newline at end of file diff --git a/help/deletesongs.html b/help/deletesongs.html new file mode 100644 index 0000000..be1b950 --- /dev/null +++ b/help/deletesongs.html @@ -0,0 +1,40 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.4 Deleting a Song

+

To delete a song:
+ 1. Select a song that you want to delete.
+ 2. Edit>Delete Current Song. A warning dialog box will pop up asking you, if you really want to + delete that song. Click "Yes" if you really want to do so or click "No" if you do not want to delete that song. Shortcut: Crtl+D

+
Previous
Next
+ \ No newline at end of file diff --git a/help/deletesongs_de.html b/help/deletesongs_de.html new file mode 100644 index 0000000..b98ddf6 --- /dev/null +++ b/help/deletesongs_de.html @@ -0,0 +1,41 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.4 Das Lied löschen

+

Für Lied löschen:
+ 1. Wählen Sie ein Lied, das Sie löschen möchten.
+ 2. Wählen Sie "Ändern>Das Lied löschen". Es erscheint ein Fenster mit der Frage, + ob Sie wirklich das Lied löschen möchten. Drücken Sie "Ja" wenn Sie wirklich das Lied löschen möchten, + oder "Nein" falls Sie es ohne Änderungen lassen möchten. Abkürz.: Crtl+D

+
Previous
Next
+ \ No newline at end of file diff --git a/help/deletesongs_ru.html b/help/deletesongs_ru.html new file mode 100644 index 0000000..99b5592 --- /dev/null +++ b/help/deletesongs_ru.html @@ -0,0 +1,41 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.4 Удаление песен

+

Для удаления песни:
+ 1. Выберите песню которую необходимо удалить.
+ 2. Выберите опцию: "Правка>Удалить песню". При этом появляется предупреждающий знак с вопросом, + действительно ли вы желаете удалит песню. Нажмите "Да" если вы действительно желаете удалить, + либо "Нет", если хотите оставить. Горячие клавиши: Crtl+D

+
Previous
Next
+ \ No newline at end of file diff --git a/help/dualscreen.html b/help/dualscreen.html new file mode 100644 index 0000000..bd645de --- /dev/null +++ b/help/dualscreen.html @@ -0,0 +1,81 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.4 Dual Screen + Settings

+

SoftProjector will require a secondary screen/monitor to be set up on + your computer to show words on the screen correctly.  SoftProjector + will display words on monitor 2. If monitor 1 is secondary and monitor 2 is + primary, then a special program is required.

+

Windows XP
+ Windows Vista
+ Windows 7
+ Other operating systems

+

Windows XP:
+ 1. From you desktop, right-click and select "Properties"
+ 2. Select "Settings" tab
+ 3. You should be able to have 2 monitor shown. If only one is shown, then + either your computer does not support secondary monitor, or drivers are not + installed properly.
+ 4. Select monitor 2
+ 5. Set applicable screen resolution
+ 6. Make sure that "Extend my Windows desktop onto this monitor" is checked. + This will allow to have separate screens, on for your monitor and other for + your projector.
+ Xp Display Properties

+

Windows Vista:
+ 1. From you desktop, right-click and select "Personalize"
+ 2. Select "Display Settings"
+ 3. You should be able to have 2 monitor shown. If only one is shown, then + either your computer does not support secondary monitor, or drivers are not + installed properly.
+ 4. Select monitor 2
+ 5. Set applicable screen resolution
+ 6. Make sure that "Extend the desktop onto this monitor" is checked. + This will allow to have separate screens, on for your monitor and other for + your projector.
+ Windows Vista Display Settings

+

Windows 7:
+ 1. From you desktop, right-click and select "Screen Resolution"
+ 2. You should be able to have 2 monitor shown. If only one is shown, then + either your computer does not support secondary monitor, or drivers are not + installed properly.
+ 3. Select monitor 2
+ 4. Set applicable screen resolution
+ 5. From "Multiple displays:" select "Extend these displays"
+ Windows 7 Display Settings

+

Other Operating Systems:
+ SoftProjector has been successfully tested on Linux and Mac. Because of + great variety of operating system, please refer to that systems manual + on how to set up secondary monitor

Previous
Next
+ \ No newline at end of file diff --git a/help/dualscreen_de.html b/help/dualscreen_de.html new file mode 100644 index 0000000..2307b5a --- /dev/null +++ b/help/dualscreen_de.html @@ -0,0 +1,76 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.4 Einstellungen für zwei Bildschirme

+

Für eine einwandfreie Arbeit des SoftProjectors werden Einstellungen für den zweiten Bildschirm benötigt.  SoftProjector + zeigt den Text auf dem 2. Bildschirm. Falls der 1. Bildschirm als säkunderer Bildschirm ist, und der 2. Bildschirm als primärer, + so benötigen Sie ein spezielles Programm.

+

Windows XP
+ Windows Vista
+ Windows 7
+ Andere Operationssysteme

+

Windows XP:
+ 1. Auf dem Desktop Ihres Computers drücken Sie mit der rechten Maustaste und wählen Sie "Eigenschaften"
+ 2. Wählen Sie "Einstellungen".
+ 3. Sie sehen zwei Bildschirme. Wenn Sie nur einen Bildschirm sehen, d.h. entweder unterstützt Ihr Computer + den zweiten Bildschirm nicht, oder es fehlt ein benötigter Treiber.
+ 4. Wählen Sie den 2. Bildschirm
+ 5. Treffen Sie eine Entscheidung
+ 6. Klicken Sie auf "Erweiterung des Desktops für diesen Bildschirm". + Dies erlaubt mit zwei Bildschirmen zu arbeiten: einer auf dem Bildschirm Ihres Computers, + der andere auf Ihrer Leinwand.
+ Xp Display Properties

+

Windows Vista:
+ 1. Auf dem Desktop Ihres Computers drücken Sie mit der rechten Maustaste und wählen Sie "Anpassen"
+ 2. Wählen Sie "Anzeige"
+ 3. Sie sehen zwei Bildschirme. Wenn Sie nur einen Bildschirm sehen, d.h. entweder unterstützt Ihr Computer + den zweiten Bildschirm nicht, oder es fehlt ein benötigter Treiber.
+ 4. Wählen Sie den 2. Bildschirm
+ 5. Set applicable screen resolution
+ 6. Treffen Sie eine Entscheidung "Erweiterung des Desktops für diesen Bildschirm". + Dies erlaubt mit zwei Bildschirmen zu arbeiten: einer auf dem Bildschirm Ihres Computers, + der andere auf Ihrer Leinwand.
+ Windows Vista Display Settings

+

Windows 7:
+ 1. Auf dem Desktop Ihres Computers drücken Sie mit der rechten Maustaste und wählen Sie "Bildschirmauflösung"
+ 2. Sie sehen zwei Bildschirme. Wenn Sie nur einen Bildschirm sehen, d.h. entweder unterstützt Ihr Computer + den zweiten Bildschirm nicht, oder es fehlt ein benötigter Treiber.
+ 3. Wählen Sie den 2. Bildschirm
+ 4. Treffen Sie eine Entscheidung
+ 5. Klicken Sie auf "Mehrere Bildschirme:" "Bildschirme erweitern"
+ Windows 7 Display Settings

+

Andere Operationssysteme:
+ SoftProjector wurde erfolgreich auf Linux und Mac getestet. Obwohl es sehr viele + Operationssysteme gibt, wenden Sie sich zur Hilfe des benötigten Systems, + um zu erfahren, wie man mit zweier Bildschirme arbeitet.

Previous
Next
+ \ No newline at end of file diff --git a/help/dualscreen_ru.html b/help/dualscreen_ru.html new file mode 100644 index 0000000..397b0ea --- /dev/null +++ b/help/dualscreen_ru.html @@ -0,0 +1,73 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.4 Настройки двойного экрана

+

Для правильной работы Софт Проектора, требуется настройка вторичного экрана/монитора.  + Софт Проектор показывает слова на мониторе 2. Если вторичным является монитор 1, а первичным монитор 2, + то понадобится специальная программа.

+

Windows XP
+ Windows Vista
+ Windows 7
+ Другие операционные системы

+

Windows XP:
+ 1. На рабочем столе компьютера щелкните правой кнопкой мыши и выберите "Свойства"
+ 2. Выберите закладку "Параметры".
+ 3. Вы должны увидеть изображение двух мониторов. Если показан только один монитор, то либо ваш компьютер + не поддерживает второй монитор, либо не установлен необходимый драйвер.
+ 4. Выберите монитор 2
+ 5. Установите нужное разрешение
+ 6. Поставьте отметку на опции "Расширить рабочий стол на этот монитор". + Это позволит работать с двумя экранами: один на мониторе компьютера, а другой на проекторе.
+ Xp Display Properties

+

Windows Vista:
+ 1. На рабочем столе компьютера щелкните правой кнопкой мыши и выберите "Персонализировать"
+ 2. Выберите "Свойства монитора"
+ 3. Вы должны увидеть изображение двух мониторов. Если показан только один монитор, то либо ваш компьютер + не поддерживает второй монитор, либо не установлен необходимый драйвер.
+ 4. Выберите монитор 2
+ 5. Установите нужное разрешение
+ 6. Поставьте отметку на опции "Расширьте мой рабочий стол на этот монитор". + Это позволит работать с двумя экранами: один на мониторе компьютера, а другой на проекторе
+ Windows Vista Display Settings

+

Windows 7:
+ 1. На рабочем столе компьютера щелкните правой кнопкой мыши и выберите "Разрешение экрана"
+ 2. Вы должны увидеть изображение двух мониторов. Если показан только один монитор, то либо ваш компьютер + не поддерживает второй монитор, либо не установлен необходимый драйвер.
+ 3. Выберите монитор 2
+ 4. Установите нужное разрешение
+ 5. Поставьте отметку на опции "Несколько мониторов:" "Расширить мониторы"
+ Windows 7 Display Settings

+

Другие операционные системы:
+ Софт Проектор успешно тестировался на Линуксе и Макинтоше. + Поскольку имеется множество других операционных систем, обратитесь к справочнику нужной системы о том, как пользоваться двумя мониторами.

Previous
Next
+ \ No newline at end of file diff --git a/help/editsong.html b/help/editsong.html new file mode 100644 index 0000000..04f9058 --- /dev/null +++ b/help/editsong.html @@ -0,0 +1,59 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.2 Editing Songs

+

To Edit a song:
+ 1. Select a song that you want to edit.
+2. Edit>Edit Current Song. A dialog box will pop up will all the data of that song. Shortcut: Crtl+E
+

+

Edit Dialog :
+ Edit Dialog
+ 1. Songbook Name - displays songbook name in which + edited song is found.
+ 2. Song Number - song number will be automatically + preloaded to the next song number in database when adding new song. If + needed, song numbers can be changes.
+ 3. Song Title - song title must be present; or + else, saving of the song will not be permitted. All non-alphanumeric + character will be removed.
+ 4. Words By - name of the author who wrote words of + a song.
+ 5. Music By - name of the author who wrote music of + a song.
+ 6. Key - Key/Tune in which a song is sung.
+ 7. Song Category - currently un used.
+ 8. Song Text - song text must be kept in proper + format. See Song Format for details.

+
Previous
Next
+ + diff --git a/help/editsong_de.html b/help/editsong_de.html new file mode 100644 index 0000000..e760949 --- /dev/null +++ b/help/editsong_de.html @@ -0,0 +1,56 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.2 Bearbeiten der Lieder

+

Zum Bearbeiten der Lieder:
+ 1. Wählen Sie ein Lide, das Sie bearbeiten möchten.
+2. Wählen Sie: "Ändern>Ein Lied bearbeiten. Es erscheint ein Fenster mit dem vollen Inhalt des Liedes. Abkürz.: Crtl+E
+

+

Inhalt des Dialog-Fensters:
+ Edit Song
+ 1. Name des Gesangbuches: - es wird der Name des Gesangbuches angezeigt, + aus dem das Lied gewählt wurde.
+ 2. Lied-Nummer: - beim Hinzufügen eines neuen Liedes wird eine Nummer automatisch + hinzugefügt. Bei Bedarf kann die Nummer des Liedes geändert werden.
+ 3. Name des Liedes: - ein Name des Liedes muss unbedingt vorhanden sein, + andernfalls kann das Lied nicht gespeichert werden. Alle nicht alphabetisch-nummerische Zeichen + werden automatisch entfernt.
+ 4. Dichter: - hier wird der Name des Dichters eingetragen.
+ 5. Komponist: - hier wird der Name des Komponisten eingetragen.
+ 6. Tonart: - hier wird die Tonart des Liedes eingetragen.
+ 7. Lied-Kategorie:- hier wird eine Kategorie aus dem Inhaltsverzeichnis gewählt.
+ 8. Lied-Text - Der Text muss richtig formatiert werden. + Siehe hier.

+
Previous
Next
+ + diff --git a/help/editsong_ru.html b/help/editsong_ru.html new file mode 100644 index 0000000..61ed5a9 --- /dev/null +++ b/help/editsong_ru.html @@ -0,0 +1,55 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Next

3.2 Редактирование песен

+

Для редактирования песен:
+ 1. Выберите песню в которой нужна правка.
+2. Выберите опцию: "Правка>Редактировать песню". При этом появится диалоговое окно с полным содержанием песни. Горячие клавиши: Crtl+E
+

+

Содержание диалогового окна:
+ Edit Dialog
+ 1. Сборник: - показывает название сборника из которой взята песня.
+ 2. Номер песни - при добавлении новой песни, номер автоматически генерируется для следующей песни. + При необходимости, номер песни можно изменить.
+ 3. Название: - название должно присутствовать обязательно, + иначе невозможно сохранение песни. Все не алфавитно-номерные знаки удаляются автоматически.
+ 4. Слова: - сюда вводится имя автора слов.
+ 5. Музыка: - сюда вводится имя композитора.
+ 6. Тональность: - сюда вводится тональность мелодии песни.
+ 7. Категория: - здесь выбирается категория из списка.
+ 8. Окно для текста песни. - Текст должен быть правильно отформатирован. + Подробнее о форматировании текста — здесь.

+
Previous
Next
+ + diff --git a/help/features.html b/help/features.html new file mode 100644 index 0000000..5b48027 --- /dev/null +++ b/help/features.html @@ -0,0 +1,77 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
+ softProjector Help
Previous
Next

1.2 Features

+
+ Bible
+
+
Show one or two bible at once.
+
Have unlimited bible versions.
+
Includes three bible versions: Russian (Synodal Translation), + English (KJV), and Ukrainian. Other version can be added or + imported.
+
Automatically add verses that have been sent to Live to history + list.
+
Import Unbound Bibles from http://unbound.biola.edu/
+
Export Bibles
+
+
+
Songs
+
+
Import/Export songbooks
+
Add/Edit/Copy/Delete songs
+
Have as many as possible songbooks
+
Add song to playlist
+
Preview songs before showing them
+
+
Other
+
+
Three background options: black, active, and passive
+
Static and Fade transitions
+
Options to show song number, keys and stanza titles
+
Show your own text as announcements
+
Single file database
+
Manage database
+
Two background options, one while showing verses and other when + not showing anything
+ +
+
+
Previous
Next
+ \ No newline at end of file diff --git a/help/features_de.html b/help/features_de.html new file mode 100644 index 0000000..c09b7f5 --- /dev/null +++ b/help/features_de.html @@ -0,0 +1,74 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

1.2 Merkmale

+
+ Bibel
+
+
Zeigt den Text einer oder zweier Bibel(n) an.
+
Es gibt eine Möglichkeit, eine unbegrenzte Zahl der Bibel-Versionen zu haben.
+
Es gibt drei "eingebaute" Bibel-Versionen: Russisch (Synodal Translation), + Englisch (KJV) und Ukrainisch. Es können noch zusätzliche Versionen hinzugefügt werden.
+
Die angezeigten Texte werden automatisch in die Geschichte + eingetragen.
+
Import Unbound Bibles von http://unbound.biola.edu/
+
Export der Bibel-Versionen
+
+
+
Songs
+
+
Import/Export der Gesangbücher
+
Hinzufügen/Bearbeiten/Kopieren/Löschen der Lieder
+
Es gibt eine Möglichkeit, eine unbegrenzte zahl der Gesangbücher zu haben.
+
Hinzufügen der Lieder in die "Abspiel"-Liste
+
Vorschau der Lieder vor dem Anzeigen auf der Leinwand
+
+
Other
+
+
Drei Optionen für den Hintergrund: schwarz, aktive und passiv
+
Animierter und schneller Übergänge
+
Es werden Nummer und Refrain sowie Tonart des Liedes angezeigt
+
Es können verschiedene Texte, z.B. Vermeldung, Ankündigung, Anzeige usw., angezeigt
+
Die komplette Datenbank befindet sich in einer Datei
+
Verwaltung der Datenbank
+
Zwei Hintergrund-Optionen: eine mit Text-, die andere ohne Textaufführung
+ +
+
+
Previous
Next
+ \ No newline at end of file diff --git a/help/features_ru.html b/help/features_ru.html new file mode 100644 index 0000000..f3b2f3f --- /dev/null +++ b/help/features_ru.html @@ -0,0 +1,74 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

1.2 Главные характеристики

+
+ Библия
+
+
Показывается текст одной или двух Библий одновременно.
+
Возможность содержать неограниченное количество модулей Библии.
+
Имеются три встроенных модуля Библии: русский (синодальный), + английский (KJV), и украинский (І. Огієнка). Другие модуля Библии могут быть добавленными или импортированными.
+
Показанные на экране стихи автоматически заносятся в список истории.
+
Поддерживается импортирование Unbound Bibles с сайта + http://unbound.biola.edu/
+
Поддерживается экспортирование модулей Библий
+
+
+
Песни
+
+
Импортирование / экспортирование сборников
+
Добавление / Редактирование / Копирование / Удаление песен
+
Возможность содержать неограниченное количество модулей сборников
+
Добавление песен в список воспроизведения
+
Предосмотр песен перед выводом на экран
+
+
Другие
+
+
Три опции для фона: черный тон, фоновый рисунок и заставка
+
Плавный и мнговенный переходы
+
Показывается номер песни и куплета, тональность
+
Показывается любой текст в качестве объявления и т.п.
+
Вся база данных находится в одном файле
+
Управление базой данных
+
Две опции для фонового рисунка: подтекстовый и заставка без текста
+ +
+
+
Previous
Next
+ \ No newline at end of file diff --git a/help/generalsettings.html b/help/generalsettings.html new file mode 100644 index 0000000..3f6edeb --- /dev/null +++ b/help/generalsettings.html @@ -0,0 +1,82 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.1 General + Settings

+

+ General Settings
+

+

1. Bible Settings:
+ Settings only for showing bible. See details + here.

+

2. General Settings:
+ Settings that will effect entire program.

+
+
+
+
2.1 Display screen always on top
+
When check, display screen will be always on top. All other + programs will be behind the screen. If PowerPoint or software is + used to display on projector, leave this unchecked. SoftProjector + will have to restart in order for this setting to take place.
+
2.2 Use fading effects
+
If checked, the transition from slide to slide will be faded + through instead of static change
+
2.3 Use blurred shadow
+
Create a shadow behind the text, making it easier to read + text when light wallpaper are used
+
2.4 Change Font
+
Use this to change the font, font size and font style, for + the text that will be projected
+
2.5 Active Wallpaper
+
Wallpaper that is used then text it been displayed. The text + box shows file location; cannot be edited manually
+
2.6 Browse...
+
Browse and select active wallpaper.
+
2.7 Remove wallpaper
+
Removes active wallpaper and returns it back to black + display screen
+
2.8 Passive wallpaper
+
Wallpaper that is shown when nothing is to be shown. When "Hide" + button is pressed, this wallpaper will be shown.
+
2.9 Browse...
+
Browse and select passive wallpaper.
+
2.10 Passive wallpaper
+
Removes passive wallpaper and returns it back to black + display screen
+
+
+

3. Song setting:
+ Settings only when showing songs. See details + here.

Previous
Next
+ \ No newline at end of file diff --git a/help/generalsettings_de.html b/help/generalsettings_de.html new file mode 100644 index 0000000..de9021f --- /dev/null +++ b/help/generalsettings_de.html @@ -0,0 +1,80 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.1 Programm-Einstellungen

+

+ General Settings
+

+

1. Bibel-Einstellungen:
+ Diese Einstellungen beeinflußen nur die Arbeit mit den Bibeln. Ausführlicher + hier.

+

2. Allgemeine Einstellungen:
+ Diese Einstellungen beeinflußen die Arbeit mit dem ganzem Programm.

+
+
+
+
2.1 Bildschirm immer oben
+
Bei Aktivierung wird das Fenster des Bildschirms immer überlappend über den anderen Fenstern sein. + Die Fenstern aller anderen Programmen werden "unter" dem Fenster des Bildschirms des softProjectors sein. + Wenn softProjector von PowerPoint oder einem anderen Programm genutzt wird, lassen Sie diese Option unaktiviert. + Damit diese Option in Kraft treten kann, muss softProjector neu gestartet werden.
+
2.2 Animationseffekt
+
Bei Aktivierung wird der Übergang von einem Bild zum anderen verblassend sein.
+
2.3 Verschwommener Schatten
+
Für ein besseres Lesen auf einem hellen Hintergrund, + erscheint der Text mit einem Schatten.
+
2.4 Schriftart wählen
+
Schriftart, Größe und Schriftschnitt des Textes, + der auf der Leinwand erscheint.
+
2.5 Aktiver Hintergrund
+
Hier wird ein Hintergrundbild für den Text gewählt. + In dem Fenster befindet sich ein Weg zur Bild-Datei; das Bild kann nicht manuell geändert werden.
+
2.6 Durchsuchen...
+
Durchsuchen und Auswahl eines Hintergrund-Bildes.
+
2.7 Hintergrund löschen
+
Hintergrund-Bild wird gelöscht. + Es erscheint ein schwarzer Hintergrund.
+
2.8 Passiver Hintergrund
+
Der Hintergrund erscheint auf der Leinwand ohne Text. + Er erscheint auch beim Drücken "Verstecken".
+
2.9 Durchsuchen...
+
Durchsuchen und Auswahl des passiven Hintergrunds.
+
2.10 Passiver Hintergrund
+
Der passiver Hintergrund wird entfernt. + Es erscheint ein schwarzer Hintergrund.
+
+
+

3. Lied-Einstellung:
+ Diese Einstellungen beeinflußen nur die Arbeit mit den Liedern. Siehe + hier.

Previous
Next
+ \ No newline at end of file diff --git a/help/generalsettings_ru.html b/help/generalsettings_ru.html new file mode 100644 index 0000000..760bf4b --- /dev/null +++ b/help/generalsettings_ru.html @@ -0,0 +1,73 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.1 Настройки программы

+

+ General Settings
+

+

1. Настройки для Библий:
+ Эти настройки влияют только на работу с Библиями. Подробнее — + здесь.

+

2. Общие настройки:
+ Эти настройки влияют на работу всей программы.

+
+
+
+
2.1 Экран всегда сверху
+
При активизации, окно экрана будет всегда находится поверх других окон. + Окна всех других программ будут расположены под окном экрана Софт Проектора. + Если проектор используется программой PowerPoint или другой программой, оставьте эту опцию не активизированной. + Для того чтобы данная опция вступила в силу, требуется перезапуск Софт Проектора.
+
2.2 Эффект затухания
+
При активизации, переход от слайда к слайду будет плавным, в противоположность моментальному.
+
2.3 Размытая тень
+
Создается тень под текстом, для более легкого чтения при светлом тоне фонового рисунка.
+
2.4 Выбрать шрифт
+
Подборка шрифта, его размера и стиля для подаваемого на экран текста.
+
2.5 Фоновый рисунок
+
Выбирается фоновый рисунок помещаемый под текстом. В окошке находится путь к файлу рисунка (не редактируемый вручную).
+
2.6 Обзор...
+
Обзор и выбор фонового рисунка.
+
2.7 Удалить рисунок
+
Удаляется фоновый рисунок и возвращается черный фон экрана.
+
2.8 Заставка
+
Заставка показывается на экране при отсутсвии текста. Она также появляется при нажатии на кнопку "Скрыть".
+
2.9 Обзор...
+
Обзор и выбор заставки.
+
2.10 Удалить заставку
+
Удаляется заставка и возвращается черный фон экрана.
+
+
+

3. Настройки для песен:
+ Эти настройки влияют только на работу с песнями. Подробнее — здесь.

Previous
Next
+ \ No newline at end of file diff --git a/help/images/add_songbook.png b/help/images/add_songbook.png new file mode 100644 index 0000000000000000000000000000000000000000..6adbc7e3f790680f5bd35ce91a46e04f434a1e2f GIT binary patch literal 7756 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 F{{U)8N#y_l literal 0 HcmV?d00001 diff --git a/help/images/add_songbook_de.png b/help/images/add_songbook_de.png new file mode 100644 index 0000000000000000000000000000000000000000..6139487cd8fe78111332667f6a2fa7c587c8ffe0 GIT binary patch literal 8016 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 literal 0 HcmV?d00001 diff --git a/help/images/add_songbook_ru.png b/help/images/add_songbook_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..a47dda1da867361f7c4fbee0a072a3a5abd0df7e GIT binary patch literal 7533 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 literal 0 HcmV?d00001 diff --git a/help/images/announce.png b/help/images/announce.png new file mode 100644 index 0000000000000000000000000000000000000000..bdf6a67c367b11c23f4c256db090d9cae2a0a7a2 GIT binary patch literal 3493 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�iZY4jbw6rG=Y%?@vu`-s?%&LS%j`osM;3o>>e3hQ)ghbA5D^= zTTxo)50owq4;ZF%`N$W9!-i85}L>mj5P$j&XG@D6p0j9Xm#Qr)mt z>qZh7lWQ7Y*+VJ%Ersp40)@Q08qB_l_69j|q-m4*yh4oE2vKc~N6p;xdE`b@0>C8cO z>MLk{MHB+nH5yghaR)$gn#8Njv`~c+EZysH2UD-CLMCvk>rCYmK)=6_-}GqI`hLD7 zq#Pn+OkiZeS1k8hz*jleEz=pBU;Ci`bVWzyBf%?IT;LDALs^FLSK@~VJ@4&($XR{va4Ya9**A! zuvx1O1%?nph%ap|C(zbn)+PleB(f*C5kd%A!Aeg);6ySZgb*{L(r~~z<|02KgpgRE zzz{+Ri3P5~#7Oqu7^bh?!2G@6k)NH##^kGbrR_b`f7AghLDv&Pn8A>cq%Z!6+V|hV z8`plo&Y!R2rMKTg`ui)G?72Ya5JIXRF7lU-u(a@YG1~#U#`<3gpleJ71ts^ z=V?kQFw;+0_VZZ`jP}zZgpjJCb>GP~WfYhaVLyM4$)4{309$r8qT@&xok9qy3S{34 zOjr#EV2|IWhvF0$+s2bGdoXwFSJ)Qt`k6Cy3L&JTxP9j)M#hG<+U(zZ2u%l%N?&IN zQvxQx{svEfx(RF3CQN>E7|pG%bP6G)q8J$)M)Tojtu{lqhA1#)6_=h1n7(!c*2az4 ze!dHTZF)qf5JD=Jsmv3ldRyzZ1=cYpF!jks<4=f;!=~vz{p$bw?Irwo^*T^fgV(=8oDQJWe>ips_-~uU0d$!jN@8&j|{FU z8yM~P`~;ahc$x~L;imnDd=yUS%ZbjrQ@ z2^yP9W}`bcS#}iVPQS2sZ(A&nW#!Ix#N)72dG0zvw)~D&1lcS5D6-p z=uLGancN;;V1k0W><&JzX*F4&Vt*=GL|CB+vRz42ihhD-vR#-UF0&=tp+FE)TC#Hs zDExQ2MaC^IeW`9(t92s@jBX$`u?VjsTz-K*&LAI$ZIg@oy4h0L%ttIM*ipR(m3m=q z6GF`47Ma4i4v~LN+3QnTVb>x`mG#7BJ8XXik$F)N$ErF_7AB*junCGZE?k8<6*qT>}fz4l)9gQmJy(>z;TSdA}@0sR)d2qkjfM9wkVFS+00000NkvXX Hu0mjfN@+9h literal 0 HcmV?d00001 diff --git a/help/images/bible_settings_ru.png b/help/images/bible_settings_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebcb04aa7f4ce79d17700c137701614b8229339 GIT binary patch literal 2305 zcmV+c3I6tpP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igc6 z0t6Lb`@@a^000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000PFNkl4qJe6mwU-u2!GniNEGPX{}JkOc7Q zo-SOyei8kH*R;-STE7`vHf?*!P6t2;ArYc~@EV%8Hfx=8rif%kcc zmxU>->^uUefV?7C>1elV-c&=(=TiK2#l~s;QU0QO28q2Wy7!(ZYm2ijD$6VKDs`&_A`uP}W>wKP6}hUM@2!`pp6+QE zmC=&3Z9?cw_KmEqBD=}-vc4qMVLG2jPd0-+I}QQ>+P5FTiEIXYi~9g@BAY>7UA^1^ zgnbjJu3*VT)-Bj!%PmJhWrD6#Hx;L;l24c^CijKuzR>+H@N%4mNIX>Rx@A`Crm1dT zqP`8vrxJZrPQ6vyL!!at#1x!60B$GX7XO}X239exuLCIOHPE^uHFioU&eXDOGk`Ix%dE6YbzH`9*6gz%_7wWD&AQzp7`5Sp-kQ;pF8iH{S| z5&zN@P*_3po6^y>n-W;RId_$^bn52UcHPl}YWiDEt>XP3KQt!j-8~&bn`uW9#-Zr8 z!!35AsNBy1sov+PmV=W0KCTZl5wPOpcn0}ogBU^ zwmGi-Q0aChsV}4OTX!8hgq3gAWBlyBB~D%HM0&%n z(ig$_DhLuwg6<&@_GOfrn9Sk%^JlQEJZw8vTF-I-Mcc$=&Nm<9uYzFoAB_u`@b@Lr z<>|ATCwm;x_lm#U=A;$D5da~CM2OXm>u~4pO#q9v&Y=T{DSWzvkmS(TvJ-7BX7Zu~ zh&bLa{18HjD#o7zB7_h!&xODE6cE1$KnNiTg${raLg)YpA%xHY5JCu{10aMD5>NOT zXhi87=w&AmLbOS5*hL2r2ijXZ*$IRYWxW44LEYOb<6SEyLEWcGK~c_HS8cl5=8&tH8gK+);j0P9ZH`&(g2(_Tj_qAVLzzNbZ4Bx@AjN z_#Wd3AS9Lix|x@TqutFO4$)I*t z`>SV#u}3rOshRhDTb2de{{NLu&c4?k7R$0q+a~f0Q@*Hurt%{siY!c7W#Rz;M?O0DxCkt&)nHDUq{nJ63{8@h5R&ce+E%uH^vyM9{m4 zj`^kci@u$GUAteova)qY24Txm%}3TRZsB_Hbr&Ws{|egzR_@;)7%4kz_u@Ur?^sY2 z?LEh93o1{=9;Oc7QH!Wvs_oFJ4A6z|PnR3Ftg%IYR-i@R@R`KZ>-&G5I~c=XFfSc?{6_>-+@PN$Wp zHB_dEbi~eYO2%2cZL;!IrmEa&g7T7W>r5?~oN^+h5=`gw=*ecVXU9PRK>PLsIFZd@ zZ*d<0PGmEvtE->iQ$RY?Dk{-;Ia5HQd`(RG=;R|xH{5j;V`t98s;NQ!kxo2)r@pFx zd|@MG*$BW?9lT=AD4xWP$%!dAf7LzNOv&yR|DJ3HRxxep5kRF838T!}h@xh{Xu4dd zRY~#JsoTTvkK^CdXMu$a@#Z&Q;MGm<0Rw;eM#*y_{w78aUYnDTY8zD2h0U9gDB&In zc%6cbs=o}*PheGV%IZY;rs`%gA5q=Bjv;rv_}-sF0rx*Ygj-FmX!!Uzt~N9Xoj_Cw zirjS^Tu{3y{3HoZKu7$QMgTg`yL+Qrzd3HxPto{A)2b1?i8ktv7If0D?Z5Prt#6=L z_%0xwk${TB5Iq7K*3o#+^G4^o(Z9-hvNWoB5E3;fV8j8ah@nnIA7l$USC&3({;Ks2 zTb8apjDr*jn`kXcA2gNYCyKJE9M$bGqOVg2-FoWeK}fZkE^rR4~K5JDo(>c(}rbN42I#aidk0T4n+#A$2UiMAFqd0DyITFwCwLP!GPN8t$} bB%%BV3quIQ$gt~000000NkvXXu0mjf!RK5x literal 0 HcmV?d00001 diff --git a/help/images/book.png b/help/images/book.png new file mode 100644 index 0000000000000000000000000000000000000000..1b354555e75bef3fd8ba183d72ecf2f956dca60d GIT binary patch literal 1571 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 DhsqN1 literal 0 HcmV?d00001 diff --git a/help/images/de.png b/help/images/de.png new file mode 100644 index 0000000000000000000000000000000000000000..37121b137129aed127857139339551c9d72087be GIT binary patch literal 825 zcmV-91IGM`P)2&h& zVj{dDI?d#bEDw8wgd!zPNYo@x(OK3WL?OIeXdXHxUTpT%L}}V0mlyZ%@VB-(J63DE z>aPFwyRPf|`+o2Hx~}^ltiVP`zYX_cV^ys`(oFuZC2`!5CUH2euj?ck<8Og`u@fIu z)tJZ4BgX6mg)4(`r-9cxj72Jm*EN(zUN!H@0B-@hQ z+qq;zlEoeWp(GC^8Npq+A<3&r`jWheUy|%dGM;31tC^YPl_Xn}e3fK*htfcj)%Z2Z zM3O~Q7Sjan#g|ynj$Xr7oPkl?lH~dpI~_AR<)>nxZOdoyMpfO6Yj7b>!(5zz>srmr z=*RgO!97VXYOxDid^X<2(}yIc+0U4jWDYLI8k~z0@iA_kBF?1kz*)E(^Q&sKs-A0Y zJ&Ki8wY{pgGy&hXx=mFz-WJm9II|17znR&e&BL1*#2;9?PyD;ib2`ua{j#d+)3y-C zup-G8+}=o^j4wL5o9X?JV0#BjS%S@av-Lw&{h4Hy-kfa103OzxpSe>JG*VUC zrh6YBw$BEhS?zoVp2XL9 zXObVT#p9j3=3srtA4y9-7T(Q9j=6WU;kGG`b{qZ+6bbp6(UZHL00000NkvXXu0mjf D@2ZMs literal 0 HcmV?d00001 diff --git a/help/images/edit_bible.png b/help/images/edit_bible.png new file mode 100644 index 0000000000000000000000000000000000000000..6164437b1d0d936d640cb7dc2af2c309fc096271 GIT binary patch literal 6539 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 literal 0 HcmV?d00001 diff --git a/help/images/edit_bible_ru.png b/help/images/edit_bible_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..bbb844c38ecc2886ebbec3995bd794e4da392138 GIT binary patch literal 7047 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 F{{;{_ZqWb$ literal 0 HcmV?d00001 diff --git a/help/images/edit_songbook_de.png b/help/images/edit_songbook_de.png new file mode 100644 index 0000000000000000000000000000000000000000..adfd2a9feec97480f27f1598cd3de3de0bf34841 GIT binary patch literal 8333 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 literal 0 HcmV?d00001 diff --git a/help/images/edit_songs.png b/help/images/edit_songs.png new file mode 100644 index 0000000000000000000000000000000000000000..0e397e5ce032012f700fd3d33fdc273ae3db465e GIT binary patch literal 22046 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 literal 0 HcmV?d00001 diff --git a/help/images/edit_songs_de.png b/help/images/edit_songs_de.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9b51dd309f80f02aa0f63c11c071199ff23098 GIT binary patch literal 19764 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%0Am=(HVnwX# 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 BPDua& literal 0 HcmV?d00001 diff --git a/help/images/general_settings_ru.png b/help/images/general_settings_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f5c23a39b4b5421039aa6f202e323c083b47f7 GIT binary patch literal 21848 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 TPBaO8c?PK}X)2aO-UR*+)C4uU literal 0 HcmV?d00001 diff --git a/help/images/manage_bibles_ru.png b/help/images/manage_bibles_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b9036d30f276f09d289767fbbb04a2555c3144 GIT binary patch literal 7538 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�C-8F-I0MiWlCY(bkT|Q+ zC;^7>mLQf$F>Y%u)NooG_>%i((tGTlGm}1OUR9|pOsMX+`g!GUErruE1Q^6+*82wF z7dd4F;12Kjgy#S}`*pFvQ@yM(ok`1zDx=a%yLEv6JtArN< zf<}1~%%5d}Yc3_NOTzxRBS+)vhc{;qvK`)-X;%!;9qSzVi+@t>u@u>;O(?#seM=Ls zvo|f%ceT%~aBVbErFx||rW)O-BoX7VBJ4?| zZCgG?0D5u%B|j==rVw;wV#6PMqdX)_F<}sUE<1J0$YhVNc}2NIBGZq;1Lm4AkBJ(Y zQY1pG2S*xl*ZdN*eJWW>G*+}sk5r$`g^4UZTsMjKyL!}n;qyK)&mx6rhPDZ@mHk=! zrlllN%ek@!>fvdYIvs9KvIt9Ep3FB6Kjmg2!UT@Fg3IjtDcv)7`A89t=bA21e)kmLB@b4EU#aG zNF{#>8<_*r5zKg`mf%Ua2M7RAc-3*d@t;6)-n^N2Jee5u1&n2Ri2_>6yoDWNCu>#y z!zm(QEf+{Do?FOn$H^o}O-FxiaEw>Sw~gSw%umJ>0WS;l7g*+`j;7}ZA6ZifSs+j? z-q}zH)RMot1AgauL)s5YLG(ia;4aAc?x1))Er$b7e}hsSqu$fLZ{Kj%xyC^&8G;mg>rJ3#&cwm2YYtCN?<+NPolvk}cVId=&wV;645@cGI!6-jx`KGO*ubxSMD8qwH^t?#D!D`syEA$|Y z^^J^mNcIC|82hL1H5eZNaC<3Q*oY3{PKsHkJ23_ctJJfdkFfFor0N(HcY+w?lemb9 z*&vlud+xQ-pphG@###9M^H10dX@1Gj$Q%oJns;`V2vP*rkJbB*zN@c+J=zO5?ivg% zm4;1F4{UhKVPfTtPrt`3`-0lnc!NoYuM^&-F?iA=(xy<91*KVGa4J_FToQQ}$YeGiKP*K?TU>`a zj(uS3cl9f)pPjru%K{lg{^&e4#kbmS!tE`I<`$Gp7ovCknQV_wD;!5`LZ&8Kqoa!~ zK%ik$hV+vAdW1fJhvHfBP&5=z4FP0jL?10_$R^Z&9p?Gj~RbNV{-+J0HY%7k`0lVd$CxY6=$ zSFsjx%|l+aXYAx(eW3Of+Y79Y9GpSk zDMR~<_p4+pT7a&>KJ0WWQm<^$`Nes-faiR8jA+YGP8VMA+`NbiqEfN1xh!;RR_p^C{%jNa*O}zhF7Gm zG$MedXMb|L=^)M3C+ekWB^j!)iG7dPyQ@E9sb~1?zA>`Wx}n6tb0%hqf!6PTJ*SdO z&XUGGmbu=<62d?`W0x)Qw7d}t`}8w}%^h=tFg~%bkt`f-C{{iVEpa3*122v8uZ6~2 zdFU`;e@ANfhxPmQJ?W)j$D1`OS9@OuIKAj!{fRs|V820s)Yt`m7*1?0lY8k{6#eKn zH>_xbI4Xc*Mk^A$I*14z(SkaXUdVr=|FCuIh$tmhPIG(NM}Z~wl6clJ0UxEw3(DzF z8AHz!c^jjH^rERqwc)>h$zH!~FvJjKE2<`sV4|CSU$5&ZiWeelfRR zXgD97V9+yE-qXJP59a?)J^r)i`2R4L2r0O^nle3z=hF+*Op1|%W<&FObo<*IeJH<$ z!l_G0Rzv#;FqZHv05VGe{cKU2@n3nQ~0-$i|VG*`!a9JM|s}EZ}LKS g{;#{KglC*0e6$b|E+ifJzl#8}Qi_u0Aj6;k3td%oG5`Po literal 0 HcmV?d00001 diff --git a/help/images/manage_songbooks_de.png b/help/images/manage_songbooks_de.png new file mode 100644 index 0000000000000000000000000000000000000000..af7b8bb39d5c57c88b2b607754aa8c6d452c0f9e GIT binary patch literal 13674 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 literal 0 HcmV?d00001 diff --git a/help/images/manage_songbooks_ru.png b/help/images/manage_songbooks_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..acbe7413896a162f4ec9ad688ba6fc8171e6967b GIT binary patch literal 11677 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 WLJOM;3SmNNfV8B7L?y^D=zjp@F2tMw literal 0 HcmV?d00001 diff --git a/help/images/next.png b/help/images/next.png new file mode 100644 index 0000000000000000000000000000000000000000..5b565aadb18422122dafadf725dc987822e34138 GIT binary patch literal 678 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 MT3M=G!Z7f^0ErJI82|tP literal 0 HcmV?d00001 diff --git a/help/images/oveview_de.png b/help/images/oveview_de.png new file mode 100644 index 0000000000000000000000000000000000000000..4514de0195ce3bc59a69dff727b51636b7b196d3 GIT binary patch literal 43798 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 DO{a=b literal 0 HcmV?d00001 diff --git a/help/images/prev.png b/help/images/prev.png new file mode 100644 index 0000000000000000000000000000000000000000..22d60a56adf3854d7d43f60f517d07c4b87dfad7 GIT binary patch literal 647 zcmV;20(kw2P)*qe0r*T@cbTpKe&^MHl*6hX%WMi7(BN-Idb_Rp@w>jr4pX!1N7L+X$S(! z+8Nr)In&f!_u$I-p-4}ELd;Mt0DjSB^2H1vroIPO_cHZy1z1kK*W15iX!Kg2Zj498 zQ0A&pYmIijK$urp=H{go%2v)msIKPm@JM&;*y&EJtzju5u+rim8D@1-1z6JfC5;l{ zdGch!Z0p@gDYONDJ*cc~&Lh3BOnSb^w?!8LYLs9p14{|+=Q%Rz91=6{3?T9duwzGB zrQ>)z@olwe4cVMaHs_Jexh%QWgDU#*`V)(ejS`TAoyjM^&8P?#hZgT77+jd002ovPDHLkV1fayBfJ0r literal 0 HcmV?d00001 diff --git a/help/images/ru.png b/help/images/ru.png new file mode 100644 index 0000000000000000000000000000000000000000..52a021a79bad59b36d95c969557dda12efe2e29e GIT binary patch literal 883 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 FzW}kp9f$w` literal 0 HcmV?d00001 diff --git a/help/images/select_songbook_c.png b/help/images/select_songbook_c.png new file mode 100644 index 0000000000000000000000000000000000000000..cc41788448267cf768e6cf136208e6b9ff3affb8 GIT binary patch literal 7636 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 literal 0 HcmV?d00001 diff --git a/help/images/select_songbook_c_de.png b/help/images/select_songbook_c_de.png new file mode 100644 index 0000000000000000000000000000000000000000..03b7853823090034014d354d1d52d0acc68cfd97 GIT binary patch literal 8466 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 R&Z9BFTP1bH8u<@l{|l8%qJ01W literal 0 HcmV?d00001 diff --git a/help/images/select_songbook_c_ru.png b/help/images/select_songbook_c_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..9635fc5c7a5223828eda63fd5dc055e853e77358 GIT binary patch literal 7817 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 a2ANv_$i^m%^x>y4Ktn}axkk}C;{N~*>Ya)J literal 0 HcmV?d00001 diff --git a/help/images/select_songbook_de.png b/help/images/select_songbook_de.png new file mode 100644 index 0000000000000000000000000000000000000000..303f6af8b448ec6d4a2c770c44a1f4d8c6e0c24a GIT binary patch literal 8509 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 FzW@Z4vRVKD literal 0 HcmV?d00001 diff --git a/help/images/select_songbook_ru.png b/help/images/select_songbook_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..9e83c4c71e53dfbe7d3ae6e42c46d38fb66efc2a GIT binary patch literal 7804 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 B@P_~Z literal 0 HcmV?d00001 diff --git a/help/images/show_announce.png b/help/images/show_announce.png new file mode 100644 index 0000000000000000000000000000000000000000..2dcc3c96c3617c8522616ea52a6dc139ed972010 GIT binary patch literal 17597 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 b{?FgLaL=vy+ed+OVZilMu6{1-oD!M<5YA6Y literal 0 HcmV?d00001 diff --git a/help/images/show_announce_de.png b/help/images/show_announce_de.png new file mode 100644 index 0000000000000000000000000000000000000000..87da71dbdb3b82af9c1177dfdd74e0ad7bdce6c5 GIT binary patch literal 16423 zcmc(`bzECPv@W`l0xjAWN^vT<6?ZM}PVrI*TATpILJeAq6faiXC3tXJD3;*v?ruQ? zdEuOU?mPGXp8fZd?ChQS?U`A#)|$!M>-*-rwx$yC1L_9=01&Gv%j*IFRtDxcA;80w z*mCw@z5y&xT_ri7teoIW=hO5OoOXcr0gG9!t4G>BdhGW0=OU5ur(kSFZLbN6<}j-Wj)K+AqSRcE(4{;?yI_eNuob6bz532 zByT3{1gtGkOD{;J_k7{r@8D>j0SRc7#qqpyBJ!}^6ggJRpnIKad^On-x|Q>ovK)tc z)@NcaM@{-L2wS`Rodtu7Nvlua@rwk<{@$b*B8UM>BV9rT5hr>nwqkap zTg^Hk^=2kKx5(D&qpj<>9wGxls3MA=IX@|Oy1EczHwF^-4DnLxf}MV};~qvg?bGkg zrMT1|msF#&E3H1CqxyYkbCZw_(EDOX%CeT83{sUmhDGDovQO1>q#59I^C8b?+hmU1?&z*-9X4m(-g6b+&6suW?+nM~r!m&RA^yT#xlmagUJA (Ttqk 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 AhX4Qo literal 0 HcmV?d00001 diff --git a/help/images/show_announce_ru.png b/help/images/show_announce_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..d370807d8df3e4d86b9c2302ac3845c1c6fc34b9 GIT binary patch literal 14353 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 literal 0 HcmV?d00001 diff --git a/help/images/show_bible.png b/help/images/show_bible.png new file mode 100644 index 0000000000000000000000000000000000000000..d16a0719e29a5a275ff14bfa630c85d9966bee8b GIT binary patch literal 35642 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 z

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 literal 0 HcmV?d00001 diff --git a/help/images/show_main_ru.png b/help/images/show_main_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..095007107c364258727d8a9e6736fc386519c644 GIT binary patch literal 42296 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 literal 0 HcmV?d00001 diff --git a/help/images/show_songs.png b/help/images/show_songs.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc7bb68615e0a23d95e12517626e8530b8d2b7f GIT binary patch literal 29672 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

(w;<*b-OzYm^xW@fT;>=p8Nynm1f@C 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 literal 0 HcmV?d00001 diff --git a/help/images/show_songs_de.png b/help/images/show_songs_de.png new file mode 100644 index 0000000000000000000000000000000000000000..05062db14f4d5e884e0cae8b727e80d5851fd15b GIT binary patch literal 31289 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 ZPcP;5uTr}Z0vMjZmX%bHC>JyI`#+o$XYc?3 literal 0 HcmV?d00001 diff --git a/help/images/show_songs_ru.png b/help/images/show_songs_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..b495deb7f1350de4606d5a10dda26d163a205722 GIT binary patch literal 33570 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

_ZB_@o#;rhh4M;(pO4i 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 XB_GRtei?Xw7iw~ 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

}F1l%aFzFi@ik40UtUI<#oBv!p?>(;m4bklGC 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 z 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

bs#JsH=nj=_L`mD&1VmI*~Ma>oJFk*#D@~pL3 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 literal 0 HcmV?d00001 diff --git a/help/images/softprojector_help_ru.png b/help/images/softprojector_help_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..02face8446c0cfdbfb12395f19cac9b28a30fff0 GIT binary patch literal 11399 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 literal 0 HcmV?d00001 diff --git a/help/images/song_copy.png b/help/images/song_copy.png new file mode 100644 index 0000000000000000000000000000000000000000..3876e42e0d1e0b71252c51bca1ccfbdf03fb4f3f GIT binary patch literal 4114 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 KMNUMnLSTY6M<9Iw literal 0 HcmV?d00001 diff --git a/help/images/song_new.png b/help/images/song_new.png new file mode 100644 index 0000000000000000000000000000000000000000..eb75ef4455bf657ae3f4f358231076c18de2d335 GIT binary patch literal 3794 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 IM6N<$f>dEV6aWAK literal 0 HcmV?d00001 diff --git a/help/images/song_settings.png b/help/images/song_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..695caf062e00fc9ad840c268618c25a4cb5d52a1 GIT binary patch literal 1821 zcmZvddpy&N8^^zMU20iLi&QI)tb>T<5{C^j%q92STC9UIoy;X{N+c8eVXieSLK9AI z%Wai%IVqe>W751%ayR$0n9a}mzt{76E}!=wpTC~h^Q5^r*+LXl6#xK$VC<|f0RRZS zJ3E5qcI%Nrw)buWMP9N+1GW8Xv%5m>s)MaHu=8J(c2wr^5N*7PRuSRhcmffyx`oFP@xkzzP+|z&7K3&1y1O5? z>mG}-M!CoG7RM7qI8kanD_mhb3&Pvhe>_I_wGU>90RybMMlUq2YOojmfNYm}>dY@Q zC(0z?`s|Z{F)#0d32JyXh~a8^Eax^lfD<_`ky%&HQo#t$Ib6x{Lep$42! zm9SvxeB}o4S{c$Qu)g$Z#AI_`D8tpo_ArKU(+*6x4Zcc_z~Qzr;Y6S zM}Qik+w~e&8&*F%xiq&b8-R$B4Abo%{*~>Diak?E3%#gtf5N&! zk*cC9t(6-abnjpX$u!rIX>wQ;(NY+Hx-a`05}DVvU+E5@sk!g>UdgAD@Q?+GQ&Gas zM6ZyCW0W@3^|8sF(AU;~-f;bWl1&{9T}XJk+^hz8QOxI`Vx0gma|4lX7mb`5|U!@~+8vM(w$cVemuQB}CXK}#h zl&j6D12$#(Ua_tPtzU5Zi0m8A5Z zlP}^KTPp04c$*g4#YQvM%$k3+Z%lNdIF60)(j5?%e;BVN@#)8>@$~Qgsw%F`MRUxh z4P=9rn{Pl^_hK{p?o#v4V>o3W+BqnUnsT|yyTO@UDJ>u_+yCLRX5P)#=0`uyYcnsT zj1m~%QCeYr^|aU;>^%!L+CD4D{Aan=W`!E=JUJGEl8QK(G9*|l!%W-} zuX13~YCo$X5RrbZzP~Y-b76rLle!fXWta7!$SC6d(Ik%NifGF7=(^nLm$t@V(K=H$ zI2M<*ot)b7vLS!3ashWE&L@@B)}>w7c-)eoIi9Z@d~WXR@@m!C)Cp54g}2&pqDv+U zD#<$Uqu{h$Oj2ZYxWF0(f4`s>ulZGZ)y3sfQE!yOs@KaParc657fp;yG{Y(_C(Ez} zTDUr$xM=)mb(uSQ>)=gQU4UT=m4btRzSYnG$LT$H;OipG3O^a>3|viM%DkI-7WpO0 z9VT+_tE%-Jey%yJ<6o{qwKx}d!yM(NyNZkC$rNzl+il_?Y+zKKYDr*Sh?wZFW?Uno z#}B`%wwflJ>w4&Hs3iqd_AEcNP_AE1o*GfZ-#k zg1&lf{FWStRc)1Rh~GSi=%S?)%tz5~2~&?cw1sRZzRO}I)_4^7wht|WHF^#ZJcsty zd~yiX|NbO3t&lSA#nL<5j0K}gWl+XDgCHMu_10xCY8;EeouJC+CWyl^k%hNjJdE9Q z75H{U^=QSjA`=}-1h16uWmf*Cgq%ev=%c0Me;9$5d*bc=i}iY**RpA)jxFA<9aezN zzhLKDe$|%z(vS!1%X2%ip?E0Aomu0b?fz;C^ehJf6U+6-9`~h?mfBH|??zP0SX-W$dfOrxi8r=?K^{DGDHUCbe?b?0UYo`(k#Atk*kQ`g-Rb zOT~=wWm$#f6Htu=2nA+0CG u0ARdH%m6`?4M9K>6ab?EI2Z)yNMwy=HZ6uXg`nL>1z>EPtZUI%lKu}F?ot;3 literal 0 HcmV?d00001 diff --git a/help/images/song_settings_de.png b/help/images/song_settings_de.png new file mode 100644 index 0000000000000000000000000000000000000000..92e222c2b21691156f95a210679e94ae9dc68864 GIT binary patch literal 2004 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 f{y#xRPgv0UOc_I&(bfJFgF literal 0 HcmV?d00001 diff --git a/help/images/song_tab.png b/help/images/song_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..86da562e140af1f6b622af0a54c3369105f212bd GIT binary patch literal 3641 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 literal 0 HcmV?d00001 diff --git a/help/images/unbound_down.png b/help/images/unbound_down.png new file mode 100644 index 0000000000000000000000000000000000000000..44441a258bdc891ef548a4fe7ea4ed6c556873a7 GIT binary patch literal 5838 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

R8Vyu$0&pxUwh{8y*Bg!f}>FRTmtAl$ZC z*l^aXgxNA5(J}hUwYMS_{Bs3AoZ+U7fH9=Mr-|@3Azo(P=Orv(w&!5EciUu1)muXF zSk<50yW6>j1$ zRsPoJNnNp9%H$OpVm-4u7texNgI>1VIO=eOa-^EH$?%U;Hj2l z9;1j+4wX&Tn4ctZoek~u`nmi_mS{uGJ_Q796|bdhWNjGeuaWEJW&*Nt*UN|J5iUf` z$>ZI%J72S;-NLD{_g}@`we5~4wgy2Ift+|)rvLV?>8{E=q(dHcKgg6s+7iug9c+vT zjAcA!3J#i<64D-iuinZy=R{nM?rJUhb~{*AiuK!~8Y6J25{c^6b*Z$-ydDZ8Cekwk zCFO;#5{|fD>8V@sv!t?{1pm@~T%~F@+)~Y8CB-a$zKQffn1r>k!KnyI*%AZ66)AdF z83jw8@Su73fNR^<5N+k0{W@{G%t@=1tUS87}_hl^>K>qD6&S?6m; z7oAa9XUGejl6ay=kGb!w?O`!;j$S}sKa_s_2ww57r|t}(rTEAWI#<&1v5r~W+eUr6 zN?DO|^9Q=T=02TUMJ!pq7v;kFt8S0>Y5f(S614u^yDL#JF>0;iO_W2DOL7Oa?f@h*H&!zgR~J`T2%I$sRz+ z=r*aztnN0~T6%HNu5L2r-PBhszbKncuFIa*zfs4HNolr_y`lnYG2>6X{iY z;JZ@)j+ntoxvEh9AAd&fBj_ObMyu6_}L7L zY~1$a%_Mt&DdK$PdyKTOQ{R&v)Aw*_H)0^To=B4?{>(khx8Jm9`n}2{!cn$ioWY%+ zWqn2WGO^DKqP5JR29aeov%`gOC?1hip-<&7a)wB-%AG;hTZp;^v2cBQH(7evBL$Rf z!IyHc@v+{-8=2INPg3c$-((UHn*f_O}=>PO%u<&7q5foRFlop z4lP9K0b{z603JY~JbYqHw!n|`>T_<6W@gQ3Dr#L8FM!hkY?E(53@%px2|AsDKhCZ{ zGmp?Hc%!i`WJ|qp3u`&Cef4Zf4YPj5W@m1tg*A9{un)8k3H#FcK=cj^TQp6zalh z8^wUT`Wu4PZ#u`J4X=Ok&#ZQX*a;H4RVNjTE-5V$QoZkvEm?Mt^*g8j z-kpk8;mN5hEVK(zh(|}H1M%D*vuJhNQDPlFNk)*V22@|De+bgczr#|rux+~Zs3A^; z9PtA^6#;lV)Ur6blF^=alph<10~ZRpStH-HpB(rZrojc?Cg!6!qp_^8Oa@pYm-C~e z(=))(q9*3S%lDamL_sba3J0m#e=eL0$cso_E88CgOXM0dcsuRD7RHp6K88pEpdKyX z;UiMf7qHc}RaZi-e!yt*_-^KhPC6jnd*r?o{$?5@5L#$ey8JD_u;XtIK-I#$#jR*C zvc8Q_fv%c)H?cohI0XP^L6>eI*KRg510T=UduQ)whk&K1j6(R`mFMyqX5C|HQ%(s7 zf^-iXJYK)IG8^BA9k!y@dfWq8+`7xfZ=4_tl|r!E!O>tmis*kgafjFgyB$bZBk&pG zK&qB$!TGve32qJQ>Kjijx*&;l{ZUP?eu9)YQZ`-PkCk@s4?_o}mxftshc>3Y?SM*t z+Sf=FV0hKS{6SLIb2M#==-c(hvVJr{0Nq+oNiSFsU&OiES*|%=jYyN{t~I!(^ zKK~RC0fPCFXt&qPc<0-{+#V5|kK?*2`-45BU+WRaZXI33SMY&dh__x-L=kbw$4?wS w#RP1H>;(l@1Zw;kx2*M_J9x^Sc5tfU-s-_@Hy*}GO^kq^wxJg0u3gxF0QB!kfdBvi literal 0 HcmV?d00001 diff --git a/help/images/unbound_select.png b/help/images/unbound_select.png new file mode 100644 index 0000000000000000000000000000000000000000..048ca4caf8a332d684ab2aad34e1c5e8816b3bb6 GIT binary patch literal 3201 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 z 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 Tm8{}C00000NkvXXu0mjf$NnG! literal 0 HcmV?d00001 diff --git a/help/images/w7Settings.png b/help/images/w7Settings.png new file mode 100644 index 0000000000000000000000000000000000000000..8b32dcc301787ef36a099758758c366555014b7b GIT binary patch literal 111167 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

dXhxrs&WBMHK5Vv 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%0DH$F0H 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%0Aj5YAjvZJc!FfraRBfaTD* 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 + + + +softProjector Help + + + + +

+
+
+

This help manual is under construction. Will be available in final release.

+ + + + + + +
+
+ + + + \ No newline at end of file diff --git a/help/index_de.html b/help/index_de.html new file mode 100644 index 0000000..a7b21c0 --- /dev/null +++ b/help/index_de.html @@ -0,0 +1,87 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
+ softProject Hilfe
Previous
Next

+ SoftProjector Hilfe-Handbuch basiert auf Version 1.0. + Alle späteren Versionen können nicht in der Hilfe einbezogen werden.
+
+
+ 1. Einleitung +
+
+
1.1. Über das Programm
+
1.2. Merkmal
+
1.3. Überblick
+
+
2. Vorführung
+
+
2.1. Allgemeine Info
+
2.2. Vorführung der Bibeltexte auf die Leinwand
+
2.3. Vorführung der Lieder auf die Leinwand
+
2.4. Vorführung der Meldungen auf die Leinwand
+
+
3. Bearbeiten der Lieder
+
+
3.1. Hinzufügen der neuen Lieder
+
+
3.1.1. Hinzufügen der neuen Gesangbücher
+
3.1.2. Liedtext formatieren
+
+
3.2. Bearbeiten der Lieder
+
3.3. Lieder kopieren
+
3.4. Lieder löschen
+
+
+ 4. Datenbank verwalten +
+
+
4.1. Bibel verwalten
+
4.2. Gesangbücher verwalten
+
+
5. Einstellungen
+
+
5.1. Allgemeine Einstellungen
+
5.2. Bibel-Einstellungen
+
5.3. Lied-Einstellungen
+
5.4. Doppel-Bildschirm-Einstellungen
+
+
6. Anhang
+
+
6.1. Tastatur-Abkürzungen
+
6.2. Veröffentlichung dieser Version
+
+
+
Previous
Next
+ \ No newline at end of file diff --git a/help/index_ru.html b/help/index_ru.html new file mode 100644 index 0000000..2aab9ee --- /dev/null +++ b/help/index_ru.html @@ -0,0 +1,85 @@ + + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
+ softProject Help
Previous
Next

+ Справочник по Софт Проектору относится к версии 1.0. + Все новые версии могут быть не отображены в справочнике.
+
+
+ 1. Общее описание +
+
+
1.1. О программе
+
1.2. Главные характеристики
+
1.3. Обзор программы
+
2. Вывод на экран
+
+
2.1. Общая информация
+
2.2. Вывод на экран стихов Библии
+
2.3. Вывод на экран песен
+
2.4. Вывод на экран объявлений
+
+
3. Редактирование песен
+
+
3.1. Добавление новых песен
+
+
3.1.1. Добавление новых сборников
+
3.1.2. Форматирование текста песен
+
+
3.2. Редактирование песен
+
3.3. Копирование песен
+
3.4. Удаление песен
+
+
+ 4. Управление базой данных +
+
+
4.1. Управление модулями Библий
+
4.2. Управление модулями сборников
+
+
5. Настройки
+
+
5.1. Общие настройки
+
5.2. Настройки Библий
+
5.3. Настройки песен
+
5.4. Настройки двойного экрана
+
+
6. Дополнение
+
+
6.1. Клавиатурные сокращения
+
6.2. О версии выпуска
+
+
+
Previous
Next
+ \ No newline at end of file diff --git a/help/managebible.html b/help/managebible.html new file mode 100644 index 0000000..950581a --- /dev/null +++ b/help/managebible.html @@ -0,0 +1,73 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

4.1 Managing Bibles

+

To manage Bibles:
+ 1. Edit>Manage Database. This will open a dialog where managing will take place. Shortcut: Crtl+M
+ 2. Select "Bibles" tab. softProjector allows you to have as many Bible version as you would like to have. + Here you can import, edit, export or delete a Bible.

+

+ Manage Bibles

+

1. List of Bible versions in the programs
+

+

2. Import...
+
This will import a Bible from a softProjector Bible file (*.sps) and + also from Unbound Bible files. See below how to import Unbound Bible files

+

3. Edit...
+
A dialog box will appear where you can change the name or title of the Bible.
+ Edit Bible

+

4. Export...
+
 Export a Bible from the database that you want to share with someone else.

+

5. Delete.
+ Delete a Bible that you do not want to use any more. You will not be allowed to delete any more Bibles, if only one Bible is left.

+

Importing Unbound Bibles
+ 1. Go to http://unbound.biola.edu/ + web site.
+ 2. Click Downloads.
+ 3. Select which Bible version to download
+ Download Unbound Bibles
+ 4. Click "Download" button and save the *.zip file.
+ 5. Locate downloaded zip archive file and extract its content.
+ 6. From Manage Database dialog, click on "Import" button
+ 7. Select a file that ends with "_utf8.txt". All other files, softProjector + will not be able to import.
+ Select Unbound Bible file
+

+
Previous
Next
+ + diff --git a/help/managebible_de.html b/help/managebible_de.html new file mode 100644 index 0000000..2c9aa58 --- /dev/null +++ b/help/managebible_de.html @@ -0,0 +1,72 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

4.1 Bibel-Verwaltung

+

Für Bibel-Verwaltung:
+ 1. Wählen Sie "Ändern>Datenbank verwalten". Es wird ein Dialog-Fenster mit den Verwaltung-Optionen geöffnet. Abkürz.: Crtl+M
+ 2. Wählen Sie einen Reiter "Bibeln".softProjector ermöglicht das Hinzufügen von unbegrenzten Bibel-Versionen. + Im Dialog-Fenster kann man die Bibeln importieren, bearbeiten, exportieren oder löschen.

+

+ Manage Bibles

+

1. Liste der vorhandenen Bibel-Versionen
+

+

2. Import...
+
Diese Option ermöglicht eine Bibeldatei im softProjector-Format (*.sps) zu importieren. + sowie von der website Unbound Bible (ausführlicher - website-Adresse unten)

+

3. Bearbeiten...
+
Beim Drücken dieses Knopfes, offnet sich ein Dialog-Fenster, in dem eine Änderung der Bibel-Version vorgenommen werden kann.
+ Edit Bibles

+

4. Export...
+
 Exportieren einer Bibel-Version aus der Datenbank.

+

5. Löschen.
+ Löschen einer Bibel-Version, die nicht mehr gebraucht wird. Wenn in der Datenbank nur eine Bibel-Version vorhanden ist, so ist das Löschen deren nicht möglich.

+

Import Unbound Bibles
+ 1. Zur website: http://unbound.biola.edu/.
+ 2. Klicken Sie Downloads.
+ 3. Wählen Sie ein Bibel-Version zum download
+ Download Unbound Bibles
+ 4. Klicken Sie auf "Download" -Knopf und speichern Sie unter *.zip-Datei.
+ 5. Suchen Sie die heruntergeladene zip-Datei und öffnen Sie sie.
+ 6. Drücken Sie im Dialog-Fenster der Datenbank auf "Import" -Knopf.
+ 7. Wählen Sie die Datei mit der Endung "_utf8.txt". Alle anderen Dateien öffnet der softProjector + nicht.
+ Select Unbound Bible file
+

+
Previous
Next
+ + diff --git a/help/managebible_ru.html b/help/managebible_ru.html new file mode 100644 index 0000000..d5ea5a0 --- /dev/null +++ b/help/managebible_ru.html @@ -0,0 +1,72 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

4.1 Управление модулями Библий

+

Для управления модулями Библий:
+ 1. Выберите опцию: "Правка>Управление базой данных". + При этом открывается диалоговое окно с опциями управления. Горячие клавиши: Crtl+M
+ 2. Выберите закладку "Библии". + Софт Проектор позволяет вмещать любое количество Библейских модулей. + В диалоговом окне можно импортировать, редактировать, экспортировать и удалять модули Библий.

+

+ Manage Bibles

+

1. Список имеющихся модулей Библии.

+

2. Импорт
+
Эта опция позволяет импортировать Библию из файла в формате Софт Проектора (*.sps), + а также из сайта Unbound Bible (подробнее — ссылка внизу).

+

3. Правка
+
При нажатии на эту кнопку, открывается диалоговое окно, где можно изменить название модуля Библии.
+ Edit Bible

+

4. Экспорт
+
 Экспортирование модулей Библий из базы данных.

+

5. Удаление
+ Удаляются модули Библии, не нужные для употребления. Если в базе данных остается только один модуль Библии, его удаление будет невозможно.

+

Импортирование Unbound Bibles
+ 1. Идите на сайт: http://unbound.biola.edu/.
+ 2. Щелкните на Downloads.
+ 3. Выберите версию Библии для скачивания
+ Download Unbound Bibles
+ 4. Щелкните на кнопку "Download" и сохраните *.zip файл.
+ 5. Найдите скачанный zip файл и извлеките его содержимое.
+ 6. В диалоговом окне управления базой данных, нажмите на кнопку "Импорт".
+ 7. Выберите файл который заканчивается на "_utf8.txt". Все другие файлы Софт Проектор не импортирует.
+ Select Unbound Bible file
+

+
Previous
Next
+ + diff --git a/help/managesongbooks.html b/help/managesongbooks.html new file mode 100644 index 0000000..c2f63e2 --- /dev/null +++ b/help/managesongbooks.html @@ -0,0 +1,65 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

4.2 Managing Songbooks

+

 

+

To manage songbooks:
+ 1. Edit>Manage Database. This will open a dialog where managing will take place. Shortcut: Crtl+M
+ 2. Select "Songbooks" tab. + softProjector allows you to have as many songbooks as you would like to + have and it allows you to import, edit, export or delete a songbook.

+

+ Manage Songbook

+

1. Title Column:
+
Title column displays all title of songbooks are in the database of + the program.

+

2. Information:
+
A short description of each songbook

+

3. Import:
+
This will import a songbook.
+

+

4. Edit:
+
A dialog box will appear where you can change the title and + infromation of the songbook.
+ Edit songbook
+

+

5.Export:
+
Export a songbook from the database that you want to share with someone else. + Also, it is highly recommended to save a copy of your songbooks before + updating program.
+

+

6. Delete.
+ Delete a songbook that you do not want to use any more. You will not be allowed to delete any more songbooks if only one songbook is left.

+
Previous
Next
+ + diff --git a/help/managesongbooks_de.html b/help/managesongbooks_de.html new file mode 100644 index 0000000..993a28f --- /dev/null +++ b/help/managesongbooks_de.html @@ -0,0 +1,64 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

4.2 Gesangbücher-Verwaltung

+

 

+

Für Gesangbücher-Verwaltung:
+ 1. Wählen Sie "Ändern>Datenbank verwalten". Es erscheint ein Dialog-Fenster, in dem eine Verwaltung vorgenommen werden kann. Abkürz.: Crtl+M
+ 2. Wählen Sie "Gesangbücher". + softProjector kann eine unbegrenzte Zahl der Gesangbücher aufnehmen, + sowie importieren, bearbeiten, exportieren oder löschen.

+

+ Manage Songbooks

+

1. Spalte mit den Gesangbücher-Namen:
+
Hier werden alle vorhandenen Gesangbücher in der Datenbank angezeigt.

+

2. Information:
+
Kurze Beschreibungen der Gesangbücher

+

3. Importieren:
+
Hinzufügen neuer Gesangbücher.
+

+

4. Bearbeiten:
+
In dem geöffneten Dialog-Fenster können der Name der Gesangbücher + sowie Infromation deren geändert werden.
+ Edit Songbooks
+

+

5. Exportieren:
+
Exportieren eines Gesangbuches aus der Datenbank. + Es wird dringend empfohlen, eine Kopie des Gesangbuches vor dem installieren der neueren Programm-Version + zu erstellen.
+

+

6. Löschen.
+ Löschen eines Gesangbuches, das nicht mehr gebraucht wird. Wenn in der Datenbank nur ein Gesangbuch vorhanden ist, ist das Löschen dessen nicht möglich.

+
Previous
Next
+ + diff --git a/help/managesongbooks_ru.html b/help/managesongbooks_ru.html new file mode 100644 index 0000000..02ba19c --- /dev/null +++ b/help/managesongbooks_ru.html @@ -0,0 +1,63 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

4.2 Управление модулями сборников

+

 

+

Для управления модулями сборников:
+ 1. Выберите опцию: "Правка>Управление базами данных". + При этом открывается диалоговое окно, в котором происходит управление. Горячие клавиши: Crtl+M
+ 2. Выберите закладку "Сборники". + Софт Проектор может вмещать любое количество модулей сборников, + а также позволяет импортировать, редактировать, экспортировать и удалять эти модули.

+

+ Manage Songbook

+

1. Столбец с названиями сборников:
+
Здесь показаны все сборники, имеющиеся в базе данных программы.

+

2. Информация:
+
Краткие детали о сборниках

+

3. Импотировать:
+
Ввод в программу новых сборников.
+

+

4. Редактировать:
+
В появившемся диалоговом окне можно менять название и информацию о сборниках.
+ Edit songbook
+

+

5. Экспортирование:
+
Извлечение сборника из базы данных для передачи в пользование. Настоятельно рекомендуется сделать резервные копии сборников + перед установкой новой версии программы.
+

+

6. Удалить.
+ Удаляется сборник, не нужный более для употребления. Если в базе данных остается только один сборник, его удаление будет невозможно.

+
Previous
Next
+ + diff --git a/help/overview.html b/help/overview.html new file mode 100644 index 0000000..f594718 --- /dev/null +++ b/help/overview.html @@ -0,0 +1,111 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

1.3 Program Overview

+

 

+

+ Overview
+ softProjector is designed as 2 part; the prepare area, live area. In prepare + area, items are prepared and previewed before sent to live area to me + shown.

+

1. File Menu:
+ Contains only one menu item, Exit"Exit," + this will close the program.

+

2. Edit Menu:
+ Contains items to modify songs, manage database and program settings

+
+

2.1 + Add new song + "New Song..."
+ In softProjector, it is possible to add your own songs and song books. Use + this menu item to add a new song.

+

2.2 + Edit song + "Edit Current Song..."
+ Edit the song that is currently selected. More + details.

+

2.3 + Delete a song + "Copy Current Song"
+ Copy a song that is currently selected into a new songbook or into an + existing songbook. More + details.

+

2.4 + Delete a song + "Delete Current Song"
+ Delete the song that is currently selected. More + details.

+

2.5 + Database + "Manage Database..."
+ softProjector is created in the manner that it is possible to import/export + or change Bibles and + songbooks.

+

2.6 + Settings + "Settings..."
+ Use this to change setting for the program. + Settings like font, background, Bible to use and others.

+
+

3. Language Menu:
+ softProjector is enabled users to have program interface in different + languages. Currently three languages are available, English, Russian and + German. No program restart is needed to switch the language. softProjector + will remember language settings upon exit.

+

4. Help Menu:
+ If help information is needed, use this. Program information cab be also + found here.

+

5. Media Prepare Area:
+ Prior to show a verse or something else, it needs to be found and prepared. + All preparations are made in this area, and once know what needs to be + shown, it goes to "Show Control Area".

+

6. + Bible Bible Tab:
+ On the Bible tab, bible verses can be searched if verse location is unknown, + quickly looked up and then shown on the screen. More info on "Show + Bible" page.

+

7. + Songs Song Tab:
+ Probably primary use for this program will be to show songs. On this tab, + songs can be easily found and preview. If needed they can be edited, added + or deleted. More info on "Song Songs" page.

+

8. + Announce Announcements Tab:
+ softProjector allows users to show their own text at any time. More info on + "Show Announcements" page.

+

9. Live Show Control Area:
+ Once "Go Live" button on any media prepare tab has been clicked, focus goes + onto "Live show control area." Anything changed in this area, will be + immediately reflected on display screen.

+
Previous
Next
+ \ No newline at end of file diff --git a/help/overview_de.html b/help/overview_de.html new file mode 100644 index 0000000..257ee00 --- /dev/null +++ b/help/overview_de.html @@ -0,0 +1,105 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

1.3 Programm-Überblick

+

 

+

+ Overview
+ softProjector besteht aus zwei Hauptteilen: Vorbereitungs- und Leinwandbereich. In dem + Vorbereitungsbereich werden Texte gewählt und durchschaut, bevor die auf der Leinwand + angezeigt werden.

+

1. Datei-Menü:
+ Enthält nur eine Option: Exit"Beenden," + d.h. Beenden des Programms.

+

2. Bearbeiten-Menü:
+ Enthält Optionen für Bearbeitung der Lieder, sowie Verwaltung der Datenbank und allgemeine Einstellungen des Programms.

+
+

2.1 + Add new song + "Neues Lied..."
+ In softProjector gibt es eine Möglichkeit, die das Hinzufügen der Lieder und Gesangbücher nach Wunsch des Benutzers erlaubt. + Dafür gibt es eine Option Neues Lied.

+

2.2 + Edit song + "Lied bearbeiten..."
+ Das gewählte Lied kann bearbeitet werden. Ausführlicher:

+

2.3 + Delete a song + "Lied kopieren"
+ Das gewählte Lied wird in ein neues oder in ein vorhandenes Gesangbuch kopiert. + existing songbook. Ausführlicher:

+

2.4 + Delete a song + "Lied löschen"
+ Das gewählte Lied wird aus dem Gesangbuch entfernt. Ausführlicher:

+

2.5 + Database + "Datenbank verwalten..."
+ In softProjector ist importieren/exportieren/bearbeiten oder löschen der + Bibeln und + Gesangbüchervorgesehen.

+

2.6 + Settings + "Einstellungen..."
+ Veränderung der Programm-Einstellungen. + Einstellungen der Schriftart, Hintergrund, Bibeln u.ä. des Programms.

+
+

3. Sprache-Menü:
+ In softProjector ist eine Wahl der Sprache vorgesehen. Momentan sind drei Sprachen vorhanden: Englisch, Russisch und + Deutsch. Beim Ändern der Sprache ist kein Neustart des Programms erforderlich. softProjector + speichert die gewählte Sprache beim Beenden.

+

4. Hilfe-Menü:
+ Hier befinden sich Info und Hilfe über das Programm.

+

5. Vorbereitungsbereich:
+ Vor dem Anzeigen auf der Leinwand, muss ein Text gewählt und vorbereitet werden. + Nach dem Wählen des erforderlichen Textes, wird dieser auf dem "Vorschau-Fenster"angezeigt.

+

6. + Bible Bibel-Reiter:
+ In diesem Reiter ist es möglich, das schnelle Suchen eines Verses, falls die Bibelstelle unbekannt ist, + sowie Vorschau und Anzeigen an der Leinwand, zu unternehmen. Ausführlicher: "Bibel + anzeigen".

+

7. + Songs Lied-Reiter:
+ Dieses Programm ist hauptsächlich dafür gedacht, die Lieder an der Leinwand anzuzeigen. In diesem Reiter kann + man ein Lied ganz leicht finden und anschauen. Bei Bedarf können Lieder bearbeitet, neue hinzugefügt oder gelöscht werden. + Mehr Info: "Lied Lieder".

+

8. + Announce Ankündigung-Reiter:
+ softProjector ermöglicht es, einen beliebigen Text zu jeder Zeit anzuzeigen. Mehr Info: + "Ankündigung anzeigen".

+

9. Leinwandbereich:
+ Beim drücken auf "Anzeigen" -Knopf, wird die vorbereitete Information auf + "Leinwandbereich" angezeigt. Alle Änderungen, die in diesem Fenster unternommen wurden, + werden sofort auf der Leinwand angezeigt.

+
Previous
Next
+ \ No newline at end of file diff --git a/help/overview_ru.html b/help/overview_ru.html new file mode 100644 index 0000000..9459101 --- /dev/null +++ b/help/overview_ru.html @@ -0,0 +1,104 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

1.3 Обзор программы

+

 

+

+ Overview
+ Интерфейс программы состоит из двух главных частей: подготовительная и экранная. + В подготовительной части тексты выбираются и просматриваются перед выводом на экран. +

+

1. Меню "Файл":
+ Содержит только одну опцию: Выход"Выход," + выход из программы.

+

2. Меню "Правка":
+ Содержит опции редактирования песен, управления базой данных и общие настройки программы

+
+

2.1 + Add new song + "Новая песня"
+ В программе есть возможность добавления песен и сборников по усмотрению пользователя. + Для этого имеется опция Новая песня .

+

2.2 + Edit song + "Редактировать песню"
+ Редактируется выбранная на данный момент песня. Подробнее

+

2.3 + Delete a song + "Копировать песню"
+ Выбранная песня копируется в новый или существующий сборник. Подробнее

+

2.4 + Delete a song + "Удалить песню"
+ Выбранная песня удаляется из сборника. Подробнее

+

2.5 + Database + "Управление базой данных"
+ В программе предусмотрена возможность импортирования / экспортирования / редактирования и удаления + Библий и + песенников.

+

2.6 + Settings + "Настройки"
+ Изменение настроек программы. + Настройки шрифтов, фона, Библий и других параметров программы.

+
+

3. Меню "Язык":
+ В программе предусмотрен выбор языка интерфейса. На данный момент доступны три языка: английский, + русский и немецкий. При переключении на другой язык не требуется перезапуск программы. + Программа запоминает язык интерфейса при закрытии .

+

4. Меню "Справка":
+ Здесь находится информация о программе и справочник.

+

5. Подготовительная часть интерфейса:
+ Перед выводом на экран, текст нужно выбрать и подготовить. + После выбора необходимого текста, он выводится на окно + Предварительного просмотра.

+

6. + Bible Закладка "Библия":
+ На этой закладке можно осуществлять быстрый поиск стиха, если неизвестно его местонахождение, + его просмотр и вывод на экран. Подробнее

+

7. + Songs Закладка "Песни":
+ Данная программа главным образом предназначена для вывода на экран песен. + На этой закладке песню можно легко найти и просмотреть. При необходимости, песни можно + редактировать, добавлять новые или удалять. Подробнее

+

8. + Announce Закладка "Объявления":
+ Программа позволяет выводить на экран любой текст в любое время, по усмотрению пользователя. + Подробнее

+

9. Окно вывода на экран:
+ При нажатии на кнопку "На экран", вся подготовленная информация переводится в + "Окно вывода на экран ." Всякие изменения, сделанные в этом окне, будут отображаться + на экране немедленно.

+
Previous
Next
+ \ No newline at end of file diff --git a/help/releasenotes.html b/help/releasenotes.html new file mode 100644 index 0000000..7eaff5a --- /dev/null +++ b/help/releasenotes.html @@ -0,0 +1,72 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

6.2 Release Note

+
+
SoftProjector 1.0 release:
+
+
New Features:
+
+
Full English, Russian, and German help manual
+
A song tile must exist in order to add a song
+
+
Bug Fixes:
+
+
Some special Bible verse correspondence fix
+
Announcement alignment fix
+
+
+
+
+
Beta 2: changes since beta 1 release:
+
+
New Features:
+
+
Ability to move songs up and down in the playlist
+
Copy songs into new or existing songbooks
+
Memorizes to which songbook last song was added
+
+
Bug Fixes:
+
+
Manage database dialog is resizable
+
Optimized the bible filter entry field for much faster lookup
+
Only song text is copied into song edit widget.
+
Song tab selection fix
+
prevent edit/copy/delete a none selected song in the start-up of the program
+
+
+
+
Previous
Next
+ \ No newline at end of file diff --git a/help/releasenotes_de.html b/help/releasenotes_de.html new file mode 100644 index 0000000..aabfc6f --- /dev/null +++ b/help/releasenotes_de.html @@ -0,0 +1,72 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

6.2 Merkmale zu dieser Version

+
+
SoftProjector 1.0 Erscheinen:
+
+
Neue Möglichkeiten:
+
+
Ausführliche Englisch, Russisch und Deutsch Hilfe-Handbuch
+
Ein Lied Fliese muss vorhanden sein, um einen Titel hinzuzufügen
+
+
Programmfehler:
+
+
Einige spezielle Bibelvers Korrespondenz fix
+
Bekanntmachung Ausrichtung fixieren
+
+
+
+
+
Beta 2: Änderungen seit dem Erscheinen des Beta 1:
+
+
Neue Möglichkeiten:
+
+
Versetzen der Lieder nach oben und unten in der "Abspiel"-Liste
+
Kopieren der Lieder in ein neues oder in ein vorhandenes Gesangbuch
+
Beibehaltung des Gesangbuches, in das bei letzter Nutzung ein Lied hinzugefügt wurde
+
+
Programmfehler:
+
+
Das Dialog-Fenster der Datenbank hat jetzt eine veränderbare Größe.
+
Der Suche-Filter der Bibel wurde für eine schnellere Arbeit optimiert.
+
Beim Kopieren der Lieder, wird in das Feld nur der Text des Liedes eingefügt.
+
Die Wahl im Lieder-Reiter wurde "repariert".
+
Schutz vor einem möglichen Bearbeiten/Kopieren/Löschen des Liedes beim Start des Programms.
+
+
+
+
Previous
Next
+ \ No newline at end of file diff --git a/help/releasenotes_ru.html b/help/releasenotes_ru.html new file mode 100644 index 0000000..40df5d6 --- /dev/null +++ b/help/releasenotes_ru.html @@ -0,0 +1,72 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

6.2 Заметки по данному выпуску программы

+
+
 Выпуск SoftProjector 1.0:
+
+
Новые возможности:
+
+
Полный справочник на русском, немецком и английском языках
+
Для добавления новой песни, необходимо иметь название этой песни
+
+
Исправления:
+
+
Некоторые несоответствия между стихами разных переводов Библии
+
Проблемы с выравниванием текста в объявлениях
+
+
+
+
+
Бета 2: изменения с момента выпуска Беты 1:
+
+
Новые возможности:
+
+
Перемещение песен вверх и вниз в списке воспроизведения
+
Копирование песен в новый или существующий сборник
+
Запоминание сборника в который была добавлена песня в последний раз
+
+
Исправления:
+
+
Диалоговое окно базы данных теперь имеет изменяемый размер
+
Оптимизирован фильтр поиска по Библии для более быстрой работы
+
При копировании песен, в поле вводится только текст песни.
+
Исправлен выбор закладки "Песни"
+
Защита от случайного редактирования / копирования /удаления песни при запуске программы
+
+
+
+
Previous
Next
+ \ No newline at end of file diff --git a/help/shortcuts.html b/help/shortcuts.html new file mode 100644 index 0000000..ffacc5d --- /dev/null +++ b/help/shortcuts.html @@ -0,0 +1,87 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

6.1 Shortcuts

+
+
Main window
+
+
Ctrl+M - Open Manage Database dialog box
+
Ctrl+Q - Exit program
+
Ctrl+T - Open Settings dialog box
+
Esc - Hide the text on display screen and show black of passive + background
+
F1 - Open Help
+
F4 - Resume presentation. Show selected item from live list
+
F6 - Switch to Bible tab
+
F7 - Switch to Songs tab
+
F8 - Switch to Announcements tab
+
+
Bible Tab
+
+
F2 - Add current verse in preview list to history list
+
F3 - Remove a verse form history list
+
F5 - Send current verse to show
+
+
Songs Tab
+
+
Ctrl+C - Copy a song into a new or other existing songbook
+
Ctrl+D - Delete a song
+
Ctrl+E - Edit a song
+
Ctrl+N - Add a new song
+
F2 - Add current song to playlist
+
F3 - Remove a remove a song from playlist
+
F5 - Send current song to show
+
+
Announcements Tab
+
+
F2 - Add text to history list
+
F3 - Remove a announcement form history list
+
F5 - Send announcement to show
+
+
Manage Database Dialog for both Bibles and Songbooks tabs
+
+
Ctrl+E - Edit
+
Ctrl+D - Delete
+
Ctrl+I - Import
+
Ctrl+X - Export
+
Esc - Close dialog
+
+
Edit Song dialog
+
+
Ctrl+Q - Close dialog without saving
+
Ctrl+S - Save song and close
+
+
+ +
Previous
Next
+ \ No newline at end of file diff --git a/help/shortcuts_de.html b/help/shortcuts_de.html new file mode 100644 index 0000000..0488ce0 --- /dev/null +++ b/help/shortcuts_de.html @@ -0,0 +1,87 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

6.1 Abkürzungen

+
+
Hauptfenster
+
+
Ctrl+M - Verwaltung der Datenbank
+
Ctrl+Q - Beenden des Programms
+
Ctrl+T - Einstellungen
+
Esc - Text verstecken auf dem Bildschirm, schwarzen Hintergrund auf dem passiven + Hintergrund anzeigen
+
F1 - Hilfe
+
F4 - Anzeige erneuern. Das Gewählte aus der "Abspiel"-Liste anzeigen
+
F6 - Bibeln-Reiter
+
F7 - Lieder-Reiter
+
F8 - Ankündigungen-Reiter
+
+
Bibeln-Reiter
+
+
F2 - Hinzufügen eines Verses aus dem Vorschau in die Liste der Geschichte
+
F3 - Entfernen des Verses aus der Liste der Geschichte
+
F5 - Anzeigen des Verses auf dem Bildschirm
+
+
Lieder-Reiter
+
+
Ctrl+C - Kopieren eines Liedes in ein neues oder in ein vorhandenes Gesangbuch
+
Ctrl+D - Löschen des Liedes
+
Ctrl+E - Bearbeiten des Liedes
+
Ctrl+N - Hinzufügen eines neuen Liedes
+
F2 - Hinzufügen des Liedes in die "Abspiel"-Liste
+
F3 - Entfernen des Liedes aus der "Abspiel"-Liste
+
F5 - Anzeigen des Liedes auf dem Bildschirm
+
+
Ankündigungen-Reiter
+
+
F2 - Hinzufügen eines Ankündigunstextes in die Liste der Geschichte
+
F3 - Entfernen des Ankündigunstextes aus der Liste der Geschichte
+
F5 - Anzeigen des Ankündigungstextes
+
+
Verwaltung der Datenbank für Bibeln- und Gesangbücher-Reiter
+
+
Ctrl+E - Bearbeiten
+
Ctrl+D - Löschen
+
Ctrl+I - Importieren
+
Ctrl+X - Exportieren
+
Esc - Schließen
+
+
Lied bearbeiten
+
+
Ctrl+Q - Schließen des Fensters ohne jeglicher Änderung
+
Ctrl+S - Änderungen speichern und Fenster schließen
+
+
+ +
Previous
Next
+ \ No newline at end of file diff --git a/help/shortcuts_ru.html b/help/shortcuts_ru.html new file mode 100644 index 0000000..4fce671 --- /dev/null +++ b/help/shortcuts_ru.html @@ -0,0 +1,87 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

6.1 Горячие клавиши

+
+
В главном окне:
+
+
Ctrl+M - Управление базой данных
+
Ctrl+Q - Выход из прогаммы
+
Ctrl+T - Настройки
+
Esc - Спрятать текст на экране, показать черный фон или заставку
+
F1 - Справка
+
F4 - Возобновить показ. Показать выбранное из списка воспроизведения.
+
F6 - Закладка "Библии"
+
F7 - Закладка "Песни"
+
F8 - Закладка "Объявления"
+
+
На закладке "Библии":
+
+
F2 - Добавить стих из предосмотра в список истории
+
F3 - Удалить стих из списка истории
+
F5 - Показать стих на экране
+
+
На закладке "Песни":
+
+
Ctrl+C - Копировать песню в новый или существующий сборник
+
Ctrl+D - Удалить песню
+
Ctrl+E - Редактировать песню
+
Ctrl+N - Добавить новую песню
+
F2 - Добавить песню в список воспроизведения
+
F3 - Удалить песню из списка воспроизведения
+
F5 - Показать песню на экране
+
+
На закладке "Объявления":
+
+
F2 - Добавить текст объявления в список истории
+
F3 - Удалить текст объявления из списка истории
+
F5 - Показать объявление на экрани
+
+
В диалоговом окне "Управление базой данных": + (действительно для закладок Библии и Сборники)
+
+
Ctrl+E - Редактировать
+
Ctrl+D - Удалить
+
Ctrl+I - Импортировать
+
Ctrl+X - Экспортировать
+
Esc - Закрыть диалоговое окно
+
+
В диалоговом окне "Редактировать песню":
+
+
Ctrl+Q - Закрыть диалоговое окно без сохранения изменений
+
Ctrl+S - Сохранить изменения и закрыть окно
+
+
+ +
Previous
Next
+ \ No newline at end of file diff --git a/help/show.html b/help/show.html new file mode 100644 index 0000000..b417ce3 --- /dev/null +++ b/help/show.html @@ -0,0 +1,67 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.1 Showing - General + Information

+

 

+

+ Main Screenshot
+ softProjector is designed as 3 part; the prepare area, live area; and + the "Go Live" button.

+

1. Prepare Area:
+ This is the area where the user finds the Bible verse, song, or other media + that he would like to show. Anything done in this area will not affect what + is showing until "Go Live" button is clicked.

+

2. Live Area:
+ After "Go Live" button has been clicked, the selected Bible chapter/song is + populated in the show list. While "Show" is checked, changing selected any + item from the list will change what is shown, it will show currently + selected item. Double clicking on the show list will activate "Show" button + and send selected item to be shown.

+
+
2.1 "Hide" Button:
+ When "Hide" button is clicked, it becomes checked and "Show" button becomes + unchecked. The display screen clears all the text and background goes from + active to passive.
+
2.2 "Show" Button:
+ "Show" button is automatically checked when "Go Live" button is pressed. + When "Show" button is clicked, it becomes checked and "Hide" button becomes + unchecked. The display screen background switches from passive to active and + newly selected item in the show list.
+
+

3. "Go Live" Button:
+ "Go Live" button has the same function on all tab. It send prepared Bible + verse / Song / etc. to be shown. After it is clicked, the show list get + repopulated with new information and proper items gets selected, "Show" + button is activated and the verse is shown.

Previous
Next
+ \ No newline at end of file diff --git a/help/show_de.html b/help/show_de.html new file mode 100644 index 0000000..c7e6500 --- /dev/null +++ b/help/show_de.html @@ -0,0 +1,66 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.1 Vorführung auf dem Bildschirm

+

 

+

+ Show Main
+ softProjector besteht hauptsächlich aus drei Teilen: Vorbereitung, Vorführung auf dem Bildschirm und + "Anzeigen" -Knopf.

+

1. Vorbereitung:
+ In diesem Teil befinden sich Texte aus der Bibel, Lieder und alles das, was auf dem Bildschirm angezeigt werden soll. + Alles das, was in diesem Teil vorbereitet wird, hat keinen Einfluss auf das, was angezeigt werden soll, solange der + "Anzeigen" -Knopf nicht gedrückt wird.

+

2. Vorführung auf dem Bildschirm:
+ Nachdem der "Anzeigen" -Knopf gedrückt wurde, erscheinen gewählte Bibeltext oder Lied in der Anzeige-Liste. + Beim drücken "Zeigen" kann man mit der Maus aus der Anzeige-Liste wählen. + Während dessen wird der gewählte Text auf dem Bildschirm angezeigt. Beim Doppelklick + auf das Anzeige-Fenster, wird der "Zeigen" -Knopf aktiviert und sendet + den gewählten Text auf den Bildschirm.

+
+
2.1 "Verstecken" -Knopf:
+ Beim drücken des "Verstecken" -Knopfes, wird der "Zeigen" -Knopf deaktiviert + und die ganze Information verschwindet vom Bildschirm. + Während dessen wird das aktive Bild ins passive gewechselt.
+
2.2 "Zeigen" -Knopf:
+ "Zeigen" -Knopf wird automatisch aktiviert beim drücken des "Anzeigen" -Knopfes. + Beim drücken des "Zeigen" -Knopfes wird der "Verstecken" -Knopf deaktiviert. + Während dessen wird das passive Bild ins aktive gewechselt, aber der gewählte Text wird in + in die Liste eingetragen.
+
+

3. "Anzeigen" -Knopf:
+ "Anzeigen" -Knopf erfüllt die gleiche Funktion in allen Reitern, d.h. sendet die ausgewählten + Bibelverse/Lieder/Texte usw. auf den Bildschirm. Beim drücken des Knopfes wird die Anzeige-Liste + mit den gewählten Texten gefüllt, und der "Zeigen" + -Knopf wird aktiviert. Auf dem Bildschirm erscheint der gewählte Text.

Previous
Next
+ \ No newline at end of file diff --git a/help/show_ru.html b/help/show_ru.html new file mode 100644 index 0000000..5be0b34 --- /dev/null +++ b/help/show_ru.html @@ -0,0 +1,63 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.1 Вывод на экран

+

 

+

+ Main Screenshot
+ Интерфейс Софт Проектора состоит из трех важнейших элементов: подготовительная часть, окно вывода на экран + и кнопка "На экран".

+

1. Подготовительная часть:
+ В этой части находятся тексты из Библии, песни и все остальное, что нужно вывести на экран. + Все то, что готовится в этой части, не влияет на то что показано на экране до тех пор, пока не нажата кнопка + "На экран".

+

2. Окно вывода на экран:
+ После нажатия на кнопку "На экран", выбранный текст Библии или песня + появляется в списке показа. + При нажатой кнопке "Показать", можно мышью выбирать из списка в окне показа, + при этом выбранный текст будет показан на экране. Двойной щелчок по окну показа + активирует кнопку "Показать" и отсылает выбранный текст на экран.

+
+
2.1 Кнопка "Скрыть" :
+ При нажатии на кнопку "Скрыть" , кнопка "Показать" деактивируется и с экрана исчезает + вся информация. При этом фоновый рисунок переходит в заставку.
+
2.2 Кнопка "Показать" :
+ Кнопка "Показать" активизируется автоматически при нажатии на кнопку "На экран". + При нажатии на кнопку "Показать" , деактивизируется кнопка "Скрыть" . При этом + заставка переходит в фоновый рисунок, а выбранный текст заносится в список/активируется в списке показа.
+
+

3. Кнопка "На экран" :
+ Кнопка "На экран" выполняет одинаковую функцию во всех закладках, т.е. отсылает приготовленные стихи + Библии / песни / тексты и т.д. на экран. При ее нажатии, список показа заполняется выбранными текстами, + активируется кнопка "Показать" и на экране появляется выбранный текст.

Previous
Next
+ \ No newline at end of file diff --git a/help/showannounce.html b/help/showannounce.html new file mode 100644 index 0000000..e7c4235 --- /dev/null +++ b/help/showannounce.html @@ -0,0 +1,64 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.4 Showing + Announcements

+

+ To show an announcement:
+ 1. Enter text. Enter announcement text the + text box.
+ 2. Click "Go Live" button.

+
+

+ Show Announcements

+

1. Announcement Edit Text Box:
+ Write announcement text in this box. All text is plain text without + formatting. Text can be multiline and as long as needed. +

+

2. Horizontal Alignment:
+ Set text alignment to Left of the screen, Center of the screen, or Right of + the screen.

+

3. Vertical Alignment:
+ Set text alignment to Top of the screen, Middle of the screen, or Bottom of + the screen.

+

4. "Add" Button:
+ Add announcement text that is in text box (1) to playlist (6).

+

5. "Remove" Button:
+ Remove selected announcement text from playlist.

+

6. Announcement Text Playlist:
+ This playlist hold prepared announcements for further use. As soon as an + item in playlist will be selected, it will change the text in the text + box(1) to what was selected.

+
Previous
Next
+ + diff --git a/help/showannounce_de.html b/help/showannounce_de.html new file mode 100644 index 0000000..32e3906 --- /dev/null +++ b/help/showannounce_de.html @@ -0,0 +1,58 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.4 Ankündigungen anzeigen

+

+ Für Anzeigen der Ankündigungen:
+ 1. Tragen Sie einen Text in das Text-Fenster ein.
+ 2. Klicken Sie auf "Anzeigen" -Knopf.

+
+

+ Show Announce

+

1. Ankündigunstext-Fenster:
+ Den Text kann man entweder eintippen oder aus dem Puffer eintragen. Er muss einfach, ohne Formatierung sein. + Die Länge des Textes und die Anzahl der Zeilen sind unbegrenzt.

+

2. Horizontale Ausrichtung:
+ Die Einstellung der Text-Ausrichtung: links, zentriert und rechts.

+

3. Vertikale Ausrichtung:
+ Die Einstellung der Text-Ausrichtung: oben, zentriert und unten.

+

4. "Hinzufügen" -Knopf:
+ Hinzufügen des Ankündigunstextes (1) in die "Abspiel"-Liste (6).

+

5. "Entfernen" -Knopf:
+ Entfernt den Ankündigungstext aus der Liste.

+

6. Ankündigungstext-"Abspiel"-Liste:
+ Dieser Text beinhaltet Ankündigungen für die nächste Nutzung. + Beim Wählen eines Textes aus dieser Liste wird der vorhandene Text in dem Text-Fenster(1) ausgetauscht.

+
Previous
Next
+ + diff --git a/help/showannounce_ru.html b/help/showannounce_ru.html new file mode 100644 index 0000000..97ce32c --- /dev/null +++ b/help/showannounce_ru.html @@ -0,0 +1,59 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.4 Показ объявлений

+

+ Для показа объявлений:
+ 1. Введите текст объявления в текстовое окно.
+ 2. Нажмите на кнопку "На экран".

+
+

+ Show Announcements

+

1. Текстовое окно:
+ Текст можно либо напечатать, либо ввести через буфер обмена. Он должен быть простым, без форматирования. + Длина текста и количество строк не ограничиваются. +

+

2. Горизонтальное выравнивание:
+ Установка выравнивания текста по левому краю, по центру или по правому краю экрана.

+

3. Вертикальное выравнивание:
+ Установка выравнивания текста по верхнему краю, по середине или по нижнему краю экрана.

+

4. Кнопка "Добавить":
+ Добавление текста объявления (1) в список воспроизведения (6).

+

5. Кнопка "Удалить":
+ Удаляет выбранный текст объявления из списка вывода.

+

6. Список объявлений для вывода:
+ Этот список содержит объявления для последующего употребления. + При выборе текста из этого списка, он замещает имеющийся текст в текстовом окне(1).

+
Previous
Next
+ + diff --git a/help/showbible.html b/help/showbible.html new file mode 100644 index 0000000..7bde19a --- /dev/null +++ b/help/showbible.html @@ -0,0 +1,128 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.2 Showing Bible Verse

+

+ softProjector allows you to show a Bible verse on the screen. You are allowed to show one verse at a time. Ability to show multiple verses will possibly be in future. You are also are allowed to show a verse from two Bibles + simultaneously.

+

+ To show a verse:
+ 1. Select a book from book list(13). You may also enter book name in book filter box(12) above book list. This will filter book and leave you only matching books.
+ 2. Select a chapter from chapter list. You may also enter chapter number in the text field above the chapter list.
+ 3. Select a verse from verse column. You may also enter chapter number in the text field above the chapter list.
+ 4. Click "Go Live" button. After you have + selected a verse that you want to show, you may click "Go Live" button or double click the verse.

+
+

Bible Screen

+

1. Bible Search Block:
+ An area where a particular Bible verse can be search by a phrase or a part + of a phrase.

+
+
2. Search text entry field:
+ Field where search word/phrase is entered. Search string is case insensitive + and all none alphanumeric characters will be removed.
+
3. Begins:
+ Search all verses that begin with the search word/phrase.
+
4. Contains:
+ Search all verses that contain the search word/phrase. Will also return all + verses that begin with search word/phrase.
+
5. Search Button:
+ When pressed, it will search Bible, and afterwards, will display results + below.
+
6. Entire Bible:
+ Limit search to the entire Bible. The search will be performed over entire + Bible.
+
7. Current Book:
+ Limit search to currently selected book. Will search only the book that is + selected.
+
8. Current Chapter:
+ Limit search to currently selected chapter. Will search only the chapter + that is selected of the book that is selected.
+
9. Search Result List:
+ This list will contain search results. Search word/phrase will be + highlighted in red. Search phrases that contain + punctuation marks or other none alphanumeric characters may not always be + highlighter. For example: search phrase "and God" will not highlight result + of  and, God", but will bring back the result.
+ SoftProjector will return only 281 results. A label below search result list + will notify how many results are returned and if it is over limit. If it + is over limit, please modify search word/phrase or other search options.
+ Double-click the a verse and it will sent selected verse to be shown.
+
10. Hide Results Button:
+ This will hide search result list.
+
+ +

11. Bible Look-up Block:
+ In this block, Bible passages are looked up and prepared to be shown

+
+
12. Quick Find Entry Field:
+ Quickly find Bible passage by entering book, chapter and verse separated by + a space(" "). While book, chapter, or verse is entered, it will + automatically select corresponding passage. After passage information is + entered, and correct verse is selected, just press "F5" or click on "Go + Live" button.
+ Book can be beginning or part of a book, entire book name is not required, + ex: mat for Matthew. Incases where book names + are in series, do not use space the number and book name, ex: use + 1cor instead of 1 + cor for 1st Corinthians. Few examples of full passage selection: + da 3 12 for Daniel 3:12; + 1the 5 8 for 1st Thessalonians 5:8.
+
13. Book List:
+ Hold either entire list of book or only the list that matches entry in the + quick find field. Select the book.
+
14. Chapter Entry Field and List:
+ Chapter can be entered in the entry field or selected from the list.
+
15. Verse Entry Field and List:
+ Verse can be entered in the entry field or selected from the list.
+ Double-click on a verse in the list and it will be sent to be shown.
+
+

16. History/Hold Block:
+ History/Hold block contains verses that have been sent to be shown or verses + that has been added by "Add" button.

+
+
17. "Add" Button:
+ "Add" button will add selected passage above and add it to the history list.
+
18. "Remove" Button:
+ "Remove" button will remove selected verse in the list and remove it from + the list.
+
19. "Clear" Button:
+ "Clear" button will clear entire history list.
+
20 History Verse List:
+ After a verse is sent to be shown, it will be stored in this list until + removes. Double-click a verse and it will be shown again without adding it + second time to the list.
+
+
Previous
Next
+ + diff --git a/help/showbible_de.html b/help/showbible_de.html new file mode 100644 index 0000000..dc9b4de --- /dev/null +++ b/help/showbible_de.html @@ -0,0 +1,121 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.2 Anzeigen der Bibelverse

+

+ softProjector kann gleichzeitig nur einen Bibelvers anzeigen. Eine Option für das Anzeigen mehrerer Verse - ist eine Sache der Zukunft. + Es kann auch der gleiche Bibelvers aus zwei verschiedenen Bibelversionen angezeigt werden.

+

+ Für das Anzeigen des Bibelverses:
+ 1. Wählen Sie ein Buch der Bibel (13). Man kann auch ein Buch über den Filter (12) in dem Fenster über dem Buchverzeichnis der Bibel wählen.
+ 2. Wählen Sie ein Kapitel aus dem Verzeichnis, oder geben Sie manuell eine Nummer des Kapitels in dem Text-Fenster über dem Kapitel-Verzeichnis.
+ 3. Wählen Sie einen Vers aus der Vers-Spalte, oder geben Sie manuell eine Nummer des Verses in dem Text-Fenster über der Vers-Spalte.
+ 4. Klicken Sie den "Anzeigen"-Knopf. Nachdem ein gesuchter Vers gewählt wurde, + drücken Sie den "Anzeigen" -Knopf, oder doppelklicken Sie mit der Maus auf den Vers.

+
+

+ Show Bible

+

1. Suche in der Bibel:
+ Hier kann man einen Vers nach Phrase oder Wort suchen/finden.

+
+
2. Such-Fenster nach Text:
+ Hierhin werden Worte/Phrasen für die Suche eingefügt. Das Such-Fenster ist zum Register empfindlich + und alle Zeichen, außer Buchstaben-Zahlen, werden automatisch entfernt.
+
3. Beginn:
+ Suche nach Versen, die mit der/dem angegebener/m Phrase/Wort anfangen.
+
4. Enthält:
+ Suche nach Versen, die das/die angegebene Wort/Phrase enthält. Gleichzeitig werden + auch Verse gefunden, die mit der/dem angegebener/m Phrase/Wort anfangen.
+
5. "Suche"-Knopf:
+ Beim drücken dieses Knopfes werden Suche in der Bibel und Anzeigen der Ergebnisse im unteren Fenster + durchgeführt.
+
6. Suche in der ganzen Bibel:
+ Suche wird in der ganzen Bibel durchgeführt.
+
7. Suche in dem gewählten Buch:
+ Such wird in dem gewählten Buch durchgeführt.
+
8. Suche in dem gewählten Kapitel:
+ Suche wird nur in dem gewählten Kapitel durchgeführt.
+
9. Ergebnis der gefundenen Verse:
+ In diesem Fenster werden die Ergebnisse der Suche angezeigt. Die für die Suche angegebenen Worte/Phrasen + werden mit rot gekennzeichnet. Aber Phrasen, die Zeichen wie Punkt, Komma + oder nicht alphabetisch-nummerische Zeichen enthalten, werden nicht immer rot gekennzeichnet, obwohl + diese in dem Fenster der gefundenen Verse angezeigt werden. Z.B.: Suche eine Phrase "und Gott" wird nicht mit rot gekennzeichnet, + obwohl das Ergebnis mit   und, Gott" angezeigt wird.
+ SoftProjector kann nicht mehr als 281 Verse als Ergebnis herausgeben. Während dessen wird unter dem Fenster der gefundenen Versen + die Anzahl angezeigt sowie die Limitüberschreitung, wenn dies der Fall wäre. Bei einer Limitüberschreitung muss das/die gesuchte Wort/Phrase + geändert oder eine andere Suchoption verwendet werden.
+ Double-click the a verse and it will sent selected verse to be shown.
+
10. "Ergebnis-Verstecken"-Knopf:
+ Beim drücken dieses Knopfes verschwindet das Fenster mit den gefundenen Versen.
+
+ +

11. Block der Bibelbetrachtung:
+ In diesem Block kann man die Bibelverse vor dem Anzeigen auf der Leinwand betrachten und vorbereiten.

+
+
12. Fenster der Schnellsuche:
+ Man kann eine Bibelstelle sehr schnell finden, indem man den Namen des Buches, Kapitel und Vers (getrennt durch ein Lehrzeichen) + (" ") in dieses Fenster einfügt. Das Programm findet den gesuchten Vers automatisch. + Nachdem der Vers gefunden wurde, drücken Sie "F5" oder klicken Sie auf den "Anzeigen" -Knopf.
+ Es ist nicht unbedingt nötig, den vollen Name eines Buches der Bibel einzugeben. Es ist genügend, ein paar Anfangsbuchstaben + einzugeben, wie z.B.: matfür Matthäus. Falls ein Buch eine Zahl hat, so ist dieses mit einem Lehrzeichen + einzugeben, d.h. für die Suche 1. Korinther: verwenden + 1kor statt 1 + kor . Beispiele für eine richtige Eingabe: + da 3 12 für Daniel 3:12; + 1the 5 8 für 1. Thessalonicher 5:8 usw.
+
13. Buch-Verzeichnis:
+ Enthält entweder eine Liste aller Bücher der Bibel oder nur die, die in das Fenster der Bücherwahl eingegeben worden sind.
+
14. Fenster für Eingabe und Kapitel-Verzeichnis:
+ Eine Nummer des Kapitels kann man entweder im Fenster eingeben oder aus dem Verzeichnis wählen.
+
15. Fenster für Eingabe und Vers-Verzeichnis:
+ Eine Nummer des Verses kann man entweder im Fenster eingeben oder aus dem Verzeichnis wählen.
+ Beim Doppelklick auf den Vers im Verzeichnis, wird der Vers in das Fenster des Bildschirmes übertragen.
+
+

16. Block der Geschichte und der provisorischen Aufbewahrung:
+ In diesem Teil werden Verse, die zum Anzeigen gesendet wurden sowie + hinzugefügt wurden mifhilfe des "Hinzufügen" -Knopfes.

+
+
17. "Hinzufügen" -Knopf:
+ Beim Drücken des "Hinzufügen" -Knopfes werden die oben gewählten Verse in das Geschichte-Verzeichnis hinzugefügt.
+
18. "Löschen" -Knopf:
+ Beim Drücken des "Löschen" -Knopfes werden die gewählten Verse aus dem Geschichte-Verzeichnis gelöscht.
+
19. "Säubern" -Knopf:
+ Beim Drücken des "Säubern" -Knopfes wird das komplette Geschichte-Verzeichnis entfernt.
+
20. Geschichte-Verzeichnis:
+ Ein jeglicher Vers, der auf dem Bildschirm angezeigt wurde, wird in das Geschichte-Verzeichnis eingetragen + und bleibt dort bis zu seiner Entfernung. Beim Doppelklick auf den Vers, wird dieser auf dem Bildschirm angezeigt, + ohne der wiederholten Eintragung in das Geschichte-Verzeichnis.
+
+
Previous
Next
+ + diff --git a/help/showbible_ru.html b/help/showbible_ru.html new file mode 100644 index 0000000..d16be8a --- /dev/null +++ b/help/showbible_ru.html @@ -0,0 +1,129 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.2 Показ стихов из Библии

+

+ Софт Проектор может показывать одновременно только один стих из Библии. + Опция показа сразу нескольких стихов возможно появится в будущем. + Можно также показывать один и тот же стих сразу из двух разных Библий.

+

+ Для показа стиха:
+ 1. Выберите книгу Библии из списка (13). + Можно выбрать книгу также по фильтру (12) в окне над списком книг Библии.
+ 2. Выберите главу из списка, + либо задайте номер главы вручную в текстовом окошке над списком глав.
+ 3. Выберите стих из столбца со стихами, + либо задайте номер стиха вручную в текстовом окошке над столбцом со стихами.
+ 4. Нажмите кнопку "На экран". + После того как выбран нужный стих, можно нажать кнопку "На экран" + либо дважды щелкнуть мышью по стиху.

+
+

Bible Screen

+

1. Поиск по Библии:
+ Здесь можно искать стихи Библии по фразе или по словам.

+
+
2. Окно поиска по тексту:
+ Сюда вводятся слова/фразы для поиска. Окно поиска чувствительно к регистру, + а все знаки, кроме буквенно-цифровых, автоматически удаляются.
+
3. Начинается:
+ Поиск стихов, которые начинаются с заданного слова или фразы.
+
4. Содержит:
+ Поиск стихов, которые содержат заданное слово или фразу. + Одновременно находятся стихи, которые начинаются с этого же слова или фразы.
+
5. Кнопка "Поиск":
+ При ее нажатии осуществляется поиск по Библии и вывод результатов в нижнем окне.
+
6. Поиск по всей Библии:
+ Поиск осуществляется по всей Библии.
+
7. Поиск по выбранной книге:
+ Поиск осуществляется только по выбранной книге Библии.
+
8. Поиск по выбранной главе:
+ Поиск осуществляется только по выбранной главе.
+
9. Список найденных стихов:
+ В этом окне выводятся результаты поиска. Заданные для поиска слова или фразы обозначаются + красным цветом. Однако фразы, содержащие знаки пунктуации + или не алфавитно-номерные знаки не всегда обозначаются красным, хотя и будут + выведены в окно найденных стихов. + Например: заданная фраза "свет что" не обозначится красным цветом, + хотя поиск выдаст результат "свет, что".
+ Софт Проектор может выводить в результате поиска не более 281 стихов. + При этом под окном найденных стихов показывается их количество, а также указывается + превышение лимита, если он случается. При превышении лимита, + нужно изменить искомое слово или фразу, либо использовать другие опции поиска.
+ Двойной щелчок по стиху отсылает его в правое окно для показа на экране.
+
10. Кнопка "Скрыть найденное":
+ При ее нажатии исчезает окно с найденными стихами.
+
+ +

11. Блок просмотра Библии:
+ В этой части интерфейса можно просматривать и готовить стихи Библии + перед их выводом на экран.

+
+
12. Окно быстрого поиска:
+ Быстро найти место из Библии можно, если ввести в это окно + название книги, главу и стих, разделенные пробелами (" "). + При этом программа найдет нужный стих автоматически. + После того, как стих найден, нажмите "F5" или щелкните по кнопке "На экран".
+ Не обязательно вводить полное название книги, достаточно нескольких начальных букв, + например: мар для Марка. + Если у книги есть номер, то между номером и названием книги не нужен пробел, т.е. + для поиска 1 Коринфянам, нужно вводить не1 кор , + а 1кор . + Примеры правильного ввода для поиска: + для Даниила 3:12 - нужно ввести: да 3 12; + для 1 Фессалоникийцам 5:8 - нужно ввести: 1фес 5 8, и т.д.
+
13. Список книг:
+ Содержит либо список всех книг Библии, либо только тех, которые заданы в окне выбора книги.
+
14. Окно ввода и список глав:
+ Номер главы можно либо задать в окне, либо выбрать из списка.
+
15. Окно ввода и список стихов:
+ Номер стиха можно либо задать в окне, либо выбрать из списка.
+ Двойной щелчок по стиху в списке переносит его в окно вывода на экран.
+
+

16. Блок истории и временного хранения:
+ В этой части интерфейса содержатся стихи, которые были посланы на экран, + а также добавленные с помощью кнопки "Добавить".

+
+
17. Кнопка "Добавить":
+ С помощью кнопки "Добавить" выбранные выше стихи добавляются в список истории.
+
18. Кнопка "Удалить":
+ С помощью кнопки "Удалить" выбранные стихи удаляются из списка истории.
+
19. Кнопка "Очистить":
+ С помощью кнопки "Очистить" удаляется сразу весь список истории.
+
20 Список истории:
+ Всякий стих, показанный на экране, заносится в список истории + и находится там до его удаления. Двойной щелчок по стиху + выводит его на экран без повторного занесения в список.
+
+
Previous
Next
+ + diff --git a/help/showsongs.html b/help/showsongs.html new file mode 100644 index 0000000..2760d82 --- /dev/null +++ b/help/showsongs.html @@ -0,0 +1,114 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.3 Showing Songs

+

+ To show a song:
+ 1. Select a songbook (2). You may keep + songbook drop box stay at all songbook and use filter box + to help find the song. In order to use the song number entry filed (3), + a specific songbook needs to be selected.
+ 2. Select a song. To select a song, you may + just select a song from song title table (8). When a specific songbook + is selected, you may enter the number in the song number entry field or + in the filter filed.
+ 3. Click "Go Live" button. After you have + selected a song, clicking "Go Live" will show currently selected + verse/refrain in the song preview list. First item in the song preview + list will be always automatically selected when a song is selected. + Alternatively you may double click any verse/chorus from the preview + list and it will send current song to be shown and double clicked item + as current item.

+
+

Show Songs

+

1. Song Lookup Block:
+

+
+
2. Songbook Drop-Down Box:
+ Select which songbook to use. Selecting "All songbooks" will show all song + in song table (8) that are in the database. Selecting a particular songbook, + will filter out everything else and leave only songs from selected songbook.
+
3. Song Number Box:
+ Song number box is only enabled when a particular songbook is selected and + never when "All songbooks" is selected. Entering a number will only select a + song from song table but not filter anything out. It will set entire + songbook in the song table, sort song by the number and select entered song + number.
+
4. Filter Entry Field:
+ Entering filter text/phrase, will filter songs from song table that match + filter text/phrase.
+
5. Contains:
+ Will filter all matches that contain anywhere the filter text. Will not + search the body of the song, only titles and number.
+
6. Begins:
+ Filter all matches that start with filter text.
+
7. Exact Match:
+ Will filter out only the one that match entirely to the filter text. Is very + useful for song number. Sometime can be used instead of song number box(3).
+
8. Song Table:
+ Holds songs either all or filtered out songs. Selecting a song in the table + will show it in the preview list. Double-clicking, will add selected song to + playlist table.
+
+ +

9. Playlist Block:
+ Add and store songs in a playlist.

+
+
10. "Add" Button:
+ Add a song that is selected in the song table to playlist table. This button + is only enabled when a song is selected and in focus in the song table; + becomes disable when playlist table becomes focused.
+
11. "Remove" Button:
+ Remove a selected song from playlist table.
+
12. "Up" Button:
+ Move selected song up the list in the playlist table.
+
13. "Down" Button:
+ Move selected song down the list in the playlist table.
+
14. Playlist Table:
+ Holds playlist songs. Selecting a song in the table will show it in the + preview list. Double-clicking a song, will send the song to be shown on the + screen.
+
+

15. Preview Block:
+ In this are, you are able to preview the song and read the text of the song + before sending it live. Each time a different song is selected in the song + table or playlist table, preview will change to display selected song.
+ Clicking "Go Live" button will send current song in the preview to be shown + with currently selected verse to be displayed on screen. Double-clicking a + verse, will also send the song to live and double-clicked verse to be + displayed.

+
Previous
Next
+ + + diff --git a/help/showsongs_de.html b/help/showsongs_de.html new file mode 100644 index 0000000..5006f45 --- /dev/null +++ b/help/showsongs_de.html @@ -0,0 +1,107 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.3 Lieder anzeigen

+

+ Für Lieder anzeigen:
+ 1. Gesangbuch-Auswahl (2). Man kann alle Gesangbücher gleichzeitig + geöffnet halten und Lieder über den Filter wählen. Aber, um eine Nummer des Liedes in dem Fenster rechts (3), + einzugeben, muss ein bestimmtes Gesangbuch gewählt werden.
+ 2. Lied-Wahl. Für die Wahl eines Liedes kann man + das Verzeichnis benutzen (8). Wenn ein bestimmtes Gesangbuch gewählt worden ist, + so kann man eine Nummer des Liedes entweder in das Fenster mit den Nummern (rechts) oder + in das Fenster des Filters eingeben..
+ 3. Klicken Sie den "Anzeigen"-Knopf. Nachdem ein Lied + gewählt wurde, wird es in das Vorschau-Fenster eingetragen. Beim Drücken des "Anzeigen"-Knopfes, + wird der erste Vers/die erste Strophe des Liedes automatisch zum Anzeigen gesendet. + Falls es notwendig ist, eine(n) andere(n) Vers/Strophe zum Anzeigen bringen, müssen Sie + auf diese(n) Vers/Strophe im Vorschu-Fenster doppelklicken.

+
+

+ Show Song

+

1. Vorschau-Block der Lieder:
+

+
+
2. Drop-Down-Liste der Gesangbücher:
+ Wählen Sie ein bestimmtes Gesangbuch. Wenn die Option "Alle Gesangbücher" gewählt worden ist, werden + in dem Verzeichnis (8) alle Lieder, die in der Datenbank vorhanden sind, angezeigt. + Wenn ein bestimmtes Gesangbuch gewählt worden ist, werden in diesem Verzeichnis nur Lieder aus diesem Gesangbuch angezeigt.
+
3. Fenster der Lieder-Nummern:
+ Dieses Fenster wird nur dann aktiviert, wenn ein bestimmtes Gesangbuch gewählt worden ist, + und bleibt grau, wenn die Option "Alle Gesangbücher" gewählt worden ist. Beim Einfügen einer Nummer in dieses Fenster, + wird das volle Lieder-Verzeichnis des Gesangbuches, in dem das Lied mit der eingefügten Nummer markiert ist, angezeigt.
+
4. Filter-Fenster:
+ Hiehin wird ein(e) Wort/Phrase des gesuchten Liedes eingefügt. In dem Verzeichnis werden nur Lieder angezeigt, + die dem eingefügem Text entsprechen.
+
5. Enthält-Knopf:
+ Werden alle Lieder angezeigt, wo der eingegebene Text vorkommt. + Die Suche wird nur nach Nummern und den Namen der Lieder durchgefüht, nicht nach dem ganzen Text.
+
6. Beginnt-Knopf:
+ Werden alle Lieder angezeigt, die mit dem eingegebenem Text anfangen.
+
7. Genaue Übereinstimmung-Knopf:
+ Werden nur Lieder angezeigt, die mit dem eingegebenem Text genau übereinstimmen. Diese Option + ist sehr hilfreich für die Suche einer bestimmten Nummer des Liedes. Dies kann man statt Nummer-Fenster (3) benutzen.
+
8. Lieder-Verzeichnis:
+ Kann entweder einen vollen Verzeichnis der Lieder oder ein Such-Ergebnis enthalten. Beim Drücken auf den Namen + eines Liedes in diesem Verzeichnis, wird dieses in die Vorschau-Liste gesendet. Beim Doppelklick wird dieses Lied in die "Abspiel"-Liste (Playlist) + eingefügt.
+
+ +

9. "Abspiel"-Verzeichnis:
+ Hier werden die Lieder in das "Abspiel"-Verzeichnis hinzugefügt und werden hier gespeichert.

+
+
10. "Hinzufügen"-Knopf:
+ Beim Drücken auf diesen Knopf, wird das gewählte Lied in die "Abspiel"-Liste hinzugefügt. Dieser Knopf + ist nur dann aktiviert, wenn das Lied in dem Lieder-Verzeichnis gewählt wurde und diese List sich in dem Fokus befindet; + sie wird in grau makriert, wenn die "Abspiel"-Liste in dem Fokus sich befindet.
+
11. "Löschen"-Knopf:
+ Löscht das gewählte Lied aus der "Abspiel"-Liste.
+
12. "Nach oben"-Knopf:
+ Versetzt das Lied in der "Abspiel"-Liste nach oben.
+
13. "Nach unten"-Knopf:
+ Versetzt das Lied in der "Abspiel"-Liste nach unten.
+
14. "Abspiel"-Liste:
+ Enthält Lieder, die zum Anzeigen auf dem Bildschirm bestimmt wurden. + Beim Drücken auf den Namen des Liedes in dieser Liste, wird dieses in das Vorschau-Fenster gesendet. + Doppelklick bringt das Lied zum Anzeigen auf dem Bildschirm.
+
+

15. Vorschau-Block:
+ In diesem Teil kann man ein Lied durchschauen und -lesen, bevor es auf dem Bildschirm angezeigt wird. + Hierhin werden Lieder gesendet und automatisch ersetzt, die aus dem Lieder-Verzeichnis oder der "Abspiel"-Liste gewählt wurden.
+ Beim Drücken auf den "Anzeigen"-Knopf wird der gewählte Vers auf den Bildschirm gesendet. + Das Gleiche macht auch der Doppelklick auf den gewählten Vers.

+
Previous
Next
+ + + diff --git a/help/showsongs_ru.html b/help/showsongs_ru.html new file mode 100644 index 0000000..7bfb82f --- /dev/null +++ b/help/showsongs_ru.html @@ -0,0 +1,105 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

2.3 Показ песен

+

+ Для показа песен:
+ 1. Выбор сборника (2). + Можно держать открытыми сразу все сборники и выбирать песни с помощью фильтра. + Но для того чтобы задавать номер песен в окошке справа, нужно выбрать конкретный сборник.
+ 2. Выбор песни. + Для выбора песни можно воспользоваться списком (8). + Если выбран конкретный сборник, то можно ввести номер песни + либо в окошко с номерами (справа), либо в окошко фильтра.
+ 3. Кнопка "На экран". + После того как песня выбрана, она заносится в окно предосмотра. Щелчок по кнопке + "На экран" автоматически выводит для показа первый куплет песни. + Если необходимо вывести на экран другой куплет или припев, нужно дважды щелкнуть + по этому куплету в окне предварительного просмотра.

+
+

Show Songs

+

1. Блок просмотра песен:
+

+
+
2. Выпадающий список сборников:
+ Выберите конкретный сборник. Если выбрана опция "Все сборники", в списке (8) будут показаны + все песни, имеющиеся в базе данных. + Если выбран конкретный сборник, в этом списке будут показаны только песни с данного сборника.
+
3. Окошко номеров песен:
+ Это окошко активизируется только тогда, когда выбран конкретный сборник, и остается серым, + если выбрана опция "Все сборники". При вводе номера в это окошко, выводится + полный список песен сборника, в котором выделяется песня с заданным номером.
+
4. Окно фильтра:
+ Сюда вводится текст или фраза искомой песни. В списке + будут показаны лишь песни, соответствующие заданному тексту.
+
5. Кнопка "Содержит":
+ Выводятся все песни, где встречается заданный текст. + Поиск производится только по номерам и названиям песен, но не по всему тексту.
+
6. Кнопка "Начинается":
+ Выводятся все песни, которые начинаются по заданному тексту.
+
7. Кнопка "Точное соответствие":
+ Выводятся только песни, точно соответствующие заданному тексту. Эта опция особенно полезна + при поиске конкретного номера песни. Ее можно использовать вместо номерного окошка (3).
+
8. Список песен:
+ Может содержать либо полный список песен, либо результаты поиска. Щелчок по названию песни в этом списке + отсылает ее в список предосмотра. Двойной щелчок добавляет песню в список воспроизведения (плейлист).
+
+ +

9. Список воспроизведения:
+ Здесь песни заносятся в список воспроизведения и там сохраняются.

+
+
10. Кнопка "Добавить":
+ При ее нажатии, выбранная песня добавляется в список воспроизведения. + Эта кнопка активизирована только тогда, когда песня выбрана в списке песен и этот список находится в фокусе; + она становится серой, если в фокусе находится список воспроизведения.
+
11. Кнопка "Удалить":
+ Удаляет выбранную песню из списка воспроизведения.
+
12. Кнопка "Вверх":
+ Перемещает песню вверх в списке воспроизведения.
+
13. Кнопка "Вниз":
+ Перемещает песню вниз в списке воспроизведения.
+
14. Список воспроизведения:
+ Содержит песни предназначенные для вывода на экран. Щелчок по названию песни в этом списке + отсылает ее в окно предварительного просмотра. Двойной щелчок выводит ее на экран.
+
+

15. Блок предосмотра:
+ В этой части интерфейса можно просматривать и прочитывать песню + перед выводом ее на экран. Сюда выводятся и автоматически сменяют друг друга + те песни, которые выбираются в списке песен или в списке воспроизведения.
+ Щелчок по кнопке "На экран" отсылает выбранный куплет песни на экран. + То же самое делает двойной щелчок по выбранному куплету.

+
Previous
Next
+ + + diff --git a/help/songformat.html b/help/songformat.html new file mode 100644 index 0000000..5efede2 --- /dev/null +++ b/help/songformat.html @@ -0,0 +1,118 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1.2 Song Format

+

Song format is REALLY IMPORTANT when adding a song or editing a song. Make sure that you keep proper song format. If the song format will not be kept, it may not show the song properly and + may cause program to crash.

+

Stanza Title.
+ Each stanza must have a stanza title. SoftProjector support three + different stanza titles: Verse Block, Refrain Block and Slide Block + (listed below). Stanza titles can be either in English or Russian and + must start from a beginning of a new line and must be capitalized.  After the stanza title (on the same line), + a stanza number or any text can be entered.

+
+
Verse Block. Block for song verses.
+
Verse, &Verse
+ Куплет, &Куплет
+ +
Refrain Block. + Will be automatically shown after each verse block and will not be shown after + slide block. If there is more than one refrain block, then the second refrain + block will replace the first one when it gets to it.
+
Chorus, &Chorus, + Refrain, &Refrain,
+ Припев, &Припев
+ +
Slide Block. This stanza block is for stanzas that is other than + verse or refrain. It will be shown only once and + refrain block will not follow automatically after. If refrain + block is needed after slide block, please add it manual.
+
Slide, Insert, + Intro, Ending, +
+ Вставка, Вступление, + Окончание
+ + +
+

+Special Stanza Blocks
+ Verse block and refrain block, each have special continuing block. Sometime a +verse or refrain is too large to put it into a one slide, adding & to next +verse/refrain block will solve the problem. An "&" sing in front of +verse/refrain title means that it is part of the block above it and the two +block will act as one. See examples below.
+

+

Some Examples
+ Example 1 - as Edited.Verse1, + Refrain, Verse2, + Verse3.
+ Example 1 - Shown.Verse1, + Refrain, Verse2,Refrain, + Verse3, + Refrain.
+ Example 2 - as Edited.Verse1, + Refrain, Verse2, Insert, + Verse3.
+ Example 2 - Shown.Verse1, + Refrain, Verse2,Refrain, + Insert,Verse3, + Refrain.
+ Example 3 - as Edited.Verse1, + Refrain1, Verse2, + Verse3, Refrain2.
+ Example 3 - Shown.Verse1, + Refrain1, Verse2,Refrain1, + Verse3, + Refrain2.
+ Example 4 - as Edited.Verse1a, &Verse1b, + Refrain, Verse2a, &Verse2b, + Verse3a, &Verse3b.
+ Example 4 - Shown.Verse1a, + Verse1b, + Refrain, Verse2a, Verse2b, + Refrain, Verse3a, Verse3b,Refrain.
+ Example 5 - as Edited.Verse1a, &Verse1b, + Refrain-a, &Refrain-b, + Verse2a, &Verse2b, + Verse3a, &Verse3b.
+ Example 5 - Shown.Verse1a, + Verse1b, Refrain-a, &Refrain-b, + + Verse2a, Verse2b, + Refrain-a, &Refrain-b, + + Verse3a, Verse3b, Refrain-a, &Refrain-b,
+

+
Previous
Next
+ \ No newline at end of file diff --git a/help/songformat_de.html b/help/songformat_de.html new file mode 100644 index 0000000..6e6e6f2 --- /dev/null +++ b/help/songformat_de.html @@ -0,0 +1,122 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1.2 Liedtext formatieren

+

Beim Hinzufügen oder Bearbeiten der Lieder ist es SEHR WICHTIG!auf den eingegebenen Format zu achten. Beim Nichtbeachten des Formats, kann es vorkommen, dass das Lied auf dem Bildschirm nicht richtig angezegt wird. + Dies kann zu einem Programm-Absturz bringen.

+

Name der Strophe.
+ Jede Strophe muss einen eigenen Namen haben. softProjector unterstützt drei Varianten für Strophen-Namen: + Verse-Block, Refrain-Block und Slide-Block (siehe unten). Der Strophen-Name kann mit kyrillischen oder lateinischen Buchstaben + eingegeben werden; und muss mit Großbuchstabe anfangen. Nach dem Strophen-Namen, in der gleichen Zeile, kann auch eine Strophen-Nummer + oder ein anderer benötigter Text eingegeben werden.

+
+
Verse-Block. Feld für Lied-Strophen.
+
Verse, &Verse
+ Куплет, &Куплет
+ +
Refrain-Block. + Der Refrain erscheint automatisch nach jeder Lied-Strophe, jedoch nicht nach dem Slide. + Falls mehrere Refrains vorhanden sind, so wird der zweite den ersten ersetzen, + wenn es soweit kommt.
+
Chorus, &Chorus, + Refrain, &Refrain,
+ Припев, &Припев
+ +
Slide-Block. Dieses Feld ist für Strophen/Verse bestimmt, + die nicht zu der Strophe/Refrain-Kategorie gehören. Dieses wird nur einmal angezeigt, und nach ihm folgt + Refrain-Block falls dieser vorhanden ist. Wenn der Refrain-Block nach dem Slide-Block folgen soll, + so muss dieses manuell durchgeführt werden.
+
Slide, Insert, + Intro, Ending, +
+ Вставка, Вступление, + Окончание
+ + +
+

+Block für lange Strophen
+ Die Felder für die Strophen und Refrains haben noch eine zusätzliche Möglichkeit für eine Fortsetzung. Falls die Strophe +oder der Refrain zu lang sind und passen nicht auf eine Slide-Seite, kann man dieses Problem mit dem Hinzufügen des Zeichens & zum nächsten +Verse/Refrain, lösen. Das Zeichen "&" vor dem Verse/Refrain bedeutet seine Zugehörigkeit an den vorigen +Verse/Refrain. Und beide Verse/Refrains werden als einziger angezeigt. +Siehe Beispiele unten.
+

+

Einige Beispiele
+ Beispiel 1 - Wird geschrieben:Verse1, + Refrain, Verse2, + + Verse3.
+ Beispiel 1 - Wird angezeigt:Verse1, + Refrain, Verse2,Refrain, + Verse3, + Refrain.
+ Beispiel 2 - Wird geschrieben:Verse1, + Refrain, Verse2, Anzeige, + Verse3.
+ Beispiel 2 - Wird angezeigt:Verse1, + Refrain, Verse2,Refrain, + Anzeige,Verse3, + Refrain.
+ Beispiel 3 - Wird geschrieben:Verse1, + Refrain1, Verse2, + + Verse3, Refrain2.
+ Beispiel 3 - Wird angezeigt:Verse1, + Refrain1, Verse2,Refrain1, + Verse3, + Refrain2.
+ Beispiel 4 - Wird geschrieben:Verse1a, + &Verse1b, + Refrain, Verse2a, &Verse2b, + Verse3a, &Verse3b.
+ Beispiel 4 - Wird angezeigt:Verse1a, + Verse1b, + Refrain, Verse2a, + Verse2b, + Refrain, Verse3a, + Verse3b,Refrain.
+ Beispiel 5 - Wird geschrieben:Verse1a, &Verse1b, + Refrain-a, &Refrain-b, + Verse2a, &Verse2b, + Verse3a, &Verse3b.
+ Beispiel 5 - Wird angezeigt:Verse1a, + Verse1b, Refrain-a, &Refrain-b, + + Verse2a, Verse2b, + Refrain-a, &Refrain-b, + + Verse3a, Verse3b, Refrain-a, &Refrain-b,
+

+
Previous
Next
+ \ No newline at end of file diff --git a/help/songformat_ru.html b/help/songformat_ru.html new file mode 100644 index 0000000..9ed357c --- /dev/null +++ b/help/songformat_ru.html @@ -0,0 +1,110 @@ + + + + +Справочник по Софт Проектору + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

3.1.2 Форматирование текста песен

+

При добавлении или редактировании песен ОЧЕНЬ ВАЖНО + соблюдать заданный формат. При несоблюдении формата песня может быть выведена на экран неправильно, + и может случиться сбой в работе программы.

+

Название куплета.
+ Каждый куплет должен иметь свое название. Софт Проектор поддерживает три варианта названий для куплета: + Куплет, Припев и Слайд (см. ниже). Название куплета может быть написано кириллицей или латиницей + и должно начинаться с большой буквы. После названия куплета, на той же строчке, можно ввести номер куплета или другой нужный + текст.

+
+
Поле для куплета. + Поле для куплетов песен.
+
Verse, &Verse
+ Куплет, &Куплет
+ +
Поле для припева. + Припев появляется автоматически после каждого куплета, однако он не появляется после слайда. + Если имеется несколько припевов, то второй припев заменит первый, когда до него дойдет очередь.
+
Chorus, &Chorus, + Refrain, &Refrain,
+ Припев, &Припев
+ +
Поле для слайда. Это поле предназначено для куплетов (стихов) не относящихся к + категории куплета или припева. Оно показывается один раз, и за ним следует + поле для припева, если таковой имеется. Если блок припева необходимо вставить после блока слайдов, нужно ввести его вручную.
+
Slide, Insert, + Intro, Ending, +
+ Слайд,Вставка, Вступление, + Окончание
+ + +
+

+Поля для длинных куплетов
+ Поля для куплетов и припева имеют специальную возможность для продолжения. Если куплет или припев слишком длинный и не помещается в один слайд, + можно разрешить проблему путем добавления знака & к следующему куплету (припеву). + Знак "&" перед куплетом (припевом) означает его принадлежность к предыдущему куплету, и оба куплета будут показаны как один. См. примеры ниже.
+

+

Некоторые + примеры
+ Пример 1 - Пишется:Куплет1, + Припев, Куплет2, + Куплет3.
+ Пример 1 - Показыватся:Куплет1, + Припев, Куплет2,Припев, Куплет3, + Припев.
+ Пример 2 - Пишется:Куплет1, + Припев, Куплет2, Вставка, Куплет3.
+ Пример 2 - Показыватся:Куплет1, + Припев, Куплет2,Припев, + Вставка,Куплет3, + Припев.
+ Пример 3 - Пишется:Куплет1, + Припев1, Куплет2, + Куплет3, Припев2.
+ Example 3 - Показыватся:Куплет1, + Припев1, Куплет2,Припев1, Куплет3, + Припев2.
+ Example 4 - Пишется:Куплет1a, &Куплет1b, + Припев, Куплет2a, &Куплет2b, Куплет3a, &Куплет3b.
+ Example 4 - Показыватся:Куплет1a, Куплет1b, + Припев, Куплет2a, Куплет2b, + Припев, Куплет3a, Куплет3b, Припев.
+ Example 5 - Пишется:Куплет1a, &Куплет1b, + Припев-a, &Припев-b, Куплет2a, &Куплет2b, + Куплет3a, &Куплет3b.
+ Example 5 - Показыватся:Куплет1a, Куплет1b, Припев-a, Припев-b, Куплет2a, Куплет2b, + Припев-a, Припев-b, Куплет3a, Куплет3b, Припев-a, Припев-b.
+

+
Previous
Next
+ \ No newline at end of file diff --git a/help/songsettings.html b/help/songsettings.html new file mode 100644 index 0000000..cb1b052 --- /dev/null +++ b/help/songsettings.html @@ -0,0 +1,45 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.3 Song Settings

+

+ Song Settings
+

+

1. Show stanza title: will show stanza title on + display screen on the top left corner

+

2. Show song key: will show song key on the display + screen on the top right corner

+

3. Show song number: will show song number on the display + screen on the top right corner after the song key if used

+
Previous
Next
+ \ No newline at end of file diff --git a/help/songsettings_de.html b/help/songsettings_de.html new file mode 100644 index 0000000..14d0ef1 --- /dev/null +++ b/help/songsettings_de.html @@ -0,0 +1,45 @@ + + + + +softProjector Hilfe + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.3 Lied-Einstellungen

+

+ Song Settings
+

+

1. Anzeigen der Nummer des Verses/der Strophe: die Nummer wird + in der linken oberen Ecke des Bildschirmes angezeigt.

+

2. Anzeigen der Tonart des Liedes: die Tonart wird + in der rechten oberen Ecke des Bildschirmes angezeigt.

+

3. Anzeigen der Nummer des Liedes: die Nummer wird + in der äußersten rechten Ecke des Bildschirmes, hinter dem Zeichen der Tonart (falls sie angegeben ist) angezeigt.

+
Previous
Next
+ \ No newline at end of file diff --git a/help/songsettings_ru.html b/help/songsettings_ru.html new file mode 100644 index 0000000..707470e --- /dev/null +++ b/help/songsettings_ru.html @@ -0,0 +1,42 @@ + + + + +softProjector Help + + + + + + + + + + + + + + + + + + + + + + + +
+
+ English + Russian + German
+
softProjector Help
Previous
Next

5.3 Настройки для песен

+

+ Song Settings
+

+

1. Показывать номер куплета: — номер будет показан в левом верхнем углу экрана.

+

2. Показывать тональность песни: — тональность будет показана в правом верхнем углу экрана.

+

3. Показывать номер песни: — номер будет показан в крайнем правом углу экрана, за знаком тональности (если она указана).

+
Previous
Next
+ \ No newline at end of file diff --git a/help/sphelp.css b/help/sphelp.css new file mode 100644 index 0000000..d15d1cb --- /dev/null +++ b/help/sphelp.css @@ -0,0 +1,128 @@ +body +{ + background: #114E7B url('images/bg.jpg') no-repeat top center; + color: #666666; + font: normal 14px Arial, Helvetica, sans-serfi; + position: relative; +} + +img{ + border:none; + padding:1px; +} +.fixed{ + display:block; + min-height:1%; +} +*html .fixed{ + height:1%; +} +.fixed:after{ + content:"."; + display:block; + height:0; + clear:both; + visibility:hidden; +} + + +/* TYPES */ +#header{ + width: 90%; + padding: 0px 30px; + margin: 0 auto; + border: none; + color: #C0C0C0; +} +#header a{ + color: #C0C0C0; +} + +#content{ + background-color:#FFF; + width:90%; + color:#383F47; + min-height:300px; + padding:0px 30px; + margin: 0 auto; + line-height:20px; + border-radius:10px; +} +#content h2{ + padding:10px 5px; + font-size: 24px; + text-align:center; +} +#content h3{ + padding:6px 4px; + font-size: 18px; +} +#content h4{ + padding:5px 0px 0px 0px; + font-size: 16px; + font-weight:bold; +} + + +#main{ + width: 75%; + float: right; + padding: 0; + clear: none; +} +#main a { + color:#114E7B ; +} + +#mainbody{ + padding: 30px; +} +#mainbody a { + color:#114E7B ; +} + + +#menu{ + width:25%; + float:left; + padding:0; + line-height:24px; +} +#menu a { + color:#383F47; + text-decoration:none; +} +#menu a:hover{ + color:#114E7B; + text-decoration: underline; +} +#menu a.current{ + text-decoration: underline; + color: #114E7B; + font-weight: bold; +} + +/* CLASSES */ +.cap{ + font-size:12px; + font-style:italic; +} +.verse{ + background-color: #FFFF99; + color: #FF0000; +} + +.chorus{ + font-style: italic; + background-color: #d4f01c; + color: #000090; +} + +.insert{ + background-color: #e08c00; + color: #800080; +} +.imglist{ + list-style:none; +} + diff --git a/helpdialog.cpp b/helpdialog.cpp new file mode 100644 index 0000000..9e6d31a --- /dev/null +++ b/helpdialog.cpp @@ -0,0 +1,53 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include +#include "helpdialog.h" +#include "ui_helpdialog.h" + +HelpDialog::HelpDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::HelpDialog) +{ + ui->setupUi(this); + QString d = QString(QDir::separator()); +// ui->webViewHelp->load(QString(".%1help%2index.html").arg(d).arg(d)); +} + +HelpDialog::~HelpDialog() +{ + delete ui; +} + +void HelpDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void HelpDialog::on_close_pushButton_clicked() +{ + close(); +} diff --git a/helpdialog.h b/helpdialog.h new file mode 100644 index 0000000..9e144c9 --- /dev/null +++ b/helpdialog.h @@ -0,0 +1,48 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef HELPDIALOG_H +#define HELPDIALOG_H + +#include +#include +//#include + +namespace Ui { + class HelpDialog; +} + +class HelpDialog : public QDialog { + Q_OBJECT + Q_DISABLE_COPY(HelpDialog) +public: + explicit HelpDialog(QWidget *parent = 0); + virtual ~HelpDialog(); + +protected: + virtual void changeEvent(QEvent *e); + +private: + Ui::HelpDialog *ui; + +private slots: + void on_close_pushButton_clicked(); +}; + +#endif // HELPDIALOG_H diff --git a/helpdialog.ui b/helpdialog.ui new file mode 100644 index 0000000..1ac8596 --- /dev/null +++ b/helpdialog.ui @@ -0,0 +1,48 @@ + + + HelpDialog + + + + 0 + 0 + 600 + 640 + + + + softProjector Help + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Close + + + Ctrl+Q + + + + + + + + + + diff --git a/highlight.cpp b/highlight.cpp new file mode 100644 index 0000000..7f8702a --- /dev/null +++ b/highlight.cpp @@ -0,0 +1,197 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "highlight.h" + +Highlight::Highlight(QTextDocument *parent) + : QSyntaxHighlighter(parent) +{ + HighlightingRule rule; + QStringList patterns; + + // Verse formating + verseFormat.setForeground(Qt::red); + verseFormat.setBackground(Qt::yellow); + patterns << "^Verse[^\n]*" << "^&Verse[^\n]*" + << QString::fromUtf8("^Куплет[^\n]*") << QString::fromUtf8("^&Куплет[^\n]*") + << QString::fromUtf8("^Strophe[^\n]*") << QString::fromUtf8("^&Strophe[^\n]*") + << QString::fromUtf8("^Verš[^\n]*") << QString::fromUtf8("^&Verš[^\n]*"); + foreach (const QString &pattern, patterns) + { + rule.pattern = QRegExp(pattern); + rule.format = verseFormat; + highlightingRules.append(rule); + } + + patterns.clear(); + + // Chorus formating + chorusFormat.setFontItalic(true); + chorusFormat.setForeground(Qt::darkBlue); + chorusFormat.setBackground(QColor(212,240,28,255)); + patterns << "^Chorus[^\n]*" << "^&Chorus[^\n]*" + << QString::fromUtf8("^Sbor[^\n]*") << QString::fromUtf8("^&Sbor[^\n]*") + << "^Refrain[^\n]*" << "^&Refrain[^\n]*" + << QString::fromUtf8("^Припев[^\n]*") << QString::fromUtf8("^&Припев[^\n]*") + << QString::fromUtf8("^Приспів[^\n]*") << QString::fromUtf8("^&Приспів[^\n]*") + << QString::fromUtf8("^Refrén[^\n]*") << QString::fromUtf8("^&Refrén[^\n]*"); + foreach (const QString &pattern, patterns) + { + rule.pattern = QRegExp(pattern); + rule.format = chorusFormat; + highlightingRules.append(rule); + } + + patterns.clear(); + + // Vsavka formating + vstavkaFormat.setForeground(Qt::darkMagenta); + vstavkaFormat.setBackground(QColor(255,140,0,255)); + patterns << "^Slide[^\n]*" << "^Insert[^\n]*" + << "^Intro[^\n]*" << "^Ending[^\n]*" + << QString::fromUtf8("^Слайд[^\n]*") << QString::fromUtf8("^Вставка[^\n]*") + << QString::fromUtf8("^Вступление[^\n]*") << QString::fromUtf8("^Окончание[^\n]*") + << QString::fromUtf8("^Закінчення[^\n]*") + << QString::fromUtf8("^Dia[^\n]*") << QString::fromUtf8("^Einfügung[^\n]*") + << QString::fromUtf8("^Einleitung[^\n]*") << QString::fromUtf8("^Ende[^\n]*") + << QString::fromUtf8("^Snímek[^\n]*") << QString::fromUtf8("^Vložka[^\n]*") + << QString::fromUtf8("^Úvod[^\n]*") << QString::fromUtf8("^Závěr[^\n]*"); + foreach (const QString &pattern, patterns) + { + rule.pattern = QRegExp(pattern); + rule.format = vstavkaFormat; + highlightingRules.append(rule); + } +} + +void Highlight::highlightBlock(const QString &text) +{ + foreach (const HighlightingRule &rule, highlightingRules) + { + QRegExp expression(rule.pattern); + int index = expression.indexIn(text); + while (index >= 0) + { + int length = expression.matchedLength(); + setFormat(index, length, rule.format); + index = expression.indexIn(text, index + length); + } + } + + setCurrentBlockState(0); +} + +// *** Announcement Editor Highlighter + +HighlightAnnounce::HighlightAnnounce(QTextDocument *parent) + : QSyntaxHighlighter(parent) +{ + HighlightingRule rule; + QStringList patterns; + + // Verse formating + announceFormat.setForeground(Qt::red); + announceFormat.setBackground(Qt::yellow); + patterns << "^Announce[^\n]*" << "^Slide[^\n]*" + << QString::fromUtf8("^Объявление[^\n]*") << QString::fromUtf8("^Слайд[^\n]*") + << QString::fromUtf8("^Оголошення[^\n]*") + << QString::fromUtf8("^Ankündigung[^\n]*") << QString::fromUtf8("^Dia[^\n]*") + << QString::fromUtf8("^Oznámení[^\n]*") << QString::fromUtf8("^Snímek[^\n]*"); + foreach (const QString &pattern, patterns) + { + rule.pattern = QRegExp(pattern); + rule.format = announceFormat; + highlightingRules.append(rule); + } +} + +void HighlightAnnounce::highlightBlock(const QString &text) +{ + foreach (const HighlightingRule &rule, highlightingRules) + { + QRegExp expression(rule.pattern); + int index = expression.indexIn(text); + while (index >= 0) + { + int length = expression.matchedLength(); + setFormat(index, length, rule.format); + index = expression.indexIn(text, index + length); + } + } + + setCurrentBlockState(0); +} + +// *** Highligting for search results *** +HighlightSearch::HighlightSearch(QTextDocument *parent) + : QSyntaxHighlighter(parent) +{ +} + +void HighlightSearch::highlightBlock(const QString &text) +{ + foreach (const HighlightingRule &rule, highlightingRules) + { + QRegExp expression(rule.pattern); + int index = expression.indexIn(text); + while (index >= 0) + { + int length = expression.matchedLength(); + setFormat(index, length, rule.format); + index = expression.indexIn(text, index + length); + } + } + + setCurrentBlockState(0); +} + +void HighlightSearch::setHighlightText(QString text) +{ + HighlightingRule rule; + highlightingRules.clear(); + resultFormat.setForeground(Qt::red); + rule.pattern = QRegExp(text,Qt::CaseInsensitive); + rule.format = resultFormat; + highlightingRules.append(rule); +} + +/**********************************************/ +/**** Class for higlighting search results ****/ +/**********************************************/ +HighlighterDelegate::HighlighterDelegate(QObject *parent) + : QItemDelegate(parent) +{ + textDocument = new QTextDocument(this); + highlighter = new HighlightSearch(textDocument); +} + +void HighlighterDelegate::drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QString &text) const +{ + Q_UNUSED(option); + textDocument->setDocumentMargin(0); + textDocument->setPlainText(text); + + QPixmap pixmap(rect.size()); + pixmap.fill(Qt::transparent); + QPainter p(&pixmap); + + textDocument->drawContents(&p); + + painter->drawPixmap(rect, pixmap); +} diff --git a/highlight.h b/highlight.h new file mode 100644 index 0000000..ad224d9 --- /dev/null +++ b/highlight.h @@ -0,0 +1,109 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef HIGHLIGHT_H +#define HIGHLIGHT_H + +#include +#include +#include +#include + +class Highlight : public QSyntaxHighlighter +{ + Q_OBJECT + +public: + Highlight(QTextDocument *parent = 0); + +protected: + void highlightBlock(const QString &text); + +private: + struct HighlightingRule + { + QRegExp pattern; + QTextCharFormat format; + }; + QVector highlightingRules; + + QTextCharFormat verseFormat, chorusFormat, vstavkaFormat; +}; + +// *** Announcement editor highlighter +class HighlightAnnounce : public QSyntaxHighlighter +{ + Q_OBJECT + +public: + HighlightAnnounce(QTextDocument *parent = 0); + +protected: + void highlightBlock(const QString &text); + +private: + struct HighlightingRule + { + QRegExp pattern; + QTextCharFormat format; + }; + QVector highlightingRules; + + QTextCharFormat announceFormat; +}; + +// *** Highligting for search results *** +class HighlightSearch : public QSyntaxHighlighter +{ + Q_OBJECT + +public: + HighlightSearch(QTextDocument *parent = 0); + void setHighlightText(QString text); + +protected: + void highlightBlock(const QString &text); + +private: + struct HighlightingRule + { + QRegExp pattern; + QTextCharFormat format; + }; + QVector highlightingRules; + QTextCharFormat resultFormat; +}; + +class HighlighterDelegate: public QItemDelegate +{ + Q_OBJECT + +public: + HighlighterDelegate(QObject *parent = 0); + HighlightSearch *highlighter; + +protected: + void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QString &text) const; + +private: + QTextDocument *textDocument; + +}; + +#endif // HIGHLIGHT_H diff --git a/icons/ExpandSmall.png b/icons/ExpandSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..ec13bedc0790dd5a68d8ee1a41a25202f676afd4 GIT binary patch literal 5140 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

XIL_E$H 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 LNkvXXu0mjfDVrNB literal 0 HcmV?d00001 diff --git a/icons/aboveText.png b/icons/aboveText.png new file mode 100644 index 0000000000000000000000000000000000000000..8c05a3b6a44a06b7779ac1e76ab63084c223433b GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4f~e=3-E9> zJy7WM$nvwj_LkLx*&%C$#_}3hfQP8T^dGYyoh5aYLaX-r5Fnfii<>pVb eV>Go6?2HTRluw?X^obW}1%s!npUXO@geCxI5L0Ua literal 0 HcmV?d00001 diff --git a/icons/add.png b/icons/add.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3e0eb9c5a404482ff627733e40eefa99f84734 GIT binary patch literal 1546 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 V<2^~NZa|Y6JYD@<);T3K0RRuQOnCqR literal 0 HcmV?d00001 diff --git a/icons/alingMiddle.png b/icons/alingMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..d96a71d58c250ed6ffdb13989a8107f2b6e8b2fd GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4C)y|_2uGjrAZ4fPdc*8%w35gU93?%P_2u1(X(qC(t;1{ zJ#=`XMq?$v!OeMLlUy`Zq%t?Tu6`KT)i|9u>hhbV5;JC`C}^I&>l^p~aOC_4OtVw< VmCLVGm;;@{;OXk;vd$@?2>`|nXsrMM literal 0 HcmV?d00001 diff --git a/icons/alingRight.png b/icons/alingRight.png new file mode 100644 index 0000000000000000000000000000000000000000..726c5d0e62385d5b0479b3559b62dd75925c83d8 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4vi(WmR`8v zr^y+uz{-$#{>v%(0(*sRQfJ~XbgR^5A6MVBy00j&IdG-e@k!yHTklj~c3NL^d{Xq8 eQ}zE{-m|M{ua-2avrPwigu&C*&t;ucLK6VUX;ZrZ literal 0 HcmV?d00001 diff --git a/icons/alingTop.png b/icons/alingTop.png new file mode 100644 index 0000000000000000000000000000000000000000..91854dc06b03b867e167d7bee09198a4819fe052 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4G%{CD%l*2!qIr_dQ`O4wyz{|jp7V;HO@6rh!$omt&$tKw e)mJrqW;8!DNlN85U$rjK1_n=8KbLh*2~7a~*;sb~ literal 0 HcmV?d00001 diff --git a/icons/announce.png b/icons/announce.png new file mode 100644 index 0000000000000000000000000000000000000000..830f6e8a9475984c243c229ea4b9187099e472e4 GIT binary patch literal 11114 zcmY+KbyO7J|L|wYrIGG#kxr=5vqpJ0&Cp=@JA)y6Zzrch|D}+wb$= zGw0m7XXebA`@ZweJNFg)PD2q7n+h8M06b--x7x@a`o9LoK%V=h%}0Z8WmV-d96qKpvo!ttP&6Lbuek?njWZD;Oxid(judbS`BkUP&#j zKr=5GVM8cA=(|hwXmswgQN;V2;%lUG>}2&$SO1f(fn^qrw}gJ5VJLYJzl9$6ATLK9Lgsxq2x1Dd?{ z-!e_;UMQIhi7C+n`wYn{hL+LWYjc|agcg2MGTZ~1%w@dU&RuD5I{F!vIc4uPF-1T< zvaW$GE5GnWM|bN&qzXddjXd6`u*SXS4{G%EXu6QFWFp;@o@50&uy~+Vk^k5sPPkvB zNeTG}RK#*dJ056*FOCo{$q4g7;YHDjhq0=18Fbtd1$J*6botXJBuD}ARor;_{s(;` zl@Bn5@ao@G()ks6%(I>5euvW|WN+0nj9*2Bcs6^{p!Av(F~U5cc)eWAbyZa{igX6! zas+t;FBEYr%F81w3f8coGdpQ7yWPhb2R7gF3%AEVi~38qKk(v;LdIYF`CIi}yAK9~ z&X1gq#L=K{$QWTr(dYqJP%0=_Ba$ArA-3kbO{5{^6?pvL`t#}Y;%zQ#qoHDY67I0r ziE3AhWfQO0PllVonQo(Q2d%};7~ws6*?V$ZopnY4w-~%hk68l>#%cw)xUl_B+rIwi zyWP-gbTPELxY%!*jI9nxIDQF1{7JMJB`E@?uMGL)Bzjw#`FY!dSwM}T9Z54tLz+mtfa%FZaOA&Ql zqc90Lv3OsTnRe-uB&jXu;lT^+=!|p>>L#50s(KoWGX27(^pimLf8Tm`$DJzUwIaQq z8mAnvAH5&7HrD&P5L-y@Y&U1`;<)i8g=j6q$r-($m7!AreCaAX60k3MN)7PmB8v%U zXJ24WdL8^@^F=FP=!`}bFsb;WPlnEy^qz79?OP4aAP#TtkWaSN9z1b&AWrjN>w37tL&R)YeJBkT$96+a{j z#s5;-xYoU)M1iC;MIeTHb$Z<WX=JGF425<_Lwa@3vyCs%277HAlk_(RGSXb1C>Tur_&rRL>9s(=oMY z3n=7Fx|bS8Lw%o1ByVQ12NTE6Jp3Hzj}so?sa5Qr9a0*&j|&D6{gY5NZZmt|QY=Ec zIz^2D3dyJOIzIHf}zsGxWy($vsmN2T<Yxi_^jzr#q&aa8aYg zf4v$aL1tx07(dmcj1HEv?nev-k+oG8jI@YrO^fZmt;?@#`$&_ZF-#@$Zq4`I-uSHPqXjP1C z#z&L@>^Pe~Ii`Y7(*jUJIQE9u#?$y08?C?r)aHabaO79P3Hr&O%gbTM%X8QeE#)_* zr8V#LB4X}*>EH%cDFM51<|2AmDtgv`Y^ypexX z$W(T_&IjlFPe%T?@tbhgV(s6?!K)}F?dx?~!N>Z?G|YNxv?ayp;XtCu!ij1>@W?XO z!Y2%m#TnH0ni_2CG1UKQ*SpZXkI33FSB04doD8WwWg0;CA084B!tTpDc%4y_`lReX@|a6oBJHyruEQfnf`5>K0vMQ-yKs2#B$?u zB|V%tQZ7m5f7`GB!vmXNfStU0e$QjnFM{%o2>MkmbOyL0&Itq$ZzJ_UviH%bq9t7k z#2y<%@xyzG66tQE{}GLM9tGHsh}mxqFQ?K&J-wqWuHYV>vhbS}+smO3dQn3k)WPIr zN98ZbmKr+iCMfRuQw!6{eP(rOX<1Zb9B>E}xw-+gH*s5ofFg=-?|w0th8Qh z1x^7B5eSN=g<_t;*=CW|L4Qw^V;FfeoYmQnCpu^Qr6!GAm-k5=YN3+_ zV@ZYX%*>j4Av0toRAf&I@$mG8oG#dV@nIqGXW8TLZU6Wvky&UKC|-%7Vel(kI3Fj5 z*%D7R2R~+ng?H~B70|91!ssUDX0&yIjx*>!@`|0$V^>Kv*s$Q&W*Lz7y`( zJj6?ygqnQ=mAK!Gu}Co32YBu%HNL!mKu0=LU{mI;c&`C;K-s5_WL&x zx$+TT07mFcv zxci2=a$(u&fx637Me18-E&;OwUItH6sv94QTPa~MW0__!4^T)jo0~Ad|Cvv#lhNAR z&nWl-x3+alNk!FTCjIU(QJAt$+(XR^!Ii_HfJP{UQSUw4nx?_gw@KKE*zNFZfxF#& zJ9@uv#G8BiP5L#57a3t3q-uKqIra^`y$uQuDwxsA-~sGsw#OKH3*SI9yR#(%9*u6> z?3%jKGQ&@?C8Aok>3RtE{;;7Ok@2}|up&M^q;MOG@QY~4{R|ldB8uP4pZZBz(k61` z+i|j&@Fs7e^<%h+{rZ~P?J}?v2}W=3>Jh&?o$KLxdVD3iFfa?nLi4{`p$uMh8oE`~ zOQQgQG2;7c5JN-{;rGzJ!vp=o|HNv2QCnZ$ZdNTucUZ_InxBA4x)U&XN?C$Wi-D`G?q0O1~~p68l@;vOZ$? z1RFuW%HTP87eR`aY=v1W1Rt$3`jjtlWrc@#enXfnz}{%ZXvJ5`oc z?E4+>whpIzL~qC#*J@#ZIr3*n-RYy@piUA;Rt#4vHMcnX^S~G#q!|Dxv`io$JfQ4n zt*-w{53@pxwMyhFArOZJUi+Rxj&&L$I-CMCmUm!;MUb~M^SRJ6^~)KeBL*~GbuOC+ z){;u28(Hmb-rUyAmx*2YdJbm_wt1!LCKD*Y*8#m{Y+Nj5brmLO0cvQz^lK8!av)l84$GDk9Z@v^~Gv-Kd{R7tNV40 z7L8POd`Z>FJ7X!M=W}#V5z&w1uU>KV_gpV16|t;3i%d_?C|Q1x8@ys8(UkqlbTsg& zt!$}7)5)W`uHxZOlcq;n?>aJ`D+<5tt0x{enJ1&BAj$l*o(}r5PmfHsy|CZ-GQf2t zkqgK|kaN`qlRZ!SSC*~%);;l%j>z9-;jk2jbzd0Qtq^^VOKm zn7)`AFi9@fP1`#7XN1@7>igN)UZ1K>vaP@M>jr*$qY(BSe6~8zU3Y)6y+5i>ULMUq z8pUsVlMJ{%vpG(A{$R)wnzI++ht8xfqpPvYZ+9NA&;Ij2J40~f{3?|EJOUAdc4Vzv;#gB@7l_eyM9q!PZg*j|2Js zcHr;_&BF_CGY;;*siCzdAQJEcou{moWnnPpNBPiNPg3IA z`xRNC-k9uEU?#Z?PX`7D+1vNdAw%Xp9`jTM=PeBUc+Ssxyvpo}ND zD?7f}rL}CV7n`ua#N|Q-Zz9My5TPQw@GFFL-p-!-MAgD=6slzBrpAipP#UipEQS;H z^lQKm5M+v_SR1FEK=)(z7*`=;ha~Oa#^vq#{1q==!D}CvieG@hXFAu{HPm70zMcX= zMC%N?R|v-A6wZxOi+bcqx)EFzZ(atLsw( z@6JJ{IEB?ONdjKX3fEKa0RNKCC;b^1nmeC0)>3dZ1d^R*wjDS61Twb@PG(%FI{q)Kdw>?@)!9Pji< zJ%G7m?DB8c+*O;mAGvfWP@#l9e^FfoZe6?m=u+91YB|kP2xOe%g@cvt=`u|G)C#DN zpPwCd=yLcETf4uq9~a2^Oa`xo6#o;u!gO*4u05kISMV2lLAc2>edaZ5gP_#rY0ask4hYo;6#lCfodsif=@#E3jPUq-|0&B5XoA@2_tdAjx~qZ);iA}Z)fXI>@Bg`-(~8&=8*a! zG5hs_rFWZ(1_K5h8#>BbP#q)L$!mvk{lWKS)_c`CRp-A#XRl?PXB)z&DFCTWZqUXk zJxNagC=kay78^v8LGEt14$m}A8Ar4n{GL8&$PD7gxUX_Q{jsByj8Fc{4mN}_mkDA( zb6O>%Kg$>FDK;fI?GLZS>&0R<5Kti_0$W$0NRFdCIkH)oDcbOn6nJn5)X*-HyYIcW zt8{c5v3m>7O*eZ-6$|>k^8*v&1S+zASwS4{kZX+z6{GIGJ-MhqX~klGoYlw3JY2ae zm8_UF6tKf31bbO|)%TOSwP^uHs=-U&YjQE1&V24z;^lbJ; zz@&og!IH;L8kSZvNECmlgMTA)@e4B#blpiSu?27x@D(Q|u*OuGw@<&_`?M+_bPZ_J z{~ZK-ihm+(#X$FD6hy@>#ybXMhNtyKbjsDf^{FP&Mk5PsOug7DEYy?_fAsW0A-+POhHRkK;8^1RY3$T2kNf;kM)P&4|78 z`nQ+~j~1H?9|mRxZ%>2fh!`^ti-g8}=e6kPZKHYz(RJ*}yIQ zAZq1}im8PTy-jzo@2FTWd%cQ}16UjllP7Q$fAB$!>ee}{jKGKJhrI6gFOS(BGIIp= zVDu0zns)hod_+nZMy3}Prd(E9pzu9(fJ0;dYb`TxD0tZ(Rc1b4X3o%Ctk({!M>yqo}vNz z1s}JbsTEgH5=y@WPMptn^&}C@9*q8~Y}Hnv!NZD>xN*eq9LPOwO-PS?m}1u=i6sSs zL|6p?Oyd)f z>?ViC2mkjfHG19bH{qvPKZ*5NEdc4X2Y-{h`n0{QGKv4>Yb&gJ$vyqI=u;@1NDHe_ zG+kWE3Er-RF;MC82k}X6ptVD&mx!nMT)JK~f_h_8r~pVKs)~Xk{U@$fS0xuJK&f(? z_LyNIbsVay`C|8IuXQ@)&v0_S8GF@5t%{5k07T29UpM5cWyC6FrRG%I6k(^HLQLs< zlTFws0W}mmsaXxb$mR(3kH9{z`REm_VEJ^Mso4oq?%*^QF zee{<#6P;8cPNr=0>9=fEC&$j}aN2`ZHKoC`&e~&u5bT5N3oqjOZUSj`k8xt9(u!o~ zU2qd>+^p2MW2b2rfTC|N!|Q^=`RZtutIyLuC+$p~0D79N zo(n10tfczA&85aOqTnxUjGB#Q1zj^2K|#8f5~;4wLN_<@2tX#q!IMN1y06R1MlZGNX$>dRkG8z|NJ^R|Du9YL`K5+lt#mO>CvbQ z`lX~uw!r8t3mu_t0b%H%zwQ5M?$`hMIE<hTZmE$n=&aRD=aV1!aJi;vh&PJ zN9XC}8%L=_?8tq0e>w+76iZD$S5&v~Z}*Rj?6fsnLf@6X{Crt+m-@|@gvEszz?i|q zy|wccX#XLQ$)=J`1jZ79aAy(*upf;}$i!rrwHrj|=f6_py$0b&Y`3qnCByz&T*kTTRgO3K3 zvyI$%c|0&CsN14;78C?sFF}v+-Hcp4Ud>rOrkva*%y%C|1H!t@*FH9~S~D+}4VNTo z8r;@Kh1jTfC}TNt(M!LoemcMxA;8|oeHmBXtmJkc-}}xdZL>rnie~(NlrAOzQGJM| z2r?O1BL_;JUI1W}O>g2I>w>bBSOV7C&-?CMV(8$j)Diyu1~T7<%RIES<1?CXXQ!6C zWX7ou{LL*)P$maSH3zZ=L_-c&TJW%sND^W?{%pQMgNQ-7sXwgcguzpxg(phaF-7}! zCnEH9!jVh4GUy*cYe6mfhAsw*a&nsQE8G29h}j)3!sUKCOZu+J{0N9q`ef{cEh;%95`**7_{kprT#s^VrnlP>=5fFR&%8vxDuAT{a=hw-MRl_m90Q2B5%;|$I$ zw(%Y;!soxEF&q0D-;R)8m$|A_WYGc+E6oDTq#W{W^RXl6FWQb*E1ea?hSr(XHlC@58;;HF$gG1M3Le4UkP?Zl@D*f*0{Fm>aFuh&{V)--U2 zl!%d}(|bwXbv}fbT54By_MFLUe2e2XNNxaW7Z(4p!^R&_*Tq{ZC{%T>wgH!a`Nw?A z$06{2gdAUh0l4;7h(Rk+lQ?bFkZZ&_iaeo`!lGeguGdj9-7Bnn!BXZ*zpPUD9T>wi z4t)B7>33V?DJ{jF{RykT^Va{a&hYe<_@=zrHKSi$-kmJU%ut;^LHg;5N=>t{T092% zKYAuHXT|y!809fzQvgRZ4Pu)En4$fR+TYT;lP1e^7NBH-_oj#uqmE1IwP3Fb^%7-C ze1Z|1+8?i6ZTka`os8%M>MQ%YmX<)3QuuPWE#*Gwja|VFSODq`TDu{Wu13Ms$@s+~ z@tZGHuS=-*?G6N5d|uJ80f5rMN?7yxRf&Sh*sj0JOFgua9NGQik)N6!+w+K4cO+;3}p#Aqjw@!OB zwMAc46e(`!wKKberu`7HcmP1UEo<2s(}n|s&E}j_)zIB{TZ3SjGi(`wy&}3$0_Hd; z`2??VT~5E5uidjds1y~3ASlcR_bnT%oYkfBME1PtJNtFkU-m#R_Qj}|e0Ym$FIgHdbbE|ZbxN00>D zq}8BB2y4`Q%-2=WRq%BmL9UH_!-WUQHH)gQ_e(E{twU7R=bPoLbWJGfLy%PvJJpjdL3DM{Y-}k&H#9c3%tf_Pt;+%dv%}Y zVJr6jm%4u?Q@{L04)fgPy}+*Je5-tvXR9^>V?7W0Zus>5DM42{SpT>zdF|LlL*+~Q zvlIylLDHzWvsQq`HcoXSIo5-6l==3r_kv=#ee7UB&XYlsyX?%fkm#PjengBep{f%; zJ>>K-CJWXl|8jchyq!^3BdaHe3MNq1$oJ$Cuf3LDihBMi)-ln(o+e3$X>HkLzHgRv zeANl9-8E@93^1sN9oxveQx$+y%NM0fMKN9t9o~s#B{_#_f&iP8=@wI!^@-AJJrGXl z6VwH2XA63jl&9*pVr9i4t=Ur^EEVGG=+%<|k%#044zq#F_azs4_NNcA7-kN73}qzIx1!X3dA)S^X&^H) z&Y(KggD0xx9F-3!u5a6ju`6RY&V546zKvS_U4U(Dr>rpvy z9Uh0(KoChZI*o59wJ5J>3Eio#wc~h2PaeOo^H63_s&Br&qEi*to~H<) zwa4IqeO*tBwS<>*2WBbCDDY>Hc;9Zn$i?twYE{y)wEe)6bGha`#hFc3;4=%El07cn zk3+-+CNRoWb{0g7t25ah=!a837dT$jt^q&q@X>c)e$MrIq;EUBJDb*D$eNCn2s(Ud z6;LBGXxS?REm40ZBTa_WtsHhN_Ozw^wbw!U@ZeIF%7t;Gx=pPxKiIqsH{o}Ck#UL`Zzg;{pg!Y&eSIPiswnM$|> zh~!rinci^in|?t*nC#|yNy`G$TznrU^=9bsW$@lqj(=TR_us|mo2OdoaHKLnBb8Yc zM0Ufnfq$)~3^n8HQ=K^5ILeS2Tl$Rn)2Qh*z?k=6(|ra9r-`gy+28iny6a!4N*Z&G zTRJb>Ke9-jfIi|kH3U2ddv|vcw2V-<9d{tkCWU35-*mZ&l~zRtBp_JOpkJH-3-07n z1nBK^H`~DMgyl7XDIY+=RHmtN5Fn?r{?pE72YUnSI%@)uXcqR^7B#iHh`sx9U`@XM z(M|R5rOEn@MRse*uG>Y8c!QqrVq;P4_qvmf?F7siG~Js{M;=F$=iZa2-8^@PidnD$ zm8;;vI#-&5(<8YVKg=RrI@Sb=P7&aUpS`jqzV zO81$2`Vw3Lj+8O&j*2UeeQrM;r+vk3aIXl&seEEGeb^04Zy;tzQ&q@_)FY+*O0}Ak z`sOK$i;({@10OPVmpThgPwEeZ5y06cJ4DVzdmEHg)~g!=juvQxG~`uGJJPz>ixL!# zFaoV;99<4K9}pZ&{(OF4J@u+!7kMj>&R~sf-M4RwcAY(&qiF^A#!fgXjmbo60`%rm z4~!K`?p7#5qHYR0<8_XEb}7LuoA2HpuX<04&Ex6M?>=jTdI>p$v^ax8WDS{I(aS|k zbLc-RKMC5taOP-)?UrTRR-P@os$OJ$kqa%cwcnBN(`s-$0%c5{PqpT->j^U+nDGhw zhOH&7pm4%M8um(_6O~}jg&|4@jib>|+9*$dY#M!!R?~s z|29rc8Cx!t;3sX=T61m%lpC3rTka9YIRyXSmP}8t;ISpMkta8~6p+Mj07pvZimDZM zVv`n7E2Nh=$KFYxK}r4>gPQba&wzIwS4%h1^2feTY(2r3-O?){R_0FK4~`7T^8C{& zY#*W_q=o+NJvpEJnPxruu_cP#bwTr8KN3WUOY4TxskRc@VcPx2mxyR9`fLbuB}#bv z^czJrV^C^>VBTd+a0%p2T4=NIbYo#LB0h9rI)eGBI+tMfEB=(!LLUMFQ^K7&#o>EYSgLk34OLSf&;P6hgEgq7*gfnRYA5ITpGwe;f z-$-yyeCO&!nzdJUy%d~l4hDjdHfGKlw2qlx{Hjh-Q8A{vE;!{Za8J)aK(Ghoz+DbH z-=sFYBJKjI)fzvpC4GNo_OI*eFWXfyPLHNu0V8lNS9;xrrfXR|Cj-A=CgTlG%g&yC zS%}JQ?EluOV|VogeX4bny+OOl;0(~Dk|>b7@i@g5O{3o0yNDyyT@ z4-=^t$9|_X)3-H{blHnaUj|!+Jy>#Z&$6}6pH^LoEVQ)O_^(foe8p`BM4F+#cVE?a zD}#NM4^+kJ{lEY!awb)2-33Ksc59fEE7Y4S>%m|3s!fVZm>*tQWvH4j2{^w~uF|dv z*gdg8Cgv_)(l=bs1;b>J>sz#e=%Z%p6DkaN@+n;uzz0T}i28=zhCTCHWrcUW*)O>o z;{b*O7!nVI2XB=xh?1fQ_~+?gceiB>fl`*pk}bAnn#I%_Lkgy{xXN%rX31|=Osmtn zNqh13ukallJM`NwDT5zpywWHB(E3?nvF8?k&mhD_qdn_t>gITJ_VWFR^wi6G+i*7y zrg`a>DJR%!O68gyKw*_K?L*B+5Y$&yrQ*`zjH;S0IoRy%j(X94v~|W_8}iU)QK`bZ zR#Fx_Z|R3^@81K7>yf!_uKwQ8&j)Y*(sw61LI~i8@0AC zBTGBB9DgKU$cM~Kkh76&H36_Q7 zs1PUE5ZPY-E6n(3jg6J1`7>2v_VXDe&-MYe2g5=&e`l}b;Bfjs`GKN8j_~ccb}iB} zEn~#d3|9OaFDdgxCiCLz+R6Qi58b(^4;t<&;uU95&v3Jb9PT+5(sw)f@wh+@gP8A1 zs(i0MXnw77nB6~MJIqjSh9G&tPkTL54lXbPz9rhFKSVqjW(?gZ-AJv%2#-arBV| z{5IUg;}6C?ZmjgxHxgfTr3KOc-sj#}RQo^*3+P16{_QW7rkE|OUK}UPW`IEHK$Xt= iaKbAJINwP}5V)3qGVP(?-9vJ*fU>;C+ge$(u>S+e6l$#i literal 0 HcmV?d00001 diff --git a/icons/announce_copy.png b/icons/announce_copy.png new file mode 100644 index 0000000000000000000000000000000000000000..a071ff39317f469311a10c5776c562bfa20dd566 GIT binary patch literal 4049 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 D#`>JR literal 0 HcmV?d00001 diff --git a/icons/announce_delete.png b/icons/announce_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..610f1d4d3c8d067569ed66b8d6fb570f7f96ad28 GIT binary patch literal 4046 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 AGXMYp literal 0 HcmV?d00001 diff --git a/icons/announce_edit.png b/icons/announce_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa9edf2f6ca6a4e222d727537634b83d3d5624b GIT binary patch literal 4354 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 literal 0 HcmV?d00001 diff --git a/icons/apply_to_all.png b/icons/apply_to_all.png new file mode 100644 index 0000000000000000000000000000000000000000..a713488c075bf55fb50e8be4e134d4c78300609e GIT binary patch literal 2762 zcmV;*3N`hKP)W-|zP)ZJy`1dhJ(oT>>|6-n_Nj?OuELhd#~6KJhf> zL4+VcbOR6o5kv$L5c0cfnuuT)xH}#}Yz%@3hzLYBgObNZg`fZAhy3#|zoA|W{bqaO z$&d5%KR-&{?U-t1nkH(k)LNOQO0CLN3bhuds??&Cl6zIjK|F}&ggMQexf!h)vqkP( zqqW97H`?5o+nzShSetqJQ&01w?>_*6i+v-?j*v>|4wp)3A*2u}5sIS(iicpKhzlS{ z_o%yIk>(+J9}rmoUh-IkP$4u36-;2B8^C{0U~Zn^Wm-Ucbl@R)-AxJ2KBB9_4A_PK-^!~`02*Cr~!9r-R zm`4)vRLvrA6pv0uDk1s&2O`j#5u%HyJqm`Rp;!pwByfRnC@R-SwAxp&^V zbBBj&1kjlARxkt@T@)_m>K4d>>g!$^mgWjry4DytKb-^ zh==2$%-$6ck)HuKvSbMnS=wq%amIN75#fbBoch{ED)LKj+w6nY@W$F5oo>wk&O`n9-x-BT!b)?2tqZl zhi5r)L);*oa9_s4J>Rm?pCOs363#r&kRpN$Hb{)B)Rky1SU?NGJyrtqJa?cD9*7Rm z4(k1U0~e5#j)=V06#-rw ztfjX-5Z!oEB|%#UX_7!oq<2+&N$h=)cd{M)LdLxl$?Fo1c#a_v%q>ge-(EK^XzW|- zsz#Qx9-l=b-yq&Ets&I%VX8zp8nyt>sx1r9C0s-akwXRgweSww47Y}uWnT2~3eRMb z9%j}ug#P}z;Zr7ldL%Yuug?}n(>D}otxIf(N$(@o$fgrrTu20n=tcoEBv!y-biems7bkkcF~F<#agP-^ zOz3Ss9E6q|(tl&t`dHct#1-IU*$>B7AU)y6`jTgJLoD7$JMixP1TTHqQw01d7i?9e zABP(@6p+#_?gKuZrCJUZ2)7lutoKC(s=eYY1SClyN8`sq7)1}2xDN?2!^?(%)_j?q z0zaN1K`9#o?iv5fJvKb|3TI^c}YIcA`p~RO0#37@7*(B zTL{xMai-@u6G0|KS84hgtBoWDWT z3U!A>1$Cq-M9G*&;a%|J{33PAIq)(ME|sZFOl6{K9#>5(S}0PMPPawtt+dm;G22YD z#_WA>bIya?ob%v)?w``9I-^X`TBntOAlZ0XgNt)q1XR&cRxfS%`aCso z_0=TJBiRJ>x#4t51RwBbfa_oq{@1J(j4l2_DfuiN0gl?+n!S{Xa z552tcwu>k5@$2q+70p@NARwcsPZEums)S+Knj^aAh!4VW+mTFqC)M)sOCi;?9VEJYKCAVH@1K8qkzf4v z2$vH)_Nty!v@}XZCqTZ9Bma~s?)(U z4&1)kj2t*}d9BZD{V;5XaTx!j3XQjS(8DM^$+)kvKla^PG<;bjIYFS-itpY=+21?) zqs4g|G};0_B(g=2plC_pJ!}pVc;k%GIs_+F*eI~IMpnNo3H;!N7vb5@F7w)a#@GkH ze)ae8mwzl}ZiJ4DQ=}{p9WBF9VM+8&7zM%1%(2V2(NCc{5j{PwsN@ zbYo*R%~`6@B?4ylT{C-P)K=gib|Zp$p5F`HY&7n1k9&5HB4v&B{!ug=Hg73Aepm@~ zvmf9GNI9~j?Memi-o5*!lUFv|ty{Ogw%hH#A}UJ-GRar}sfTS#>_JZg>&$Qf@ALO7 z!S~;fe(e&0Hv_-jwCGww6(~phW4j-yp~71L51>^!wOxxqDP{HUbx9n9Iu4!V?I=ga z6!O6c)N&f+F`27WSXV_Zht5^tyN!0|!3i8I@K#A|x2^ZLp#R?l>Qpa#^(sPJB3mzS zy}#YI>Kx~VT;1+mkH8q@%?O;zixEP@j=>Kb;~f#H)Bl3NR4;?S%8tow71;J=Tkt15 z|34+Ln|4=E81ARaAVCMe_4cVTPK>{sb`MTq`u)V`3Totu?eSv0s|^j@1Nrw)X)G=y{$GzHiUXb1rVR*0%FsJpa!2$`;#y0CI6G4OoOO Qk^lez07*qoM6N<$f(4{9D*ylh literal 0 HcmV?d00001 diff --git a/icons/base-22x22-actions-application-exit.png b/icons/base-22x22-actions-application-exit.png new file mode 100644 index 0000000000000000000000000000000000000000..ebe3b9c194a220e281579571ac6b320a0650682e GIT binary patch literal 888 zcmV-;1Bd*HP)c2%;QwWa;RFn^fe=lh-CFe9wB{2!61x0ualt+f^*#J^!WV`F2*x?q6u@o|#r zH)&nBj$})UWJ1v*At?n)DU?!3DQn`!7`nT=gX+8?*jmfS0~7e(BBiBS0&jt!xIoF9 zLwj?C#d*wff#|769G1ysGOy$}1Ov3L-;C<$B;|J#20l^QCn}fFfsYP+OxeejmU%RE zc2%xyNEHHS;VvDIZ?C1@FdBk|5WG?Nn^RlTy!~+MKLjJtT66HgK2Gk~K*xiB22TK- z`yzM1YV8^m6I(-jXBVFw`3$^S01of%Lu<|OO4cN?~Jjcm*7308DQ$QYnP2Qz6&oST2V#hQS|yV`<}d5`K~N+`YPB37~ZdK;-+i zX2Ouzm=`;zr@?hOaj2g&eOqaJ@OyK|K@e5Ir4m9Z4&K-p7a(c!2`Jeyd z*}L1;Dn(RtEUHhno`6!QFhl{dwOAXk?KsqWmE%=zl_I%wCoKa5d^?)w>xo;G-}?wk z%WF6e^$W)@fnM&DJw2p`hq*MGXYi+Kf)92<*>6(gsB(Fo%k|Zl`ul0Se3?t5KXBpZ zU38`og2vDqIMz|F_s~&{HW+J267Mb)7HM_f;r2ux=jv64M)M3!-p78pzbUi^zIpBY z8^Dd~Vm6z#e@x$ETmNwYE{^2+=K2)DTbl?c^8|&*Xm1w%WFGxwu`#%A*qFk-KNc!$p}V9M(D}B-}LA!k*W@awU(}~ zuGVxq?MNvdz!5^U0}jwGrEH7i_$g2XJZo(c@Zvc3eBbwGW@gIu6rKa;o>U_0za^yr O00002?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4+%fXjWEm4}#e9$RgY;NB>)dZP9L zvt#;-_6J#djyHXty1{_IEG>2Ryk8}y^-L2!^)HG3mKy!s`d`;BW|4i%R+?nwhTNMI z^U=BQ{-UH49>xZtzt-IFmS%8!5Y2hRtJywHq4z+*%gxFEZ!wr_{*&F);4M2XTOnye T+YeEoLl`_={an^LB{Ts5bGK&D literal 0 HcmV?d00001 diff --git a/icons/bibleHistoryDelete.png b/icons/bibleHistoryDelete.png new file mode 100644 index 0000000000000000000000000000000000000000..c08f45e2cdce2237a15c49f9fa8af63d3c383e6e GIT binary patch literal 4215 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 N002ovPDHLkV1mDs13CZz literal 0 HcmV?d00001 diff --git a/icons/book.png b/icons/book.png new file mode 100644 index 0000000000000000000000000000000000000000..54711588d656193e9a3da8aadc9b0ee4d89d2f13 GIT binary patch literal 3806 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 UqSG1TP5=M^07*qoM6N<$g4O6?$^ZZW literal 0 HcmV?d00001 diff --git a/icons/bottomOfScreen.png b/icons/bottomOfScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..05ea8008ab18c1fa2debf3ecd11cae46e36d1f49 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4huuK)l4 zUo!E{LU|XH?G1$|)Pu!hgqAGRcrvA#r>#zzJZ)4-Zc^=$(4<<<*m~-aDiem>3D7Y@MJTLL@|Nd5ACWe29WYgxw={^8D Og2B_(&t;ucLK6TGpkw|3 literal 0 HcmV?d00001 diff --git a/icons/clear.png b/icons/clear.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1ca63aefe8e22ce6ca690d1eede5bafaa58e76 GIT binary patch literal 2768 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 Qk^lez07*qoM6N<$f(4{9D*ylh literal 0 HcmV?d00001 diff --git a/icons/controlExit.png b/icons/controlExit.png new file mode 100644 index 0000000000000000000000000000000000000000..37a933344d7e40403a57abdc7d3abf8f883faaa8 GIT binary patch literal 4489 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 bMj8JH=Y~dZ3=%T{00000NkvXXu0mjfsR@y& literal 0 HcmV?d00001 diff --git a/icons/controlExitHovered.png b/icons/controlExitHovered.png new file mode 100644 index 0000000000000000000000000000000000000000..04f62c53f97464e3dd0c77339405969a5005f770 GIT binary patch literal 6978 zcmXw82{e@N_kZnEDKlBiR19G-B=Pv zOtMB9TV%`jd;6dBzvo@fyytoDv&`q-`+4q-zNdHl?CFcA0RT9wrHL^B-`4+b2s8Mc z%LtGMUyMFzt@{vAf+2Qz@b@WCO;aDR{rJC|4lR=P2>f`#SKY+d(8Iwuz{cAi2nYxe zb9Q&}!P$7)i+OlEX00h*1b~YzS{SwakFr-oCX&B(rR^vPv#Y)aM!yUQ1=+;9M#F

No media
")); + +// volumeSlider->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Preferred); + +// ui->horizontalLayoutControls->addWidget(volumeSlider); + +// ui->horizontalLayoutTime->insertWidget(0,timeSlider); + +// connect(&mediaPlayer, SIGNAL(metaDataChanged()), this, SLOT(updateInfo())); +// connect(&mediaPlayer, SIGNAL(totalTimeChanged(qint64)), this, SLOT(updateTime())); +// connect(&mediaPlayer, SIGNAL(tick(qint64)), this, SLOT(updateTime())); +// connect(&mediaPlayer, SIGNAL(finished()), this, SLOT(finished())); +// connect(&mediaPlayer, SIGNAL(stateChanged(Phonon::State,Phonon::State)), +// this, SLOT(stateChanged(Phonon::State,Phonon::State))); +// connect(&mediaPlayer, SIGNAL(hasVideoChanged(bool)), this, SLOT(hasVideoChanged(bool))); + +// connect(videoWidget, SIGNAL(playPause()), this, SLOT(playPause())); +// connect(videoWidget, SIGNAL(handleDrops(QDropEvent*)), this, SLOT(handleDrop(QDropEvent*))); + + ui->pushButtonPlayPause->setEnabled(false); + setAcceptDrops(true); + +// Phonon::createPath(&mediaPlayer, &m_AudioOutput); +// Phonon::createPath(&mediaPlayer, videoWidget); + + audioExt = "*.mp3 *.acc *.ogg *.oga *.wma *.wav *.asf *.mka"; + videoExt = "*.wmv *.avi *.mkv *.flv *.mp4 *.mpg *.mpeg *.mov *.ogv *.ts"; + loadMediaLibrary(); +} + +MediaWidget::~MediaWidget() +{ + delete videoWidget; +// delete timeSlider; +// delete volumeSlider; + delete ui; +} + +void MediaWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void MediaWidget::loadMediaLibrary() +{ + QSqlQuery sq; + sq.exec("SELECT * FROM Media"); + while(sq.next()) + { + mediaFilePaths.append(sq.value(0).toString()); + mediaFileNames.append(sq.value(1).toString()); + ui->listWidgetMediaFiles->clear(); + ui->listWidgetMediaFiles->addItems(mediaFileNames); + } +} + +/* +void MediaWidget::stateChanged(Phonon::State newstate, Phonon::State oldstate) +{ + Q_UNUSED(oldstate); + + switch (newstate) + { + case Phonon::ErrorState: + if (mediaPlayer.errorType() == Phonon::FatalError) + { + ui->pushButtonPlayPause->setEnabled(false); + hasVideoChanged(false); + ui->labelInfo->setText(QString("
%1
").arg(tr("No Media"))); + } + else + mediaPlayer.pause(); + + QMessageBox::warning(this, "softProjector MediaPlayer", mediaPlayer.errorString(), QMessageBox::Close); + break; + + case Phonon::StoppedState: + ui->pushButtonPlayPause->setIcon(playIcon); + ui->pushButtonPlayPause->setEnabled(true); + break; + case Phonon::PausedState: + ui->pushButtonPlayPause->setIcon(playIcon); + if (mediaPlayer.currentSource().type() != Phonon::MediaSource::Invalid) + ui->pushButtonPlayPause->setEnabled(true); + else + ui->pushButtonPlayPause->setEnabled(false); + break; + case Phonon::PlayingState: + ui->pushButtonPlayPause->setEnabled(true); + ui->pushButtonPlayPause->setIcon(pauseIcon); + + break; + case Phonon::BufferingState: + + break; + case Phonon::LoadingState: + + break; + } +} +*/ + +void MediaWidget::handleDrop(QDropEvent *e) +{ + QList urls = e->mimeData()->urls(); + QStringList fileList; + QStringList fileNameList; + + // Make sure that only supported files get to media player + QString fext = audioExt + " " + videoExt; + fext.remove("*"); + fext.replace(" ","$|"); + fext.append("$"); + QRegExp rx(fext); + rx.setCaseSensitivity(Qt::CaseInsensitive); + foreach(const QUrl &url, urls) + { + QString fp = url.toLocalFile(); + if(fp.contains(rx)) + { + QFileInfo fn(fp); + fileList.append(fp); + fileNameList.append(fn.fileName()); + } + } + + // Add files to library + if(fileList.count()>0) + { + int mcount = ui->listWidgetMediaFiles->count(); // get total media count + insertFiles(fileList); + ui->listWidgetMediaFiles->setCurrentRow(mcount); // select first in list of just added and play it + } +} + +void MediaWidget::dropEvent(QDropEvent *e) +{ + if (e->mimeData()->hasUrls() && e->proposedAction() != Qt::LinkAction) { + e->acceptProposedAction(); + handleDrop(e); + } else { + e->ignore(); + } +} + +void MediaWidget::dragEnterEvent(QDragEnterEvent *e) +{ + dragMoveEvent(e); +} + +void MediaWidget::dragMoveEvent(QDragMoveEvent *e) +{ + if (e->mimeData()->hasUrls()) { + if (e->proposedAction() == Qt::CopyAction || e->proposedAction() == Qt::MoveAction){ + e->acceptProposedAction(); + } + } +} + +void MediaWidget::playPause() +{ +// if (mediaPlayer.state() == Phonon::PlayingState) +// mediaPlayer.pause(); +// else +// { +// if (mediaPlayer.currentTime() == mediaPlayer.totalTime()) +// mediaPlayer.seek(0); +// mediaPlayer.play(); +// } +} + +void MediaWidget::playFile(QString filePath) +{ + //mediaPlayer.stop(); +// mediaPlayer.setCurrentSource(Phonon::MediaSource(filePath)); + //mediaPlayer.play(); +} + +void MediaWidget::updateInfo() +{ + int maxLength = 50; + QString font = ""; + + QString fileName;// = mediaPlayer.currentSource().fileName(); + QFileInfo f(fileName); + QString fName = f.fileName(); +/* + QMap metaData = mediaPlayer.metaData(); + QString tAlbum = metaData.value("ALBUM"); + QString tTitle = metaData.value("TITLE"); + QString tArtist = metaData.value("ARTIST"); + int tBitrate = metaData.value("BITRATE").toInt(); + + if (fName.length() > maxLength) + fName = fName.left(maxLength) + "..."; + + if (tAlbum.length() > maxLength) + tAlbum = tAlbum.left(maxLength) + "..."; + + if (tTitle.length() > maxLength) + tTitle = tTitle.left(maxLength) + "..."; + + if (tArtist.length() > maxLength) + tArtist = tArtist.left(maxLength) + "..."; + + QString file; + if(!fName.isEmpty()) + file = "File: " + font + fName + "
"; + + QString album; + if(!tAlbum.isEmpty()) + album = "Album: " + font + tAlbum + "
"; + + QString title; + if(!tTitle.isEmpty()) + { + title = "Title: " + font + tTitle + "
"; + file.clear(); + } + + QString artist; + if (!tArtist.isEmpty()) + artist = "Artist: " + font + tArtist + "
"; + + QString bitrate; + if (tBitrate != 0) + bitrate = "Bitrate: " + font + QString::number(tBitrate/1000) + "kbit"; + + ui->labelInfo->setText(file + album + title + artist + bitrate); + */ +} + +void MediaWidget::insertFiles(QStringList &files) +{ + // Insert filenames and path into appropriate lists and database + QSqlQuery sq; + foreach(const QString &file, files) + { + QFileInfo f(file); + mediaFileNames.append(f.fileName()); + mediaFilePaths.append(file); + sq.exec(QString("INSERT INTO Media (long_Path, short_path) VALUES('%1', '%2')").arg(file).arg(f.fileName())); + ui->listWidgetMediaFiles->addItem(f.fileName()); + } +} + +void MediaWidget::updateTime() +{ + long len = 0;//mediaPlayer.totalTime(); + long pos = 0;//mediaPlayer.currentTime(); + QString timeString; + if (pos || len) + { + int sec = pos/1000; + int min = sec/60; + int hour = min/60; + int msec = pos; + + QTime playTime(hour%60, min%60, sec%60, msec%1000); + sec = len / 1000; + min = sec / 60; + hour = min / 60; + msec = len; + + QTime stopTime(hour%60, min%60, sec%60, msec%1000); + QString timeFormat = "m:ss"; + if (hour > 0) + timeFormat = "h:mm:ss"; + timeString = playTime.toString(timeFormat); + if (len) + timeString += " / " + stopTime.toString(timeFormat); + } + ui->labelTime->setText(timeString); +} + +void MediaWidget::finished() +{ + +} + +void MediaWidget::hasVideoChanged(bool bHasVideo) +{ +// if(!bHasVideo && videoWidget->isFullScreen()) +// videoWidget->setFullScreen(false); +// ui->labelInfo->setVisible(!bHasVideo); +// ui->pushButtonGoLive->setEnabled(bHasVideo); +// videoWidget->setVisible(bHasVideo); +// ui->comboBoxAspectRatio->setEnabled(bHasVideo); +} + +void MediaWidget::prepareForProjection() +{ +// mediaPlayer.pause(); +// QFileInfo fn( mediaPlayer.currentSource().fileName()); +// VideoInfo v; +// v.aspectRatio = ui->comboBoxAspectRatio->currentIndex(); +// v.fileName = fn.fileName(); +// v.filePath = fn.filePath(); +// emit toProjector(v); +} + +void MediaWidget::on_pushButtonOpen_clicked() +{ + QString file = QFileDialog::getOpenFileName(this,tr("Open Music/Video File"),".", + tr("Media Files (%1);;Audio Files (%2);;Video Files (%3)") + .arg(audioExt + " " + videoExt) // media files + .arg(audioExt) // audio files + .arg(videoExt)); // video files + if(!file.isEmpty()) + { + playFile(file); + ui->listWidgetMediaFiles->clearSelection(); + } +} + +void MediaWidget::on_pushButtonPlayPause_clicked() +{ + playPause(); +} + +void MediaWidget::on_pushButtonGoLive_clicked() +{ + prepareForProjection(); +} + +void MediaWidget::addToLibrary() +{ + QStringList mfp = QFileDialog::getOpenFileNames(this,tr("Select Music/Video Files to Open"),".", + tr("Media Files (%1);;Audio Files (%2);;Video Files (%3)") + .arg(audioExt + " " + videoExt) // media files + .arg(audioExt) // audio files + .arg(videoExt)); // video files + + if(mfp.count()>0) + insertFiles(mfp); +} + +void MediaWidget::removeFromLibrary() +{ + int cm = ui->listWidgetMediaFiles->currentRow(); + if(cm>=0) + { + QSqlQuery sq; + sq.exec("DELETE FROM Media WHERE short_path = '" +mediaFileNames.at(cm)+ "'"); + mediaFilePaths.removeAt(cm); + mediaFileNames.removeAt(cm); + + ui->listWidgetMediaFiles->setCurrentRow(-1); + ui->listWidgetMediaFiles->clear(); + if(mediaFileNames.count()>0) + ui->listWidgetMediaFiles->addItems(mediaFileNames); +// mediaPlayer.stop(); + + hasVideoChanged(false); + + ui->labelInfo->setText(tr("
No media
")); + } +} + +void MediaWidget::on_listWidgetMediaFiles_itemSelectionChanged() +{ + int cRow = ui->listWidgetMediaFiles->currentRow(); + if(cRow>=0) + playFile(mediaFilePaths.at(cRow)); +} + +void MediaWidget::on_listWidgetMediaFiles_doubleClicked(const QModelIndex &index) +{ + if(ui->pushButtonGoLive->isEnabled()) + prepareForProjection(); +} + +void MediaWidget::on_comboBoxAspectRatio_currentIndexChanged(int index) +{ +// videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatio(index)); +} + +VideoInfo MediaWidget::getMedia() +{ + VideoInfo v; + int cm = ui->listWidgetMediaFiles->currentRow(); + v.fileName = mediaFileNames.at(cm); + v.filePath = mediaFilePaths.at(cm); + return v; +} + +void MediaWidget::setMediaFromSchedule(VideoInfo &v) +{ + ui->listWidgetMediaFiles->clearSelection(); + playFile(v.filePath); +// mediaPlayer.pause(); +} + +void MediaWidget::goLiveFromSchedule() +{ + if(ui->pushButtonGoLive->isEnabled()) + prepareForProjection(); +// else +// mediaPlayer.play(); +} + +bool MediaWidget::isValidMedia() +{ + if(ui->listWidgetMediaFiles->selectionModel()->selectedRows().count() > 0) + return true; + else + return false; +} diff --git a/mediawidget.h b/mediawidget.h new file mode 100644 index 0000000..0752a66 --- /dev/null +++ b/mediawidget.h @@ -0,0 +1,101 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef MEDIAWIDGET_H +#define MEDIAWIDGET_H + +#include +#include +//#include +//#include +//#include +//#include +//#include +#include "videoplayerwidget.h" +#include "videoinfo.h" + +namespace Ui { +class MediaWidget; +} + +class MediaWidget : public QWidget +{ + Q_OBJECT + +public: + explicit MediaWidget(QWidget *parent = 0); + ~MediaWidget(); + +public slots: + void addToLibrary(); + void removeFromLibrary(); + VideoInfo getMedia(); + void setMediaFromSchedule(VideoInfo &v); + void goLiveFromSchedule(); + bool isValidMedia(); +protected: + void dragEnterEvent(QDragEnterEvent *e); + void dragMoveEvent(QDragMoveEvent *e); + void dropEvent(QDropEvent *e); + void changeEvent(QEvent *e); + +signals: + void toProjector(VideoInfo &vid); + +private slots: + void playFile(QString filePath); + void updateInfo(); + void updateTime(); + void finished(); + void playPause(); + + void handleDrop(QDropEvent *e); + void loadMediaLibrary(); +// void stateChanged(Phonon::State newstate, Phonon::State oldstate); + + void hasVideoChanged(bool); + void insertFiles(QStringList &files); + void prepareForProjection(); + + void on_pushButtonOpen_clicked(); + void on_pushButtonPlayPause_clicked(); + void on_pushButtonGoLive_clicked(); + void on_listWidgetMediaFiles_itemSelectionChanged(); + void on_listWidgetMediaFiles_doubleClicked(const QModelIndex &index); + void on_comboBoxAspectRatio_currentIndexChanged(int index); + +private: + Ui::MediaWidget *ui; + + QIcon playIcon; + QIcon pauseIcon; + +// Phonon::SeekSlider *timeSlider; +// Phonon::VolumeSlider *volumeSlider; +// Phonon::MediaObject mediaPlayer; +// Phonon::AudioOutput m_AudioOutput; + VideoPlayerWidget *videoWidget; + + QString audioExt; + QString videoExt; + QStringList mediaFilePaths; + QStringList mediaFileNames; +}; + +#endif // MEDIAWIDGET_H diff --git a/mediawidget.ui b/mediawidget.ui new file mode 100644 index 0000000..28c969d --- /dev/null +++ b/mediawidget.ui @@ -0,0 +1,188 @@ + + + MediaWidget + + + + 0 + 0 + 712 + 491 + + + + Form + + + + + + Qt::Horizontal + + + + + + + - Media Library - + + + Qt::AlignCenter + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Go Live (F5) + + + + :/icons/icons/go_live.png:/icons/icons/go_live.png + + + F5 + + + + + + + + + + + + 0 + 0 + + + + + 0 + 70 + + + + true + + + 10 + + + + + + + + + + + Open + + + + + + + + + + + + + + Aspect Ratio: + + + + + + + + Auto + + + + + Scale + + + + + 4/3 + + + + + 16/9 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + + + + + + + listWidgetMediaFiles + pushButtonOpen + pushButtonPlayPause + comboBoxAspectRatio + pushButtonGoLive + + + + + + diff --git a/moduledownloaddialog.cpp b/moduledownloaddialog.cpp new file mode 100644 index 0000000..d04197c --- /dev/null +++ b/moduledownloaddialog.cpp @@ -0,0 +1,72 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "moduledownloaddialog.h" +#include "ui_moduledownloaddialog.h" + +ModuleDownloadDialog::ModuleDownloadDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::ModuleDownloadDialog) +{ + ui->setupUi(this); +} + +ModuleDownloadDialog::~ModuleDownloadDialog() +{ + delete ui; +} + +void ModuleDownloadDialog::setList(QStringList &modList) +{ + ui->listWidget->clear(); + foreach(const QString &mod, modList) + ui->listWidget->addItem(mod); + } + +QList ModuleDownloadDialog::getSelected() +{ + QList mods; + int count = ui->listWidget->count(); + for(int i(0);count>i;++i) + { + if(ui->listWidget->item(i)->isSelected()) + mods.append(i); + } + return mods; +} + +void ModuleDownloadDialog::on_buttonBox_accepted() +{ + +} + +void ModuleDownloadDialog::on_buttonBox_rejected() +{ + +} + +void ModuleDownloadDialog::on_pushButtonSelectAll_clicked() +{ + ui->listWidget->selectAll(); +} + +void ModuleDownloadDialog::on_pushButtonDeselectAll_clicked() +{ + ui->listWidget->clearSelection(); +} diff --git a/moduledownloaddialog.h b/moduledownloaddialog.h new file mode 100644 index 0000000..44afadd --- /dev/null +++ b/moduledownloaddialog.h @@ -0,0 +1,51 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef MODULEDOWNLOADDIALOG_H +#define MODULEDOWNLOADDIALOG_H + +#include + +namespace Ui { +class ModuleDownloadDialog; +} + +class ModuleDownloadDialog : public QDialog +{ + Q_OBJECT + +public: + explicit ModuleDownloadDialog(QWidget *parent = 0); + ~ModuleDownloadDialog(); + +public slots: + void setList(QStringList &modList); + QList getSelected(); + +private slots: + void on_buttonBox_accepted(); + void on_buttonBox_rejected(); + void on_pushButtonSelectAll_clicked(); + void on_pushButtonDeselectAll_clicked(); + +private: + Ui::ModuleDownloadDialog *ui; +}; + +#endif // MODULEDOWNLOADDIALOG_H diff --git a/moduledownloaddialog.ui b/moduledownloaddialog.ui new file mode 100644 index 0000000..6b4d10b --- /dev/null +++ b/moduledownloaddialog.ui @@ -0,0 +1,115 @@ + + + ModuleDownloadDialog + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + + Select modules you wish to download and import. + + + + + + + QAbstractItemView::MultiSelection + + + + + + + + + Select All + + + + + + + Deselect All + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + listWidget + pushButtonSelectAll + pushButtonDeselectAll + buttonBox + + + + + buttonBox + accepted() + ModuleDownloadDialog + accept() + + + 389 + 289 + + + 157 + 274 + + + + + buttonBox + rejected() + ModuleDownloadDialog + reject() + + + 389 + 289 + + + 286 + 274 + + + + + diff --git a/moduleprogressdialog.cpp b/moduleprogressdialog.cpp new file mode 100644 index 0000000..732bd3a --- /dev/null +++ b/moduleprogressdialog.cpp @@ -0,0 +1,115 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "moduleprogressdialog.h" +#include "ui_moduleprogressdialog.h" + +ModuleProgressDialog::ModuleProgressDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::ModuleProgressDialog) +{ + ui->setupUi(this); + clearAll(); +} + +ModuleProgressDialog::~ModuleProgressDialog() +{ + delete ui; +} + +void ModuleProgressDialog::setCurrentValue(int value) +{ + ui->progressBarCurrent->setValue(value); +} + +void ModuleProgressDialog::setCurrentMax(int max) +{ + ui->progressBarCurrent->setMaximum(max); +} + +void ModuleProgressDialog::setCurrentMin(int min) +{ + ui->progressBarCurrent->setMinimum(min); +} + +void ModuleProgressDialog::setCurrent(int value, int max) +{ + ui->progressBarCurrent->setMaximum(max); + ui->progressBarCurrent->setValue(value); +} + +void ModuleProgressDialog::setTotalValue(int value) +{ + ui->progressBarTotal->setValue(value); +} + +void ModuleProgressDialog::setTotalMax(int max) +{ + ui->progressBarTotal->setMaximum(max); +} + +void ModuleProgressDialog::setTotal(int value, int max) +{ + ui->progressBarTotal->setMaximum(max); + ui->progressBarTotal->setValue(value); +} + +void ModuleProgressDialog::increaseTotal() +{ + int c = ui->progressBarTotal->value(); + ++c; + ui->progressBarTotal->setValue(c); +} + +void ModuleProgressDialog::setSpeed(QString speed) +{ + ui->labelSpeed->setText(speed); +} + +void ModuleProgressDialog::appendText(QString text) +{ + ui->plainTextEdit->appendPlainText(text); +} + +void ModuleProgressDialog::clearAll() +{ + ui->plainTextEdit->clear(); + ui->labelSpeed->clear(); + ui->progressBarCurrent->setValue(0); + ui->progressBarTotal->setValue(0); + ui->pushButton->setEnabled(false); +} + +void ModuleProgressDialog::enableCloseButton(bool enable) +{ + ui->pushButton->setEnabled(enable); +} + +void ModuleProgressDialog::setToMax() +{ + ui->progressBarCurrent->setMaximum(1); + ui->progressBarCurrent->setValue(1); + ui->progressBarTotal->setMaximum(1); + ui->progressBarTotal->setValue(1); +} + +void ModuleProgressDialog::on_pushButton_clicked() +{ + close(); +} diff --git a/moduleprogressdialog.h b/moduleprogressdialog.h new file mode 100644 index 0000000..15a29c2 --- /dev/null +++ b/moduleprogressdialog.h @@ -0,0 +1,59 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef MODULEPROGRESSDIALOG_H +#define MODULEPROGRESSDIALOG_H + +#include + +namespace Ui { +class ModuleProgressDialog; +} + +class ModuleProgressDialog : public QDialog +{ + Q_OBJECT + +public: + explicit ModuleProgressDialog(QWidget *parent = 0); + ~ModuleProgressDialog(); + +public slots: + void setCurrentValue(int value); + void setCurrentMax(int max); + void setCurrentMin(int min); + void setCurrent(int value, int max); + void setTotalValue(int value); + void setTotalMax(int max); + void setTotal(int value, int max); + void increaseTotal(); + void setSpeed(QString speed); + void appendText(QString text); + void clearAll(); + void enableCloseButton(bool enable); + void setToMax(); + +private slots: + void on_pushButton_clicked(); + +private: + Ui::ModuleProgressDialog *ui; +}; + +#endif // MODULEPROGRESSDIALOG_H diff --git a/moduleprogressdialog.ui b/moduleprogressdialog.ui new file mode 100644 index 0000000..6cb352d --- /dev/null +++ b/moduleprogressdialog.ui @@ -0,0 +1,90 @@ + + + ModuleProgressDialog + + + + 0 + 0 + 400 + 300 + + + + Download / Import Progress Dialog + + + + + + false + + + true + + + + + + + + + Current Progress: + + + + + + + + + + + + + + + + + + + + + Total Progress: + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Close + + + + + + + + + + diff --git a/mpsettings.ui b/mpsettings.ui new file mode 100644 index 0000000..cd85222 --- /dev/null +++ b/mpsettings.ui @@ -0,0 +1,495 @@ + + + settings + + + + 0 + 0 + 175 + 397 + + + + Settings + + + + + + Video options: + + + true + + + + + + QComboBox::AdjustToContentsOnFirstShow + + + + Fit in view + + + + + Scale and crop + + + + + + + + Contrast: + + + + + + + + 0 + 0 + + + + -8 + + + 8 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 4 + + + + + + + Brightness: + + + + + + + -8 + + + 8 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 4 + + + + + + + Saturation: + + + + + + + -8 + + + 8 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 4 + + + + + + + Hue: + + + + + + + -8 + + + 8 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 4 + + + + + + + Aspect ratio: + + + + + + + QComboBox::AdjustToContentsOnFirstShow + + + + Auto + + + + + Stretch + + + + + 4/3 + + + + + 16/9 + + + + + + + + Scale Mode: + + + + + scalemodeCombo + label_9 + contrastSlider + label_8 + brightnessSlider + label_7 + saturationSlider + label_2 + hueSlider + label_10 + aspectCombo + label_11 + + + + + + Audio options: + + + true + + + + + + + + + 0 + 0 + + + + + 10 + 0 + + + + Audio device: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + 0 + 0 + + + + + 10 + 0 + + + + QComboBox::AdjustToMinimumContentsLength + + + + + + + + + + + + 0 + 0 + + + + + 10 + 0 + + + + Audio effect: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + 0 + 0 + + + + + 10 + 0 + + + + QComboBox::AdjustToMinimumContentsLength + + + + + + + false + + + Setup + + + + + + + + + + + + 0 + 0 + + + + + 10 + 0 + + + + Cross fade: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + + + 0 + 0 + + + + -20 + + + 20 + + + 1 + + + 2 + + + 0 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + + + + + + + + 9 + + + + -10 Sec + + + + + + + Qt::Horizontal + + + + 0 + 20 + + + + + + + + + 9 + + + + 0 + + + + + + + Qt::Horizontal + + + + 0 + 20 + + + + + + + + + 9 + + + + 10 Sec + + + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + settings + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + settings + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/passivesettingwidget.cpp b/passivesettingwidget.cpp new file mode 100644 index 0000000..f86b8ef --- /dev/null +++ b/passivesettingwidget.cpp @@ -0,0 +1,131 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "passivesettingwidget.h" +#include "ui_passivesettingwidget.h" + +PassiveSettingWidget::PassiveSettingWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::PassiveSettingWidget) +{ + ui->setupUi(this); +} + +PassiveSettingWidget::~PassiveSettingWidget() +{ + delete ui; +} + +void PassiveSettingWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch ( e->type() ) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void PassiveSettingWidget::setSetings(TextSettings &settings, TextSettings &settings2) +{ + mySettings = settings; + mySettings2 = settings2; + loadSettings(); +} + +void PassiveSettingWidget::getSettings(TextSettings &settings, TextSettings &settings2) +{ + mySettings.useBackground = ui->groupBoxBackground->isChecked(); + mySettings.backgroundName = ui->lineEditBackgroundPath->text(); + + // Get display two settings + mySettings2.useDisp2settings = ui->groupBoxDisp2Sets->isChecked(); + mySettings2.useBackground = ui->groupBoxBackground2->isChecked(); + mySettings2.backgroundName = ui->lineEditBackgroundPath2->text(); + + settings = mySettings; + settings2 = mySettings2; +} + +void PassiveSettingWidget::loadSettings() +{ + ui->groupBoxBackground->setChecked(mySettings.useBackground); + ui->lineEditBackgroundPath->setText(mySettings.backgroundName); + + // Displpay screen two + ui->groupBoxDisp2Sets->setChecked(mySettings2.useDisp2settings); + ui->groupBoxBackground2->setChecked(mySettings.useBackground); + ui->lineEditBackgroundPath2->setText(mySettings.backgroundName); +} + +void PassiveSettingWidget::setDispScreen2Visible(bool visible) +{ + ui->groupBoxDisp2Sets->setVisible(visible); +} + +void PassiveSettingWidget::on_buttonBrowseBackgound_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select a image for passive wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + if(!filename.isNull()) + { + QPixmap p(filename); + if(p.width()>1280 || p.height()>1280) + mySettings.backgroundPix = p.scaled(1280,1280,Qt::KeepAspectRatio); + else + mySettings.backgroundPix = p; + QFileInfo fi(filename); + filename = fi.fileName(); + mySettings.backgroundName = filename; + ui->lineEditBackgroundPath->setText(filename); + } +} + +void PassiveSettingWidget::on_groupBoxDisp2Sets_toggled(bool arg1) +{ + ui->groupBoxBackground2->setVisible(arg1); +} + +void PassiveSettingWidget::on_buttonBrowseBackgound2_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select a image for passive wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + if(!filename.isNull()) + { + QPixmap p(filename); + if(p.width()>1280 || p.height()>1280) + mySettings2.backgroundPix = p.scaled(1280,1280,Qt::KeepAspectRatio); + else + mySettings2.backgroundPix = p; + QFileInfo fi(filename); + filename = fi.fileName(); + mySettings2.backgroundName = filename; + ui->lineEditBackgroundPath2->setText(filename); + } +} + +void PassiveSettingWidget::on_pushButtonDefault_clicked() +{ + TextSettings p; + mySettings = p; + mySettings2 = p; + loadSettings(); +} diff --git a/passivesettingwidget.h b/passivesettingwidget.h new file mode 100644 index 0000000..054cb37 --- /dev/null +++ b/passivesettingwidget.h @@ -0,0 +1,60 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef PASSIVESETTINGWIDGET_H +#define PASSIVESETTINGWIDGET_H + +#include +#include +#include +#include "theme.h" +#include "settings.h" + +namespace Ui { +class PassiveSettingWidget; +} + +class PassiveSettingWidget : public QWidget +{ + Q_OBJECT + +public: + explicit PassiveSettingWidget(QWidget *parent = 0); + ~PassiveSettingWidget(); + +public slots: + void setSetings(TextSettings &settings, TextSettings &settings2); + void getSettings(TextSettings &settings, TextSettings &settings2); + void setDispScreen2Visible(bool visible); + +private slots: + void loadSettings(); + void on_buttonBrowseBackgound_clicked(); + void on_groupBoxDisp2Sets_toggled(bool arg1); + void on_buttonBrowseBackgound2_clicked(); + void on_pushButtonDefault_clicked(); + +private: + Ui::PassiveSettingWidget *ui; + TextSettings mySettings,mySettings2; +protected: + virtual void changeEvent(QEvent *e); +}; + +#endif // PASSIVESETTINGWIDGET_H diff --git a/passivesettingwidget.ui b/passivesettingwidget.ui new file mode 100644 index 0000000..65f03f1 --- /dev/null +++ b/passivesettingwidget.ui @@ -0,0 +1,269 @@ + + + PassiveSettingWidget + + + + 0 + 0 + 441 + 230 + + + + + + + Use Passive Background Image + + + true + + + + + + true + + + + + + + Browse... + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + 120 + 120 + 120 + + + + + + + 120 + 120 + 120 + + + + + + + + Use Separate Secondary Display Screen Settings + + + true + + + true + + + + 0 + + + 0 + + + 0 + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Use Passive Background Image + + + true + + + + + + true + + + + + + + Browse... + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 32 + + + + + + + + + + Reset All To Default + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + groupBoxBackground + buttonBrowseBackgound + lineEditBackgroundPath + groupBoxDisp2Sets + groupBoxBackground2 + buttonBrowseBackgound2 + lineEditBackgroundPath2 + pushButtonDefault + + + + diff --git a/picturesettingwidget.cpp b/picturesettingwidget.cpp new file mode 100644 index 0000000..2103bbb --- /dev/null +++ b/picturesettingwidget.cpp @@ -0,0 +1,137 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "picturesettingwidget.h" +#include "ui_picturesettingwidget.h" + +PictureSettingWidget::PictureSettingWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::PictureSettingWidget) +{ + ui->setupUi(this); +} + +PictureSettingWidget::~PictureSettingWidget() +{ + delete ui; +} + +void PictureSettingWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch ( e->type() ) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void PictureSettingWidget::setSettings(SlideShowSettings &settings) +{ + mySettings = settings; + ui->checkBoxExpand->setChecked(mySettings.expandSmall); + + if(mySettings.fitType == 0) + ui->radioButtonFit->setChecked(true); + else if(mySettings.fitType == 1) + ui->radioButtonFitExpand->setChecked(true); + + ui->groupBoxResize->setChecked(mySettings.resize); + ui->comboBoxBoundAmount->setCurrentIndex(mySettings.boundType); + if(mySettings.boundType == 7) + ui->lineEditBound->setText(QString::number(mySettings.boundWidth)); + else + ui->lineEditBound->clear(); +} + +void PictureSettingWidget::getSettings(SlideShowSettings &settings) +{ + mySettings.expandSmall = ui->checkBoxExpand->isChecked(); + + if(ui->radioButtonFit->isChecked()) + mySettings.fitType = 0; + else if(ui->radioButtonFitExpand->isChecked()) + mySettings.fitType = 1; + + mySettings.resize = ui->groupBoxResize->isChecked(); + mySettings.boundType = ui->comboBoxBoundAmount->currentIndex(); + if(mySettings.boundType == 0) + mySettings.boundWidth = 800; + else if(mySettings.boundType == 1) + mySettings.boundWidth = 1024; + else if(mySettings.boundType == 2) + mySettings.boundWidth = 1280; + else if(mySettings.boundType == 3) + mySettings.boundWidth = 1366; + else if(mySettings.boundType == 4) + mySettings.boundWidth = 1440; + else if(mySettings.boundType == 5) + mySettings.boundWidth = 1600; + else if(mySettings.boundType == 6) + mySettings.boundWidth = 1920; + else if(mySettings.boundType == 7) + { + bool ok; + mySettings.boundWidth = ui->lineEditBound->text().toInt(&ok); + if(!ok) + { + mySettings.boundType = 1; + mySettings.boundWidth = 1024; + } + } + + settings = mySettings; +} + +void PictureSettingWidget::on_comboBoxBoundAmount_currentIndexChanged(int index) +{ + if(index == 7) + { + ui->lineEditBound->setEnabled(true); + ui->lineEditBound->setFocus(); + } + else + ui->lineEditBound->setEnabled(false); +} + +void PictureSettingWidget::on_lineEditBound_textChanged(const QString &arg1) +{ + ui->labelBoundBy->setText("x " + arg1); +} + +void PictureSettingWidget::on_lineEditBound_editingFinished() +{ + bool ok; + QString t = ui->lineEditBound->text(); + if(!t.isEmpty()) + { + t.toInt(&ok); + if(!ok) + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Inalid Numeric Value")); + mb.setText(tr("Entered '%1' custom width is not numeric. ").arg(t)); + mb.exec(); + ui->lineEditBound->setFocus(); + ui->lineEditBound->selectAll(); + } + } +} diff --git a/picturesettingwidget.h b/picturesettingwidget.h new file mode 100644 index 0000000..e00847b --- /dev/null +++ b/picturesettingwidget.h @@ -0,0 +1,53 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef PICTURESETTINGWIDGET_H +#define PICTURESETTINGWIDGET_H + +#include +#include +#include "settings.h" + +namespace Ui { +class PictureSettingWidget; +} + +class PictureSettingWidget : public QWidget +{ + Q_OBJECT + +public: + explicit PictureSettingWidget(QWidget *parent = 0); + ~PictureSettingWidget(); + void setSettings(SlideShowSettings &settings); + void getSettings(SlideShowSettings &settings); + +private slots: + void on_comboBoxBoundAmount_currentIndexChanged(int index); + void on_lineEditBound_textChanged(const QString &arg1); + void on_lineEditBound_editingFinished(); + +private: + SlideShowSettings mySettings; + Ui::PictureSettingWidget *ui; +protected: + virtual void changeEvent(QEvent *e); +}; + +#endif // PICTURESETTINGWIDGET_H diff --git a/picturesettingwidget.ui b/picturesettingwidget.ui new file mode 100644 index 0000000..54b0067 --- /dev/null +++ b/picturesettingwidget.ui @@ -0,0 +1,251 @@ + + + PictureSettingWidget + + + + 0 + 0 + 381 + 456 + + + + + + + When Displaying Slideshows: + + + + + + + + + Expand Small Images + + + + + + + :/icons/icons/ExpandSmall.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Fit Images To Screen + + + + + + + :/icons/icons/FitToScreen.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Fit Images To Screen By Expanding + + + + + + + :/icons/icons/FitToScreenByExpanding.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Resize Large Images on Import + + + true + + + + + + It is highly recommended to reduce large images on import. This will improve load, save and display time of slideshows. +We recommend to resize images to display screen size. + + + true + + + + + + + + + Bound Box: + + + + + + + + 800 x 800 + + + + + 1024 x 1024 + + + + + 1280 x 1280 + + + + + 1366 x 1366 + + + + + 1440 x 1440 + + + + + 1600 x 1600 + + + + + 1920 x 1920 + + + + + Custom + + + + + + + + + 0 + 0 + + + + + 100 + 20 + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 90 + + + + + + + + checkBoxExpand + radioButtonFit + radioButtonFitExpand + groupBoxResize + comboBoxBoundAmount + lineEditBound + + + + + + diff --git a/picturewidget.cpp b/picturewidget.cpp new file mode 100644 index 0000000..8f24c12 --- /dev/null +++ b/picturewidget.cpp @@ -0,0 +1,299 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "picturewidget.h" +#include "ui_picturewidget.h" + +PictureWidget::PictureWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::PictureWidget) +{ + ui->setupUi(this); + loadSlideShows(); + ui->pushButtonGoLive->setEnabled(false); +} + +PictureWidget::~PictureWidget() +{ + delete ui; +} + +void PictureWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void PictureWidget::loadSlideShows() +{ + QSqlQuery sq; + sq.exec("SELECT * FROM SlideShows"); + QStringList sl; + + slideShows.clear(); + + while(sq.next()) + { + SlideShowInfo ssi; + ssi.slideSwId = sq.value(0).toInt(); + ssi.name = sq.value(1).toString(); + ssi.info = sq.value(2).toString(); + slideShows.append(ssi); + sl.append( sq.value(1).toString()); + } + ui->listWidgetSlideShow->clear(); + ui->listWidgetSlideShow->addItems(sl); +} + +void PictureWidget::on_listWidgetSlides_currentRowChanged(int currentRow) +{ + if(currentRow>=0) + { + int pw,ph; + pw = slides.at(currentRow).imagePreview.width(); + ph = slides.at(currentRow).imagePreview.height(); + if(pw>300 || ph>200) + ui->labelPreview->setPixmap(slides.at(currentRow).imagePreview.scaled(300,200,Qt::KeepAspectRatio)); + else + ui->labelPreview->setPixmap(slides.at(currentRow).imagePreview); + ui->labelPixInfo->setText(tr("Preview slide: ")+slides.at(currentRow).name); + } +} + +void PictureWidget::on_listWidgetSlides_doubleClicked(const QModelIndex &index) +{ + sendToProjector(); +} + +void PictureWidget::on_pushButtonAddImages_clicked() +{ + QStringList imageFilePaths = QFileDialog::getOpenFileNames(this,tr("Select Images to Open"),".", + tr("Images(%1)").arg(getSupportedImageFormats())); + + if(imageFilePaths.count()>0) + { + this->setCursor(Qt::WaitCursor); + int i(0); + QProgressDialog progress(tr("Adding files..."), tr("Cancel"), 0, imageFilePaths.count(), this); + ui->listWidgetSlides->setIconSize(QSize(100,100)); + foreach(const QString &file, imageFilePaths) + { + ++i; + progress.setValue(i); + + QPixmap img; + SlideShowItem sd; + img.load(file); + + // set display image. If to resize, resize them + if(mySettings.resize) + { + if(img.width()>mySettings.boundWidth || img.height()>mySettings.boundWidth ) + sd.image = img.scaled(mySettings.boundWidth ,mySettings.boundWidth , Qt::KeepAspectRatio); + else + sd.image = img; + } + else + sd.image = img; + + // set preview image + if(img.width()>400 || img.height()>400) + sd.imagePreview = img.scaled(400,400, Qt::KeepAspectRatio); + else + sd.imagePreview = img; + + // set list image + if(img.width()>100 || img.height()>100) + sd.imageSmall = img.scaled(100,100, Qt::KeepAspectRatio); + else + sd.imageSmall = img; + + // set file name + QFileInfo f(file); + sd.name = f.fileName(); + sd.path = f.filePath(); + + // add to slideshow + slides.append(sd); + + // add to slide show list + QListWidgetItem *itm = new QListWidgetItem; + QIcon ico(sd.imageSmall); + + itm->setIcon(ico); + ui->listWidgetSlides->addItem(itm); + } + this->setCursor(Qt::ArrowCursor); + ui->pushButtonGoLive->setEnabled(true); + } +} + +void PictureWidget::on_pushButtonRemoveImage_clicked() +{ + int c = ui->listWidgetSlides->currentRow(); + if(c>=0) + { + slides.removeAt(c); + ui->listWidgetSlides->clear(); + foreach(const SlideShowItem &sst, slides) + { + QListWidgetItem *itm = new QListWidgetItem; + QIcon ico(sst.imageSmall); + itm->setIcon(ico); + ui->listWidgetSlides->addItem(itm); + } + ui->listWidgetSlides->setCurrentRow(c); + } +} + +void PictureWidget::on_pushButtonClearImages_clicked() +{ + ui->listWidgetSlideShow->setCurrentRow(-1); + ui->listWidgetSlides->clear(); + slides.clear(); + ui->labelPreviewSlideShow->clear(); + ui->labelPreview->clear(); + ui->labelPreview->setText(tr("Picture Preview")); + ui->labelPixInfo->setText(tr("Preview slide: ")); + ui->pushButtonGoLive->setEnabled(false); + currentSlideShow = SlideShow(); +} + +void PictureWidget::on_pushButtonMoveUp_clicked() +{ + int c = ui->listWidgetSlides->currentRow(); + int u = c-1; + if(u>=0) + { + slides.move(c,u); + ui->listWidgetSlides->clear(); + foreach(const SlideShowItem &sst, slides) + { + QListWidgetItem *itm = new QListWidgetItem; + QIcon ico(sst.imageSmall); + itm->setIcon(ico); + ui->listWidgetSlides->addItem(itm); + } + ui->listWidgetSlides->setCurrentRow(u); + } +} + +void PictureWidget::on_pushButtonMoveDown_clicked() +{ + int c = ui->listWidgetSlides->currentRow(); + int d = c+1; + if(dlistWidgetSlides->clear(); + foreach(const SlideShowItem &sst, slides) + { + QListWidgetItem *itm = new QListWidgetItem; + QIcon ico(sst.imageSmall); + itm->setIcon(ico); + ui->listWidgetSlides->addItem(itm); + } + ui->listWidgetSlides->setCurrentRow(d); + } +} + +void PictureWidget::on_pushButtonGoLive_clicked() +{ + sendToProjector(); +} + +void PictureWidget::sendToProjector() +{ + emit sendSlideShow(slides, ui->listWidgetSlides->currentRow(),currentSlideShow.name); +} + +void PictureWidget::loadSlideShow(int ss_id) +{ + SlideShow ss; + ss.loadSlideShow(ss_id); + sendToPreview(ss); + ui->pushButtonGoLive->setEnabled(true); +} + +void PictureWidget::sendToPreview(SlideShow &sshow) +{ + currentSlideShow = sshow; + slides.clear(); + ui->listWidgetSlides->clear(); + ui->labelPreviewSlideShow->setText(tr("Slide Show: %1").arg(currentSlideShow.name)); + foreach(const SlideShowItem &sst, currentSlideShow.slides) + { + slides.append(sst); + QListWidgetItem *itm = new QListWidgetItem; + QIcon ico(sst.imageSmall); + itm->setIcon(ico); + ui->listWidgetSlides->addItem(itm); + } + ui->listWidgetSlides->setCurrentRow(0); +} + +void PictureWidget::sendToPreviewFromSchedule(SlideShow &sshow) +{ + ui->listWidgetSlideShow->clearSelection(); + sendToPreview(sshow); +} + +SlideShow PictureWidget::getCurrentSlideshow() +{ + currentSlideShow.slides = slides; + return currentSlideShow; +} + +bool PictureWidget::isSlideShowSelected() +{ + int css = ui->listWidgetSlideShow->selectionModel()->selection().count(); + if(css>0) + return true; + else + return false; +} + +void PictureWidget::deleteSlideShow() +{ + QSqlQuery sq; + int ssId = slideShows.at(ui->listWidgetSlideShow->currentRow()).slideSwId; + sq.exec(QString("DELETE FROM SlideShows WHERE id = %1").arg(ssId)); + sq.exec(QString("DELETE FROM Slides WHERE ss_id = %1").arg(ssId)); + loadSlideShows(); + on_pushButtonClearImages_clicked(); +} + +void PictureWidget::on_listWidgetSlideShow_itemSelectionChanged() +{ + int cRow = ui->listWidgetSlideShow->currentRow(); + if(cRow>=0 && ui->listWidgetSlideShow->selectedItems().count()>0) + loadSlideShow(slideShows.at(cRow).slideSwId); +} + +void PictureWidget::on_listWidgetSlideShow_doubleClicked(const QModelIndex &index) +{ + currentSlideShow.slides = slides; + emit sendToSchedule(currentSlideShow); +} diff --git a/picturewidget.h b/picturewidget.h new file mode 100644 index 0000000..5e299d6 --- /dev/null +++ b/picturewidget.h @@ -0,0 +1,82 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef PICTUREWIDGET_H +#define PICTUREWIDGET_H + +#include +#include +#include "slideshow.h" +#include "slideshoweditor.h" +#include "settings.h" +#include "spfunctions.h" + +namespace Ui { +class PictureWidget; +} + +class PictureWidget : public QWidget +{ + Q_OBJECT + +public: + explicit PictureWidget(QWidget *parent = 0); + ~PictureWidget(); + +signals: + void sendSlideShow(QList &slideShow, int row,QString name); + void sendToSchedule(SlideShow &sshow); + +protected: + virtual void changeEvent(QEvent *e); + +public slots: + void loadSlideShows(); + SlideShow getCurrentSlideshow(); + bool isSlideShowSelected(); + void deleteSlideShow(); + void sendToPreviewFromSchedule(SlideShow &sshow); + void setSettings(SlideShowSettings &settings){mySettings = settings;} + +private slots: + void on_listWidgetSlides_doubleClicked(const QModelIndex &index); + void on_pushButtonAddImages_clicked(); + void on_pushButtonRemoveImage_clicked(); + void on_pushButtonMoveUp_clicked(); + void on_pushButtonMoveDown_clicked(); + void on_pushButtonGoLive_clicked(); + void sendToProjector(); + void on_pushButtonClearImages_clicked(); + void on_listWidgetSlideShow_itemSelectionChanged(); + void on_listWidgetSlides_currentRowChanged(int currentRow); + void loadSlideShow(int ss_id); + void sendToPreview(SlideShow &sshow); + void on_listWidgetSlideShow_doubleClicked(const QModelIndex &index); + +private: + Ui::PictureWidget *ui; + QList slideShows; + SlideShow currentSlideShow; + QList slides; + QList imagesPreview; + QList imagesToShow; + SlideShowSettings mySettings; +}; + +#endif // PICTUREWIDGET_H diff --git a/picturewidget.ui b/picturewidget.ui new file mode 100644 index 0000000..c88f783 --- /dev/null +++ b/picturewidget.ui @@ -0,0 +1,298 @@ + + + PictureWidget + + + + 0 + 0 + 873 + 581 + + + + Form + + + + + + Qt::Horizontal + + + + + + + Slide Shows: + + + + + + + + + + + + + + + + + + + + + + 100 + 100 + + + + 1 + + + + + + + + Qt::Vertical + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Go Live (F5) + + + + :/icons/icons/go_live.png:/icons/icons/go_live.png + + + F5 + + + + + + + + + + 0 + 0 + + + + + 300 + 200 + + + + + 300 + 200 + + + + QFrame::WinPanel + + + QFrame::Sunken + + + Picture Preview + + + Qt::AlignCenter + + + + + + + Picture Information + + + true + + + + + + + + + + + Qt::Horizontal + + + + + + + + + Edit Preview Slide Show: + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 0 + 0 + + + + Add + + + + :/icons/icons/add.png:/icons/icons/add.png + + + + + + + Remove + + + + :/icons/icons/remove.png:/icons/icons/remove.png + + + + + + + Clear + + + + :/icons/icons/remove_all.png:/icons/icons/remove_all.png + + + + + + + + + + + :/icons/icons/up.png:/icons/icons/up.png + + + + + + + + + + + :/icons/icons/down.png:/icons/icons/down.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Editing slide show here will not change anything in database. To have save changes, use "New Slide Show" or "Edit Slide Show". + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + listWidgetSlideShow + listWidgetSlides + pushButtonGoLive + pushButtonAddImages + pushButtonRemoveImage + pushButtonClearImages + pushButtonMoveUp + pushButtonMoveDown + + + + + + diff --git a/printpreviewdialog.cpp b/printpreviewdialog.cpp new file mode 100644 index 0000000..ec4a262 --- /dev/null +++ b/printpreviewdialog.cpp @@ -0,0 +1,275 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "printpreviewdialog.h" +#include "ui_printpreviewdialog.h" + +PrintPreviewDialog::PrintPreviewDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::PrintPreviewDialog) +{ + ui->setupUi(this); + printer = new QPrinter; + ui->fontComboBox->setFont(ui->textEdit->font()); + ui->spinBoxFontSize->setValue(ui->textEdit->font().pointSize()); + + // set default margins + on_comboBox_currentIndexChanged(0); + ui->doubleSpinBoxLeft->setValue(0.5); + ui->doubleSpinBoxTop->setValue(0.5); + ui->doubleSpinBoxRight->setValue(0.5); + ui->doubleSpinBoxBottom->setValue(0.5); + updateMargins(); + + // set default font + QFont f; + f.fromString("Arial,12,-1,5,50,0,0,0,0,0"); + ui->fontComboBox->setCurrentFont(f); +} + +PrintPreviewDialog::~PrintPreviewDialog() +{ + delete ui; +} + +void PrintPreviewDialog::on_fontComboBox_currentFontChanged(const QFont &f) +{ + QFont font = f; + font.setPointSize(ui->spinBoxFontSize->value()); + ui->textEdit->setFont(font); +} + +void PrintPreviewDialog::on_spinBoxFontSize_valueChanged(int arg1) +{ + QFont font = ui->textEdit->font(); + font.setPointSize(arg1); + ui->textEdit->setFont(font); +} + +void PrintPreviewDialog::setText(Song song) +// This will prepare print text edit for current song +{ + QString s; + s = QString("%1 %2\n%3\n").arg(song.songbook_name).arg(song.number).arg(song.title); + // Do not print Tune, WordsBy, and MusicBy if they are empty + if(!song.tune.isEmpty()) + s+= tr("Tune: %1\n").arg(song.tune); + if(!song.wordsBy.isEmpty() && !song.musicBy.isEmpty()) + s+= tr("Words By: %1\tMusic By: %2\n\n").arg(song.wordsBy).arg(song.musicBy); + else if(!song.wordsBy.isEmpty() && song.musicBy.isEmpty()) + s+= tr("Words By: %1\n\n").arg(song.wordsBy); + else if(song.wordsBy.isEmpty() && !song.musicBy.isEmpty()) + s+= tr("Music By: %1\n\n").arg(song.musicBy); + else + s+= "\n"; +// song.songText=song.songText.split("@$").join("\n\n"); +// song.songText=song.songText.split("@%").join("\n"); + s += song.songText; + + //Check for notes + if(!song.notes.isEmpty()) + s += tr("\n\nNotes:\n%1").arg(song.notes); + + ui->textEdit->setText(s); + ui->spinBoxFontSize->setValue(14);// default font size for Songs +} + +void PrintPreviewDialog::setText(QString bible, QString book, int chapter) +// This will prepare print text edit for Current chapter +{ + QString s; + + // get proper bible id if operator bible == "same" + QStringList bb = bible.split(","); + if(bb.at(0) == "same") + bible = bb.at(1); // primary bible + else + bible = bb.at(0); // operator bible + + Bible b; + b.setBiblesId(bible); + b.loadOperatorBible(); + + // get bible name instead of id + bible = b.getBibleName(); + + QStringList clist; + // Get chapter with correct book id + for(int i(0);itextEdit->setText(s); + ui->spinBoxFontSize->setValue(11);// default font size for Bible chapter +} + +void PrintPreviewDialog::setText(Announcement announce) +{ + QString s; + s = tr("Announcements: %1\n\n").arg(announce.title); + s += announce.text; + + ui->textEdit->setText(s); + ui->spinBoxFontSize->setValue(14);// default font size for Announcements +} + +void PrintPreviewDialog::setSchedule(QString scheduleName, const QList &schedule, bool printDetail) +{ + QFileInfo fi(scheduleName); + scheduleName = fi.fileName(); + scheduleName.remove(".spsc"); + QString s; + + // start + if(scheduleName.isEmpty()) + s = ""; + else + s = tr("SoftProject Schedule: ") + scheduleName + "\n\n"; + + if(printDetail) + { + + } + else + { + foreach(const Schedule &si,schedule) + { + s += QString("%1: %2\n").arg(si.stype).arg(si.name); + } + } + + ui->textEdit->setText(s); + ui->spinBoxFontSize->setValue(11); // default font size for spftProjector Schedule +} + +void PrintPreviewDialog::on_pushButtonPDF_clicked() +{ + QString filepath = QFileDialog::getSaveFileName(this,tr("Save PDF as"),".","Portable Document Format(*.pdf)"); + if(filepath.isEmpty()) + return; + printer->setOutputFormat(QPrinter::PdfFormat); + printer->setOutputFileName(filepath); + + ui->textEdit->document()->print(printer); +} + +void PrintPreviewDialog::on_pushButtonPrint_clicked() +{ + printer->setOutputFormat(QPrinter::NativeFormat); + printer->setOutputFileName(""); + + QPrintDialog *dlg = new QPrintDialog(printer, this); + if (dlg->exec() != QDialog::Accepted) + return; + + ui->textEdit->document()->print(printer); +} +void PrintPreviewDialog::on_comboBox_currentIndexChanged(int index) +{ + +//} + +//void PrintPreviewDialog::on_comboBox_currentIndexChanged(const QString &arg1) +//{ + // set margin boxes + double l(0),t(0),r(0),b(0); + + if(index == 0) + printer->getPageMargins(&l,&t,&r,&b,QPrinter::Inch); + else if(index == 1) + printer->getPageMargins(&l,&t,&r,&b,QPrinter::Millimeter); + else if(index == 2) + printer->getPageMargins(&l,&t,&r,&b,QPrinter::DevicePixel); + else if(index == 3) + printer->getPageMargins(&l,&t,&r,&b,QPrinter::Point); + + if(index == 0) + { + ui->doubleSpinBoxLeft->setDecimals(2); + ui->doubleSpinBoxLeft->setSingleStep(0.01); + ui->doubleSpinBoxTop->setDecimals(2); + ui->doubleSpinBoxTop->setSingleStep(0.01); + ui->doubleSpinBoxRight->setDecimals(2); + ui->doubleSpinBoxRight->setSingleStep(0.01); + ui->doubleSpinBoxBottom->setDecimals(2); + ui->doubleSpinBoxBottom->setSingleStep(0.01); + } + else + { + ui->doubleSpinBoxLeft->setDecimals(0); + ui->doubleSpinBoxLeft->setSingleStep(1.0); + ui->doubleSpinBoxTop->setDecimals(0); + ui->doubleSpinBoxTop->setSingleStep(1.0); + ui->doubleSpinBoxRight->setDecimals(0); + ui->doubleSpinBoxRight->setSingleStep(1.0); + ui->doubleSpinBoxBottom->setDecimals(0); + ui->doubleSpinBoxBottom->setSingleStep(1.0); + } + + ui->doubleSpinBoxLeft->setValue(l); + ui->doubleSpinBoxTop->setValue(t); + ui->doubleSpinBoxRight->setValue(r); + ui->doubleSpinBoxBottom->setValue(b); +} + +void PrintPreviewDialog::updateMargins() +{ + double l = ui->doubleSpinBoxLeft->value(); + double t = ui->doubleSpinBoxTop->value(); + double r = ui->doubleSpinBoxRight->value(); + double b = ui->doubleSpinBoxBottom->value(); + + if(ui->comboBox->currentIndex() == 0) + printer->setPageMargins(l,t,r,b,QPrinter::Inch); + else if(ui->comboBox->currentIndex() == 1) + printer->setPageMargins(l,t,r,b,QPrinter::Millimeter); + else if(ui->comboBox->currentIndex() == 2) + printer->setPageMargins(l,t,r,b,QPrinter::DevicePixel); + else if(ui->comboBox->currentIndex() == 3) + printer->setPageMargins(l,t,r,b,QPrinter::Point); +} + +void PrintPreviewDialog::on_doubleSpinBoxLeft_editingFinished() +{ + updateMargins(); +} + +void PrintPreviewDialog::on_doubleSpinBoxTop_editingFinished() +{ + updateMargins(); +} + +void PrintPreviewDialog::on_doubleSpinBoxRight_editingFinished() +{ + updateMargins(); +} + +void PrintPreviewDialog::on_doubleSpinBoxBottom_editingFinished() +{ + updateMargins(); +} + diff --git a/printpreviewdialog.h b/printpreviewdialog.h new file mode 100644 index 0000000..4493898 --- /dev/null +++ b/printpreviewdialog.h @@ -0,0 +1,68 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef PRINTPREVIEWDIALOG_H +#define PRINTPREVIEWDIALOG_H + +#include +#include +#include +#include "song.h" +#include "bible.h" +#include "announcewidget.h" +#include "schedule.h" + +namespace Ui { +class PrintPreviewDialog; +} + +class PrintPreviewDialog : public QDialog +{ + Q_OBJECT + +public: + explicit PrintPreviewDialog(QWidget *parent = 0); + ~PrintPreviewDialog(); + +public slots: + void setText(Song song); + void setText(QString bible,QString book,int chapter); + void setText(Announcement announce); + void setSchedule(QString scheduleName, const QList &schedule, bool printDetail); + +private slots: + void on_fontComboBox_currentFontChanged(const QFont &f); + void on_spinBoxFontSize_valueChanged(int arg1); + void on_pushButtonPDF_clicked(); + void on_pushButtonPrint_clicked(); +// void on_comboBox_currentIndexChanged(const QString &arg1); + void on_comboBox_currentIndexChanged(int index); + + void updateMargins(); + void on_doubleSpinBoxLeft_editingFinished(); + void on_doubleSpinBoxTop_editingFinished(); + void on_doubleSpinBoxRight_editingFinished(); + void on_doubleSpinBoxBottom_editingFinished(); + +private: + QPrinter* printer; + Ui::PrintPreviewDialog *ui; +}; + +#endif // PRINTPREVIEWDIALOG_H diff --git a/printpreviewdialog.ui b/printpreviewdialog.ui new file mode 100644 index 0000000..8d866fe --- /dev/null +++ b/printpreviewdialog.ui @@ -0,0 +1,193 @@ + + + PrintPreviewDialog + + + + 0 + 0 + 493 + 475 + + + + softProjector Print Dialog + + + + :/icons/icons/print.png:/icons/icons/print.png + + + + + + + + Margins: + + + + + + + Left Margin + + + L: + + + + + + + 2 + + + 1000.000000000000000 + + + + + + + Top Margin + + + T: + + + + + + + 1000.000000000000000 + + + + + + + Right Margin + + + R: + + + + + + + 1000.000000000000000 + + + + + + + Bottom Margin + + + B: + + + + + + + 1000.000000000000000 + + + + + + + + Inch + + + + + Millimeter + + + + + Pixel + + + + + Point + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Font: + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + To PDF + + + + + + + Print + + + + + + + + + + + + + + + diff --git a/projectordisplayscreen.cpp b/projectordisplayscreen.cpp new file mode 100644 index 0000000..6506c32 --- /dev/null +++ b/projectordisplayscreen.cpp @@ -0,0 +1,351 @@ +#include "projectordisplayscreen.hpp" +#include "ui_projectordisplayscreen.h" + + +ProjectorDisplayScreen::ProjectorDisplayScreen(QWidget *parent) : + QWidget(parent), + ui(new Ui::ProjectorDisplayScreen) +{ + ui->setupUi(this); + dispView = new QQuickView; + imProvider = new SpImageProvider; + dispView->engine()->addImageProvider(QLatin1String("improvider"),imProvider); + QWidget *w = QWidget::createWindowContainer(dispView,this); + dispView->setSource(QUrl("qrc:/DisplayArea.qml")); +// dispView->setSource(QUrl("../../DisplayArea.qml")); + ui->verticalLayout->addWidget(w); + + backImSwitch1 = backImSwitch2 = textImSwitch1 = textImSwitch2 = false; + back1to2 = text1to2 = isNewBack = true; + m_color.setRgb(0,0,0);// = QColor(QColor::black()); +} + +ProjectorDisplayScreen::~ProjectorDisplayScreen() +{ + delete dispView; + delete ui; +} + +void ProjectorDisplayScreen::resetImGenSize() +{ + imGen.setScreenSize(this->size()); +} + +void ProjectorDisplayScreen::setBackPixmap(QPixmap p, int fillMode) +{ + // fill mode -->> 0 = Strech, 1 = keep aspect, 2 = keep aspect by expanding + + if(back.cacheKey() == p.cacheKey()) + { + isNewBack = false; + return; + } + back = p; + isNewBack = true; + + switch(fillMode) + { + case 0: + p = p.scaled(imGen.getScreenSize(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation); + break; + case 1: + p = p.scaled(imGen.getScreenSize(),Qt::KeepAspectRatio,Qt::SmoothTransformation); + break; + case 2: + p = p.scaled(imGen.getScreenSize(),Qt::KeepAspectRatioByExpanding,Qt::SmoothTransformation); + break; + default: + // Do No Scaling/resizing + break; + } + + imProvider->setPixMap(p); + back1to2 = (!back1to2); + + QObject *item1 = dispView->rootObject()->findChild("backImage1"); + QObject *item2 = dispView->rootObject()->findChild("backImage2"); + if(item1 && item2) + { + if(back1to2) + { + backImSwitch2 = (!backImSwitch2); + if(backImSwitch2) + item2->setProperty("source","image://improvider/imB2a"); + else + item2->setProperty("source","image://improvider/imB2b"); + + if(p.height()setProperty("y",(imGen.height()-p.height())/2); + else + item2->setProperty("y",0); + if(p.width()setProperty("x",(imGen.width()-p.width())/2); + else + item2->setProperty("x",0); + } + else + { + backImSwitch1 = (!backImSwitch1); + if(backImSwitch1) + item1->setProperty("source","image://improvider/imB1a"); + else + item1->setProperty("source","image://improvider/imB1b"); + if(p.height()setProperty("y",(imGen.height()-p.height())/2); + else + item1->setProperty("y",0); + if(p.width()setProperty("x",(imGen.width()-p.width())/2); + else + item1->setProperty("x",0); + } + } +} + +void ProjectorDisplayScreen::setBackPixmap(QPixmap p, QColor c) +{ + if(backType == 0) + setBackPixmap(imGen.generateColorImage(c),0); + else if(backType == 1) + setBackPixmap(p,0); + else if(backType ==2) + setBackPixmap(imGen.generateEmptyImage(),0); +} + +void ProjectorDisplayScreen::setTextPixmap(QPixmap p) +{ + imProvider->setPixMap(p); + text1to2 = (!text1to2); + + QObject *item1 = dispView->rootObject()->findChild("textImage1"); + QObject *item2 = dispView->rootObject()->findChild("textImage2"); + if(item1 && item2) + { + if(text1to2) + { + textImSwitch2 = (!textImSwitch2); + if(textImSwitch2) + item2->setProperty("source","image://improvider/imT2a"); + else + item2->setProperty("source","image://improvider/imT2b"); + } + else + { + textImSwitch1 = (!textImSwitch1); + if(textImSwitch1) + item1->setProperty("source","image://improvider/imT1a"); + else + item1->setProperty("source","image://improvider/imT1b"); + } + } +} + +void ProjectorDisplayScreen::setVideoSource(QString path) +{ + QObject *item = dispView->rootObject()->findChild("player"); + QObject *item2 = dispView->rootObject()->findChild("vidOut"); + + item->setProperty("volume",0.0); + item->setProperty("source",path); + item->setProperty("loops",QMediaPlaylist::Loop); + item2->setProperty("fillMode",Qt::IgnoreAspectRatio); +} + +void ProjectorDisplayScreen::updateScreen() +{ + QObject *root = dispView->rootObject(); + QMetaObject::invokeMethod(root,"stopTransitions"); +// QString tranType = "seq"; + + // if background is a video, play video, else stop it. + if(backType == 2) + QMetaObject::invokeMethod(root,"playVideo"); + else + QMetaObject::invokeMethod(root,"stopVideo"); + + if(text1to2 && back1to2) + { + if(isNewBack) + QMetaObject::invokeMethod(root,"transitionBack1to2",Q_ARG(QVariant,tranType)); + QMetaObject::invokeMethod(root,"transitionText1to2",Q_ARG(QVariant,tranType)); + } + else if(text1to2 && (!back1to2)) + { + if(isNewBack) + QMetaObject::invokeMethod(root,"transitionBack2to1",Q_ARG(QVariant,tranType)); + QMetaObject::invokeMethod(root,"transitionText1to2",Q_ARG(QVariant,tranType)); + } + else if((!text1to2) && back1to2) + { + if(isNewBack) + QMetaObject::invokeMethod(root,"transitionBack1to2",Q_ARG(QVariant,tranType)); + QMetaObject::invokeMethod(root,"transitionText2to1",Q_ARG(QVariant,tranType)); + } + else + { + if(isNewBack) + QMetaObject::invokeMethod(root,"transitionBack2to1",Q_ARG(QVariant,tranType)); + QMetaObject::invokeMethod(root,"transitionText2to1",Q_ARG(QVariant,tranType)); + } +} + + +void ProjectorDisplayScreen::keyReleaseEvent(QKeyEvent *event) +{ + // Will get called when a key is released + int key = event->key(); + if(key == Qt::Key_Left) + emit prevSlide(); + else if(key == Qt::Key_Up) + emit prevSlide(); + else if(key == Qt::Key_PageUp) + emit prevSlide(); + else if(key == Qt::Key_Back) + emit prevSlide(); + else if(key == Qt::Key_Right) + emit nextSlide(); + else if(key == Qt::Key_Down) + emit nextSlide(); + else if(key == Qt::Key_PageDown) + emit nextSlide(); + else if(key == Qt::Key_Forward) + emit nextSlide(); + else if(key == Qt::Key_Enter) + emit nextSlide(); + else if(key == Qt::Key_Return) + emit nextSlide(); + else if(key == Qt::Key_Escape) + emit exitSlide(); + else + QWidget::keyReleaseEvent(event); +} + +void ProjectorDisplayScreen::renderNotText() +{ + setTextPixmap(imGen.generateEmptyImage()); + updateScreen(); +} + +void ProjectorDisplayScreen::renderPassiveText(QPixmap &back, bool useBack) +{ + setTextPixmap(imGen.generateEmptyImage()); + if(useBack) + setBackPixmap(back,0); + else + setBackPixmap(imGen.generateColorImage(m_color),0); + + updateScreen(); +} + +void ProjectorDisplayScreen::renderBibleText(Verse bVerse, BibleSettings &bSets) +{ + tranType = bSets.transitionType; + backType = bSets.backgroundType; + setTextPixmap(imGen.generateBibleImage(bVerse,bSets)); + setBackPixmap(bSets.backgroundPix,bSets.backgroundColor); + if(backType ==2) + setVideoSource(bSets.backgroundVideoPath); +// if(bSets.useBackground) +// setBackPixmap(bSets.background,0); +// else +// setBackPixmap(imGen.generateColorImage(m_color),0); + + + updateScreen(); +} + +void ProjectorDisplayScreen::renderSongText(Stanza stanza, SongSettings &sSets) +{ + setTextPixmap(imGen.generateSongImage(stanza,sSets)); + if(sSets.backgroundType == 1) + setBackPixmap(sSets.backgroundPix,0); + else + setBackPixmap(imGen.generateColorImage(m_color),0); + tranType = sSets.transitionType; + updateScreen(); +} + +void ProjectorDisplayScreen::renderAnnounceText(AnnounceSlide announce, TextSettings &aSets) +{ + setTextPixmap(imGen.generateAnnounceImage(announce,aSets)); + if(aSets.transitionType == 1) + setBackPixmap(aSets.backgroundPix,0); + else + setBackPixmap(imGen.generateColorImage(m_color),0); + tranType = aSets.transitionType; + updateScreen(); +} + +void ProjectorDisplayScreen::renderSlideShow(QPixmap slide, SlideShowSettings &ssSets) +{ + bool expand; + if(slide.width()height()), x(this->width()), margin(20); + + // calculate y position + if(dSettings.alignmentV==0)//top + y = margin; + else if(dSettings.alignmentV==1)//middle + y = (y-buttonSize)/2; + else if(dSettings.alignmentV==2)//buttom + y = y-buttonSize-margin; + else + y = y-buttonSize-margin; + + // calculate x position + int xt((buttonSize*3)+20); //total width of the button group + if(dSettings.alignmentH==0) + x = margin; + else if(dSettings.alignmentH==1) + x = (x-xt)/2; + else if (dSettings.alignmentH==2) + x = x-xt-margin; + else + x = (x-xt)/2; + + QObject *root = dispView->rootObject(); + QMetaObject::invokeMethod(root,"positionControls",Q_ARG(QVariant,x),Q_ARG(QVariant,y),Q_ARG(QVariant,buttonSize),Q_ARG(QVariant,dSettings.opacity)); + +} + +void ProjectorDisplayScreen::setControlsVisible(bool visible) +{ + QObject *root = dispView->rootObject(); + QMetaObject::invokeMethod(root,"setControlsVisible",Q_ARG(QVariant,visible)); +} diff --git a/projectordisplayscreen.hpp b/projectordisplayscreen.hpp new file mode 100644 index 0000000..931760e --- /dev/null +++ b/projectordisplayscreen.hpp @@ -0,0 +1,73 @@ +#ifndef PROJECTORDISPLAYSCREEN_HPP +#define PROJECTORDISPLAYSCREEN_HPP + +#include +#include +#include +#include +#include +#include +#include "spimageprovider.hpp" +#include "imagegenerator.hpp" +#include "settings.h" +#include "bible.h" +#include "song.h" +#include "announcement.h" +//#include "slideshow.h" + +namespace Ui { +class ProjectorDisplayScreen; +} + +class ProjectorDisplayScreen : public QWidget +{ + Q_OBJECT + +public: + explicit ProjectorDisplayScreen(QWidget *parent = 0); + ~ProjectorDisplayScreen(); + +public slots: + void resetImGenSize(); + + void renderNotText(); + void renderPassiveText(QPixmap &back,bool useBack); + void renderBibleText(Verse bVerse, BibleSettings &bSets); + void renderSongText(Stanza stanza, SongSettings &sSets); + void renderAnnounceText(AnnounceSlide announce, TextSettings &aSets); + void renderSlideShow(QPixmap slide,SlideShowSettings &ssSets); +// void renderVideo(); + + void positionControls(DisplayControlsSettings & dSettings); + void setControlsVisible(bool visible); + +private slots: + void setBackPixmap(QPixmap p,int fillMode); // 0 = Strech, 1 = keep aspect, 2 = keep aspect by expanding + void setBackPixmap(QPixmap p, QColor c); + void setTextPixmap(QPixmap p); + void setVideoSource(QString path); + void updateScreen(); + +signals: + void exitSlide(); + void nextSlide(); + void prevSlide(); + +protected: + void keyReleaseEvent(QKeyEvent *event); + +private: + Ui::ProjectorDisplayScreen *ui; + QQuickView *dispView; + SpImageProvider *imProvider; + ImageGenerator imGen; + bool backImSwitch1, textImSwitch1, backImSwitch2, textImSwitch2; + bool isNewBack, back1to2, text1to2; + int tranType,backType; + QColor m_color; + // DisplayControlsSettings mySettings; + + QPixmap back; +}; + +#endif // PROJECTORDISPLAYSCREEN_HPP diff --git a/projectordisplayscreen.ui b/projectordisplayscreen.ui new file mode 100644 index 0000000..ecfe9a7 --- /dev/null +++ b/projectordisplayscreen.ui @@ -0,0 +1,36 @@ + + + ProjectorDisplayScreen + + + + 0 + 0 + 400 + 300 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + diff --git a/schedule.cpp b/schedule.cpp new file mode 100644 index 0000000..80684dc --- /dev/null +++ b/schedule.cpp @@ -0,0 +1,70 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "schedule.h" + +Schedule::Schedule() +{ + scid = -1; +} + +Schedule::Schedule(BibleHistory &b) +{ + scid = -1; + stype = "bible"; + name = b.caption; + icon = QIcon(":/icons/icons/book.png"); + bible = b; +} + +Schedule::Schedule(Song &s) +{ + scid = -1; + stype = "song"; + name = QString("%1 %2").arg(s.number).arg(s.title); + icon = QIcon(":/icons/icons/song_tab.png"); + song = s; +} + +Schedule::Schedule(SlideShow &s) +{ + scid = -1; + stype = "slideshow"; + name = s.name; + icon = QIcon(":/icons/icons/photo.png"); + slideshow = s; +} + +Schedule::Schedule(VideoInfo &m) +{ + scid = -1; + stype = "media"; + name = m.fileName; + icon = QIcon(":/icons/icons/video.png"); + media = m; +} + +Schedule::Schedule(Announcement &a) +{ + scid = -1; + stype = "announce"; + name = a.title; + icon = QIcon(":/icons/icons/announce.png"); + announce = a; +} diff --git a/schedule.h b/schedule.h new file mode 100644 index 0000000..907348c --- /dev/null +++ b/schedule.h @@ -0,0 +1,51 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SCHEDULE_H +#define SCHEDULE_H + +#include "bible.h" +#include "song.h" +#include "slideshow.h" +#include "videoinfo.h" +#include "announcement.h" + +class Schedule +{ +public: + Schedule(); + Schedule(BibleHistory &b); + Schedule(Song &s); + Schedule(SlideShow &s); + Schedule(VideoInfo &m); + Schedule(Announcement &a); + + QString stype; + QString name; + QIcon icon; + int scid; + + BibleHistory bible; + Song song; + SlideShow slideshow; + VideoInfo media; + Announcement announce; +}; + +#endif // SCHEDULE_H diff --git a/settings.cpp b/settings.cpp new file mode 100644 index 0000000..61ea67f --- /dev/null +++ b/settings.cpp @@ -0,0 +1,972 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "settings.h" + +TextSettingsBase::TextSettingsBase() +{ + id = "-1"; + themeId = -1; + textFont.fromString("Arial,16,-1,5,50,0,0,0,0,0"); + textColor = QColor(Qt::white); + textShadowColor = QColor(Qt::black); + textAlingmentV = 0; + textAlingmentH = 0; + backgroundType = 0; + backgroundColor = QColor(Qt::black); + backgroundName = ""; + backgroundPix = QPixmap(1,1); + backgroundVideoPath = ""; + screenUse = 100; + screenPosition = 0; + transitionType = 0; + effectsType = 1; + useSameForDisp2 = true; + + // older implementation, Use it for now + useShadow = true; + useFading = true; + useBlurShadow = false; + useBackground = false; + useDisp2settings = false; + + setBaseChangeHandles(); +} + +TextSettings::TextSettings() +{ + isNotCommonFont = false; + isNotCommonColor = false; + isNotCommonLayout = false; + transitionType = -1; + effectsType = -1; + backgroundType = -1; + setMainChangeHandles(); +} + +BibleSettings::BibleSettings() +{ + captionFont.fromString("Arial,15,-1,5,50,0,0,0,0,0"); + isNotSameFont = true; + captionColor = QColor(Qt::white); + isNotSameColor = false; + captionShadowColor = QColor(Qt::black); + captionAlingment = 2; + captionPosition = 1; + useAbbriviation = false; + setChangeHandes(); +} + +SongSettings::SongSettings() +{ + textAlingmentV = 1; + textAlingmentH = 1; + showStanzaTitle = false; + showSongKey = false; + showSongNumber = false; + showSongEnding = true; + isNotSameInfoFont = false; + isNotSameInfoColor = false; + infoColor = QColor(Qt::white); + infoShadowColor = QColor(Qt::black); + infoFont.fromString("Arial,15,-1,5,50,0,0,0,0,0"); + infoAling = 0; + isNotSameEndingFont = false; + isNotSameEndingColor = false; + endingColor = QColor(Qt::white); + endingShadowColor = QColor(Qt::black); + endingFont.fromString("Arial,16,-1,5,50,0,0,0,0,0"); + endingType = 0; + endingPosition = 0; + setChangeHandes(); +} + +void saveIndividualSettings(QSqlQuery &sq, QString sId, int tId, QString name, const QVariant &value) +{ + sq.addBindValue(sId); + if(tId!=-2) + sq.addBindValue(tId); + sq.addBindValue(name); + sq.addBindValue(value); + sq.exec(); + qDebug()<<"save:"<. +// +***************************************************************************/ + +#ifndef SETTINGS_H +#define SETTINGS_H + +#include +#include +#include "spfunctions.h" + +void saveIndividualSettings(QSqlQuery &sq, QString sId, int tId, QString name, const QVariant &value); +void updateIndividualSettings(QSqlQuery &sq, QString sId, int tId, QString name, const QVariant &value); + +class TextSettingsBase +{ +public: + TextSettingsBase(); + + QString id; + int themeId; + + // if to update bool handles + bool isChangedTextFont, isChangedTextColor, isChangedTextShadowColor; + bool isChangedAlingV, isChangedAlingH, isChangesTranType, isChangedEffectType; + bool isChangedBackType, isChangedBackColor, isChangedBackPix, isChangedBackVid; + bool isChangedScreenUse, isChangedScreenPos, isChangedSameDisp2; + + //Text + QFont textFont; + QColor textColor; + QColor textShadowColor; + int textAlingmentV; + // 0 - Top, 1 - Middle, 3 - Botton + int textAlingmentH; + // 0 - Left, 1 - Center, 3 - Right + + //Effects + int transitionType; + // -1 - Common, 0 - None, 1 - Fade, 2 - Fade out->in, + // 3 - Move Right, 4 - Move Left, 5 - Move Up, 6 - Move Down + int effectsType; + // -1 - Common, 0 - None, 1 - Shadow, 2 - Blurred Shadow + + //Background + int backgroundType; + // -1 - Common, 0 - Solid Color, 1 - Picture, 2 - Video + QColor backgroundColor; + QString backgroundName; + QPixmap backgroundPix; //TODO: Rename to backgroundPix + QString backgroundVideoPath; + + + // older implementation, Use it for now + bool useShadow; + bool useFading; + bool useBlurShadow; + bool useBackground; + bool useDisp2settings; + + //Layout + int screenUse; + int screenPosition; + // 0 - Top of Screen, 1 - Botton of Screen + + bool useSameForDisp2; + + void saveBase(); + void saveBase(QSqlQuery &sq); + void updateBase(); + void updateBase(QSqlQuery &sq); + void loadBase(); + void loadBase(QSqlQuery &sq); + + void setBaseChangeHandles(); + void resetBaseChangeHandles(); +}; + +class TextSettings : public TextSettingsBase +{ +public: + TextSettings(); + //Text + bool isNotCommonFont; + bool isNotCommonColor; + + //Layout + bool isNotCommonLayout; + + // Change Handles + bool isChangedNotFont, isChangedNotColor, isChangedNotLayout; + + void saveMain(); + void saveMain(QSqlQuery &sq); + void updateMain(); + void updateMain(QSqlQuery &sq); + void loadMain(); + void loadMain(QSqlQuery &sq); + + void setMainChangeHandles(); + void resetMainChangeHandles(); + +}; + +class BibleSettings : public TextSettings +{ +public: + BibleSettings(); + QFont captionFont; + bool isNotSameFont; + QColor captionColor; + bool isNotSameColor; + QColor captionShadowColor; + int captionAlingment; + int captionPosition; + bool useAbbriviation; + + // Change Handles + bool isChangedCapFont, isChangedCapColor, isChangedCapShadColor, isChangedNotSameFont; + bool isChangedNotSameColor, isChangedCapAlign, isChangedCapPos, isChangedUseAbbriv; + + void save(); + void save(QSqlQuery &sq); + void update(); + void update(QSqlQuery &sq); + void load(); + void load(QSqlQuery &sq); + + void setChangeHandes(); + void resetChangeHandles(); +}; + +class SongSettings : public TextSettings +{ +public: + SongSettings(); + // Stanza Details + bool showStanzaTitle; + bool showSongKey; + bool showSongNumber; + bool showSongEnding; + // Info + QFont infoFont; + QColor infoColor; + QColor infoShadowColor; + bool isNotSameInfoFont; + bool isNotSameInfoColor; + int infoAling; // 0 = Top, 1 = Bottom + //Ending + QFont endingFont; + QColor endingColor; + QColor endingShadowColor; + bool isNotSameEndingFont; + bool isNotSameEndingColor; + int endingType; // 0 = ***, 1 = ---, 2 = °°°, 3 = •••, 4 = ●●●, 5 = ▪▪▪, 6 = ■■■, 7 = for song copyright info + int endingPosition; + + // Change Handles + bool isChangedShowTitle, isChangedShowKey, isChangedShowNum, isChangedShowEnding; + bool isChangedInfoFont, isChangedInfoColor, isChangedInfoShadColor, isChangedNotSameInfoFont; + bool isChangedNotSameInfoColor, isChangedInfoAlign, isChangedEndingFont, isChangedEndingColor; + bool isChangedEndingShadColor, isChangedNotSameEndingFont, isChangedNotSameEndingColor; + bool isChangedEndingType, isChangedEndingPosition; + + void save(); + void save(QSqlQuery &sq); + void update(); + void update(QSqlQuery &sq); + void load(); + void load(QSqlQuery &sq); + + void setChangeHandes(); + void resetChangeHandles(); +}; + +class DisplayControlsSettings +{ +public: + DisplayControlsSettings(); + int buttonSize; + int alignmentV; + int alignmentH; + qreal opacity; +}; + +class GeneralSettings +{ // To store General Program Settings +public: + GeneralSettings(); + bool displayIsOnTop; + int displayScreen; // stores primary display screen location + int displayScreen2; // stores secondary display screen location + DisplayControlsSettings displayControls; + int currentThemeId; + bool displayOnStartUp; + bool settingsChangedAll; + bool settingsChangedMulti; + bool settingsChangedSingle; +}; + +class DisplaySettings +{ // to store display settings for concurrent projection +public: + bool useBackground; + QString backgroundPath; + QFont textFont; + QColor textColor; + int textAlingmentV; + int textAlingmentH; +}; + +class SpSettings +{ // stores main window settings, none user modifiable +public: + SpSettings(); + QByteArray spSplitter; + QByteArray bibleHiddenSplitter; + QByteArray bibleShowSplitter; + QByteArray songSplitter; + bool isWindowMaximized; + QString uiTranslation; +}; + +class BibleVersionSettings +{ +public: + BibleVersionSettings(); + QString primaryBible; + QString secondaryBible; + QString trinaryBible; + QString operatorBible; + bool settingsChanged; +}; + +class SlideShowSettings +{ +public: + SlideShowSettings(); + bool expandSmall; + int fitType; + bool resize; + int boundType; + int boundWidth; + bool settingsChanged; + int transitionType; +}; + +class Settings +{ +public: + Settings(); + GeneralSettings general; + SpSettings spMain; + BibleVersionSettings bibleSets; + BibleVersionSettings bibleSets2; + SlideShowSettings slideSets; + + bool isSpClosing; + +public slots: + void loadSettings(); + void saveSettings(); + void saveNewSettings(); + +private slots: + QByteArray textToByt(QString text); +}; + +#endif // SETTINGS_H diff --git a/settingsdialog.cpp b/settingsdialog.cpp new file mode 100644 index 0000000..fb028a6 --- /dev/null +++ b/settingsdialog.cpp @@ -0,0 +1,213 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include +#include "settingsdialog.h" +#include "ui_settingsdialog.h" + +SettingsDialog::SettingsDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::SettingsDialog) +{ + ui->setupUi(this); + generalSettingswidget = new GeneralSettingWidget; + passiveSettingwidget = new PassiveSettingWidget; + bibleSettingswidget = new BibleSettingWidget; + songSettingswidget = new SongSettingWidget; + pictureSettingWidget = new PictureSettingWidget; + announcementSettingswidget = new AnnouncementSettingWidget; + + ui->scrollAreaGeneralSettings->setWidget(generalSettingswidget); + ui->scrollAreaPassiveSettings->setWidget(passiveSettingwidget); + ui->scrollAreaBibleSettings->setWidget(bibleSettingswidget); + ui->scrollAreaSongSettings->setWidget(songSettingswidget); + ui->scrollAreaPicture->setWidget(pictureSettingWidget); + ui->scrollAreaAnnouncementSettings->setWidget(announcementSettingswidget); + + btnOk = new QPushButton(tr("OK")); + btnCancel = new QPushButton(tr("Cancel")); + btnApply = new QPushButton(tr("Apply")); + + ui->buttonBox->addButton(btnOk,QDialogButtonBox::AcceptRole); + ui->buttonBox->addButton(btnCancel,QDialogButtonBox::RejectRole); + ui->buttonBox->addButton(btnApply,QDialogButtonBox::ApplyRole); + + // Connect display screen slot + connect(generalSettingswidget,SIGNAL(setDisp2Use(bool)),this,SLOT(setUseDispScreen2(bool))); + connect(generalSettingswidget,SIGNAL(themeChanged(int)),this,SLOT(changeTheme(int))); + + // Connect Apply to all + connect(bibleSettingswidget,SIGNAL(applyBackToAll(int,QString,QPixmap)),this,SLOT(applyToAllActive(int,QString,QPixmap))); + connect(songSettingswidget,SIGNAL(applyBackToAll(int,QString,QPixmap)),this,SLOT(applyToAllActive(int,QString,QPixmap))); + connect(announcementSettingswidget,SIGNAL(applyBackToAll(int,QString,QPixmap)),this,SLOT(applyToAllActive(int,QString,QPixmap))); + +} + +void SettingsDialog::loadSettings(GeneralSettings &sets, Theme &thm, SlideShowSettings &ssets, + BibleVersionSettings &bsets, BibleVersionSettings &bsets2) +{ + gsettings = sets; + theme = thm; + bsettings = bsets; + bsettings2 = bsets2; + ssettings = ssets; + + // remember main display window setting if they will be changed + is_always_on_top = gsettings.displayIsOnTop; + current_display_screen = gsettings.displayScreen; + currentDisplayScreen2 = gsettings.displayScreen2; + + // Set individual items + generalSettingswidget->setSettings(gsettings); + bibleSettingswidget->setBibleVersions(bsettings,bsettings2); + pictureSettingWidget->setSettings(ssettings); + setThemes(); +} + +SettingsDialog::~SettingsDialog() +{ + delete ui; + + delete generalSettingswidget; + delete passiveSettingwidget; + delete bibleSettingswidget; + delete songSettingswidget; + delete announcementSettingswidget; + + delete btnOk; + delete btnCancel; + delete btnApply; +} + +void SettingsDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch ( e->type() ) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void SettingsDialog::on_listWidget_currentRowChanged(int currentRow) +{ + ui->stackedWidget->setCurrentIndex(currentRow); +} + +void SettingsDialog::setUseDispScreen2(bool toUse) +{ + passiveSettingwidget->setDispScreen2Visible(toUse); + bibleSettingswidget->setDispScreen2Visible(toUse); + songSettingswidget->setDispScreen2Visible(toUse); + announcementSettingswidget->setDispScreen2Visible(toUse); +} + +void SettingsDialog::on_buttonBox_clicked(QAbstractButton *button) +{ + if(button == btnOk) + { + applySettings(); + close(); + } + else if(button == btnCancel) + close(); + else if(button == btnApply) + applySettings(); +} + +void SettingsDialog::applySettings() +{ + gsettings = generalSettingswidget->getSettings(); + bibleSettingswidget->getBibleVersions(bsettings,bsettings2); + pictureSettingWidget->getSettings(ssettings); + getThemes(); + + // Apply settings + emit updateSettings(gsettings,theme,ssettings,bsettings,bsettings2); + + // Update only when changed, or when screen location has been changed + if(is_always_on_top!=gsettings.displayIsOnTop + || current_display_screen!=gsettings.displayScreen + || currentDisplayScreen2!=gsettings.displayScreen2) + emit positionsDisplayWindow(); + + // Redraw the screen: + emit updateScreen(); + + // Save Settings + theme.saveThemeUpdate(); + + // reset display holders + is_always_on_top = gsettings.displayIsOnTop; + current_display_screen = gsettings.displayScreen; + currentDisplayScreen2 = gsettings.displayScreen2; +} + +void SettingsDialog::getThemes() +{ + passiveSettingwidget->getSettings(theme.passive, theme.passive2); + bibleSettingswidget->getSettings(theme.bible, theme.bible2); + songSettingswidget->getSettings(theme.song, theme.song2); + announcementSettingswidget->getSettings(theme.announce, theme.announce2); +} + +void SettingsDialog::setThemes() +{ + passiveSettingwidget->setSetings(theme.passive, theme.passive2); + bibleSettingswidget->setSettings(theme.bible, theme.bible2); + songSettingswidget->setSettings(theme.song, theme.song2); + announcementSettingswidget->setSettings(theme.announce, theme.announce2); +} + +void SettingsDialog::changeTheme(int theme_id) +{ + // First save existing changes to the theme + getThemes(); + theme.saveThemeUpdate(); + + // Then load changed theme + theme.setThemeId(theme_id); + theme.loadTheme(); + setThemes(); +} + +void SettingsDialog::applyToAllActive(int t, QString backName, QPixmap background) +{ + switch (t) + { + case 1: + songSettingswidget->setBackgroungds(backName,background); + announcementSettingswidget->setBackgroungds(backName,background); + break; + case 2: + bibleSettingswidget->setBackgroungds(backName,background); + announcementSettingswidget->setBackgroungds(backName,background); + break; + case 3: + bibleSettingswidget->setBackgroungds(backName,background); + songSettingswidget->setBackgroungds(backName,background); + break; + default: + bibleSettingswidget->setBackgroungds(backName,background); + songSettingswidget->setBackgroungds(backName,background); + announcementSettingswidget->setBackgroungds(backName,background); + } +} diff --git a/settingsdialog.h b/settingsdialog.h new file mode 100644 index 0000000..103b2fb --- /dev/null +++ b/settingsdialog.h @@ -0,0 +1,94 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include +#include "settings.h" +#include "theme.h" +#include "generalsettingwidget.h" +#include "passivesettingwidget.h" +#include "biblesettingwidget.h" +#include "songsettingwidget.h" +#include "announcementsettingwidget.h" +#include "picturesettingwidget.h" + +namespace Ui { +class SettingsDialog; +} + +class SettingsDialog : public QDialog { + Q_OBJECT + Q_DISABLE_COPY(SettingsDialog) + +public: + explicit SettingsDialog(QWidget *parent = 0); + virtual ~SettingsDialog(); + void updateSecondaryBibleMenu(); + +public slots: + void loadSettings(GeneralSettings& sets, Theme &thm, SlideShowSettings &ssets, + BibleVersionSettings &bsets, BibleVersionSettings &bsets2); + +signals: + void updateSettings(GeneralSettings& sets, Theme &thm, SlideShowSettings &ssets, + BibleVersionSettings& bsets, BibleVersionSettings& bsets2); + void positionsDisplayWindow(); + void updateScreen(); + +private: + Ui::SettingsDialog *ui; + + int current_display_screen; + int currentDisplayScreen2; + bool is_always_on_top; + + GeneralSettings gsettings; + Theme theme; + BibleVersionSettings bsettings; + BibleVersionSettings bsettings2; + SlideShowSettings ssettings; + + GeneralSettingWidget *generalSettingswidget; + PassiveSettingWidget *passiveSettingwidget; + BibleSettingWidget *bibleSettingswidget; + SongSettingWidget *songSettingswidget; + PictureSettingWidget *pictureSettingWidget; + AnnouncementSettingWidget *announcementSettingswidget; + + QPushButton *btnOk; + QPushButton *btnCancel; + QPushButton *btnApply; + +private slots: + void on_listWidget_currentRowChanged(int currentRow); + void setUseDispScreen2(bool toUse); + void on_buttonBox_clicked(QAbstractButton *button); + void applySettings(); + void changeTheme(int theme_id); + void getThemes(); + void setThemes(); + void applyToAllActive(int t, QString backName, QPixmap background); + +protected: + virtual void changeEvent(QEvent *e); +}; + +#endif // SETTINGSDIALOG_H diff --git a/settingsdialog.ui b/settingsdialog.ui new file mode 100644 index 0000000..7569a4f --- /dev/null +++ b/settingsdialog.ui @@ -0,0 +1,499 @@ + + + SettingsDialog + + + + 0 + 0 + 600 + 575 + + + + softProjector - Settings + + + + :/icons/icons/settings.png:/icons/icons/settings.png + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + + 150 + 16777215 + + + + + 24 + 24 + + + + 1 + + + + General + + + + :/icons/icons/softprojector.png:/icons/icons/softprojector.png + + + + + Passive + + + + :/icons/icons/display.png:/icons/icons/display.png + + + + + Bible + + + + :/icons/icons/book.png:/icons/icons/book.png + + + + + Songs + + + + :/icons/icons/song_tab.png:/icons/icons/song_tab.png + + + + + Picture + + + + :/icons/icons/photo.png:/icons/icons/photo.png + + + + + Media + + + + :/icons/icons/video.png:/icons/icons/video.png + + + + + Announcements + + + + :/icons/icons/announce.png:/icons/icons/announce.png + + + + + + + + true + + + 0 + + + + + 0 + + + + + + 12 + 75 + true + + + + General SoftProjector Settings + + + + + + + Qt::Horizontal + + + + + + + true + + + true + + + + + 0 + 0 + 424 + 484 + + + + + + + + + + + 0 + + + + + + 12 + 75 + true + + + + Passive Settings + + + + + + + This setting are displayed when nothing is to be projected. + + + + + + + Qt::Horizontal + + + + + + + true + + + true + + + + + 0 + 0 + 424 + 465 + + + + + + + + + + + 0 + + + + + + 12 + 75 + true + + + + Bible Settings + + + + + + + Qt::Horizontal + + + + + + + true + + + true + + + + + 0 + 0 + 424 + 484 + + + + + + + + + + + 0 + + + + + + 12 + 75 + true + + + + Song Settings + + + + + + + Qt::Horizontal + + + + + + + true + + + true + + + + + 0 + 0 + 424 + 484 + + + + + + + + + + + 0 + + + + + + 12 + 75 + true + + + + Picture Settings + + + + + + + Qt::Horizontal + + + + + + + true + + + + + 0 + 0 + 424 + 484 + + + + + + + + + + + 0 + + + + + + 12 + 75 + true + + + + Media Settings + + + + + + + Qt::Horizontal + + + + + + + true + + + + + 0 + 0 + 424 + 484 + + + + + + + + + + + 0 + + + + + + 12 + 75 + true + + + + Announcement Settings + + + + + + + Qt::Horizontal + + + + + + + true + + + true + + + + + 0 + 0 + 424 + 484 + + + + + + + + + + + + + Qt::Horizontal + + + + + + + + + Qt::Horizontal + + + + 123 + 20 + + + + + + + + Qt::Horizontal + + + + + + + + + + + + diff --git a/slideshow.cpp b/slideshow.cpp new file mode 100644 index 0000000..4aa669b --- /dev/null +++ b/slideshow.cpp @@ -0,0 +1,198 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "slideshow.h" + +SlideShowItem::SlideShowItem() +{ + slideId = -1; + order = -1; +} + +SlideShowInfo::SlideShowInfo() +{ +} + +SlideShow::SlideShow() +{ + slideShowId = -1; +} + +void SlideShow::loadSlideShow(int id) +{ + slides.clear(); + slideShowId = id; + QSqlQuery sq; + sq.exec(QString("SELECT name, info FROM SlideShows WHERE id = %1").arg(slideShowId)); + sq.first(); + name = sq.value(0).toString(); + info = sq.value(1).toString(); + + QProgressDialog progress; + progress.setMaximum(100); + progress.setValue(1); + sq.exec(QString("SELECT id, p_order, name, path, pix, pix_small, pix_prev FROM Slides WHERE ss_id = %1").arg(slideShowId)); + + int max(0); + while(sq.next()) + ++max; + + sq.first(); + progress.setLabelText("Loading Slides..."); + progress.setMaximum(max+1); + int ct(0); + + QList ss; + do + { + SlideShowItem si; + si.slideId = sq.value(0).toInt(); + si.order = sq.value(1).toInt(); + si.name = sq.value(2).toString(); + si.path = sq.value(3).toString(); + si.image.loadFromData(sq.value(4).toByteArray()); + si.imageSmall.loadFromData(sq.value(5).toByteArray()); + si.imagePreview.loadFromData(sq.value(6).toByteArray()); + + ss.append(si); + ++ct; + progress.setValue(ct); + }while(sq.next()); + + // Sort to proper oder number + for(int i(0);i delList) +{ + QSqlQuery sq; + QSqlDatabase::database().transaction(); + + QProgressDialog prg(savelbl,"Cancel",0,slides.count()+1+delList.count(),ptW); + + int ct(0); + + // Create new slide show in not yet in database + if(slideShowId == -1) + { + sq.prepare("INSERT INTO SlideShows (name, info) VALUES (?,?)"); + sq.addBindValue(name); + sq.addBindValue(info); + sq.exec(); + sq.clear(); + + // get currently added slideShow id + sq.exec("SELECT seq FROM sqlite_sequence WHERE name = 'SlideShows'"); + sq.first(); + slideShowId = sq.value(0).toInt(); + sq.clear(); + + // Insert new slides + sq.prepare("INSERT INTO Slides (ss_id, p_order, name, path, pix, pix_small, pix_prev) VALUES (?,?,?,?,?,?,?)"); + foreach(const SlideShowItem &si, slides) + { + sq.addBindValue(slideShowId); + sq.addBindValue(ct); + sq.addBindValue(si.name); + sq.addBindValue(si.path); + sq.addBindValue(pixToByte(si.image)); + sq.addBindValue(pixToByte(si.imageSmall)); + sq.addBindValue(pixToByte(si.imagePreview)); + sq.exec(); + ++ct; + prg.setValue(ct); + } + QSqlDatabase::database().commit(); + return; + } + else + { + // Update Slide Show + // Update slide show info + sq.prepare("UPDATE SlideShows SET name = ?, info = ? WHERE id = ?"); + sq.addBindValue(name); + sq.addBindValue(info); + sq.addBindValue(slideShowId); + sq.exec(); + sq.clear(); + + // Update slides (order only can be updated) + int c(0); + foreach(const SlideShowItem &si, slides) + { + if(si.slideId != -1) + { + sq.exec(QString("UPDATE Slides SET p_order = %1 WHERE id = %2").arg(c).arg(si.slideId)); + ++ct; + prg.setValue(ct); + } + ++c; + } + sq.clear(); + + // Insert new slides + c = 0; + sq.prepare("INSERT INTO Slides (ss_id, p_order, name, path, pix, pix_small, pix_prev) VALUES (?,?,?,?,?,?,?)"); + foreach(const SlideShowItem &si, slides) + { + if(si.slideId == -1) + { + sq.addBindValue(slideShowId); + sq.addBindValue(c); + sq.addBindValue(si.name); + sq.addBindValue(si.path); + sq.addBindValue(pixToByte(si.image)); + sq.addBindValue(pixToByte(si.imageSmall)); + sq.addBindValue(pixToByte(si.imagePreview)); + sq.exec(); + ++ct; + prg.setValue(ct); + } + ++c; + } + } + sq.clear(); + + // Delete slides + foreach(const int sid, delList) + { + if(sid>=0) + sq.exec(QString("DELETE FROM Slides WHERE id = %1").arg(sid)); + ++ct; + prg.setValue(ct); + } + + prg.setLabelText("Saving Slide Show to Database"); + QSqlDatabase::database().commit(); + ++ct; + prg.setValue(ct); +} diff --git a/slideshow.h b/slideshow.h new file mode 100644 index 0000000..d093f91 --- /dev/null +++ b/slideshow.h @@ -0,0 +1,67 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SLIDESHOW_H +#define SLIDESHOW_H + +#include +#include +#include +#include +#include + +#include "spfunctions.h" + +class SlideShowItem +{ +public: + SlideShowItem(); + int slideId; + int order; + QString name; + QString path; + QPixmap image; + QPixmap imageSmall; + QPixmap imagePreview; +}; + +class SlideShowInfo +{ +public: + SlideShowInfo(); + int slideSwId; + QString name; + QString info; +}; + +class SlideShow +{ +public: + SlideShow(); + int slideShowId; + QString name; + QString info; + QList slides; + +public slots: + void loadSlideShow(int id); + void saveSideShow(QString savelbl, QWidget *ptW, QList delList); +}; + +#endif // SLIDESHOW_H diff --git a/slideshoweditor.cpp b/slideshoweditor.cpp new file mode 100644 index 0000000..dc66df4 --- /dev/null +++ b/slideshoweditor.cpp @@ -0,0 +1,217 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "slideshoweditor.h" +#include "ui_slideshoweditor.h" + +SlideShowEditor::SlideShowEditor(QWidget *parent) : + // QWidget(parent), + QDialog(parent), + ui(new Ui::SlideShowEditor) +{ + ui->setupUi(this); + updateButtonState(); +} + +SlideShowEditor::~SlideShowEditor() +{ + delete ui; +} + +void SlideShowEditor::setSlideShow(SlideShow ss) +{ + editSS = ss; + deleteList.clear(); + loadSlideShow(); +} + +void SlideShowEditor::loadSlideShow() +{ + ui->lineEditTitle->setText(editSS.name); + ui->plainTextEditInfo->setPlainText(editSS.info); + + reloadSlides(); + ui->listWidgetSlides->setCurrentRow(0); +} + +void SlideShowEditor::reloadSlides() +{ + ui->listWidgetSlides->clear(); + foreach(const SlideShowItem &ssi, editSS.slides) + { + QListWidgetItem *itm = new QListWidgetItem; + QIcon ico(ssi.imageSmall); + itm->setIcon(ico); + ui->listWidgetSlides->addItem(itm); + } +} + +void SlideShowEditor::updateButtonState() +{ + int c = ui->listWidgetSlides->currentRow(); + int ct = editSS.slides.count(); + + ui->pushButtonRemoveImage->setEnabled(c>=0 && cpushButtonMoveUp->setEnabled(c>0 && cpushButtonMoveDown->setEnabled(c>=0 && (c0) + { + this->setCursor(Qt::WaitCursor); + int i(0); + QProgressDialog progress(tr("Adding files..."), tr("Cancel"), 0, imageFilePaths.count(), this); + ui->listWidgetSlides->setIconSize(QSize(100,100)); + foreach(const QString &file, imageFilePaths) + { + ++i; + progress.setValue(i); + + QPixmap img; + SlideShowItem sd; + img.load(file); + // set display image. If to resize, resize them + if(mySettings.resize) + { + if(img.width()>mySettings.boundWidth || img.height()>mySettings.boundWidth ) + sd.image = img.scaled(mySettings.boundWidth ,mySettings.boundWidth , Qt::KeepAspectRatio); + else + sd.image = img; + } + else + sd.image = img; + + // set preview image + if(img.width()>400 || img.height()>400) + sd.imagePreview = img.scaled(400,400, Qt::KeepAspectRatio); + else + sd.imagePreview = img; + + // set list image + if(img.width()>100 || img.height()>100) + sd.imageSmall = img.scaled(100,100, Qt::KeepAspectRatio); + else + sd.imageSmall = img; + + // set file name + QFileInfo f(file); + sd.name = f.fileName(); + sd.path = f.filePath(); + + // add to slideshow + editSS.slides.append(sd); + + // add to slide show list + QListWidgetItem *itm = new QListWidgetItem; + QIcon ico(sd.imageSmall); + + itm->setIcon(ico); + ui->listWidgetSlides->addItem(itm); + } + this->setCursor(Qt::ArrowCursor); + updateButtonState(); + } + +} + +void SlideShowEditor::on_pushButtonRemoveImage_clicked() +{ + int c = ui->listWidgetSlides->currentRow(); + if(c>=0 && clistWidgetSlides->currentRow(); + int u = c-1; + if(u>=0) + { + editSS.slides.move(c,u); + reloadSlides(); + ui->listWidgetSlides->setCurrentRow(u); + updateButtonState(); + } +} + +void SlideShowEditor::on_pushButtonMoveDown_clicked() +{ + int c = ui->listWidgetSlides->currentRow(); + int d = c+1; + if(dlistWidgetSlides->setCurrentRow(d); + updateButtonState(); + } +} + +void SlideShowEditor::on_pushButtonSave_clicked() +{ + // Make sure that slide show is not empty before saving. + if(editSS.slides.count()<=0) + { + //todo: message box saying that title cannot be empty + close(); + return; + } + + editSS.name = ui->lineEditTitle->text().trimmed(); + + // Make sure that slide show Title is not empty before saving. + if(editSS.name.isEmpty()) + { + QMessageBox mb(this); + mb.setText(tr("Slide show title cannot be left empty.\nPlease enter a title.")); + mb.setWindowTitle(tr("Slide show title is missing")); + mb.setIcon(QMessageBox::Warning); + mb.exec(); + ui->lineEditTitle->setFocus(); + return; + } + + editSS.info = ui->plainTextEditInfo->toPlainText(); + editSS.saveSideShow(tr("Saving Slide Show"),this,deleteList); + close(); +} + +void SlideShowEditor::on_pushButtonCancel_clicked() +{ + close(); +} + +void SlideShowEditor::on_listWidgetSlides_currentRowChanged(int currentRow) +{ + if(currentRow>=0) + { + ui->labelPreview->setPixmap(editSS.slides.at(currentRow).imagePreview); + ui->labelPixInfo->setText(tr("Preview slide: %1").arg(editSS.slides.at(currentRow).name)); + updateButtonState(); + } +} diff --git a/slideshoweditor.h b/slideshoweditor.h new file mode 100644 index 0000000..b0b1d17 --- /dev/null +++ b/slideshoweditor.h @@ -0,0 +1,68 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SLIDESHOWEDITOR_H +#define SLIDESHOWEDITOR_H + +//#include +#include +#include +#include +#include + +#include "slideshow.h" +#include "settings.h" + +namespace Ui { +class SlideShowEditor; +} + +//class SlideShowEditor : public QWidget +class SlideShowEditor : public QDialog +{ + Q_OBJECT + Q_DISABLE_COPY(SlideShowEditor)// for Dialog test +public: + explicit SlideShowEditor(QWidget *parent = 0); + ~SlideShowEditor(); + void setSettings(SlideShowSettings &settings){mySettings = settings;} + void setSlideShow(SlideShow ss); + +private slots: + void loadSlideShow(); + void reloadSlides(); + void updateButtonState(); + + void on_pushButtonAddImages_clicked(); + void on_pushButtonRemoveImage_clicked(); + void on_pushButtonMoveUp_clicked(); + void on_pushButtonMoveDown_clicked(); + void on_pushButtonSave_clicked(); + void on_pushButtonCancel_clicked(); + void on_listWidgetSlides_currentRowChanged(int currentRow); + +private: + Ui::SlideShowEditor *ui; + SlideShow editSS; + QProgressDialog progress; + QList deleteList; + SlideShowSettings mySettings; +}; + +#endif // SLIDESHOWEDITOR_H diff --git a/slideshoweditor.ui b/slideshoweditor.ui new file mode 100644 index 0000000..76c932f --- /dev/null +++ b/slideshoweditor.ui @@ -0,0 +1,234 @@ + + + SlideShowEditor + + + + 0 + 0 + 576 + 567 + + + + Slide Show Editor + + + + :/icons/icons/slideshow_edit.png:/icons/icons/slideshow_edit.png + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Slide Show Title: + + + + + + + + + + Slide Show Info: + + + + + + + + 0 + 0 + + + + + 16777215 + 50 + + + + + + + + + + + 100 + 100 + + + + 1 + + + + + + + + + Add Pictures + + + + :/icons/icons/add.png:/icons/icons/add.png + + + + + + + Remove Picture + + + + :/icons/icons/remove.png:/icons/icons/remove.png + + + + + + + + + + + :/icons/icons/up.png:/icons/icons/up.png + + + + + + + + + + + :/icons/icons/down.png:/icons/icons/down.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 400 + 300 + + + + + 400 + 300 + + + + QFrame::WinPanel + + + QFrame::Sunken + + + Picture Preview + + + Qt::AlignCenter + + + + + + + Picture Information + + + true + + + + + + + Qt::Vertical + + + + 20 + 74 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Save + + + + + + + Cancel + + + + + + + + + lineEditTitle + plainTextEditInfo + listWidgetSlides + pushButtonAddImages + pushButtonRemoveImage + pushButtonMoveUp + pushButtonMoveDown + pushButtonSave + pushButtonCancel + + + + + + diff --git a/softProjector.pro b/softProjector.pro new file mode 100644 index 0000000..557d226 --- /dev/null +++ b/softProjector.pro @@ -0,0 +1,167 @@ +##************************************************************************** +## +## softProjector - an open source media projection software +## Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +## +## This program is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation version 3 of the License. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program. If not, see . +## +##************************************************************************** + + +QT += core \ + gui \ + widgets \ + network \ + sql \ + qml \ + quick \ + printsupport \ + multimedia + +TARGET = SoftProjector +TEMPLATE = app +CONFIG += x86 ppc x86_64 ppc64 # Compile a universal build + +RES_DIR = $${PWD}/unknownsys_build +win32: RES_DIR = $${PWD}/win32_build +unix: RES_DIR = $${PWD}/unix_build +macx: RES_DIR = $${PWD}/mac_build + +DESTDIR = $${RES_DIR}/bin +OBJECTS_DIR = $${RES_DIR}/obj +MOC_DIR = $${RES_DIR}/moc +UI_DIR = $${RES_DIR}/ui +RCC_DIR = $${RES_DIR}/rcc +OUT_PWD = $${RES_DIR}/bin + +SOURCES += main.cpp \ + softprojector.cpp \ + songwidget.cpp \ + biblewidget.cpp \ + editwidget.cpp \ + song.cpp \ + bible.cpp \ + settingsdialog.cpp \ + aboutdialog.cpp \ + addsongbookdialog.cpp \ + highlight.cpp \ + managedatadialog.cpp \ + managedata.cpp \ + announcewidget.cpp \ + helpdialog.cpp \ + songcounter.cpp \ + bibleinformationdialog.cpp \ + settings.cpp \ + generalsettingwidget.cpp \ + biblesettingwidget.cpp \ + songsettingwidget.cpp \ + announcementsettingwidget.cpp \ + printpreviewdialog.cpp \ + controlbutton.cpp \ + passivesettingwidget.cpp \ + theme.cpp \ + picturewidget.cpp \ + slideshow.cpp \ + mediawidget.cpp \ + videoplayerwidget.cpp \ + videoinfo.cpp \ + spfunctions.cpp \ + slideshoweditor.cpp \ + editannouncementdialog.cpp \ + announcement.cpp \ + schedule.cpp \ + picturesettingwidget.cpp \ + moduledownloaddialog.cpp \ + moduleprogressdialog.cpp \ + displaysetting.cpp \ + projectordisplayscreen.cpp \ + imagegenerator.cpp \ + spimageprovider.cpp +HEADERS += softprojector.h \ + songwidget.h \ + biblewidget.h \ + editwidget.h \ + song.h \ + bible.h \ + settingsdialog.h \ + aboutdialog.h \ + addsongbookdialog.h \ + highlight.h \ + managedatadialog.h \ + managedata.h \ + announcewidget.h \ + helpdialog.h \ + songcounter.h \ + bibleinformationdialog.h \ + settings.h \ + generalsettingwidget.h \ + biblesettingwidget.h \ + songsettingwidget.h \ + announcementsettingwidget.h \ + printpreviewdialog.h \ + controlbutton.h \ + passivesettingwidget.h \ + theme.h \ + picturewidget.h \ + slideshow.h \ + mediawidget.h \ + videoplayerwidget.h \ + videoinfo.h \ + spfunctions.h \ + slideshoweditor.h \ + editannouncementdialog.h \ + announcement.h \ + schedule.h \ + picturesettingwidget.h \ + moduledownloaddialog.h \ + moduleprogressdialog.h \ + displaysetting.h \ + projectordisplayscreen.hpp \ + imagegenerator.hpp \ + spimageprovider.hpp +FORMS += softprojector.ui \ + songwidget.ui \ + biblewidget.ui \ + editwidget.ui \ + settingsdialog.ui \ + aboutdialog.ui \ + addsongbookdialog.ui \ + managedatadialog.ui \ + announcewidget.ui \ + helpdialog.ui \ + songcounter.ui \ + bibleinformationdialog.ui \ + generalsettingwidget.ui \ + biblesettingwidget.ui \ + songsettingwidget.ui \ + announcementsettingwidget.ui \ + printpreviewdialog.ui \ + passivesettingwidget.ui \ + picturewidget.ui \ + mediawidget.ui \ + slideshoweditor.ui \ + editannouncementdialog.ui \ + picturesettingwidget.ui \ + moduledownloaddialog.ui \ + moduleprogressdialog.ui \ + projectordisplayscreen.ui +TRANSLATIONS += translations/softpro_de.ts\ + translations/softpro_ru.ts\ + translations/softpro_cs.ts\ + translations/softpro_ua.ts +CODECFORTR = UTF-8 +RESOURCES += softprojector.qrc + +win32 { + RC_FILE = softprojector.rc +} diff --git a/softprojector.cpp b/softprojector.cpp new file mode 100644 index 0000000..d63608b --- /dev/null +++ b/softprojector.cpp @@ -0,0 +1,2376 @@ +/*************************************************************************** +// +// SoftProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include +#include "softprojector.h" +#include "ui_softprojector.h" +#include "aboutdialog.h" +#include "editannouncementdialog.h" + +SoftProjector::SoftProjector(QWidget *parent) + : QMainWindow(parent), ui(new Ui::SoftProjectorClass) +{ + // Load settings + mySettings.loadSettings(); + theme.setThemeId(mySettings.general.currentThemeId); + theme.loadTheme(); + // Reset current theme id if initial was 0 + mySettings.general.currentThemeId = theme.getThemeId(); + + //Setting up the Display Screen + desktop = new QDesktopWidget(); + // NOTE: With virtual desktop, desktop->screen() will always return the main screen, + // so this will initialize the Display1 widget on the main screen: + pds1 = new ProjectorDisplayScreen(desktop->screen(0)); + pds2 = new ProjectorDisplayScreen(desktop->screen(0)); //for future + // Don't worry, we'll move it later + + bibleWidget = new BibleWidget; + songWidget = new SongWidget; + editWidget = new EditWidget; + announceWidget = new AnnounceWidget; + manageDialog = new ManageDataDialog(this); + settingsDialog = new SettingsDialog(this); + helpDialog = new HelpDialog(); + pictureWidget = new PictureWidget; + mediaPlayer = new MediaWidget; + + ui->setupUi(this); + + // Create action group for language slections + languagePath = qApp->applicationDirPath()+QString(QDir::separator())+"translations"+QString(QDir::separator()); + createLanguageActions(); + + // Always place the "Settings" menu item under the application + // menu, even if the item is translated (Mac OS X): + ui->actionSettings->setMenuRole(QAction::PreferencesRole); + // FIXME Make the Preferences menu appear in the menu bar even for the + // display window (Mac OS X) + + // Apply Settings + applySetting(mySettings.general, theme, mySettings.slideSets, mySettings.bibleSets, mySettings.bibleSets2); + + positionDisplayWindow(); + +// pds1->renderText(false); +// pds2->renderText(false); + + showing = false; + + ui->projectTab->clear(); + ui->projectTab->addTab(bibleWidget,QIcon(":/icons/icons/book.png"), tr("Bible (F6)")); + ui->projectTab->addTab(songWidget,QIcon(":/icons/icons/song_tab.png"), tr("Songs (F7)")); + ui->projectTab->addTab(pictureWidget,QIcon(":/icons/icons/photo.png"),tr("Pictures")); +// ui->projectTab->addTab(mediaPlayer,QIcon(":/icons/icons/video.png"),tr("Media")); + ui->projectTab->addTab(announceWidget,QIcon(":/icons/icons/announce.png"), tr("Announcements (F8)")); + ui->projectTab->setCurrentIndex(0); + + + connect(bibleWidget, SIGNAL(goLive(QStringList, QString, QItemSelection)), + this, SLOT(setChapterList(QStringList, QString, QItemSelection))); + connect(bibleWidget, SIGNAL(setArrowCursor()), this, SLOT(setArrowCursor())); + connect(bibleWidget, SIGNAL(setWaitCursor()), this, SLOT(setWaitCursor())); + connect(songWidget, SIGNAL(sendSong(Song, int)), this, SLOT(setSongList(Song, int))); + connect(songWidget, SIGNAL(setArrowCursor()), this, SLOT(setArrowCursor())); + connect(songWidget, SIGNAL(setWaitCursor()), this, SLOT(setWaitCursor())); + connect(announceWidget,SIGNAL(sendAnnounce(Announcement,int)), this, SLOT(setAnnounceText(Announcement,int))); + connect(pictureWidget, SIGNAL(sendSlideShow(QList&,int,QString)), + this, SLOT(setPictureList(QList&,int,QString))); + connect(pictureWidget, SIGNAL(sendToSchedule(SlideShow&)),this,SLOT(addToShcedule(SlideShow&))); + connect(mediaPlayer, SIGNAL(toProjector(VideoInfo&)), this, SLOT(setVideo(VideoInfo&))); + connect(editWidget, SIGNAL(updateSongFromDatabase(int,int)), songWidget, SLOT(updateSongFromDatabase(int,int))); + connect(editWidget, SIGNAL(addedNew(Song,int)), songWidget,SLOT(addNewSong(Song,int))); + connect(manageDialog, SIGNAL(setMainArrowCursor()), this, SLOT(setArrowCursor())); + connect(manageDialog, SIGNAL(setMainWaitCursor()), this, SLOT(setWaitCursor())); + connect(languageGroup, SIGNAL(triggered(QAction*)), this, SLOT(switchLanguage(QAction*))); + connect(pds1,SIGNAL(exitSlide()),this,SLOT(on_actionHide_triggered())); + connect(pds1,SIGNAL(nextSlide()),this,SLOT(nextSlide())); + connect(pds1,SIGNAL(prevSlide()),this,SLOT(prevSlide())); + connect(settingsDialog,SIGNAL(updateSettings(GeneralSettings&,Theme&,SlideShowSettings&, + BibleVersionSettings&,BibleVersionSettings&)), + this,SLOT(updateSetting(GeneralSettings&,Theme&,SlideShowSettings&, + BibleVersionSettings&,BibleVersionSettings&))); + connect(settingsDialog,SIGNAL(positionsDisplayWindow()),this,SLOT(positionDisplayWindow())); + connect(settingsDialog,SIGNAL(updateScreen()),this,SLOT(updateScreen())); + connect(songWidget,SIGNAL(addToSchedule(Song&)),this,SLOT(addToShcedule(Song&))); + connect(announceWidget,SIGNAL(addToSchedule(Announcement&)),this,SLOT(addToShcedule(Announcement&))); + + // Add tool bar actions + ui->toolBarFile->addAction(ui->actionNewSchedule); + ui->toolBarFile->addAction(ui->actionOpenSchedule); + ui->toolBarFile->addAction(ui->actionSaveSchedule); + ui->toolBarFile->addSeparator(); + ui->toolBarFile->addAction(ui->actionPrint); + + ui->toolBarSchedule->addAction(ui->actionMoveScheduleTop); + ui->toolBarSchedule->addAction(ui->actionMoveScheduleUp); + ui->toolBarSchedule->addAction(ui->actionMoveScheduleDown); + ui->toolBarSchedule->addAction(ui->actionMoveScheduleBottom); + ui->toolBarSchedule->addSeparator(); + ui->toolBarSchedule->addAction(ui->actionScheduleAdd); + ui->toolBarSchedule->addAction(ui->actionScheduleRemove); + ui->toolBarSchedule->addAction(ui->actionScheduleClear); + + ui->toolBarEdit->addAction(ui->actionNew); + ui->toolBarEdit->addAction(ui->actionEdit); + ui->toolBarEdit->addAction(ui->actionCopy); + ui->toolBarEdit->addAction(ui->actionDelete); + ui->toolBarEdit->addSeparator(); + ui->toolBarEdit->addAction(ui->actionSettings); + ui->toolBarEdit->addSeparator(); + ui->toolBarEdit->addAction(ui->actionSong_Counter); + ui->toolBarEdit->addSeparator(); + ui->toolBarEdit->addAction(ui->action_Help); + + ui->toolBarShow->addAction(ui->actionShow); + ui->toolBarShow->addAction(ui->actionClear); + ui->toolBarShow->addAction(ui->actionHide); + ui->toolBarShow->addAction(ui->actionCloseDisplay); + + ui->actionShow->setEnabled(false); + ui->actionHide->setEnabled(false); + ui->actionClear->setEnabled(false); + + // Create and connect shortcuts + shpgUP = new QShortcut(Qt::Key_PageUp,this); + shpgDwn = new QShortcut(Qt::Key_PageDown,this); + shSart1 = new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_B),this); + shSart2 = new QShortcut(QKeySequence(Qt::SHIFT + Qt::Key_F5),this); + connect(shpgUP,SIGNAL(activated()),this,SLOT(prevSlide())); + connect(shpgDwn,SIGNAL(activated()),this,SLOT(nextSlide())); + connect(shSart1,SIGNAL(activated()),this,SLOT(on_actionShow_triggered())); + connect(shSart2,SIGNAL(activated()),this,SLOT(on_actionShow_triggered())); + + // Hide Multi verse selection, only visible to be when showing bible + ui->widgetMultiVerse->setVisible(false); + + // Set up video controls + /* + playerSlider = new Phonon::SeekSlider(this); + playerSlider->setMediaObject(pds1->videoPlayer); + ui->horizontalLayoutPlayBackTime->insertWidget(1,playerSlider); + + playerAudioOutput = new Phonon::AudioOutput(Phonon::VideoCategory); + volumeSlider = new Phonon::VolumeSlider(playerAudioOutput); + Phonon::createPath(pds1->videoPlayer,playerAudioOutput); + ui->horizontalLayoutPlayBackButtons->addWidget(volumeSlider); + + connect(pds1, SIGNAL(sendTimeText(QString)),this, SLOT(setTimeText(QString))); + connect(pds1, SIGNAL(updatePlayButton(bool)),this,SLOT(setButtonPlayIcon(bool))); + */ + ui->widgetPlayBackControls->setVisible(false); + + version_string = "2"; // to be used only for official release + //version_string = "2 Beta"; // to be used between official releases + this->setWindowTitle("SoftProjector " + version_string); +} + +SoftProjector::~SoftProjector() +{ + saveSettings(); + delete songWidget; + delete editWidget; + delete bibleWidget; + delete announceWidget; + delete manageDialog; +// delete playerSlider; +// delete playerAudioOutput; +// delete volumeSlider; + delete mediaPlayer; + delete pds1; + delete pds2; + delete desktop; + delete languageGroup; + delete settingsDialog; + delete shpgUP; + delete shpgDwn; + delete shSart1; + delete shSart2; + delete helpDialog; + delete ui; +} + +void SoftProjector::positionDisplayWindow() +{ + // Position the display window as needed (including setting "always on top" flag, + // showing full screen / normal mode, and positioning it on the right screen) + + if (mySettings.general.displayIsOnTop) + { + pds1->setWindowFlags(Qt::WindowStaysOnTopHint); + pds2->setWindowFlags(Qt::WindowStaysOnTopHint); + } + else + { + pds1->setWindowFlags(0); // Do not show always on top + pds2->setWindowFlags(0); // Do not show always on top + } + + if(desktop->screenCount() > 1) + { + if (desktop->isVirtualDesktop()) + { + // Move the display widget to screen 1 (secondary screen): +// QPoint top_left = desktop->screenGeometry(mySettings.general.displayScreen).topLeft(); +// pds1->move(top_left); + pds1->setGeometry(desktop->screenGeometry(mySettings.general.displayScreen)); + } + +// if(!ui->actionCloseDisplay->isChecked()) +// ui->actionCloseDisplay->trigger(); + + pds1->setCursor(Qt::BlankCursor); //Sets a Blank Mouse to the screen + pds1->resetImGenSize(); + pds1->renderPassiveText(theme.passive.backgroundPix,true); + + + if(mySettings.general.displayOnStartUp) +{ + pds1->showFullScreen(); + + //TODO:FIX +// if(!ui->actionCloseDisplay->isChecked()) +// ui->actionCloseDisplay->trigger(); + ui->actionCloseDisplay->setChecked(true); + updateCloseDisplayButtons(true); + + } + + pds1->setControlsVisible(false); + // check if to display secondary display screen + if(mySettings.general.displayScreen2>=0) + { + hasDisplayScreen2 = true; + if (desktop->isVirtualDesktop()) + { + // Move the display widget to screen 1 (secondary screen): +// QPoint top_left = desktop->screenGeometry(mySettings.general.pds2).topLeft(); +// pds2->move(top_left); + pds2->setGeometry(desktop->screenGeometry(mySettings.general.displayScreen2)); + pds2->resetImGenSize(); + } + pds2->showFullScreen(); + pds2->setCursor(Qt::BlankCursor); //Sets a Blank Mouse to the screen +// pds2->positionOpjects(); + pds2->setControlsVisible(false); + } + else + { + hasDisplayScreen2 = false; + pds2->hide(); + } + + // specify that there is more than one diplay screen(monitor) availbale + isSingleScreen = false; + } + else + { + // Single monitor only: Do not show on strat up. + // Will be shown only when items were sent to the projector. + pds1->setGeometry(desktop->screenGeometry()); + pds1->resetImGenSize(); + showDisplayScreen(false); + isSingleScreen = true; + hasDisplayScreen2 = false; + } +} + +void SoftProjector::showDisplayScreen(bool show) +{ + if(show) + { + pds1->showFullScreen(); +// pds1->positionOpjects(); + } + else + { + pds1->hide(); + ui->actionCloseDisplay->setEnabled(false); + } + pds1->positionControls(mySettings.general.displayControls); + pds1->setControlsVisible(true); +} + +void SoftProjector::saveSettings() +{ + // Save splitter states + mySettings.spMain.spSplitter = ui->splitter->saveState(); + mySettings.spMain.bibleHiddenSplitter = bibleWidget->getHiddenSplitterState(); + mySettings.spMain.bibleShowSplitter = bibleWidget->getShownSplitterState(); + mySettings.spMain.songSplitter = songWidget->getSplitterState(); + + // Save window maximized state + mySettings.spMain.isWindowMaximized = this->isMaximized(); + + // save translation settings + QList languageActions = ui->menuLanguage->actions(); + + for(int i(0);i < languageActions.count();++i) + { + if(languageActions.at(i)->isChecked()) + { + if(i < languageActions.count()) + mySettings.spMain.uiTranslation = languageActions.at(i)->data().toString(); + else + mySettings.spMain.uiTranslation = "en"; + } + } + + // save settings + mySettings.saveSettings(); + theme.saveThemeUpdate(); +} + +void SoftProjector::updateSetting(GeneralSettings &g, Theme &t, SlideShowSettings &ssets, + BibleVersionSettings &bsets, BibleVersionSettings &bsets2) +{ + mySettings.general = g; + mySettings.slideSets = ssets; + mySettings.bibleSets = bsets; + mySettings.bibleSets2 = bsets2; + mySettings.saveSettings(); + theme = t; + bibleWidget->setSettings(mySettings.bibleSets); + pictureWidget->setSettings(mySettings.slideSets); + + // Apply display settings; + pds1->resetImGenSize(); +// pds1->setNewPassiveWallpaper(theme.passive.background,theme.passive.useBackground); +// if(theme.passive2.useDisp2settings) +// pds2->setNewPassiveWallpaper(theme.passive2.background,theme.passive2.useBackground); +// else +// pds2->setNewPassiveWallpaper(theme.passive.background,theme.passive.useBackground); +} + +void SoftProjector::applySetting(GeneralSettings &g, Theme &t, SlideShowSettings &s, + BibleVersionSettings &b1, BibleVersionSettings &b2) +{ + updateSetting(g,t,s,b1,b2); + + // Apply splitter states + ui->splitter->restoreState(mySettings.spMain.spSplitter); + bibleWidget->setHiddenSplitterState(mySettings.spMain.bibleHiddenSplitter); + bibleWidget->setShownSplitterState(mySettings.spMain.bibleShowSplitter); + songWidget->setSplitterState(mySettings.spMain.songSplitter); + + // Apply window maximized + if(mySettings.spMain.isWindowMaximized) + this->setWindowState(Qt::WindowMaximized); + + // Apply current translation + QList la = ui->menuLanguage->actions(); + QString splocale; + for(int i(0);i < la.count(); ++i) + { + if(la.at(i)->data().toString() == mySettings.spMain.uiTranslation) + { + if(i < la.count()) + { + ui->menuLanguage->actions().at(i)->setChecked(true); + splocale = mySettings.spMain.uiTranslation; + } + else + { + ui->menuLanguage->actions().at(0)->setChecked(true);//default + splocale = "en"; + } + } + } + cur_locale = splocale; + retranslateUis(); +} + +void SoftProjector::closeEvent(QCloseEvent *event) +{ + if(is_schedule_saved || schedule_file_path.isEmpty()) + { + QCoreApplication::exit(0); + event->accept(); + } + else + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Schedule not saved")); + mb.setText(tr("Do you want to save current schedule?")); + mb.setIcon(QMessageBox::Question); + mb.setStandardButtons(QMessageBox::Save | QMessageBox::Cancel | QMessageBox::Discard); + mb.setDefaultButton(QMessageBox::Save); + int ret = mb.exec(); + + switch (ret) + { + case QMessageBox::Save: + // Save Schedule and close + on_actionSaveSchedule_triggered(); + QCoreApplication::exit(0); + event->accept(); + break; + case QMessageBox::Cancel: + // Cancel was clicked, do nothing + event->ignore(); + break; + case QMessageBox::Discard: + // Close without saving + QCoreApplication::exit(0); + event->accept(); + break; + default: + // should never be reached + break; + } + } +} + +void SoftProjector::keyPressEvent(QKeyEvent *event) +{ + // Will get called when a key is pressed + int key = event->key(); + if(key == Qt::Key_F6) + ui->projectTab->setCurrentWidget(bibleWidget); + else if(key == Qt::Key_F7) + ui->projectTab->setCurrentWidget(songWidget); + else if(key == Qt::Key_F8) + ui->projectTab->setCurrentWidget(announceWidget); + else if(key == Qt::Key_Left) + prevSlide(); + else if(key == Qt::Key_Back) + prevSlide(); + else if(key == Qt::Key_Right) + nextSlide(); + else if(key == Qt::Key_Forward) + nextSlide(); + else if(key == Qt::Key_Return) + nextSlide(); + else if(key == Qt::Key_Enter) + nextSlide(); + else + QMainWindow::keyPressEvent(event); +} + +void SoftProjector::on_actionClose_triggered() +{ + close(); +} + +void SoftProjector::setAnnounceText(Announcement announce, int row) +{ + currentAnnounce = announce; + type = "announce"; + ui->widgetMultiVerse->setVisible(false); + ui->rbMultiVerse->setChecked(false); + ui->widgetPlayBackControls->setVisible(false); + showing = true; + new_list = true; + ui->labelIcon->setPixmap(QPixmap(":/icons/icons/announce.png").scaled(16,16,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)); + ui->labelShow->setText(currentAnnounce.title); + ui->listShow->clear(); + ui->listShow->setSpacing(5); // ? + ui->listShow->setWordWrap(true); + ui->listShow->addItems(currentAnnounce.getAnnounceList()); + ui->listShow->setCurrentRow(row); + ui->listShow->setFocus(); + new_list = false; + updateScreen(); +} + +void SoftProjector::setSongList(Song song, int row) +{ + QStringList song_list = song.getSongTextList(); + current_song = song; + current_song_verse = row; + + // Display the specified song text in the right-most column of softProjector + type = "song"; + ui->widgetMultiVerse->setVisible(false); + ui->rbMultiVerse->setChecked(false); + ui->widgetPlayBackControls->setVisible(false); + showing = true; + new_list = true; + ui->listShow->clear(); + ui->labelIcon->setPixmap(QPixmap(":/icons/icons/song_tab.png").scaled(16,16,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)); + ui->labelShow->setText(song.title); + ui->listShow->setSpacing(5); + ui->listShow->setWordWrap(false); + ui->listShow->addItems(song_list); + ui->listShow->setCurrentRow(row); + ui->listShow->setFocus(); + new_list = false; + updateScreen(); +} + +void SoftProjector::setChapterList(QStringList chapter_list, QString caption, QItemSelection selectedItems) +{ + // Called to show a bible verse from a chapter in the preview list + type = "bible"; + ui->widgetMultiVerse->setVisible(true); + ui->widgetPlayBackControls->setVisible(false); + showing = true; + new_list = true; + ui->labelIcon->setPixmap(QPixmap(":/icons/icons/book.png").scaled(16,16,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)); + ui->labelShow->setText(caption); + ui->listShow->clear(); + ui->listShow->setSpacing(2); + ui->listShow->setWordWrap(true); + ui->listShow->addItems(chapter_list); + if(selectedItems.indexes().count()>1) + ui->rbMultiVerse->setChecked(true); + else + ui->rbMultiVerse->setChecked(false); + + ui->listShow->setCurrentRow(selectedItems.first().top()); + ui->listShow->selectionModel()->select(selectedItems,QItemSelectionModel::Select); + ui->listShow->setFocus(); + new_list = false; + updateScreen(); +} + +void SoftProjector::setPictureList(QList &image_list,int row,QString name) +{ + // Called to show picture list + type = "pix"; + showing = true; + ui->widgetMultiVerse->setVisible(false); + ui->rbMultiVerse->setChecked(false); + ui->widgetPlayBackControls->setVisible(false); + new_list = true; + pictureShowList = image_list; + ui->labelIcon->setPixmap(QPixmap(":/icons/icons/photo.png").scaled(16,16,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)); + ui->labelShow->setText(name); + ui->listShow->clear(); + ui->listShow->setSpacing(1); + ui->listShow->setIconSize(QSize(100,100)); + + foreach(const SlideShowItem &p, pictureShowList) + { + QListWidgetItem *itm = new QListWidgetItem; + QIcon ico(p.imageSmall); + itm->setIcon(ico); + ui->listShow->addItem(itm); + } + + ui->listShow->setCurrentRow(row); + ui->listShow->setFocus(); + new_list = false; + updateScreen(); +} + +void SoftProjector::setVideo(VideoInfo &video) +{ + // Called when showing video + type = "video"; + currentVideo = video; + showing = true; + ui->widgetMultiVerse->setVisible(false); + ui->rbMultiVerse->setChecked(false); + if(!ui->widgetPlayBackControls->isVisible()) + ui->widgetPlayBackControls->setVisible(true); + new_list = true; + ui->listShow->clear(); + ui->labelIcon->setPixmap(QPixmap(":/icons/icons/video.png").scaled(16,16,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)); + ui->labelShow->setText(currentVideo.fileName); + new_list = false; + updateScreen(); +} + +void SoftProjector::on_listShow_currentRowChanged(int currentRow) +{ + // Called when the user selects a different row in the show (right-most) list. + // updateScreen(); +} + +void SoftProjector::on_listShow_itemSelectionChanged() +{ + // Called when the user selects a different row in the show (right-most) list. + // First check if ratio button "Multi Verse" is check. If so, make button "Show" + // enable and update screen only after show_botton is clicked. + if(ui->rbMultiVerse->isChecked()) + ui->actionShow->setEnabled(true); + else + updateScreen(); +} + +void SoftProjector::updateScreen() +{ + // Display the specified row of the show (rightmost) table to + // the display + int currentRow = ui->listShow->currentRow(); + + if(!showing) + { + // Do not display any text: +// pds1->renderText(false); + + if(isSingleScreen) + showDisplayScreen(false); + +// if(hasDisplayScreen2) +// pds2->renderText(false); + ui->actionShow->setEnabled(true); + ui->actionHide->setEnabled(false); + ui->actionClear->setEnabled(false); + } + else if ((currentRow >=0 && !new_list) || (type == "video" && !new_list)) + { + if(isSingleScreen) + { + if(pds1->isHidden()) + showDisplayScreen(true); + } + else + { + if(pds1->isHidden() || !ui->actionCloseDisplay->isChecked()) +// pds1->showFullScreen(); + + ui->actionCloseDisplay->trigger(); + +// if(hasDisplayScreen2) +// { +// if(pds2->isHidden()) +// pds2->showFullScreen(); +// } +// if(!ui->actionCloseDisplay->isEnabled()) +// ui->actionCloseDisplay->setEnabled(true); + } + + ui->actionShow->setEnabled(false); + ui->actionHide->setEnabled(true); + if(type=="bible" || type=="song" || type=="announce") + ui->actionClear->setEnabled(true); + else + ui->actionClear->setEnabled(false); + + if(type=="bible") + { + int srows(ui->listShow->count()); + QList currentRows; + for(int i(0); ilistShow->item(i)->isSelected()) + currentRows.append(i); + } + pds1->renderBibleText(bibleWidget->bible. + getCurrentVerseAndCaption(currentRows,theme.bible,mySettings.bibleSets) + ,theme.bible); + if(hasDisplayScreen2) + { +// if(theme.bible2.useDisp2settings) +// pds2->renderBibleText(bibleWidget->bible. +// getCurrentVerseAndCaption(currentRows,theme.bible2, +// mySettings.bibleSets2),theme.bible2); +// else + pds2->renderBibleText(bibleWidget->bible. + getCurrentVerseAndCaption(currentRows,theme.bible, + mySettings.bibleSets),theme.bible); + } + } + else if(type=="song") + { + pds1->renderSongText(current_song.getStanza(currentRow),theme.song); + if(hasDisplayScreen2) + { +// if(theme.song2.useDisp2settings) +// pds2->renderSongText(current_song.getStanza(currentRow),theme.song2); +// else + pds2->renderSongText(current_song.getStanza(currentRow),theme.song); + } + } + else if(type == "announce") + { + pds1->renderAnnounceText(currentAnnounce.getAnnounceSlide(currentRow),theme.announce); + if(hasDisplayScreen2) + { +// if(theme.announce2.useDisp2settings) +// pds2->renderAnnounceText(currentAnnounce.getAnnounceSlide(currentRow),theme.announce2); +// else + pds2->renderAnnounceText(currentAnnounce.getAnnounceSlide(currentRow),theme.announce); + } + } + else if(type == "pix") + { + pds1->renderSlideShow(pictureShowList.at(currentRow).image,mySettings.slideSets); + if(hasDisplayScreen2) + pds2->renderSlideShow(pictureShowList.at(currentRow).image,mySettings.slideSets); + } + else if(type == "video") + { +// pds1->renderVideo(currentVideo); +// if(hasDisplayScreen2) +// pds2->renderVideo(currentVideo); + } + } +} + +void SoftProjector::on_actionShow_triggered() +{ + showing = true; + updateScreen(); +} + +void SoftProjector::on_actionHide_triggered() +{ + showing = false; + updateScreen(); +} + +void SoftProjector::on_actionClear_triggered() +{ + pds1->renderNotText(); + if(hasDisplayScreen2) + { + pds2->renderNotText(); + } + ui->actionClear->setEnabled(false); + ui->actionShow->setEnabled(true); +// ui->actionHide->setEnabled(false); +} + +void SoftProjector::on_actionCloseDisplay_triggered() +{ + if(ui->actionCloseDisplay->isChecked()) + { + // If ui->actionCloseDisplay->isChecked() == true, turn it ON + ui->actionCloseDisplay->setIcon(QIcon(":/icons/icons/display_on.png")); + pds1->showFullScreen(); + if(hasDisplayScreen2) + pds2->showFullScreen(); + } + else + { + // If ui->actionCloseDisplay->isChecked() == true, turn it OFF + ui->actionCloseDisplay->setIcon(QIcon(":/icons/icons/display_off.png")); + pds1->hide(); + if(hasDisplayScreen2) + pds2->hide(); + } +} + +void SoftProjector::updateCloseDisplayButtons(bool isOn) +{ + if(isOn) + ui->actionCloseDisplay->setIcon(QIcon(":/icons/icons/display_on.png")); + else + ui->actionCloseDisplay->setIcon(QIcon(":/icons/icons/display_off.png")); +} + +void SoftProjector::on_actionSettings_triggered() +{ + settingsDialog->loadSettings(mySettings.general,theme,mySettings.slideSets, mySettings.bibleSets,mySettings.bibleSets2); + settingsDialog->exec(); +} + +void SoftProjector::on_listShow_doubleClicked(QModelIndex index) +{ + // Called when the user double clicks on a row in the preview table. + showing = true; + updateScreen(); +} + +void SoftProjector::on_projectTab_currentChanged(int index) +{ + updateEditActions(); +} + +void SoftProjector::updateEditActions() +{ + int ctab = ui->projectTab->currentIndex(); + // ctab - 0=bible, 1=songs, 2=pix, 3=media, 4=annouce + if(ctab == 0) + { + ui->actionNew->setText(""); + ui->actionEdit->setText(""); + ui->actionCopy->setText(""); + ui->actionDelete->setText(tr("&Clear Bible History List")); + ui->actionNew->setIcon(QIcon()); + ui->actionEdit->setIcon(QIcon()); + ui->actionCopy->setIcon(QIcon()); + ui->actionDelete->setIcon(QIcon(":/icons/icons/bibleHistoryDelete.png")); + } + else if(ctab == 1) // Song Tab + { + ui->actionNew->setText(tr("&New Song...")); + ui->actionEdit->setText(tr("&Edit Song...")); + ui->actionCopy->setText(tr("&Copy Song...")); + ui->actionDelete->setText(tr("&Delete Song")); + ui->actionNew->setIcon(QIcon(":/icons/icons/song_new.png")); + ui->actionEdit->setIcon(QIcon(":/icons/icons/song_edit.png")); + ui->actionCopy->setIcon(QIcon(":/icons/icons/song_copy.png")); + ui->actionDelete->setIcon(QIcon(":/icons/icons/song_delete.png")); + } + else if (ctab == 2) // Picture Tab + { + ui->actionNew->setText(tr("&New Slide Show...")); + ui->actionEdit->setText(tr("&Edit Slide Show...")); + ui->actionCopy->setText(""); + ui->actionDelete->setText(tr("&Delete Slide Show")); + ui->actionNew->setIcon(QIcon(":/icons/icons/slideshow_new.png")); + ui->actionEdit->setIcon(QIcon(":/icons/icons/slideshow_edit.png")); + ui->actionCopy->setIcon(QIcon()); + ui->actionDelete->setIcon(QIcon(":/icons/icons/slideshow_delete.png")); + } + else if (ctab == 3) // Media Tab + { + ui->actionNew->setText(tr("&Add Media Files...")); + ui->actionEdit->setText(""); + ui->actionCopy->setText(""); + ui->actionDelete->setText(tr("&Remove Media Files")); + ui->actionNew->setIcon(QIcon(":/icons/icons/video_add.png")); + ui->actionEdit->setIcon(QIcon()); + ui->actionCopy->setIcon(QIcon()); + ui->actionDelete->setIcon(QIcon(":/icons/icons/video_remove.png")); + } + else if (ctab == 4) // Announcement Tab + { + ui->actionNew->setText(tr("&New Announcement...")); + ui->actionEdit->setText(tr("&Edit Announcement...")); + ui->actionCopy->setText(tr("&Copy Announcement...")); + ui->actionDelete->setText(tr("&Delete Announcement")); + ui->actionNew->setIcon(QIcon(":/icons/icons/announce_new.png")); + ui->actionEdit->setIcon(QIcon(":/icons/icons/announce_edit.png")); + ui->actionCopy->setIcon(QIcon(":/icons/icons/announce_copy.png")); + ui->actionDelete->setIcon(QIcon(":/icons/icons/announce_delete.png")); + } + else + { + ui->actionNew->setText(""); + ui->actionEdit->setText(""); + ui->actionCopy->setText(""); + ui->actionDelete->setText(""); + ui->actionNew->setIcon(QIcon()); + ui->actionEdit->setIcon(QIcon()); + ui->actionCopy->setIcon(QIcon()); + ui->actionDelete->setIcon(QIcon()); + } + + // Set Edit Action Menu Visibility + ui->actionNew->setVisible(ctab == 1 || ctab == 2 || ctab == 3 || ctab == 4); + ui->actionEdit->setVisible(ctab == 1 || ctab == 2 || ctab == 4); + ui->actionCopy->setVisible(ctab == 1 || ctab == 4); + ui->actionDelete->setVisible(ctab == 0 || ctab == 1 || ctab == 2 || ctab == 3 || ctab == 4); + + // Set Edit Action Menu enabled + ui->actionNew->setEnabled(ctab == 1 || ctab == 2 || ctab == 3 || ctab == 4); + ui->actionEdit->setEnabled(ctab == 1 || ctab == 2 || ctab == 4); + ui->actionCopy->setEnabled(ctab == 1 || ctab == 4); + ui->actionDelete->setEnabled(ctab == 0 || ctab == 1 || ctab == 2 || ctab == 3 || ctab == 4); + + ///////////////////////////////////////// + // Set Print Action Menu enabled + ui->actionPrint->setEnabled(ctab == 0 || ctab == 1 || ctab == 4); +} + +void SoftProjector::on_actionNew_triggered() +{ + int ctab = ui->projectTab->currentIndex(); + if(ctab == 1) + newSong(); + else if(ctab == 2) + newSlideShow(); + else if(ctab == 3) + addMediaToLibrary(); + else if(ctab == 4) + newAnnouncement(); +} + +void SoftProjector::on_actionEdit_triggered() +{ + int ctab = ui->projectTab->currentIndex(); + if(ctab == 1) + editSong(); + else if(ctab == 2) + editSlideShow(); + else if(ctab == 4) + editAnnouncement(); +} + +void SoftProjector::on_actionCopy_triggered() +{ + int ctab = ui->projectTab->currentIndex(); + if(ctab == 1) + copySong(); + else if(ctab == 4) + copyAnnouncement(); +} + +void SoftProjector::on_actionDelete_triggered() +{ + int ctab = ui->projectTab->currentIndex(); + if(ctab == 0) + bibleWidget->clearHistory(); + else if(ctab == 1) + deleteSong(); + else if(ctab == 2) + deleteSlideShow(); + else if(ctab == 3) + removeMediaFromLibrary(); + else if(ctab == 4) + deleteAnnoucement(); +} + +void SoftProjector::on_actionManage_Database_triggered() +{ + QSqlQuery sq; + + manageDialog->loadThemes(); + manageDialog->load_songbooks(); + manageDialog->setDataDir(appDataDir); + manageDialog->exec(); + + // Reload songbooks if Songbook has been added, edited, or deleted + if (manageDialog->reload_songbook) + songWidget->updateSongbooks(); + + // Relaod themes if a theme has been deleted + if (manageDialog->reloadThemes) + { + // Check if current theme has been deleted + sq.exec("SELECT * FROM Themes WHERE id = " + QString::number(theme.getThemeId())); + if(!sq.first()) + { + GeneralSettings g = mySettings.general; + Theme t; + sq.exec("SELECT id FROM Themes"); + sq.first(); + t.setThemeId(sq.value(0).toInt()); + t.loadTheme(); + g.currentThemeId = t.getThemeId(); + updateSetting(g,t,mySettings.slideSets,mySettings.bibleSets,mySettings.bibleSets2); + updateScreen(); + } + } + + // Reload Bibles if Bible has been deleted + if (manageDialog->reload_bible) + { + // check if Primary bible has been removed + sq.exec("SELECT * FROM BibleVersions WHERE id = " + mySettings.bibleSets.primaryBible); + if (!sq.first()) + { + // If original primary bible has been removed, set first bible in the list to be primary + sq.clear(); + sq.exec("SELECT id FROM BibleVersions"); + sq.first(); + mySettings.bibleSets.primaryBible = sq.value(0).toString(); + } + sq.clear(); + + // check if secondary bible has been removed, if yes, set secondary to "none" + sq.exec("SELECT * FROM BibleVersions WHERE id = " + mySettings.bibleSets.secondaryBible); + if (!sq.first()) + mySettings.bibleSets.secondaryBible = "none"; + sq.clear(); + + // check if trinary bible has been removed, if yes, set secondary to "none" + sq.exec("SELECT * FROM BibleVersions WHERE id = " + mySettings.bibleSets.trinaryBible); + if (!sq.first()) + mySettings.bibleSets.trinaryBible = "none"; + sq.clear(); + + // check if operator bible has been removed, if yes, set secondary to "same" + sq.exec("SELECT * FROM BibleVersions WHERE id = " + mySettings.bibleSets.operatorBible); + if (!sq.first()) + mySettings.bibleSets.operatorBible = "same"; + bibleWidget->setSettings(mySettings.bibleSets); + } +} + +void SoftProjector::on_actionDonate_triggered() +{ + QDesktopServices::openUrl(QUrl("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4")); +} + +void SoftProjector::on_actionAbout_triggered() +{ + AboutDialog *aboutDialog; + aboutDialog = new AboutDialog(this, version_string); + aboutDialog->exec(); + delete aboutDialog; +} + +void SoftProjector::on_action_Help_triggered() +{ + //helpDialog->show(); + QDesktopServices::openUrl(QUrl("http://softprojector.org/help/index.html")); +} + +void SoftProjector::newSong() +{ + if (!editWidget->isHidden()) //Prohibits editing a song when a different song already been edited. + { + QMessageBox ms(this); + ms.setWindowTitle(tr("Cannot create a new song")); + ms.setText(tr("Another song is already been edited.")); + ms.setInformativeText(tr("Please save and/or close current edited song before edited a different song.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } + else + { + editWidget->show(); + editWidget->setNew(); + editWidget->activateWindow(); + } +} + +void SoftProjector::editSong() +{ + if (songWidget->isSongSelected()) + { + if(!editWidget->isHidden()) //Prohibits editing a song when a different song already been edited. + { + QMessageBox ms(this); + ms.setWindowTitle(tr("Cannot start new edit")); + ms.setText(tr("Another song is already been edited.")); + ms.setInformativeText(tr("Please save and/or close current edited song before edited a different song.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } + else + { + editWidget->show(); + editWidget->setEdit(songWidget->getSongToEdit()); + editWidget->activateWindow(); + } + } + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No song selected")); + ms.setText(tr("No song has been selected to edit.")); + ms.setInformativeText(tr("Please select a song to edit.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::copySong() +{ + if (songWidget->isSongSelected()) + { + if (!editWidget->isHidden()) //Prohibits editing a song when a different song already been edited. + { + QMessageBox ms(this); + ms.setWindowTitle(tr("Cannot copy this song")); + ms.setText(tr("Another song is already been edited.")); + ms.setInformativeText(tr("Please save and/or close current edited song before edited a different song.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } + else + { + editWidget->show(); + editWidget->setCopy(songWidget->getSongToEdit()); + editWidget->activateWindow(); + } + } + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No song selected")); + ms.setText(tr("No song has been selected to copy")); + ms.setInformativeText(tr("Please select a song to copy")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::deleteSong() +{ + if (songWidget->isSongSelected()) + { + QString song_title = songWidget->currentSong().title; + QMessageBox ms(this); + ms.setWindowTitle(tr("Delete song?")); + ms.setText(tr("Delete song \"") + song_title + "\"?"); + ms.setInformativeText(tr("This action will permanentrly delete this song")); + ms.setIcon(QMessageBox::Question); + ms.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + ms.setDefaultButton(QMessageBox::Yes); + int ret = ms.exec(); + + switch (ret) + { + case QMessageBox::Yes: + // Delete a song + songWidget->deleteSong(); + break; + case QMessageBox::No: + // Cancel was clicked + break; + default: + // should never be reached + break; + } + } + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No song selected")); + ms.setText(tr("No song has been selected to delete")); + ms.setInformativeText(tr("Please select a song to delete")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::newSlideShow() +{ + SlideShowEditor * sse = new SlideShowEditor; + sse->setSettings(mySettings.slideSets); + sse->exec(); + pictureWidget->loadSlideShows(); + delete sse; +} + +void SoftProjector::editSlideShow() +{ + if(pictureWidget->isSlideShowSelected()) + { + SlideShowEditor * sse = new SlideShowEditor; + sse->setSettings(mySettings.slideSets); + sse->setSlideShow(pictureWidget->getCurrentSlideshow()); + sse->exec(); + pictureWidget->loadSlideShows(); + delete sse; + } + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No slideshow selected")); + ms.setText(tr("No slideshow has been selected to edit.")); + ms.setInformativeText(tr("Please select a slideshow to edit.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::deleteSlideShow() +{ + if(pictureWidget->isSlideShowSelected()) + { + QString title = pictureWidget->getCurrentSlideshow().name; + QMessageBox ms(this); + ms.setWindowTitle(tr("Delete slideshow?")); + ms.setText(tr("Delete slideshow: \"") + title + "\"?"); + ms.setInformativeText(tr("This action will permanentrly delete this slideshow")); + ms.setIcon(QMessageBox::Question); + ms.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + ms.setDefaultButton(QMessageBox::Yes); + int ret = ms.exec(); + + switch (ret) { + case QMessageBox::Yes: + // Delete a slideshow + pictureWidget->deleteSlideShow(); + break; + case QMessageBox::No: + // Cancel was clicked + break; + default: + // should never be reached + break; + } + } + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No slideshow selected")); + ms.setText(tr("No slideshow has been selected to delete.")); + ms.setInformativeText(tr("Please select a slideshow to delete.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::addMediaToLibrary() +{ + mediaPlayer->addToLibrary(); +} + +void SoftProjector::removeMediaFromLibrary() +{ + if(mediaPlayer->isValidMedia()) + mediaPlayer->removeFromLibrary(); + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No media selected")); + ms.setText(tr("No media item has been selected to delete.")); + ms.setInformativeText(tr("Please select a media item to delete.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::newAnnouncement() +{ + announceWidget->newAnnouncement(); +} + +void SoftProjector::editAnnouncement() +{ + if(announceWidget->isAnnounceValid()) + announceWidget->editAnnouncement(); + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No Announcement Selected")); + ms.setText(tr("No announcement has been selected to edit")); + ms.setInformativeText(tr("Please select an announcement to edit")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::copyAnnouncement() +{ + if(announceWidget->isAnnounceValid()) + announceWidget->copyAnnouncement(); + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No Announcement Selected")); + ms.setText(tr("No announcement has been selected to copy")); + ms.setInformativeText(tr("Please select an announcement to copy")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::deleteAnnoucement() +{ + if(announceWidget->isAnnounceValid()) + { + QString title = announceWidget->getAnnouncement().title; + QMessageBox ms(this); + ms.setWindowTitle(tr("Delete Announcement?")); + ms.setText(tr("Delete announcement: \"") + title + "\"?"); + ms.setInformativeText(tr("This action will permanentrly delete this announcement")); + ms.setIcon(QMessageBox::Question); + ms.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + ms.setDefaultButton(QMessageBox::Yes); + int ret = ms.exec(); + + switch (ret) { + case QMessageBox::Yes: + // Delete a announce + announceWidget->deleteAnnouncement(); + break; + case QMessageBox::No: + // Cancel was clicked + break; + default: + // should never be reached + break; + } + } + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No Announcement Selected")); + ms.setText(tr("No announcement has been selected to delete")); + ms.setInformativeText(tr("Please select an announcement to delete")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } +} + +void SoftProjector::setArrowCursor() +{ + this->setCursor(Qt::ArrowCursor); +} + +void SoftProjector::setWaitCursor() +{ + this->setCursor(Qt::WaitCursor); +} + +void SoftProjector::createLanguageActions() +{ + // find all *.qm files at language folder + // and create coresponding action in language menu + + languageGroup = new QActionGroup(this); + //default language and flag + QAction *englishAction = new QAction(QIcon(":/icons/icons/flag_uk.png"), "English", this); + englishAction->setCheckable(true); + englishAction->setChecked(true); + englishAction->setIconVisibleInMenu(true); + languageGroup->addAction(englishAction); + ui->menuLanguage->addAction(englishAction); + + QDir languageDir(languagePath); + //all available languages + QStringList languagesList = languageDir.entryList(QStringList("softpro_*.qm"), QDir::Files); + //all available flags + QStringList flagsList = languageDir.entryList(QStringList("flag_*.png"), QDir::Files); + + foreach(QString agent, languagesList) + { + // local translator for taken original language's name + QTranslator tmpTranslator; + tmpTranslator.load(agent, languageDir.absolutePath()); + // this string are used for detection language' name + // this is one of translated strings + + QString fullLanguageName = tmpTranslator.translate("Native language name", "English","Do not change"); + QAction *tmpAction = new QAction(fullLanguageName, this); + + QString splocale = agent.remove(0, agent.indexOf('_')+1); + splocale.chop(3); + + // flag's file name + QString flagFileName = "flag_"+splocale+".png"; + if(flagsList.contains(flagFileName))// if flag is available + { + tmpAction->setIcon(QIcon(languageDir.absolutePath() + QDir::separator() + flagFileName)); + tmpAction->setIconVisibleInMenu(true); + } + + tmpAction->setData(splocale);// information abount localization + tmpAction->setCheckable(true); + languageGroup->addAction(tmpAction); + ui->menuLanguage->addAction(tmpAction); + } +} + +void SoftProjector::switchLanguage(QAction *action) +{ + cur_locale = action->data().toString(); + retranslateUis(); +} + +void SoftProjector::retranslateUis() +{ + qApp->removeTranslator(&translator); + if(cur_locale != "en") + { + translator.load("softpro_"+cur_locale+".qm", QDir(languagePath).absolutePath()); + // qt libs translator must be add there, + // but where are qt_locale.qm files? + qApp->installTranslator(&translator); + } + + ui->retranslateUi(this); + ui->projectTab->setTabText(0, tr("Bible (F6)")); + ui->projectTab->setTabText(1, tr("Songs (F7)")); + ui->projectTab->setTabText(2, tr("Pictures")); + ui->projectTab->setTabText(3, tr("Media")); + ui->projectTab->setTabText(4, tr("Announcements (F8)")); + updateEditActions(); + songWidget->retranslateUis(); + editWidget->retranslateUis(); +} + +void SoftProjector::on_actionSong_Counter_triggered() +{ + SongCounter *songCounter; + songCounter = new SongCounter(this, cur_locale); + songCounter->exec(); + delete songCounter; +} + +void SoftProjector::updateWindowText() +{ + QFileInfo fi(schedule_file_path); + QString file = fi.fileName(); + + if(!file.isEmpty()) + { + file.remove(".spsc"); + if(is_schedule_saved) + this->setWindowTitle(file + " - SoftProjector " + version_string); + else + this->setWindowTitle(file + "* - SoftProjector " + version_string); + } + else + { + this->setWindowTitle("SoftProjector " + version_string); + } +} + +void SoftProjector::on_rbMultiVerse_toggled(bool checked) +{ + if(checked) + ui->listShow->setSelectionMode(QAbstractItemView::ContiguousSelection); + else + ui->listShow->setSelectionMode(QAbstractItemView::SingleSelection); +} + +void SoftProjector::on_actionPrint_triggered() +{ + PrintPreviewDialog* p; + p = new PrintPreviewDialog(this); + if(ui->projectTab->currentIndex() == 0) + { + p->setText(mySettings.bibleSets.operatorBible + "," + mySettings.bibleSets.primaryBible, + bibleWidget->getCurrentBook(),bibleWidget->getCurrentChapter()); + p->exec(); + } + else if (ui->projectTab->currentIndex() == 1) + { + if (songWidget->isSongSelected()) + { + p->setText(songWidget->getSongToEdit()); + p->exec(); + + } + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No song selected")); + ms.setText(tr("No song has been selected to be printed.")); + ms.setInformativeText(tr("Please select a song to be printed.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } + } + else if (ui->projectTab->currentIndex() == 4) + { + if(announceWidget->isAnnounceValid()) + { + p->setText(announceWidget->getAnnouncement()); + p->exec(); + } + else + { + QMessageBox ms(this); + ms.setWindowTitle(tr("No announcement selected")); + ms.setText(tr("No announcement has been selected to be printed.")); + ms.setInformativeText(tr("Please select a announcement to be printed.")); + ms.setIcon(QMessageBox::Information); + ms.exec(); + } + } + delete p; +} + +void SoftProjector::on_actionPrintSchedule_triggered() +{ + PrintPreviewDialog* p = new PrintPreviewDialog(this); + p->setSchedule(schedule_file_path,schedule,false); + p->exec(); + delete p; +} + +void SoftProjector::nextSlide() +{ + // selects next item in the show list + int current = ui->listShow->currentRow(); + if(ui->rbMultiVerse->isChecked()) + { + // if multiple is selected, select last one + for (int i(0);ilistShow->count();++i) + { + if(ui->listShow->item(i)->isSelected()) + current = i; + } + if(current < ui->listShow->count()-1) + ui->rbMultiVerse->setChecked(false); + } + if(current < ui->listShow->count()-1) + ui->listShow->setCurrentRow(current+1); +} + +void SoftProjector::prevSlide() +{ + // selects previous item in the show list + int current = ui->listShow->currentRow(); + if(ui->rbMultiVerse->isChecked()) + { + // if multiple is selected, select first one + for (int i(0);ilistShow->count();++i) + { + if(ui->listShow->item(i)->isSelected()) + { + current = i; + break; + } + } + if(current>0) + ui->rbMultiVerse->setChecked(false); + } + if(current>0) + ui->listShow->setCurrentRow(current-1); +} + +void SoftProjector::on_pushButtonPlay_clicked() +{ + /* + * if(pds1->videoPlayer->state() == Phonon::PlayingState) + { + pds1->videoPlayer->pause(); + if(hasDisplayScreen2) + pds2->videoPlayer->pause(); + } + else + { + if(pds1->videoPlayer->currentTime() == pds1->videoPlayer->totalTime()) + { + pds1->videoPlayer->seek(0); + if(hasDisplayScreen2) + pds2->videoPlayer->seek(0); + } + pds1->videoPlayer->play(); + if(hasDisplayScreen2) + pds2->videoPlayer->play(); + }*/ +} + +void SoftProjector::setButtonPlayIcon(bool isPlaying) +{ + if (isPlaying) + ui->pushButtonPlay->setIcon(QIcon(":icons/icons/pause.png")); + else + ui->pushButtonPlay->setIcon(QIcon(":icons/icons/play.png")); +} + +void SoftProjector::setTimeText(QString cTime) +{ + ui->labelTime->setText(cTime); +} + +void SoftProjector::on_actionScheduleAdd_triggered() +{ + int ctab = ui->projectTab->currentIndex(); + if(ctab == 0) // Bible + { + if(bibleWidget->isVerseSelected()) + { + BibleHistory b = bibleWidget->getCurrentVerse(); + addToShcedule(b); + } + } + else if(ctab == 1) // Song + { + if(songWidget->isSongSelected()) + { + Song s = songWidget->getSongToEdit(); + addToShcedule(s); + } + } + else if(ctab == 2) // Slide Show + { + if(pictureWidget->isSlideShowSelected()) + { + SlideShow ssi = pictureWidget->getCurrentSlideshow(); + addToShcedule(ssi); + } + } + else if(ctab == 3) // Multimedia + { + if(mediaPlayer->isValidMedia()) + { + VideoInfo v = mediaPlayer->getMedia(); + addToShcedule(v); + } + } + else if(ctab == 4) + { + if(announceWidget->isAnnounceValid()) + { + Announcement a = announceWidget->getAnnouncement(); + addToShcedule(a); + } + } + int row_count = ui->listWidgetSchedule->count(); + ui->listWidgetSchedule->setCurrentRow(row_count-1); +} + +void SoftProjector::on_actionScheduleRemove_triggered() +{ + int cRow = ui->listWidgetSchedule->currentRow(); + if(cRow >=0) + { + schedule.takeAt(cRow); + reloadShceduleList(); + } +} + +void SoftProjector::on_actionScheduleClear_triggered() +{ + schedule.clear(); + reloadShceduleList(); +} + +void SoftProjector::addToShcedule(BibleHistory &b) +{ + Schedule d(b); + schedule.append(d); + reloadShceduleList(); +} + +void SoftProjector::addToShcedule(Song &s) +{ + Schedule d(s); + schedule.append(d); + reloadShceduleList(); +} + +void SoftProjector::addToShcedule(SlideShow &s) +{ + Schedule d(s); + schedule.append(d); + reloadShceduleList(); +} + +void SoftProjector::addToShcedule(VideoInfo &v) +{ + Schedule d(v); + schedule.append(d); + reloadShceduleList(); +} + +void SoftProjector::addToShcedule(Announcement &a) +{ + Schedule d(a); + schedule.append(d); + reloadShceduleList(); +} + +void SoftProjector::reloadShceduleList() +{ + ui->listWidgetSchedule->setCurrentRow(-1); + ui->listWidgetSchedule->clear(); + foreach (const Schedule &s, schedule) + { + QListWidgetItem *itm = new QListWidgetItem; + itm->setIcon(s.icon); + itm->setText(s.name); + ui->listWidgetSchedule->addItem(itm); + } + is_schedule_saved = false; + updateWindowText(); +} + +void SoftProjector::on_listWidgetSchedule_doubleClicked(const QModelIndex &index) +{ + Schedule s = schedule.at(index.row()); + if(s.stype == "bible") + { + ui->projectTab->setCurrentIndex(0); + bibleWidget->setSelectedHistory(s.bible); + bibleWidget->sendToProjector(true); + } + else if(s.stype == "song") + { + ui->projectTab->setCurrentIndex(1); + songWidget->sendToPreviewFromSchedule(s.song); + setSongList(s.song,0); + songWidget->counter.addSongCount(s.song); + } + else if(s.stype == "slideshow") + { + ui->projectTab->setCurrentIndex(2); + pictureWidget->sendToPreviewFromSchedule(s.slideshow); + setPictureList(s.slideshow.slides,0,s.slideshow.name); + } + else if(s.stype == "media") + { + ui->projectTab->setCurrentIndex(3); + mediaPlayer->setMediaFromSchedule(s.media); + mediaPlayer->goLiveFromSchedule(); + } + else if(s.stype == "announce") + { + ui->projectTab->setCurrentIndex(4); + announceWidget->setAnnouncementFromHistory(s.announce); + setAnnounceText(s.announce,0); + } +} + +void SoftProjector::on_listWidgetSchedule_itemSelectionChanged() +{ + int currentRow = ui->listWidgetSchedule->currentRow(); + if(currentRow>=0) + { + Schedule s = schedule.at(currentRow); + if(s.stype == "bible") + { + ui->projectTab->setCurrentIndex(0); + bibleWidget->setSelectedHistory(s.bible); + } + else if(s.stype == "song") + { + ui->projectTab->setCurrentIndex(1); + songWidget->sendToPreviewFromSchedule(s.song); + } + else if(s.stype == "slideshow") + { + ui->projectTab->setCurrentIndex(2); + pictureWidget->sendToPreviewFromSchedule(s.slideshow); + } + else if(s.stype == "media") + { + ui->projectTab->setCurrentIndex(3); + mediaPlayer->setMediaFromSchedule(s.media); + } + else if(s.stype == "announce") + { + ui->projectTab->setCurrentIndex(4); + announceWidget->setAnnouncementFromHistory(s.announce); + } + } +} + +void SoftProjector::on_actionMoveScheduleTop_triggered() +{ + int cs = ui->listWidgetSchedule->currentRow(); + if(cs>0) + { + schedule.move(cs,0); + reloadShceduleList(); + ui->listWidgetSchedule->setCurrentRow(0); + } +} + +void SoftProjector::on_actionMoveScheduleUp_triggered() +{ + int cs = ui->listWidgetSchedule->currentRow(); + if(cs>0) + { + schedule.move(cs,cs-1); + reloadShceduleList(); + ui->listWidgetSchedule->setCurrentRow(cs-1); + } +} + +void SoftProjector::on_actionMoveScheduleDown_triggered() +{ + int cs = ui->listWidgetSchedule->currentRow(); + int max = schedule.count(); + if(cs>=0 && cslistWidgetSchedule->setCurrentRow(cs+1); + } +} + +void SoftProjector::on_actionMoveScheduleBottom_triggered() +{ + int cs = ui->listWidgetSchedule->currentRow(); + int max = schedule.count(); + if(cs>=0 && cslistWidgetSchedule->setCurrentRow(max-1); + } +} + +void SoftProjector::on_actionNewSchedule_triggered() +{ + if(!is_schedule_saved && !schedule_file_path.isEmpty()) + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Save Schedule?")); + mb.setText(tr("Do you want to save current schedule before creating a new schedule?")); + mb.setIcon(QMessageBox::Question); + mb.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); + mb.setDefaultButton(QMessageBox::Yes); + int ret = mb.exec(); + + switch (ret) + { + case QMessageBox::Yes: + // Yes to save unsaved schedule and contiue creating new schedule + on_actionSaveSchedule_triggered(); + break; + case QMessageBox::No: + // No to save unsaved schedule and continue to create new schedule + break; + case QMessageBox::Cancel: + // Cancel all + return; + default: + // should never be reached + break; + } + } + + schedule_file_path = "untitled.spsc"; + schedule.clear(); + reloadShceduleList(); + is_schedule_saved = false; + updateWindowText(); +} + +void SoftProjector::on_actionOpenSchedule_triggered() +{ + if(!is_schedule_saved && !schedule_file_path.isEmpty()) + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Save Schedule?")); + mb.setText(tr("Do you want to save current schedule before opening a new schedule?")); + mb.setIcon(QMessageBox::Question); + mb.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); + mb.setDefaultButton(QMessageBox::Yes); + int ret = mb.exec(); + + switch (ret) + { + case QMessageBox::Yes: + // Yes to save unsaved schedule and contiue opening new schedule + on_actionSaveSchedule_triggered(); + break; + case QMessageBox::No: + // No to save unsaved schedule and continue opening new schedule + break; + case QMessageBox::Cancel: + // Cancel all + return; + default: + // should never be reached + break; + } + } + + QString path = QFileDialog::getOpenFileName(this,tr("Open SoftProjector schedule:"),".", + tr("SoftProjector schedule file ") + "(*.spsc)"); + if(!path.isEmpty()) + { + schedule_file_path = path; + openSchedule(); + is_schedule_saved = true; + updateWindowText(); + } +} + +void SoftProjector::on_actionSaveSchedule_triggered() +{ + if(schedule_file_path.isEmpty() || schedule_file_path.startsWith("untitled")) + on_actionSaveScheduleAs_triggered(); + else + saveSchedule(false); + updateWindowText(); +} + +void SoftProjector::on_actionSaveScheduleAs_triggered() +{ + QString path = QFileDialog::getSaveFileName(this,tr("Save SoftProjector schedule as:"),".", + tr("SoftProjector schedule file ") + "(*.spsc)"); + if(!path.isEmpty()) + { + if(path.endsWith(".spsc")) + schedule_file_path = path; + else + schedule_file_path = path + ".spsc"; + saveSchedule(true); + } + + updateWindowText(); +} + +void SoftProjector::on_actionCloseSchedule_triggered() +{ + if(!is_schedule_saved && !schedule_file_path.isEmpty()) + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Save Schedule?")); + mb.setText(tr("Do you want to save current schedule before closing it?")); + mb.setIcon(QMessageBox::Question); + mb.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); + mb.setDefaultButton(QMessageBox::Yes); + int ret = mb.exec(); + + switch (ret) + { + case QMessageBox::Yes: + // Yes to save unsaved schedule and contiue creating new schedule + on_actionSaveSchedule_triggered(); + break; + case QMessageBox::No: + // No to save unsaved schedule and continue to create new schedule + break; + case QMessageBox::Cancel: + // Cancel all + return; + default: + // should never be reached + break; + } + } + + schedule_file_path.clear(); + schedule.clear(); + reloadShceduleList(); + is_schedule_saved = true; + updateWindowText(); +} + +void SoftProjector::saveSchedule(bool overWrite) +{ + // Save schedule as s SQLite database file + QProgressDialog progress; + progress.setMaximum(0); + progress.setLabelText(tr("Saving schedule file...")); + progress.show(); + { + bool db_exist = QFile::exists(schedule_file_path); + if(db_exist && overWrite) + { + if(!QFile::remove(schedule_file_path)) + { + QMessageBox mb(this); + mb.setText(tr("An error has ocured when overwriting existing file.\n" + "Please try again with different file name.")); + mb.setIcon(QMessageBox::Information); + mb.setStandardButtons(QMessageBox::Ok); + mb.exec(); + return; + } + else + db_exist = false; + } + QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","spsc"); + db.setDatabaseName(schedule_file_path); + if(db.open()) + { + QSqlQuery sq(db); + sq.exec("PRAGMA user_version = 2"); + sq.exec("CREATE TABLE IF NOT EXISTS 'schedule' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + "'stype' TEXT, 'name' TEXT, 'sorder' INTEGER )"); + sq.exec("CREATE TABLE IF NOT EXISTS 'bible' ('scid' INTEGER, 'verseIds' TEXT, 'caption' TEXT, 'captionLong' TEXT)"); + sq.exec("CREATE TABLE IF NOT EXISTS 'song' ('scid' INTEGER, 'songid' INTEGER, 'sbid' INTEGER, 'sbName' TEXT, " + "'number' INTEGER, 'title' TEXT, 'category' INTEGER, 'tune' TEXT, 'wordsBy' TEXT, 'musicBy' TEXT, " + "'songText' TEXT, 'notes' TEXT, 'usePrivate' BOOL, 'alignV' INTEGER, 'alignH' INTEGER, 'color' INTEGER, " + "'font' TEXT, 'infoColor' INTEGER, 'infoFont' TEXT, 'endingColor' INTEGER, 'endingFont' TEXT, " + "'useBack' BOOL, 'backImage' BLOB, 'backName' TEXT)"); + sq.exec("CREATE TABLE IF NOT EXISTS 'slideshow' ('scid' INTEGER, 'ssid' INTEGER, 'name' TEXT, 'info' TEXT)"); + sq.exec("CREATE TABLE IF NOT EXISTS 'slides' ('scid' INTEGER, 'sid' INTEGER, 'name' TEXT, 'path' TEXT, " + "'porder' INTEGER, 'image' BLOB, 'imageSmall' BLOB, 'imagePreview' BLOB)"); + sq.exec("CREATE TABLE IF NOT EXISTS 'media' ('scid' INTEGER, 'name' TEXT, 'path' TEXT, 'aRatio' INTEGER)"); + sq.exec("CREATE TABLE IF NOT EXISTS 'announce' ('scid' INTEGER, 'aId' INTEGER, 'title' TEXT, 'aText' TEXT, " + "'usePrivate' BOOL, 'useAuto' BOOL, 'loop' BOOL, 'slideTimer' INTEGER, 'font' TEXT, 'color' INTEGER, " + "'useBack' BOOL, 'backImage' BLOB, 'backPath' TEXT, 'alignV' INTEGER, 'alignH' INTEGER)"); + if(db_exist) + saveScheduleUpdate(sq); + else + saveScheduleNew(sq); + } + } + QSqlDatabase::removeDatabase("spsc"); + is_schedule_saved = true; + progress.close(); +} + +void SoftProjector::saveScheduleNew(QSqlQuery &q) +{ + for(int i(0);i < schedule.count();++i) + { + Schedule sc = schedule.at(i); + q.exec(QString("INSERT INTO schedule (stype,name,sorder) VALUES('%1','%2',%3)") + .arg(sc.stype).arg(sc.name).arg(i+1)); + q.exec("SELECT seq FROM sqlite_sequence WHERE name = 'schedule'"); + q.first(); + sc.scid = q.value(0).toInt(); + q.clear(); + if(sc.stype == "bible") + saveScheduleItemNew(q,sc.scid,sc.bible); + else if(sc.stype == "song") + saveScheduleItemNew(q,sc.scid,sc.song); + else if(sc.stype == "slideshow") + saveScheduleItemNew(q,sc.scid,sc.slideshow); + else if(sc.stype == "media") + saveScheduleItemNew(q,sc.scid,sc.media); + else if(sc.stype == "announce") + saveScheduleItemNew(q,sc.scid,sc.announce); + schedule.replace(i,sc); + } +} + +void SoftProjector::saveScheduleItemNew(QSqlQuery &q, int scid, const BibleHistory &b) +{ + q.prepare("INSERT INTO bible (scid,verseIds,caption,captionLong) VALUES(?,?,?,?)"); + q.addBindValue(scid); + q.addBindValue(b.verseIds); + q.addBindValue(b.caption); + q.addBindValue(b.captionLong); + q.exec(); +} + +void SoftProjector::saveScheduleItemNew(QSqlQuery &q, int scid, const Song &s) +{ + q.prepare("INSERT INTO song (scid,songid,sbid,sbName,number,title,category,tune,wordsBy,musicBy," + "songText,notes,usePrivate,alignV,alignH,color,font,infoColor,infoFont,endingColor," + "endingFont,useBack,backImage,backName) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + q.addBindValue(scid); + q.addBindValue(s.songID); + q.addBindValue(s.songbook_id); + q.addBindValue(s.songbook_name); + q.addBindValue(s.number); + q.addBindValue(s.title); + q.addBindValue(s.category); + q.addBindValue(s.tune); + q.addBindValue(s.wordsBy); + q.addBindValue(s.musicBy); + q.addBindValue(s.songText); + q.addBindValue(s.notes); + q.addBindValue(s.usePrivateSettings); + q.addBindValue(s.alignmentV); + q.addBindValue(s.alignmentH); + q.addBindValue((unsigned int)(s.color.rgb())); + q.addBindValue(s.font.toString()); + q.addBindValue((unsigned int)(s.infoColor.rgb())); + q.addBindValue(s.infoFont.toString()); + q.addBindValue((unsigned int)(s.endingColor.rgb())); + q.addBindValue(s.endingFont.toString()); + q.addBindValue(s.useBackground); + q.addBindValue(pixToByte(s.background)); + q.addBindValue(s.backgroundName); + q.exec(); +} + +void SoftProjector::saveScheduleItemNew(QSqlQuery &q, int scid, const SlideShow &s) +{ + q.prepare("INSERT INTO slideshow (scid,ssid,name,info) VALUES (?,?,?,?)"); + q.addBindValue(scid); + q.addBindValue(s.slideShowId); + q.addBindValue(s.name); + q.addBindValue(s.info); + q.exec(); + + foreach(const SlideShowItem & si,s.slides) + { + q.prepare("INSERT INTO slides (scid,sid,name,path,porder,image,imageSmall,imagePreview) VALUES(?,?,?,?,?,?,?,?)"); + q.addBindValue(scid); + q.addBindValue(si.slideId); + q.addBindValue(si.name); + q.addBindValue(si.path); + q.addBindValue(si.order); + q.addBindValue(pixToByte(si.image)); + q.addBindValue(pixToByte(si.imageSmall)); + q.addBindValue(pixToByte(si.imagePreview)); + q.exec(); + } +} + +void SoftProjector::saveScheduleItemNew(QSqlQuery &q, int scid, const VideoInfo &v) +{ + q.prepare("INSERT INTO media (scid,name,path,aRatio) VALUES(?,?,?,?)"); + q.addBindValue(scid); + q.addBindValue(v.fileName); + q.addBindValue(v.filePath); + q.addBindValue(v.aspectRatio); + q.exec(); +} + +void SoftProjector::saveScheduleItemNew(QSqlQuery &q, int scid, const Announcement &a) +{ + q.prepare("INSERT INTO announce (scid,aId,title,aText,usePrivate,useAuto,loop,slideTimer,font," + "color,useBack,backImage,backPath,alignV,alignH) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + q.addBindValue(scid); + q.addBindValue(a.idNum); + q.addBindValue(a.title); + q.addBindValue(a.text); + q.addBindValue(a.usePrivateSettings); + q.addBindValue(a.useAutoNext); + q.addBindValue(a.loop); + q.addBindValue(a.slideTimer); + q.addBindValue(a.font.toString()); + unsigned int tci = (unsigned int)(a.color.rgb()); + q.addBindValue(tci); + q.addBindValue(a.useBackground); + q.addBindValue(pixToByte(QPixmap())); + q.addBindValue(a.backgroundPath); + q.addBindValue(a.alignmentV); + q.addBindValue(a.alignmentH); + q.exec(); +} + +void SoftProjector::saveScheduleUpdate(QSqlQuery &q) +{ + for(int i(0);i < schedule.count();++i) + { + Schedule sc = schedule.at(i); + if(sc.scid == -1) // Save new schedule item that was not saved yet + { + q.exec(QString("INSERT INTO schedule (stype,name,sorder) VALUES('%1','%2',%3)") + .arg(sc.stype).arg(sc.name).arg(i+1)); + q.exec("SELECT seq FROM sqlite_sequence WHERE name = 'schedule'"); + q.first(); + sc.scid = q.value(0).toInt(); + q.clear(); + if(sc.stype == "bible") + saveScheduleItemNew(q,sc.scid,sc.bible); + else if(sc.stype == "song") + saveScheduleItemNew(q,sc.scid,sc.song); + else if(sc.stype == "slideshow") + saveScheduleItemNew(q,sc.scid,sc.slideshow); + else if(sc.stype == "media") + saveScheduleItemNew(q,sc.scid,sc.media); + else if(sc.stype == "announce") + saveScheduleItemNew(q,sc.scid,sc.announce); + schedule.replace(i,sc); + } + else // Update existing schedule item + { + q.exec(QString("UPDATE schedule SET sorder = %1 WHERE id = %2").arg(i+1).arg(sc.scid)); + //if(sc.stype == "bible") + // saveScheduleItemUpdate(q,sc.scid,sc.bible); + //else if(sc.stype == "song") + // saveScheduleItemUpdate(q,sc.scid,sc.song); + //else if(sc.stype == "slideshow") + // saveScheduleItemUpdate(q,sc.scid,sc.slideshow); + //else if(sc.stype == "media") + // saveScheduleItemUpdate(q,sc.scid,sc.media); + //else if(sc.stype == "announce") + // saveScheduleItemUpdate(q,sc.scid,sc.announce); + } + } + + // Delete any shcedule items from file that have removed from schedule + q.exec("SELECT id,stype FROM schedule"); + QSqlQuery sq = q; + while(q.next()) + { + int scid = q.value(0).toInt(); + bool toDelete = false; + QString stype = q.value(1).toString(); + foreach(const Schedule &s,schedule) + { + if(scid == s.scid) + { + toDelete = false; + break; + } + else + toDelete = true; + } + + if(toDelete) + { + sq.exec("DELETE FROM schedule WHERE id = " + QString::number(scid)); + sq.exec("DELETE FROM " + stype + " WHERE scid = " + QString::number(scid)); + if(stype == "slideshow") + sq.exec("DELETE FROM slides WHERE scid = " + QString::number(scid)); + } + } +} + +void SoftProjector::saveScheduleItemUpdate(QSqlQuery &q, int scid, const BibleHistory &b) +{ + +} + +void SoftProjector::saveScheduleItemUpdate(QSqlQuery &q, int scid, const Song &s) +{ + +} + +void SoftProjector::saveScheduleItemUpdate(QSqlQuery &q, int scid, const SlideShow &s) +{ + +} + +void SoftProjector::saveScheduleItemUpdate(QSqlQuery &q, int scid, const VideoInfo &v) +{ + +} + +void SoftProjector::saveScheduleItemUpdate(QSqlQuery &q, int scid, const Announcement &a) +{ + +} + +void SoftProjector::openSchedule() +{ + QProgressDialog progress; + progress.setMaximum(0); + progress.setLabelText(tr("Opening schedule file...")); + progress.show(); + { + QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","spsc"); + db.setDatabaseName(schedule_file_path); + if(db.open()) + { + QSqlQuery sq(db); + sq.exec("PRAGMA user_version"); + sq.first(); + int scVer = sq.value(0).toInt(); + if(scVer == 2) + { + schedule.clear(); + sq.exec("SELECT id, stype, name FROM schedule ORDER BY sorder"); + QSqlQuery sqsc = sq; + while(sq.next()) + { + int scid = sq.value(0).toInt(); + QString stype = sq.value(1).toString(); + QString name = sq.value(2).toString(); + + if(stype == "bible") + { + BibleHistory bib; + openScheduleItem(sqsc,scid,bib); + Schedule sc(bib); + sc.name = name; + sc.scid = scid; + schedule.append(sc); + } + else if(stype == "song") + { + Song song; + openScheduleItem(sqsc,scid,song); + Schedule sc(song); + sc.name = name; + sc.scid = scid; + schedule.append(sc); + } + else if(stype == "slideshow") + { + SlideShow ss; + openScheduleItem(sqsc,scid,ss); + Schedule sc(ss); + sc.name = name; + sc.scid = scid; + schedule.append(sc); + } + else if(stype == "media") + { + VideoInfo vi; + openScheduleItem(sqsc,scid,vi); + Schedule sc(vi); + sc.name = name; + sc.scid = scid; + schedule.append(sc); + } + else if(stype == "announce") + { + Announcement announce; + openScheduleItem(sqsc,scid,announce); + Schedule sc(announce); + sc.name = name; + sc.scid = scid; + schedule.append(sc); + } + } + reloadShceduleList(); + } + else + { + QMessageBox mb(this); + mb.setText(tr("The schedule file you are trying to open is of uncompatible version.\n" + "Compatible version: 2\n" + "This schedule file version: ") + QString::number(scVer)); + mb.setIcon(QMessageBox::Information); + mb.setStandardButtons(QMessageBox::Ok); + mb.exec(); + schedule_file_path.clear(); + updateWindowText(); + } + } + } + QSqlDatabase::removeDatabase("spsc"); + progress.close(); +} + +void SoftProjector::openScheduleItem(QSqlQuery &q, const int scid, BibleHistory &b) +{ + q.exec("SELECT verseIds, caption, captionLong FROM bible WHERE scid = " + QString::number(scid)); + q.first(); + b.verseIds = q.value(0).toString(); + b.caption = q.value(1).toString(); + b.caption = q.value(2).toString(); +} + +void SoftProjector::openScheduleItem(QSqlQuery &q, const int scid, Song &s) +{ + q.exec("SELECT * FROM song WHERE scid = " + QString::number(scid)); + q.first(); + QSqlRecord r = q.record(); + s.songID = r.field("songid").value().toInt(); + s.songbook_id = r.field("sbid").value().toInt(); + s.songbook_name = r.field("sbName").value().toString(); + s.number = r.field("number").value().toInt(); + s.title = r.field("title").value().toString(); + s.category = r.field("category").value().toInt(); + s.tune = r.field("tune").value().toString(); + s.wordsBy = r.field("wordsBy").value().toString(); + s.musicBy = r.field("musicBy").value().toString(); + s.songText = r.field("songText").value().toString(); + s.notes = r.field("notes").value().toString(); + s.usePrivateSettings = r.field("usePrivate").value().toBool(); + s.alignmentV = r.field("alignV").value().toInt(); + s.alignmentH = r.field("alignH").value().toInt(); + s.color = QColor::fromRgb(r.field("color").value().toUInt()); + s.font.fromString(r.field("font").value().toString()); + s.infoColor = QColor::fromRgb(r.field("infoColor").value().toUInt()); + s.infoFont.fromString(r.field("infoFont").value().toString()); + s.endingColor = QColor::fromRgb(r.field("endingColor").value().toUInt()); + s.endingFont.fromString(r.field("endingFont").value().toString()); + s.useBackground = r.field("useBack").value().toBool(); + s.background.loadFromData(r.field("backImage").value().toByteArray()); + s.backgroundName = r.field("backName").value().toString(); +} + +void SoftProjector::openScheduleItem(QSqlQuery &q, const int scid, SlideShow &s) +{ + q.exec("SELECT ssid, name, info FROM slideshow WHERE scid = " + QString::number(scid)); + q.first(); + s.slideShowId = q.value(0).toInt(); + s.name = q.value(1).toString(); + s.info = q.value(2).toString(); + + q.exec("SELECT sid, name, path, porder, image, imageSmall, imagePreview FROM slides WHERE scid = " + QString::number(scid)); + while(q.next()) + { + SlideShowItem si; + si.slideId = q.value(0).toInt(); + si.name = q.value(1).toString(); + si.path = q.value(2).toString(); + si.order = q.value(3).toInt(); + si.image.loadFromData(q.value(4).toByteArray()); + si.imageSmall.loadFromData(q.value(5).toByteArray()); + si.imagePreview.loadFromData(q.value(6).toByteArray()); + s.slides.append(si); + } +} + +void SoftProjector::openScheduleItem(QSqlQuery &q, const int scid, VideoInfo &v) +{ + q.exec("SELECT name, path, aRatio FROM media WHERE scid = " + QString::number(scid)); + q.first(); + v.fileName = q.value(0).toString(); + v.filePath = q.value(1).toString(); + v.aspectRatio = q.value(2).toInt(); +} + +void SoftProjector::openScheduleItem(QSqlQuery &q, const int scid, Announcement &a) +{ + q.exec("SELECT aId, title, aText, usePrivate, useAuto, loop, slideTimer, font, color, useBack, " + "backImage, backPath, alignV, alignH FROM announce WHERE scid = " + QString::number(scid)); + q.first(); + a.idNum = q.value(0).toInt(); + a.title = q.value(1).toString(); + a.text = q.value(2).toString(); + a.usePrivateSettings = q.value(3).toBool(); + a.useAutoNext = q.value(4).toBool(); + a.loop = q.value(5).toBool(); + a.slideTimer = q.value(6).toInt(); + a.font.fromString(q.value(7).toString()); + a.color = QColor::fromRgb(q.value(8).toUInt()); + a.useBackground = q.value(9).toBool(); +// a.backImage = QPixmap + a.backgroundPath = q.value(11).toString(); + a.alignmentV = q.value(12).toInt(); + a.alignmentH = q.value(13).toInt(); +} diff --git a/softprojector.h b/softprojector.h new file mode 100644 index 0000000..9fa52ca --- /dev/null +++ b/softprojector.h @@ -0,0 +1,239 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SOFTPROJECTOR_H +#define SOFTPROJECTOR_H + +#include +//#include +#include "songwidget.h" +#include "biblewidget.h" +#include "announcewidget.h" +//#include "displayscreen.h" +#include "projectordisplayscreen.hpp" +#include "editwidget.h" +#include "bible.h" +#include "managedatadialog.h" +#include "settingsdialog.h" +#include "songcounter.h" +#include "settings.h" +#include "printpreviewdialog.h" +#include "helpdialog.h" +#include "picturewidget.h" +#include "slideshow.h" +#include "mediawidget.h" +#include "videoinfo.h" +#include "slideshoweditor.h" +#include "schedule.h" + +class QActionGroup; + +namespace Ui +{ +class SoftProjectorClass; +} + +class SoftProjector : public QMainWindow +{ + Q_OBJECT + +public: + SoftProjector(QWidget *parent = 0); + ~SoftProjector(); + SongWidget *songWidget; + BibleWidget *bibleWidget; + AnnounceWidget *announceWidget; + ManageDataDialog *manageDialog; + QDesktopWidget *desktop; + EditWidget *editWidget; + ProjectorDisplayScreen *pds1; + ProjectorDisplayScreen *pds2; + PictureWidget *pictureWidget; + MediaWidget *mediaPlayer; + + bool showing; // whether we are currently showing to the projector + Song current_song; + int current_song_verse; + Verse current_verse; + Announcement currentAnnounce; + QString version_string; + Theme theme; + Settings mySettings; + + SoftProjector *softProjector; + +public slots: + void updateSetting(GeneralSettings &g,Theme &t, SlideShowSettings &ssets, + BibleVersionSettings &bsets, BibleVersionSettings &bsets2); + void saveSettings(); + void positionDisplayWindow(); + void updateScreen(); + + void setWaitCursor(); + void setArrowCursor(); + void setAppDataDir(QDir d){appDataDir = d;} + +private: + Ui::SoftProjectorClass *ui; + SettingsDialog *settingsDialog; + HelpDialog *helpDialog; + QString type; + bool new_list; + QActionGroup *languageGroup; + QString languagePath; + QTranslator translator; + + //For saving and opening schedule files + //QString project_file_path; + QString schedule_file_path; + bool is_schedule_saved; + QString cur_locale; + bool isSingleScreen; + bool hasDisplayScreen2; + + // shortcuts + QShortcut *shpgUP; + QShortcut *shpgDwn; + QShortcut *shSart1; + QShortcut *shSart2; + + // Pictures + QList pictureShowList; + + // video items +// Phonon::SeekSlider *playerSlider; +// Phonon::VolumeSlider *volumeSlider; + VideoInfo currentVideo; +// Phonon::AudioOutput *playerAudioOutput; + + // Schelude list + QList schedule; + QDir appDataDir; + +private slots: + void showDisplayScreen(bool show); + + void applySetting(GeneralSettings &g, Theme &t, SlideShowSettings &s, + BibleVersionSettings &b1, BibleVersionSettings &b2); + void on_actionSong_Counter_triggered(); + void on_projectTab_currentChanged(int index); + void updateEditActions(); + void on_actionNew_triggered(); + void on_actionEdit_triggered(); + void on_actionCopy_triggered(); + void on_actionDelete_triggered(); + void updateWindowText(); + + void retranslateUis(); + void createLanguageActions(); + void switchLanguage(QAction *action); + void on_actionDonate_triggered(); + void on_action_Help_triggered(); + void on_actionManage_Database_triggered(); + void on_actionAbout_triggered(); + void on_listShow_doubleClicked(QModelIndex index); + void on_actionSettings_triggered(); + void newSong(); + void copySong(); + void editSong(); + void deleteSong(); + void newSlideShow(); + void editSlideShow(); + void deleteSlideShow(); + void addMediaToLibrary(); + void removeMediaFromLibrary(); + void newAnnouncement(); + void editAnnouncement(); + void copyAnnouncement(); + void deleteAnnoucement(); + void on_actionShow_triggered(); + void on_actionHide_triggered(); + void on_listShow_currentRowChanged(int currentRow); + void on_actionClose_triggered(); + void setSongList(Song song, int row); + void setAnnounceText(Announcement announce, int row); + void setChapterList(QStringList chapter_list, QString caption, QItemSelection selectedItems); + void setPictureList(QList &image_list, int row, QString name); + void setVideo(VideoInfo &video); + + void on_listShow_itemSelectionChanged(); + void on_rbMultiVerse_toggled(bool checked); + void on_actionPrint_triggered(); + void on_actionPrintSchedule_triggered(); + + void nextSlide(); + void prevSlide(); + + // video playback functions + void on_pushButtonPlay_clicked(); + void setButtonPlayIcon(bool isPlaying); + void setTimeText(QString cTime); + + // schedule functions + void on_actionScheduleAdd_triggered(); + void on_actionScheduleRemove_triggered(); + void on_actionScheduleClear_triggered(); + void addToShcedule(BibleHistory &b); + void addToShcedule(Song &s); + void addToShcedule(SlideShow &s); + void addToShcedule(VideoInfo &v); + void addToShcedule(Announcement &a); + void reloadShceduleList(); + void on_listWidgetSchedule_doubleClicked(const QModelIndex &index); + void on_listWidgetSchedule_itemSelectionChanged(); + void on_actionMoveScheduleTop_triggered(); + void on_actionMoveScheduleUp_triggered(); + void on_actionMoveScheduleDown_triggered(); + void on_actionMoveScheduleBottom_triggered(); + void on_actionNewSchedule_triggered(); + void on_actionOpenSchedule_triggered(); + void on_actionSaveSchedule_triggered(); + void on_actionSaveScheduleAs_triggered(); + void on_actionCloseSchedule_triggered(); + void openSchedule(); + void saveSchedule(bool overWrite); + void saveScheduleNew(QSqlQuery &q); + void saveScheduleItemNew(QSqlQuery &q, int scid, const BibleHistory &b); + void saveScheduleItemNew(QSqlQuery &q, int scid, const Song &s); + void saveScheduleItemNew(QSqlQuery &q, int scid, const SlideShow &s); + void saveScheduleItemNew(QSqlQuery &q, int scid, const VideoInfo &v); + void saveScheduleItemNew(QSqlQuery &q, int scid, const Announcement &a); + void saveScheduleUpdate(QSqlQuery &q); + void saveScheduleItemUpdate(QSqlQuery &q, int scid, const BibleHistory &b); + void saveScheduleItemUpdate(QSqlQuery &q, int scid, const Song &s); + void saveScheduleItemUpdate(QSqlQuery &q, int scid, const SlideShow &s); + void saveScheduleItemUpdate(QSqlQuery &q, int scid, const VideoInfo &v); + void saveScheduleItemUpdate(QSqlQuery &q, int scid, const Announcement &a); + void openScheduleItem(QSqlQuery &q, const int scid, BibleHistory &b); + void openScheduleItem(QSqlQuery &q, const int scid, Song &s); + void openScheduleItem(QSqlQuery &q, const int scid, SlideShow &s); + void openScheduleItem(QSqlQuery &q, const int scid, VideoInfo &v); + void openScheduleItem(QSqlQuery &q, const int scid, Announcement &a); + + void on_actionClear_triggered(); + + void on_actionCloseDisplay_triggered(); + void updateCloseDisplayButtons(bool isOn); + +protected: + void closeEvent(QCloseEvent *event); + void keyPressEvent(QKeyEvent *event); +}; + +#endif // SOFTPROJECTOR_H diff --git a/softprojector.ico b/softprojector.ico new file mode 100644 index 0000000000000000000000000000000000000000..2ff03e515f38ed8e54c30e6e9b920b94f6355f71 GIT binary patch literal 67646 zcmeHw2Ygjk_Vp!58aSwahw(b!!}oIhFV5AyzGh=?`RHxN z;#!ZE@8$DbJvZa?{C;BHxUu#~uliaQ7e~!{;H#RA<=|`l8{gyNqE+T+jL+Zd@BZ=r zEA5OikCr%iTVTPtZw)*+_}svP?-4wJ-L2xm-<012mc*4<!nKK5AGSF1hcR@?rsU7hUy=2gqKhWqQbFLCfWUz5MptM(M% zOIa|VYZZQ%;TLXo4*nP4UxvF`_c)L4uWMCZfU8HXNB`{QSoIm#*X^F~Qrq^$F3z?u zyE)pt+NHM5-#O$tUgO_9>exNU_wqB834TWzCKfi@m}AS|rM&R{U7WSYdpK473%}3p zb(@+VPS&rxJK4YK;cWMwr=#5m9DL5#+#IXa;d?qk9{9WbEWd+xiFU}_>=TUNGamW7 z9Q-?n@CuwC?FT<+3?9oc%P`-|&v6*v^)Npg*J7!A-D+x&c6ZdCpl*59wXM9JcJ-8-HR z){eT3sP?q@3w$TP+uH&&UN4V%z5E;P4P}MD&-25vJ>`dk&pBM4*X-o)ICs9EpX28( zzxQF30b?$BJ!U^%&7+p~XVGEkwTFX!JV7(z5n}95B{d* zE2GDMTE}~a#|J-8_jrGN-};aB$KSgOE>3oz@H04W02z9N`bk^u0$Xn2BECV>9;t8G z`@<~3b*;S+!zG1~~d49xl4#FH4y`M`HjM%`bp_H<|1 z9e!3m4|~F6%B0vpa1P2SWrCkKWZ_|y0|R?r1LdB4%9wvoXZ!l1Q^4HQ*|w{X`+L6} znbc=*?1l*m#lB1aed)vsQ~6PPeA#cAyJzM_tolCkxh4N%;Pot=lFNL??X3d>yCpOJUh^T*3iSb2j&%D{;lPv($gDE zC4rkvm;6?hokPK)1-}N&8GdZQ2hR?~cTi3n&=z!p%#ok;dKP#!hJHg949s~Byk7j? z3!Y9kuZX>>ZSCadShWu29)Ej79&ya?q6~L~j}smOx#;frrza>o?P(t%Pt+kp4l24W zu*9D8(fPGUpQQiPZM#N>8W+5;z&PJVM??r$VyXr7c*6U z4o9}i%g$7ViJ__}^swoY|5{V-!FeUy$GWb>`FDW~z$aCy<66)5MfX>=e9^rxC1&3+n=4ju6b`HM8#m&L)3(kXw*fRU}V$bOJYTLal^Mq@l z?9gUFhpN*iP!247TZQBY#GZCg&J{Yy^CyR+|HL)6AMozeeSz7&g2M~{LA)=WTx}{2 zJ**1jj+M3tYNuJSKtSPTP?EMQ_D7x9>ppo-$ptCBN2O(nid{|mbi{^ zzH4LdovdqlIXwznO&n~Sx!1OJJ3f8T0m0pWjfuaR56mzBX66<6^Y`*(WaE4?RdK{| zobO80={duE-5hPb+#Kk)?B9Ug)$HnE^J-^jJUUv}=>nc2cskmBhWB}V*RJ;0i~F^l zy=|=Px}#J39XPvibYR3P@35fxBTpZm*n7|BufJS1zgM$q!<)VMm4}0^8)V=U`X|c5 z)i?)jYDKgKhTao<`Z4ll+CA9#hLH0w*N*sX5p_s#$NW>b^D>iFLADtKVt=#vTVj)* z0Bla0iv3po`_RPRd%a$_@99z7`eRS0s!iRTZ5qSQw)Jwd^*Zh|@F1}-Ik(%CpB}IO z?oHyKmwQp==jEsZ$X)5_&8FZb-=6DQ*S@E#qus|{YS}dPa?OQ%TSk{Ptc`@%eqQW81{0$XrklXp7+E;y3=1wD+fO+iBBaV_e;x zZQ8gw*}V_Ba-eU}c?9An+5+eq=e#2L0|R^U_l%Q)Jvlc0Jayp6)PDO*Pb~Yb@98Xo#LNITMc{)AQOe~6Up1BrBC?$jY*zPc0D~E?7G4Z^xNs}xr1|D9CFZ< zpP2%^PrWVt^Kx@UMoR*>nPA6`;@XBl26}ip+H~`Dt~y}nIQNZdyJln;U)XOdjH69U zPz4w1S2E1D1vUk?M7JxjV|cwFBN2WkSd|1HG?n_T6hBB=NPsM?7~FoYhm)-v{f8d= zz|Md(Qoop!qCcnzGT@Dv#~U0){5{T3xEOq7?>C?58M5rVV3F^D&87nQ*?j6d=bzZ$ zMf@oPqNkY8qM+^nT{EoX4(Q@fW82qWSbTKxze|G;nDR1`b(?<&_~+&2iZ3b&-16HD zuZCL@FHWB7_TH*=zb!=t3Bj;wDc}z27K7Md9sfM|GF^Uk8K%!EN(xuSp@+)&XXNT1 zqJHXFXB=Y?cW2v1^a&oX**)h{|MBV)H$GrHK>3p#2KX9y}j|b6ng1i(J9} z%Xbt1{5*V5ipt(M?;l~CXJi*7N1DGEx{mL?UHs*D=xbGq?Gk%Xd~E4|{ALb0 z(&w!wdXVRmBQpMATqQE_fb4)__a(=Hb7Afjy!AuoP(qiF4I%bL5hpP>srulY-w*tW z75#Nuoch&&jVefrP`cf}i}>f|sY2*`QB0uu`Y2a-5r3RNIY%MvK`Cq}Z7B39Wmwa{ z4J9vN{76pF3%L#P1rNdwK=%!w&%6%fFUB`VCimUP^DP0lC&znG_|sO4e~mkPPw>x! z9ViLjhwC%s>h9y8PkRHK0H2_!PZ_&sPy7p0BE=5qe&rtF zFFq$1xsX#L13CNWmVk4NN4(LN^$X^jfIn-M5*ywR{8|6v?@{)oHUqmqxWTjim@g|i zz0s7P7BAR8X#FQ%f*JfyLDpU3e-`-X;(2kDzu5kJVgE({&G?gd6efnKQsgJ|4=?<6 zTziMnu9Ek%uFYB|^M%Y6-fJ6Rsr$@dyEu6R}}oItBl9) z8virvKk+Z3e-U1JZ}nezCuIQh%Xv=TIwh@p-Rj+$V_}||^+|F8?|bYAh(F^!#-UP2 zMNWKJ(;7nxk1YCE>4klWv4ML9#9x_71*$DqBtANnsc0NE>w(tW|{xx@XL zUz6N7I2io^v7vpwSAKx6yEEfa2kVbd&mMMMbe}PP1;(G8`flT&m!GflgkRhr z{nxoit|~ddSK@*Vqds5a4(>$`MlNvKW%{I-6RgZgZSUV{u6)ty!)yDypBB7s#vpR9j)K{PxqGI71WK)b>u3<>TcTr zey73v=yOa_^gwCz3%UGZI532L)~{r@Wd$Ti(}{ih9p z?I}64oi^Z7|M#Bm%X$%Wg9Z<{+crS(XHSRJc$ydYfr$M>f$-PK z|MmRx{q+BO{y}^X>@ID<;Yq!BF(<%&62=15Q{r{Ed;n#MxqjApn0sX0v9M2bALjZB zl969|$nckZ`(3jCa_#pZ|9d0*FWi$h0CjEhfUfnby0gcM`YAn;H~mlrRcQe7J*@9kaQt(CPex>rN;z{xC7j%@;t#J;35Qmz z6u%uR?c5QS8GT;3A^U$U`#-K)|0(DH^Rm&m@&NHKNTm%}VWK{=UzTxsKXXoyI%|n9 z){9-X2|D)Hhd$D(A84UHy|=aY)FBtG`mXkxJw9VyP9CJUhy7{Y(NBkds!!u>Re_npBy5zUo((9loijJvHkc?N2*C)*jvZiT3Bi z9kjmy*C)-`R;FK|ToC(xt+bl^+G+3YZmYe2u#HxC2aXSXto`l4C)(4LhgB`KsvF_= zN4~E;+Oxj>UwhQ5@&ie9}6hkq`7d(x>rDtx6ka0TWIM*{PaDsszo6}xYl zia)wuCHe1E3BH?E{QhMscIP~KZ^-26~25dY{PIB3R@Akf4RzKPX~Jo zBo`0vXo)}T^}znV*nieDa&lBIYJxfFAIU|ZD*ak^YP`xhe@Nx-nr!lE_qQoN4Ik;Y zthv?aTU%?N?rEoexu?D6zOMtY?Vxqo`?2N#8F-ZboN}}{_N+1pkd z0_+DuUV86sr*+%eR&(9iMswNHQtP;^apjMvH+aNl%v;ud2i3Eln6u00-?`x@Rc=zG z%1w<`c{q=J*8S3xR4(|y{m%cV1RYdiOUFRpN2rK(zo?Y6M}YfzV0%WT1LL$1Kb3m^ zxJtdi;j7YuPpGu>NA-c@j8H$75fO;@2f`1mGTV(&Dr)mobuk4st*hX#=M?V|{**1s zU2e9@HRGL|kt%p+B}S?Y*rzneZwmNJ^2seKb@@=!uD)*`U(nQQ!upn#MgqGbyE|w@ zcYmyXweMqX5b$@SEucRj$2$u@f1tfq3-a+9#vsVR2*|<+KJIFR(M}t_tF<pG@5Pw&DkmXaNPv5?`gH{iJ??SzYzK`VC(^ea`yPY-~GVsmzHrjU^ zTU8pr`lCwImNv6mxS&bp^)nh)KCrO;U&0gS_EfQ(C#(293smBvRVoECn0{uz$_zQK zG9v?2RxIQJwjmGaPn%%W1Pe0FJ%Az;=HB13Sj^}FzefMJMgOnS|4Cmi*u%#spV|qX zKdaKA7irMxlrx7^av(7G-=z}$wyT8WTU7k<&3NS40uHcAB^}$Sl1^+^$@n|vAdPZ> z&+d0pN#U7xZbi4MSIxSd(uL#z#9ldLwirh9`MQ)m`!Z-Y^!q)$!!q@(&qGo!Tj(zoR%ChE_mu+ZOY0|c~ zmA>2EUi+H(!?q6x)_w8V`cQlA1#)}xec1Z<;rl(I^Iw%=-&Pw9n@{Y=ZERWT=QS;? zW-e=HwQNBXt8GhLS3h-h==*t5Q#zTVeY&WK#luzP%CQRTrc}(vUsUY&8IXsCD)Go_ z%;z?lOX^d0^jUQ=AynicpME0EoGUiw?>6yI4?7L)zk%KlQz=0Qfc+Wh{7KB&QE-3a zzEdTh*s9`>Z9vSoR>i`u#~xgv;tsBq5fA?!zi+8ZIIvtL9$p1m*Z^C)Ri$9Q(;z$a z37OI7-~*;X21bET%tTKodN!GV<9ZR}{BMH)5o75AMo(yNW*SDS%7LHEPKi~-JB$1z z)F1IE^!wBfl>q&Y13#sHM`K=zcf|S$DhybMW4^;zf3Lz;dt;1~$B5b8P5z@AWiM%N zwQ_x{N>jGCt2EBQANoH6*bjss_yjiK@522))&9D_t=0tc(F6KF%mV+fceK&QZi3#g zX3f`A@{G?karANEPMdsv_qP0AC)V!k3Ox;mby=h!ta0 zNfg=bHI}?;+nJL!&D}?Xj+)R=y#Go@Wvbo-n(#q(C>&%lT_sTpTT9I- zf&ZLdrl7IS3zvLUdG)$hm8L@f1%Kc^3c5cMvM>bv?@Q>s6XScvc+mZp!u{H6!wtK? z1Ab#m>qEK_qaaov)i-{2` z2f85K5q?kVDbN*(uVMG|VJ|InGjaP@2uGt%(&h`lqwaw3Q|BoYWw_&aqqfdaQ5!I) z>n7-9{V)1?;W2s>WEFEB&-2^2So|6N0=WTYHeI;mQQ;Sqf$X?2v+iHUKbP`LJAg;} zi5!ev^qpjb4`n9+Z`i(WixEuIK&g`lpXZN}S|L`S@pD6?8v2--#;2Rab zVywsl);~cWeuA%A@%-q2R&i9YEz zG#gwjgt0w*K5Zs_wQlpF_b1@jkHFR=){ogWAGps1?h_UI>2V&I%N5^Bj2FHFvboYc z@VDp%0N<4wum?67ate+ci`U5qWA`l4{Q$5gza_uPLF_}$ zdod{r@)07wC_M}@2jqvmB;n{f6${yqg?>kEA>I>J`167|f@D4~CPtUZL+tKFDrEj}!GSRw zW4e^U{VEBZBc6Iszlpq#%roSTIEO9$TCfXQI1F}U7~*@_twr!%kk{~~--zFehHZ#J zycY`@NZ7YT;$+6;|zarO~_!} z{w0vXxgzV4uz}%bTP}XvjBhv}!J+hFiMi$To4|i=A5*}XX8DUhvRZXD`@aV<0Q9^o zb3x1lO5U%n_9?I*0No#szm3|~RvQcM_{+-XRtx7fsl0RLC(lGgPWjRl4xVS=ZajuB z9IB#yI;(IC`~N%rFTno4Gdy-&QfvEw*>lQ z*z;86a?=sBXMppC%>POS&mJH=J?%VrKDb{ZZ7TeIEI1wID4IG3`3gtwmpR^$c|+8N znSIsy={?o?Y27h;stYrEsgT+I^`R%pfI>dVp{5O6ZHb?i}W?N2-SK&G_XoD_eZeY(xOUx~w-x&YM z**#1rM|_yM(K0otw7jJU z=7!@CAH+ij$;T6qZ-Nh4sLo7uRp%i~@rW5>AfwScX2FILZ{2s(c83$om6#_CKI)iT zKDWf(cy5XL<>#CWoez)`@Hx3Zu8+KM?GGvpb|o78|H$BX6M_GtbuBB6hb}XY9|FA} zD6wA$t*1H9`#y7j%>Cl^dceKu&Q@9*?whQmOjA_~HkQLz$d=Ggc26@3{?D-t;DI3PT zLEb0}&`Vx3xzSnRczR4LbzxRtoX5}bA2=VJ6ZK7=uK@yOmwZ-4$^%B&La|Bh1VH{xHiK0Zt!vb zMxb|lb!u#D!6Y294sjqJv}a)}F;?Ju_*{l1=9iy~-7oV2x_%4JYk)8LAF;)?(1yr> zpOks$`G7w~g0n_}Q%AyYMv=2D9AMf%_`M7Bnp*v`s(GbBTU%-F(Ercj?>mT|chH&x z?+;ktVeN-D;4pH5o7!p5ZEdT)w6vk-H08s}jlJJ_q}!-Bt$o(_Zxoije~wC}?Sl`L z90}s0B>1%i=o)J$iIDlE}j6EZMAQM?9R3+*vEU^sM) zdPZFJM_??+ka@8&)CbO$p%-|>>pVU^uATB9)mU8+yFF9|LvMrU4pbK~&f~QU(|bUl zF?_nKvy*{4unijbF=VENIytO?Ix+Yyb#lNP>g1sM%5Ug<>J+}~^w>5k@F&=VNgnE) z4?YXOaDG-F{6=5cnf~(K7v>F87ZwZw=Ntz6@u~9vx~crlh`-BXao|s#7h6d?z+vX{ zA|qvbYsMCwpEi#CKWYo+517U1;?=p}I19jK7s0kIm3Sr|xfR+X=CGL4N(4U1 z;Ha4!y-jPozqS3x_aEs!qee>wv8JNj)DqK<0rqu~($A zR&DURRsYhbPL;Yn>)Lke=4>E^ZL*Qe%SQe&8*y3|_!w)X^uw7Kj;h=p zlT{}84&%ABQ^=tq510%)nT&Wg>Bt(y)2qOxSBP(n+qY2S>^NQ*WLA&CXTVpRZ46@| z(KYB9;3p;)WHa!6P9Q1vA z$VpojFt(*SHM$9Ke_t^7?Oj_P>He}h;_-qy>iMEN*7NVmx1X~*Ipl5m&QoKWs{rqI z_>PZN;E$icF1WyFbXI4kLM~=>*X0577WDI%%71iIbry0G#&d)%B$toaFhMw81aflX zx1b*ercsD@h-nORA~AdBi{FR^Ux-6KikK$)qArP?B)MZUbJ9WkB{v|sNU2Q(Ag_wr z6)<4#KO;6&Wg-sBN{UiB;eIN2@AUr+dFM|*^sj5vencH>hpF|oC#PT^9NK!u`)7M; zRfsor-?A^rThpv$pC;~+BbzbZVl zQxyg5P&ts1T&#W1Ml7CDemDbhfBM;j;MIF2x0#Gw zO%ml9`L_hfjLZpQrTD#z5iiY`JW@1tf_aeu=&C<#cPL`Z3$X9hQ_*wiZy>NEhQ!=& z_y@rCP37DFb>Li69rmiB4!J&~4u1K#I`DZlwg2-+)uAp=sl%SnE8m{4LJpkN@xgD% z=ln-EmhYh~1djg{cA<+pJG~q1K!5ZO42ON_sZPOnoQG|QBBsdE#Uk%XJY$h-isQK- zT8X^lTHp#@fSxjk%UpEo*~6$q9h00wdbplrCZ<`yG&?R7xq@(&jlB8A@D00U{U4dSFrL5rsV`O3?>ArYrZzde!!oZnd;W7ib!LfiL%bTxH*1 z;?KTu?%Cp5%f3GLpXfU1!)F)ES|i|`&zv{wx`=c2T(_R{keD2K+d{-YzaC$XwQwOS z59^_GAdk68h}AGy3(7}-N-jnY@?KIK;@^?$xfqXYMchQYLYtDsnhWBmbmrdAvt9%F zM@}FaxiR`4a=bWjufQKZ!T3~#qF*Bf{F0cQgZ>8r|A6n>!p=8?E`KOGtz-Y1I^y*L zu>XrX@a1D_|0i~8Upp(c|6^;BgM*#^414gLI@;qE<=fW*{^3n^60&m&_WksC^b5d$ zvK#D7FBJ^?Prnqr;45|7yMxGIJp3VZ4vEMYQfE_uFKaZcB{4Q&-hlaU=JT^~&6)AI zcFaLG@|QX32^dN0BIcI)!CYXh=M9}b3Y-95K>VTe7r+lg5hs!toF3a&otr&SV*GgIEaH#R zC)0lK5P!_vVJc-9vXBlrNP`VegDhmCro{e(%xLI4=7x2}EaWyWBKMh-ihLL66?vty z8X)(OK>kzeMb!5kUFUOA8>TGe1D{_{tW>fFbbvM^=a-+cFp}_ zPy?oH_`)X)ho9h@j&4qN?|M4f_U=)q>XJgN<;+7}KNshfXV%?Z=yMM8au;c%aPAl5 zp}(=gDhE8EVBd6=jXngi?Y!nQ$eBPN(xAhs0kD1KDknEfu8$m&^_B!PFJQhc4m>Aj zH*zJrU{4uO!Pb)tMWK$s{4xD0{p#s&TY~?=|0Dl!fpHzU-nq$L5X&*H>!| zg#d7Xpb1~XzqqTj(_sI}2f;fS|M`z<20zeSk3D#fh!>;4gCkK>h(tXhhJ(HyIZoy= zVv$dZr>{pW8IKx5BKnV#FegcnlVs$sm}k~~{YmgE_)GXu@e8pRkZYn}h(H|}b|VS( z1NepPv_#|_Q&b^1T4CTek(c729j4T6QxXTi_e85c*qdrJdVzh=yJh%&>Hjn1&KeM7 zfbEU7$CfwNo|)Xpy5^{NZCVVjXFYUaJ)2dj+a~`fi@XClm&_2_Wb{hVcR@c>z&BaX zNd{M8j+FJ1l+EK+%KGoX@4)Sl10ja7J7%ILh}ZywJcu!5403(Zh+(3@m6-cuOc#k5 zHexMe1I9k!%K9T?K0Q`oY{1+Ixiod(Z)8Jo?*Zxpa?(2g^AwEEPj*#jCxWj{>?EFQJolA7k=Vh;c@}c=b#@yRcC+3XD33QCIa(G zp5T665pzPuX7+}^?R7@a7{;r+!eyVR=LC`ArS9r?z+09y{iuRa=JKFS#Jm1i z0sVi=TU2g2v(Y16fBxW+3EuBMvOQ#Gw|_F9rRyfniyTLI`z)zPGRGyn9k@#E0(i#F z>8_#{4?!M{aXa$7#$e71&%;*nHPiw)B%j0>Pmh@;X5xD+VrI#e@w4)IJ&p8Y`*`qt z#EQ%*1S3z#?_!=m1UX~L8%x~-za{yJZ((B)|3jvjM<%|KkCC{R@`}Dg#I<1@c)#S! zaJ@#(Px3-5a4q~h$ z5W6yFl{^q@cfc`}HUV;>=d&o&7|3(WW7%`cMEOA*$2o;;n8(%a%a8Kem}#iNGpDu| zc9gYZ`pJ#3u?q&6e7}0%f7M5o#%^wDH30SeZo6Bf&!?T%{ypMZ~zBY%J| zCWevJF~o_X3sEm%?jJe6vy(j#&wJy<0AP2}327@~UgUg2?e-MfqU>NFu>=$R= zKN|Q^=GYe$e{`+*UDg&^V@!`Y16%kb`T#}9ahe~mv;pODH;%8wKLULiQRu&t9C|sqFyth1R(I3U{`CSjw5T+R zy>&h%RgSmpS9TNDV@-J z2flL+?D;x<-}!N^a@Mx6n!W`#0Qx@?>jAvr|KDRi5OVM$W{mHlQnua*+_%crIY)c0;l|A{~CI7Z}L)Q4ty2@fpm1CqWE)K(8IN1cC@ zV{i_x5)pG zfCr);)EvIQ&yIH5HyhD2yt0MWyai1wZ=2Dma?s%+?_OemPXsvq4e=*mgI)`Ffo`+U zfqWzqd@X+UH!6AAS1NJ$9Ly>EzIF>W6p~c7Q#}#FG7}aaaQu16v#euEzQ?V=u}?40;5JyKoG= zFCO({t^pzT$;jssd#)2;EYA3yYYQSbOqO*)2L603>j_3*sGgtG*XS~bBY8bs8}qr$ z?Pj2#RPXaVVwMN?EMOfH>(;an?DJ%O75qYM1bqeu>#MY<(sNVB6E53@-^l>*M}MB_ zK#y8SH=v(uduwep^xYM5P?z}t)`HLr!d`%0@cm=3W?;(F=2pwV{|_wx^qKfbpH3$7 zw}?fki!T~#!TZqLC%g}~lbjzhyY9bHD@7iJ{yT;~81qm2nF`yS6}VgFqn4O=dJFP_ z!HRjLJmfy}(C;k!re-0hd_@oNjr%{@Po4mM4Mn^b0Xv?-H5|x0r3N7H##mWum00I_ zU54B6Kqu{8IXV;bR2*$UxzL>^TWTF9~xoT$_6> z{Mj3vi*>nq1qFD|Maj$1esOP5=67>4k=sMgj``ng%`>wVc@(yV1NH&RnxC7+AGI0%-U65Rf9Co`-eZ8Tlgs3wuaUi? zTr)%8C+j@S{fv}{B;-U>mJU{lYraD~r1$+ZHy|}f#G2&$v=3L)e|hbf&;J1qFbzGu zqk#XXJJ9#XJm8wv+Ml+x*6MC*t$D3)UFpXaEvy#JZ(4cRnlGM@iAG#Wo=-iOybNr6 z)XJ~Hr_txnIzRm+a#Ts^jbaRzhI)bqyg^aa!a?9h z-%E}*2Khbq;>9BdPuagnr5)dZIc6WfAJ#0O-pd*fYXp{c3tl6xD?cCW*NC}!$hA`^ zFt~Q22>Z7G8njgvhx=kbP3$2g{oXgL|G*#hM&84NYtN!kgQqVDgO5&zTxOc1O{G{8U^1YxSQ7i0{<9r2Cge1-%EmB;5pwq{<@wEZ#Bz*dHl=1mvh3J z4tP#cOpv$*;$PK%f<_MFPa`AKaEJ~$8ljK0n2)7SMKnCAljT*|@K@h`h>_(<+yz`YcU z!;hw%0I{Vm~7 z4#3(SaK9P+`QAcsqtd`F>Qc~V+5cJQhK-`JgqHJBDtQ*3*K*(^CAN$O) zE)eoS`w#`r8@>1|(+;;9>(;ci>bI_i_TDBJ?Fr(Knvd=D2HH!rn^f)qzW?pdA68ku zsn0u6>DwoX-DFJ08toMvT{s)&9k}Ncci8!Syk_i!tjhuLmTT5I+>P-^{AA%z^);5@ zSGZ>G*Tp)w$dVyPMjQa0u*9D-z`Yo0$0hHFT#xkg!FI=kpQNF7Lj1YjgzG!mSDuM_ zEPWSyG#C$vzGDq3`@7@NaF3AbH5S(nQ6G6%>`AAy`)P{t>rp?RRnHC zJ81kSvDY~V=Sg1^e8Y9YTqlb4&$9k)`!uz`|J!Sj*Xz8Zx#kG`s}X?m6%G zA8GXMJJ$V%*0-K>%BN>mZqRP&&B%jY&BfkUd0fYfwGFb)fpbpYhQWI{l&yW_bJzg6 zUc@~5y_D_@e`0TmzoAEEaUgAuh5j4(QzjWtlK)4N8xc>~@et$-DGwpwieZom_WrYn zjQc(i_b})@Uyt1}Pu3&xcXaG;5B~yi)1t7WsyOnbDvCX$3NdicDODVD1l(u0Dm?=| z58RBtiQTFYwolf-@i)l_EM)F?_)ENrm=pVcl<7)NxqSg3SKJpM3-#ixGy9a^Po0)e zYV=6Md8h@V*U#1)JwMzhuHW1C&-8uW?wwwBY`S-S-DY<3mWh}0;~;<3Y3cbeuhXQy zn{hWD?<@YaCuTcZhCh$5fj{>l&_|N=nk0e$$Dk)Xauw<($nzWfzJxCauSI?~cK1Tb z&oBoedjQeKkfT$^DAyd2aSpj}jajeB;{+eB)29vNx=?fcXRHk;t}>tKjo}{71?-8E z-=Ti!HeGDHJiiV6@q3o}hdkBF@$D|Cai1i9h?-3cwfWuM8We z^Hp3U@ilBTpA#$o7Ox+l%g@&Bop2nncgEUv$^>jQ2R<+NjU#@-c`)akcX|J{_l47K zd^S^-}J;_Kh^6uV}fQ{yBuVDBS zm#g5L^nT$F|6^J=?9*QQ zeFbq3F*E+yBd{9x3Nzp5cG!~stxuMqk58BViiiL2{6F;{`gf=J7chnq9t-U60{+bJ zP@X751&{%WRSX{@kA}^-NA|y*{+EOtGEM3HZb#}mb)NV)M*f%h^Ipol=OFfT8@YUN z+tb*~wZh_WshGeF6NKtYa6>a3A!aeDvtji*nB>tnV=PhPKpyx7s$%ssHOnes-op z;?MY3<_mt6zLlI?{H$63=?7@HZ&&|`KRKU#$DR5AeCq!7@E1Nn?g*~QoH(xo{^G9k ze+&E1yjs-SANO>|-rz3SyAw9wnz2890Qd5>^#3b{wD)IirlRS;;Bq7U`S&})Ut+X7 z^#A-0^2QtCkGOz2enY13CH_U>CrtZ(?Dj40Bl;@$?nUe`_Xx7&|Gcj``TzLO>g>c` z(vt6y>!={{AMcB4%+;FBp!E;TyFFf_#SPMc9!1$k>fcNo04A8Sjy+183@m(hOaH=r)Bd=1Fh`n~q zw(@%T=VEOP^DMW8Kk>Uw{PS_2UtQjA6@R_Xb+7cF_f=2bHuXGxzxylIo@Tz6xO43% zAGzj}_weH1d9PvY={+rVyU(x1ysstgSOw63-UCzej5mS5*Z}ea;&`k2FaE=v1CY24 z&u=FGL%We_*qhtI-<(4dK0_|R{J|~ef6M3p%>ExWcGGd6{u4cF*}TTJfQIjvwZG&5 z-~xS}t3S?rHsd~0pWxoTKj7Z<=_TjPF+fGYAGs^ZquwO`x(vV$P<}-QbR5g)|E`Gt zX#a^nuUBN}=JG$1<00qB;GoP^9Q=75xd-NE_I=~=4~=_*kn@xK5r01NSnlD7{rnjN zx;xnoo8PnPF>(OOsXSo(^HF~)ME|6o_tUxZ_3Xb;+#{^SD82X(7y|E$;R-~djxr~y@* zeR1EMe-%aeJy`n>zh8_VA<=!w``#k{+_N2h1(M%qj<{U@|El;KIe_cgf5dMEd>?Bh z;F@<2e{&3Y7wmrl>$cGS9(5mUoXHE!mWAt!H zU5ETqxZ>T{f9VUo6Z~wx_~YVkgOjQNb1-_rIQ z&*=jg2e{PNs^gw6FS|S2HbO3-SD&|^oRhU@_CHFouZYCd^aEzQZ#>>@`_J#ag!*$~ z{CUwi(X)GnKl9=;%(Zg#(nyboQO`GI?^^iN4$z-a2JQ;~L*Fm1^>*z)d&WwRE&1oX z9!>gpfgUrj!+Z}p{?&Bfz+Y?tcpz;6_y2K!9X!C%rakP(@TCLV9E1%pu_j!Q3C?p5 z@#lS%O9Idf742uXx77W6sQ=~g=NhhC#h-C{K6>}{xbIHmKQsR9Il9I8A3fBj(&Nkj zyYHv&KCt<3)9$;xtW~F8Q@@F^f%nxO`5y8B`U>9LPrifqm3FlKcJKIZ=R^k1{9Xp` zmi`wdg{o5j)#CF71K=+4_nS^zL@?CwE}}jy94p#7)$H^!&eW<3#4*XT<(f{|!Du zZo=9p2l-0b0FQ+~=6!byk1V>ha!C7e#H&kfo4cHqRcfgzLu3{@D4wXYIWQx5bY^%HX(#p}^|lg^*Ycr)jSeiMT^=1ZqH z;J$UMRB>#OdG4uydM@t1>OXtT1^e67f8tN9cx|)=l1I4Q|06LJ@()t~XZ*?dgE}Pk z&B*^+;Lmw7zOy|3_)Kxcanq%ft8mZHdHJ)tH6F@)e-nG=@|n-^29Dma>6ZB3%yWK* zet^7zT!8nI^{j2%5WOLtJ;4VS^=YvMxuIVv2iO}>`k3>v)=TD&a$sP04g3qxtIK-@ zm!4WLI?vu`-ou(Qbb0g9%;*y^7tBAh|Ld;c4_jFXJ-Ot+)>LwQ*?-P0 z9CcuDgXcS;r|VtTb|r@c+=w4>)NbJOuO<)tOnDjbf?RpjvU|_X*}kK@lT9D&3;E00 zg`=Zz4!_YBaFl|#!4ILg{S>%6)^&274*HzQYv3{V3DF z`;R~U&}I26$33pY|I7TpfqU5_?KbT-)-{nMQWls;D9b(Foc=TSSp@wk4m)ZpJ+%(D zcZDfo<1dj@T;Cl5AKk*Oc9l20>e|*|oJYOC6YLFnC@%vdSL_jFjSzi;v<283cHpRH zFHJx2bI-Gk5piC?mBWnhRUT>QOU~{9?g7Fb^jN~ee>@=kW&MQZZ{H68E5qIF2j~j~ zf64%SH3#EM;fi`5TYMzsPWJ)2UzByAW?x@O|LC_`?(JQ8WZ}PXuifBvBR-wl)xqXt z@;vPE=^(w^sNXTaXW0DP(R%}XE&Vg&HS&D& zHt*ZC`3C0Y9}OAcck?&+TeJm?4@LGI;S(I}I=VXB4*sU~tINp=xL36F%`;b2HjqPQ z?WGKR19#(5w*i;!@BOp?xtM>+^HoIr&+k#Vzj8imazD8_*toemp-0Qfx|Y=HP|K%Y zO5P6nTVlmg9>Y65mhZ&(n(KsBXlGa}==yim6l&VmaIcBJ5@+iU=o=Uwzu}jxV(9zB zgg@h~3X4DXUPj+$hI?(h!S2$ZTdihiC+#o&9kgnU)9;1OUrSyLTVU=P6ggl&iMylr zH~51$T^(&Z?-=L4yY$3LtR1^tGt_NB1=WAXYRuh1_ba0PFU6h+xF3DIo1?v#Ywap; zd(^RiwjZ!3$20Qz_d@5dCj*8YG}g3724ep>=86z|yn>ul)4`3N9aem7$$yHX!SBj! zKm9-j#h={E9J5wL{7V8hnSz&n8wUM%>Fi|f+@=1bPY(RMW;5h7sEGET^2vETGO5olSH$_` z`{dt@@hTGj zr1uTb1{m{h%)Rk=AL4)Hc$kkCyU(7D3XXqi;AZr2O-Mw|S~C+Yot zNbskfqU~JRxA|00XWNFb|1ZGDR%5=0b8R{I73De4i{}R!wU-_;tS9nxux-}w?I-&t zY@U=%87M~o5cg`jY1-j5WL0Tf0+!&MVrnAp_(u zdVWBw=21)gGkeLHCvbDDT1VC?I}wXB^P?=pW#?n^!3fUo#a?{~C&ANv%2D7`SXZMuy3 z=%w*oqg;UdiW{}YhfV)kk22SJ&!UGPeYJLPv!|2s6X%Nd^H%1%BEQ$L1%@2Z9*`T* z&UHuLP}Uo8FDhI=WrBRc7|ekor~Cr;Dy@O{IlyONzhYZ=^hd=M2W~ajnapdHjhbUc z=YQPa;`}~S&i=W@gBm12z%<&20Tpq&z}C`V@vi|rH$Fo-u#^S%67afd_pUZ5C#}){DaJB6J%C!%!4tAdh%o%p_61Z~# z@<|U1{zXxKrc&Q!zpWeo=~D82xt9M=?Y@Ec^&SmbFdn_(_bdlFF#ks1K^f>+1HGqM zlR|!gdlvN0+&v=~Yt-Qfu=cWo+yA1tAjLc=)=aEJ|NIx^JDuq35Fc?rK3+Gk^?LL5 zzxp>r1{fEUBQv*1+c~#;6Cd#d;m1uC8GqjMka6wqAG>a2jhwL$*IIWs)@xU={+@~` zXVee+2l52Qk)F;~>La)OncvJIhdH-J;l7Z83YPx`*Q3qn`5l?qd$+!Z&hA6Tz|4)c z{~z)BcSD|N11JNum9&}S2lTy;x*)IYCwU`71}Z}R4|!|mcM6Uy{O8&cpDlyG|B~^n zzE=OyC&~A`!Fza3+8=gbyBQhbJQ=;G%qMX!*>i%J(Cx&GK}SUfz^}{JojsuXA2})4 z?IKs1{zFGcZ*o2EvuNl&v8OHj1ABE-xL+X~kO6bNU{5aKR@1y!fwQga(J6iRQU*%S z?KI_MFFAdmKfTZJzVv@#&3IvyKlW%?VG5W#+`m`->b=nm(bnC`{!R9B-_7;fSIi0e zF#cDLX#=P?)E{HN3g!_dX9yd+^LzKT1&0^@gRvofuk8QHzW;mJ|Hpj)Q4JG*d~xBI5nil*A4$rAp^9nw6U@t0ec@)|5#h(9$Cy4vCh`}&Byw$9oBIPWg++Ayb`_Vggq!2Sa(^B zebqQh0ydb?SEj$tzhR{9oSyAJYsm5Wy*`?Sz0&(iED!nOIxPeDZuRV+Wqp&pggXC+ zy}x_9emxm8>?-w)^#bNqpm)`!hnjX6wRJB?`?pwY^8jXy#lg+Ide?t!z<8IsKP*EH zewVk$#^W;v9`eQdi`_qZZCyX=^W_Wsw3s!i)0;mIY4F?-^dop6XX`>f&%Q?1Y+1YE zzKi1HfjezIWzbUR|FHM>M+PV#mbQR$031XPBxj5|3v;gQvtS<*bFkd^T-MpL=i1S} z190rf0e${hIGlq`Yq>uLe7f+t+V*cS_ss8My_&Ua$wfimEphk$gX2B0c$6|wUJmGo z=@-ZkC=1+6hrI>epu3D6$rq^0vgQu)nk&}cQBH(M;P2FNzMp!|ef5bszmMN5wHx>z z+MYjfzkj-ZJ%3=>0z(eSy=jw$hogpM^q+Xuee5yzpveAKkPGTFeFh&XC(PGyZ5!W5 zy!koC@cbUJ@%Ub1ZqzAnbWVT#{r<}bWx$XFVntc-hQ11Z<{lK0ypNwV#_jxm1^En4 zU;cPpIXueCo2B++I?Kxgw00k6*k}{UQG9iVGZfrGDY(t`In?tK|>8$YYBikYfwP8}aYuk1c*s z{(hrliy4ylTWI7se7)ri$+3lo=*Qk=GoT;)mL22M_?KMnxa@@G@-1e_d|Y+{G9CB= zZ}S%z$Ho`Z`sx4lHI6- CAt5^e literal 0 HcmV?d00001 diff --git a/softprojector.qrc b/softprojector.qrc new file mode 100644 index 0000000..d36ed83 --- /dev/null +++ b/softprojector.qrc @@ -0,0 +1,104 @@ + + + icons/effectsBlurredShadow.png + icons/effectsNone.png + icons/effectsShadow.png + icons/add.png + icons/solidColor.png + icons/add_songbook.png + icons/announce.png + icons/announce_copy.png + icons/announce_delete.png + icons/announce_edit.png + icons/announce_new.png + icons/base-22x22-actions-application-exit.png + icons/bibleHistoryDelete.png + icons/book.png + icons/clear.png + icons/controlExit.png + icons/controlExitHovered.png + icons/controlExitPressed.png + icons/controlNext.png + icons/controlNextHovered.png + icons/controlNextPressed.png + icons/controlPrev.png + icons/controlPrevHovered.png + icons/controlPrevPressed.png + icons/database.png + icons/display.png + icons/display_off.png + icons/display_on.png + icons/down.png + icons/edit.png + icons/ExpandSmall.png + icons/FitToScreen.png + icons/FitToScreenByExpanding.png + icons/flag_uk.png + icons/go_live.png + icons/help.png + icons/hide.png + icons/new.png + icons/open.png + icons/pause.png + icons/photo.png + icons/play.png + icons/playerScreen.png + icons/print.png + icons/remove.png + icons/remove_all.png + icons/save.png + icons/scheduleAdd.png + icons/scheduleClear.png + icons/scheduleDown.png + icons/scheduleDownM.png + icons/scheduleNew.png + icons/scheduleOpen.png + icons/scheduleRemove.png + icons/scheduleSave.png + icons/scheduleUp.png + icons/scheduleUpM.png + icons/screen.png + icons/search.png + icons/settings.png + icons/show.png + icons/slideshow_delete.png + icons/slideshow_edit.png + icons/slideshow_new.png + icons/softprojector.png + icons/softprojector_cloud.png + icons/song_copy.png + icons/song_count.png + icons/song_delete.png + icons/song_edit.png + icons/song_new.png + icons/song_tab.png + icons/splash.png + icons/stop.png + icons/up.png + icons/video.png + icons/video_add.png + icons/video_remove.png + icons/alingBottom.png + icons/alingCenter.png + icons/alingLeft.png + icons/alingMiddle.png + icons/alingRight.png + icons/alingTop.png + icons/tranFade.png + icons/tranFadeOutIn.png + icons/tranMoveDown.png + icons/tranMoveLeft.png + icons/aboveText.png + icons/belowText.png + icons/bottomOfScreen.png + icons/toBottomOfScreen.png + icons/toTopOfScreen.png + icons/common.png + icons/tranMoveRight.png + icons/tranMoveUp.png + icons/tranNone.png + + + DisplayArea.qml + + diff --git a/softprojector.rc b/softprojector.rc new file mode 100644 index 0000000..95d7207 --- /dev/null +++ b/softprojector.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "softprojector.ico" \ No newline at end of file diff --git a/softprojector.ui b/softprojector.ui new file mode 100644 index 0000000..362d0d0 --- /dev/null +++ b/softprojector.ui @@ -0,0 +1,691 @@ + + + SoftProjectorClass + + + + 0 + 0 + 1055 + 666 + + + + + 700 + 550 + + + + + + + + :/icons/icons/softprojector.png:/icons/icons/softprojector.png + + + Qt::ToolButtonIconOnly + + + false + + + + + + + Qt::Horizontal + + + + + + + Service Schedule: + + + + + + + + 16 + 16 + + + + 1 + + + + + + + + + 0 + 0 + + + + + Tab + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + 0 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + :/icons/icons/play.png:/icons/icons/play.png + + + + + + + + + + + + + + + + + + + + 0 + + + + + If selected, this will allow to select multiple verses at one time. Will need to press "Show" each time. + + + Use Multi Verse + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + 0 + 0 + + + + false + + + + + + + + + + + + + 0 + 0 + 1055 + 21 + + + + + &File + + + + + + + + + + + + + + + &Edit + + + + + + + + + + + + + &Help + + + + + + + + + Select Language + + + Language + + + + + View + + + + + + + Schedule + + + + + + + + + + + + + Display Screen + + + + + + + + + + + + + + + + + File Tool Bar + + + Qt::ToolButtonIconOnly + + + TopToolBarArea + + + false + + + + + Schedule Tool Bar + + + TopToolBarArea + + + false + + + + + Edit Tool Bar + + + TopToolBarArea + + + false + + + + + + 0 + 0 + + + + Display Control Tool Bar + + + Qt::RightToLeft + + + TopToolBarArea + + + false + + + + + &About + + + + + + :/icons/icons/settings.png:/icons/icons/settings.png + + + &Settings... + + + Open settings dialog + + + Ctrl+T + + + + + + :/icons/icons/base-22x22-actions-application-exit.png:/icons/icons/base-22x22-actions-application-exit.png + + + E&xit + + + Exit SoftProjector + + + Ctrl+Q + + + + + + :/icons/icons/database.png:/icons/icons/database.png + + + &Manage Database... + + + Import and export Bibles, songbooks and themes + + + Ctrl+M + + + + + + :/icons/icons/help.png:/icons/icons/help.png + + + &Help + + + Open Help + + + F1 + + + + + + :/icons/icons/song_count.png:/icons/icons/song_count.png + + + Song Counter... + + + + + + :/icons/icons/scheduleOpen.png:/icons/icons/scheduleOpen.png + + + &Open Schedule + + + Ctrl+O + + + + + + :/icons/icons/scheduleSave.png:/icons/icons/scheduleSave.png + + + &Save Schedule + + + Ctrl+S + + + + + Save Schedule &As + + + Save Schedule with different name + + + + + + :/icons/icons/scheduleNew.png:/icons/icons/scheduleNew.png + + + &New Schedule + + + Start new Schedule + + + Ctrl+Shift+N + + + + + Close Schedule + + + Close Schedule + + + + + + :/icons/icons/print.png:/icons/icons/print.png + + + &Print + + + Prints selected Bible chapter, selected song and selected announcement. + + + Ctrl+P + + + + + Print Schedule + + + Print Schedule + + + Ctrl+Shift+P + + + + + + + + Ctrl+N + + + + + + + + Ctrl+E + + + + + + + + Ctrl+C + + + + + + + + Ctrl+Del + + + + + Donate + + + Donate to softProjector development team + + + + + + :/icons/icons/scheduleAdd.png:/icons/icons/scheduleAdd.png + + + Add to Schedule + + + F2 + + + + + + :/icons/icons/scheduleRemove.png:/icons/icons/scheduleRemove.png + + + Remove from Schedule + + + Del + + + + + + :/icons/icons/scheduleClear.png:/icons/icons/scheduleClear.png + + + Clear Schedule + + + + + + :/icons/icons/scheduleUpM.png:/icons/icons/scheduleUpM.png + + + Move Item To Top + + + Move Schedule item to top of the list + + + + + + :/icons/icons/scheduleUp.png:/icons/icons/scheduleUp.png + + + Move Item Up + + + Move Schedule item up + + + + + + :/icons/icons/scheduleDown.png:/icons/icons/scheduleDown.png + + + Mode Item Down + + + Move Schedule item down + + + + + + :/icons/icons/scheduleDownM.png:/icons/icons/scheduleDownM.png + + + Move Item To Bottom + + + Move Schedule item to bottom of the list + + + + + + :/icons/icons/show.png:/icons/icons/show.png + + + Show + + + Dsiplay to the screen (F4) + + + F4 + + + + + + :/icons/icons/hide.png:/icons/icons/hide.png + + + Hide + + + Show Passive Screen (Stop displaying to the screen) (Esc) + + + Esc + + + + + + :/icons/icons/clear.png:/icons/icons/clear.png + + + Clear + + + Clear Display Text (Shift+Esc) + + + Shift+Esc + + + + + true + + + + :/icons/icons/display_off.png:/icons/icons/display_off.png + + + On / Off + + + Turn Display Screen On/Off + + + + + + + + + diff --git a/song.cpp b/song.cpp new file mode 100644 index 0000000..eb76490 --- /dev/null +++ b/song.cpp @@ -0,0 +1,823 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "song.h" +#include +#include "spfunctions.h" + +// for future use or chord import +// to filter out ChorPro chords from within the song text +// Use following QRegExp = "(\\[[\\w]*[\\w]\\]|\\[[\\w]*[#b♭♯][\\w]*\\])" + +QString clean(QString str) +{ + //Removes all none alphanumeric characters from the string + str.replace(QRegExp("[\\W*]")," "); + str = str.simplified(); + return str; +} + +bool isStanzaTitle(QString string) +{ + // Checks if the line is stanza title line + if(isStanzaVerseTitle(string)) + return true; + else if (isStanzaAndVerseTitle(string)) + return true; + else if (isStanzaRefrainTitle(string)) + return true; + else if (isStanzaAndRefrainTitle(string)) + return true; + else if (isStanzaSlideTitle(string)) + return true; + else + return false; +} + +bool isStanzaVerseTitle(QString string) +{ + // Check if the line is verse title line + if(string.startsWith("Verse")) + return true; + else if (string.startsWith(QString::fromUtf8("Куплет"))) + return true; + else if (string.startsWith(QString::fromUtf8("Strophe"))) + return true; + else if (string.startsWith(QString::fromUtf8("Verš"))) + return true; + else + return false; +} + +bool isStanzaAndVerseTitle(QString string) +{ + // Check if the line is additional verse title line + if(string.startsWith("&Verse")) + return true; + else if (string.startsWith(QString::fromUtf8("&Куплет"))) + return true; + else if (string.startsWith(QString::fromUtf8("&Strophe"))) + return true; + else if (string.startsWith(QString::fromUtf8("&Verš"))) + return true; + else + return false; +} + +bool isStanzaRefrainTitle(QString string) +{ + // Check if line is refrain title line + if(string.startsWith("Chorus")) + return true; + else if (string.startsWith(QString::fromUtf8("Sbor"))) + return true; + else if (string.startsWith("Refrain")) + return true; + else if (string.startsWith(QString::fromUtf8("Припев"))) + return true; + else if (string.startsWith(QString::fromUtf8("Приспів"))) + return true; + else if (string.startsWith(QString::fromUtf8("Refrén"))) + return true; + else + return false; +} + +bool isStanzaAndRefrainTitle(QString string) +{ + // Check if line is additional refrain title line + if(string.startsWith("&Chorus")) + return true; + else if (string.startsWith(QString::fromUtf8("&Sbor"))) + return true; + else if (string.startsWith("&Refrain")) + return true; + else if (string.startsWith(QString::fromUtf8("&Припев"))) + return true; + else if (string.startsWith(QString::fromUtf8("&Приспів"))) + return true; + else if (string.startsWith(QString::fromUtf8("&Refrén"))) + return true; + else + return false; +} + +bool isStanzaSlideTitle(QString string) +{ + // Check if line is slide or other stanza title line + if(string.startsWith("Slide")) + return true; + else if (string.startsWith(QString::fromUtf8("Слайд"))) + return true; + else if (string.startsWith(QString::fromUtf8("Dia"))) + return true; + else if (string.startsWith(QString::fromUtf8("Snímek"))) + return true; + else if (string.startsWith("Insert")) + return true; + else if (string.startsWith(QString::fromUtf8("Вставка"))) + return true; + else if (string.startsWith(QString::fromUtf8("Einfügung"))) + return true; + else if (string.startsWith(QString::fromUtf8("Vložka"))) + return true; + else if (string.startsWith("Intro")) + return true; + else if (string.startsWith(QString::fromUtf8("Вступление"))) + return true; + //else if (string.startsWith(QString::fromUtf8("Вступ"))) + // return true; + else if (string.startsWith(QString::fromUtf8("Einleitung"))) + return true; + else if (string.startsWith(QString::fromUtf8("Úvod"))) + return true; + else if (string.startsWith("Ending")) + return true; + else if (string.startsWith(QString::fromUtf8("Окончание"))) + return true; + else if (string.startsWith(QString::fromUtf8("Закінчення"))) + return true; + else if (string.startsWith(QString::fromUtf8("Ende"))) + return true; + else if (string.startsWith(QString::fromUtf8("Závěr"))) + return true; + else + return false; +} + +Song::Song() +{ + // initialize songId to be zero at start; + setDefaults(); + songID = 0; +} + +Song::Song(int id) +{ + setDefaults(); + songID = id; +} + +Song::Song(int song_id, int song_num, QString song_songbook_id, QString song_songbook_name) +{ + setDefaults(); + songID = song_id; + number = song_num; + songbook_id = song_songbook_id; + songbook_name = song_songbook_name; +} + +void Song::setDefaults() +{ + number = 1; + title = ""; + tune = ""; + wordsBy = ""; + musicBy = ""; + songText = ""; + category = 0; + usePrivateSettings = false; + alignmentV = 1; + alignmentH = 1; + color = QColor(Qt::white); + font.fromString("Arial,28,-1,5,50,0,0,0,0,0"); + infoColor = QColor(Qt::white); + infoFont.fromString("Arial,28,-1,5,50,0,0,0,0,0"); + endingColor = QColor(Qt::white); + endingFont.fromString("Arial,28,-1,5,50,0,0,0,0,0"); + useBackground = false; + backgroundName = ""; + background = QPixmap(); + notes = ""; +} + +void Song::readData() +{ + QSqlQuery sq; + // 0 1 2 3 4 5 6 7 8 + // 9 10 11 12 13 14 15 16 17 + // 18 19 20 + sq.exec("SELECT songbook_id, number, title, category, tune, words, music, song_text, notes, " + "use_private, alignment_v, alignment_h, color, font, info_color, info_font, ending_color, ending_font, " + "use_background, background_name, background FROM Songs WHERE id = " + QString::number(songID)); + sq.first(); + songbook_id = sq.value(0).toString(); + number = sq.value(1).toInt(); + title = sq.value(2).toString(); + category = sq.value(3).toInt(); + tune = sq.value(4).toString(); + wordsBy = sq.value(5).toString(); + musicBy = sq.value(6).toString(); + songText = sq.value(7).toString(); + notes = sq.value(8).toString(); + usePrivateSettings = sq.value(9).toBool(); + if(!sq.value(10).isNull()) + alignmentV = sq.value(10).toInt(); + if(!sq.value(11).isNull()) + alignmentH = sq.value(11).toInt(); + if(!sq.value(12).isNull()) + color = QColor::fromRgb(sq.value(12).toUInt()); + if(!sq.value(13).isNull()) + font.fromString(sq.value(13).toString()); + if(!sq.value(14).isNull()) + infoColor = QColor::fromRgb(sq.value(14).toUInt()); + if(!sq.value(15).isNull()) + infoFont.fromString(sq.value(15).toString()); + if(!sq.value(16).isNull()) + endingColor = QColor::fromRgb(sq.value(16).toUInt()); + if(!sq.value(17).isNull()) + endingFont.fromString(sq.value(17).toString()); + useBackground = sq.value(18).toBool(); + backgroundName = sq.value(19).toString(); + background.loadFromData(sq.value(20).toByteArray()); +} + +QStringList Song::getSongTextList() +{ + // This function prepares a song list that will be shown in the song preview and show list. + // It will it will automatically prepare correct sining order of verses and choruses. + QStringList formatedSong; // List container for correctely ordered item. This item will be returned. + QString text, line; + QStringList songlist; + QStringList chorus; + bool has_chorus=false; + bool has_vstavka=false; + int pnum = 0; + int chor = 0; + int listcount(0); + + songlist = songText.split("\n"); + listcount = songlist.count(); + while(pnum < listcount) + { + line = songlist.at(pnum); + if(isStanzaVerseTitle(line)) + { + // Fill Verse + text = getStanzaBlock(pnum,songlist); + formatedSong.append(text); + + if (has_chorus)// add Chorus stansa to the formated list if it exists + formatedSong.append(chorus); + + has_vstavka = false; + } + else if(isStanzaAndVerseTitle(line)) + { + + // Fill Additional parts of the verse + text = getStanzaBlock(pnum,songlist); + // it chorus esits, this means that it was added to the formated list + // and needs to be removed before adding addintion Veres stansas to formated list + if(has_chorus) + removeLastChorus(chorus,formatedSong); + + formatedSong.append(text); + + if (has_chorus)// add Chorus stansa to the formated list if it exists + formatedSong.append(chorus); + + has_vstavka = false; + } + else if (isStanzaSlideTitle(line)) + { + // Fill Insert + text = getStanzaBlock(pnum,songlist); + formatedSong.append(text); + + // Chorus is not added to Insert, if one is needed, + // it should be added when song is edited, otherwise + // there is no difirence between Veres and Insert + has_vstavka = true; + } + else if (isStanzaRefrainTitle(line)) + { + // Fill Chorus + text = getStanzaBlock(pnum,songlist); + QStringList chorusold = chorus; + chorus.clear(); + chorus.append(text); + has_chorus = true; + ++chor; + + if (chor == 1) // if first Chorus, add chorus to formated list + formatedSong.append(chorus); + else if ((chor == 2) && !has_vstavka ) // if second chorus and Insert was not added + { + // remove exising chorus + removeLastChorus(chorusold,formatedSong); + + // and add new chorus to formated list + formatedSong.append(chorus); + chor--; + } + else if ((chor == 2) && has_vstavka ) // if second chorus and Insert was added + { + // and add new chorus to formated list + formatedSong += chorus; + chor-- ; + } + has_vstavka = false; + } + else if(isStanzaAndRefrainTitle(line)) + { + // Fill other chorus parts to Chorus block + text = getStanzaBlock(pnum,songlist); + + removeLastChorus(chorus,formatedSong); + chorus.append(text); + formatedSong.append(chorus);// replace removed chorus parts with complete chorus list + } + ++pnum; + } + + return formatedSong; +} + +QString Song::getStanzaBlock(int &i, QStringList &list) +{ + QString line,block; + int j(i); + + while(i < list.count()) + { + line = list.at(i); + if(line.contains(QRegExp("^&"))) + line.remove("&"); + + if(isStanzaTitle(line) && (i!=j)) + { + i--; + break; + } + block += line + "\n"; + ++i; + } + + return block.trimmed(); +} + +void Song::removeLastChorus(QStringList ct, QStringList &list) +{ + for(int i(0);i songs) +{ + emit layoutAboutToBeChanged(); + song_list.clear(); + song_list = songs; + emit layoutChanged(); +} + +void SongsModel::updateSongFromDatabase(int songid) +{ + emit layoutAboutToBeChanged(); + for( int i=0; i < song_list.size(); ++i) { + Song *song = (Song*)&(song_list.at(i)); + if( song->songID == songid ) + { + song->readData(); + emit layoutChanged(); // To redraw the table + return; + } + } +} + +void SongsModel::updateSongFromDatabase(int newSongId, int oldSongId) +{ + emit layoutAboutToBeChanged(); + for( int i=0; i < song_list.size(); i++) + { + Song *song = (Song*)&(song_list.at(i)); + if( song->songID == oldSongId ) + { + song->songID = newSongId; + // get song number and songbook id + song->readData(); + QSqlQuery sq; + // get songbook name + sq.exec("SELECT name FROM Songbooks WHERE id = " + song->songbook_id ); + sq.first(); + song->songbook_name = sq.value(0).toString(); + + emit layoutChanged(); // To redraw the table + return; + } + } +} + +void SongsModel::addSong(Song song) +{ + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + song_list.append(song); + endInsertRows(); +} + +bool SongsModel::removeRows( int row, int count, const QModelIndex & parent) +{ + beginRemoveRows(parent, row, row+count-1); + // Need to remove starting from the end: + for(int i=row+count-1; i>=row; i--) + song_list.removeAt(i); + endRemoveRows(); + return true; +} + +int SongsModel::rowCount(const QModelIndex &parent) const +{ + return song_list.count(); +} + +int SongsModel::columnCount(const QModelIndex &parent) const +{ + return 5; +} + +QVariant SongsModel::data(const QModelIndex &index, int role) const +{ + if( !index.isValid() ) + return QVariant(); + + if( role == Qt::DisplayRole ) + { + Song song = song_list.at(index.row()); + if( index.column() == 0 ) //Category + return QVariant(song.category); + else if( index.column() == 1 ) //Song Number + return QVariant(song.number); + else if( index.column() == 2) //Song Title + return QVariant(song.title); + else if( index.column() == 3) //Songbook + return QVariant(song.getSongbookName()); + else if( index.column() == 4) //Tune + return QVariant(song.tune); + } + return QVariant(); +} + +QVariant SongsModel::headerData(int section, Qt::Orientation orientation,int role) const +{ + if (role == Qt::DisplayRole && orientation == Qt::Horizontal ) + { + switch(section) { + case 1: + return QVariant(tr("Num")); + case 2: + return QVariant(tr("Title")); + case 3: + return QVariant(tr("Songbook")); + case 4: + return QVariant(tr("Tune")); + } + } + return QVariant(); +} + +void SongsModel::emitLayoutChanged() +{ + emit layoutChanged(); +} + +void SongsModel::emitLayoutAboutToBeChanged() +{ + emit layoutAboutToBeChanged(); +} + +bool SongsModel::isInTable(int songid) +{ + foreach(Song agent, song_list) + if(agent.songID == songid) + return true; + return false; +} + +SongProxyModel::SongProxyModel(QObject *parent) : QSortFilterProxyModel(parent) +{ +} + +void SongProxyModel::setFilterString(QString new_string, bool new_match_beginning, bool new_exact_match) +{ + filter_string = new_string; + match_beginning = new_match_beginning; + exact_match = new_exact_match; +} + +void SongProxyModel::setSongbookFilter(QString new_songbook) +{ + songbook_filter = new_songbook; +} + +void SongProxyModel::setCategoryFilter(int category) +{ + category_filter = QString::number(category); +} + +bool SongProxyModel::filterAcceptsRow(int sourceRow, + const QModelIndex &sourceParent) const +{ + QModelIndex index0 = sourceModel()->index(sourceRow, 0, sourceParent);//Category + QModelIndex index1 = sourceModel()->index(sourceRow, 1, sourceParent);//Song Number + QModelIndex index2 = sourceModel()->index(sourceRow, 2, sourceParent);//Song Title + QModelIndex index3 = sourceModel()->index(sourceRow, 3, sourceParent);//Songbook + + QString str0 = sourceModel()->data(index0).toString();//Category + QString str1 = sourceModel()->data(index1).toString();//Song Number + QString str2 = sourceModel()->data(index2).toString();//Song Title + QString str3 = sourceModel()->data(index3).toString();//Songbook + + + // Exclude rows that are not part of the selected songbook: + if( songbook_filter != "ALL" ) + if( str3 != songbook_filter ) + return false; + + // Exclude rows that are not part of selected category + if(category_filter != "-1") + if( str0 != category_filter) + return false; + + if( filter_string.isEmpty() ) + // No filter specified + return true; + + QRegExp rx; + rx.setCaseSensitivity(Qt::CaseInsensitive); + QString s = filter_string; + s.replace(" ","\\W*"); + if(exact_match) + return ( str1.compare(filter_string, Qt::CaseInsensitive) == 0 + || str2.compare(filter_string, Qt::CaseInsensitive) == 0 ); + else if(match_beginning) + { + rx.setPattern("^"+s); + return (str1.contains(rx) + || str2.contains(rx) ); + } + else + { + rx.setPattern(s); + return (str1.contains(rx) + || str2.contains(rx) ); + } +} + +SongDatabase::SongDatabase() +{ +} + +void Song::saveUpdate() +{ + // Update song information + QSqlQuery sq; + sq.prepare("UPDATE Songs SET songbook_id = ?, number = ?, title = ?, category = ?, tune = ?, words = ?, music = ?, " + "song_text = ?, notes = ?, use_private = ?, alignment_v = ?, alignment_h = ?, color = ?, font = ?, " + "info_color = ?, info_font = ?, ending_color = ?, ending_font = ?, use_background = ?, " + "background_name = ?, background = ? WHERE id = ?"); + sq.addBindValue(songbook_id); + sq.addBindValue(number); + sq.addBindValue(title); + sq.addBindValue(category); + sq.addBindValue(tune); + sq.addBindValue(wordsBy); + sq.addBindValue(musicBy); + sq.addBindValue(songText); + sq.addBindValue(notes); + sq.addBindValue(usePrivateSettings); + sq.addBindValue(alignmentV); + sq.addBindValue(alignmentH); + sq.addBindValue((unsigned int)(color.rgb())); + sq.addBindValue(font.toString()); + sq.addBindValue((unsigned int)(infoColor.rgb())); + sq.addBindValue(infoFont.toString()); + sq.addBindValue((unsigned int)(endingColor.rgb())); + sq.addBindValue(endingFont.toString()); + sq.addBindValue(useBackground); + sq.addBindValue(backgroundName); + sq.addBindValue(pixToByte(background)); + sq.addBindValue(songID); + sq.exec(); +} + +void Song::saveNew() +{ + // Add a new song + QSqlQuery sq; + sq.prepare("INSERT INTO Songs (songbook_id,number,title,category,tune,words,music,song_text,notes," + "use_private,alignment_v,alignment_h,color,font,info_color,info_font,ending_color," + "ending_font,use_background,background_name,background) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + sq.addBindValue(songbook_id); + sq.addBindValue(number); + sq.addBindValue(title); + sq.addBindValue(category); + sq.addBindValue(tune); + sq.addBindValue(wordsBy); + sq.addBindValue(musicBy); + sq.addBindValue(songText); + sq.addBindValue(notes); + sq.addBindValue(usePrivateSettings); + sq.addBindValue(alignmentV); + sq.addBindValue(alignmentH); + sq.addBindValue((unsigned int)(color.rgb())); + sq.addBindValue(font.toString()); + sq.addBindValue((unsigned int)(infoColor.rgb())); + sq.addBindValue(infoFont.toString()); + sq.addBindValue((unsigned int)(endingColor.rgb())); + sq.addBindValue(endingFont.toString()); + sq.addBindValue(useBackground); + sq.addBindValue(backgroundName); + sq.addBindValue(pixToByte(background)); + sq.exec(); +} + +Song SongDatabase::getSong(int id) +{ + Song song(id); + song.readData(); + return song; +} + +QList SongDatabase::getSongs() +{ + QList songs; + + QSqlQuery sq; + QStringList sb_ids, sb_names; + + // get songbook names and ids + sq.exec("SELECT id, name FROM Songbooks"); + while (sq.next()) + { + sb_ids << sq.value(0).toString(); + sb_names << sq.value(1).toString(); + } + sq.clear(); + + // get songs + // 0 1 2 3 4 5 6 7 8 + // 9 10 11 12 13 14 15 16 17 + // 18 19 20 + sq.exec("SELECT id, songbook_id, number, title, category, tune, words, music, song_text, notes, " + "use_private, alignment_v, alignment_h, color, font, info_color, info_font, ending_color, ending_font, " + "use_background, background_name, background FROM Songs"); + while(sq.next()) + { + Song song; + song.songID = sq.value(0).toInt(); + song.songbook_id = sq.value(1).toString(); + song.number = sq.value(2).toInt(); + song.title = sq.value(3).toString(); + song.category = sq.value(4).toInt(); + song.tune = sq.value(5).toString(); + song.wordsBy = sq.value(6).toString(); + song.musicBy = sq.value(7).toString(); + song.songText = sq.value(8).toString(); + song.notes = sq.value(9).toString(); + song.usePrivateSettings = sq.value(10).toBool(); + if(!sq.value(11).isNull()) + song.alignmentV = sq.value(11).toInt(); + if(!sq.value(12).isNull()) + song.alignmentH = sq.value(12).toInt(); + if(!sq.value(13).isNull()) + song.color = QColor::fromRgb(sq.value(13).toUInt()); + if(!sq.value(14).isNull()) + song.font.fromString(sq.value(14).toString()); + if(!sq.value(15).isNull()) + song.infoColor = QColor::fromRgb(sq.value(15).toUInt()); + if(!sq.value(16).isNull()) + song.infoFont.fromString(sq.value(16).toString()); + if(!sq.value(17).isNull()) + song.endingColor = QColor::fromRgb(sq.value(17).toUInt()); + if(!sq.value(18).isNull()) + song.endingFont.fromString(sq.value(18).toString()); + song.useBackground = sq.value(19).toBool(); + song.backgroundName = sq.value(20).toString(); + song.background.loadFromData(sq.value(21).toByteArray()); + song.songbook_name = sb_names.at(sb_ids.indexOf(song.songbook_id)); + + songs.append(song); + } + return songs; +} + +bool Song::isValid() +{ + // Check if song is valid by song id + if(songID>0) + return true; + else + return false; +} + +int SongDatabase::lastUser(QString songbook_id) +{ + int last; + QList lastInt; + QSqlQuery sq; + sq.exec("SELECT number FROM Songs WHERE songbook_id = " +songbook_id); + while (sq.next()) + lastInt << sq.value(0).toInt(); + qSort(lastInt); + if (lastInt.isEmpty()) + last=1; + else + last = lastInt.takeLast() + 1; + return last; +} + +void SongDatabase::deleteSong(int song_id) +{ + QSqlQuery sq; + sq.exec("DELETE FROM Songs WHERE id = " + QString::number(song_id) ); +} + +QString SongDatabase::getSongbookIdStringFromName(QString songbook_name) +{ + QSqlQuery sq; + sq.exec("SELECT id FROM Songbooks WHERE name = '" + songbook_name +"'"); //ilya + sq.first(); + return sq.value(0).toString(); +} + +void SongDatabase::addSongbook(QString name, QString info) +{ + QSqlTableModel sqt; + sqt.setTable("Songbooks"); + sqt.insertRows(0,1); + sqt.setData(sqt.index(0,1),name.trimmed()); + sqt.setData(sqt.index(0,2),info); + sqt.setData(sqt.index(0,3),1); + sqt.submitAll(); +} diff --git a/song.h b/song.h new file mode 100644 index 0000000..dc0ff1a --- /dev/null +++ b/song.h @@ -0,0 +1,162 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SONG_H +#define SONG_H +#include +#include + +QString clean(QString str); +bool isStanzaTitle(QString string); +bool isStanzaVerseTitle(QString string); +bool isStanzaAndVerseTitle(QString string); +bool isStanzaRefrainTitle(QString string); +bool isStanzaAndRefrainTitle(QString string); +bool isStanzaSlideTitle(QString string); + +class Stanza +{ + // Class to hold current verse text and song info to send to projection +public: + int number; + QString stanza; + QString stanzaTitle; + QString wordsBy; + QString musicBy; + QString tune; + bool isLast; + bool usePrivateSettings; + int alignmentV; + int alignmentH; + QColor color; + QFont font; + QColor infoColor; + QFont infoFont; + QColor endingColor; + QFont endingFont; + bool useBackground; + QString backgroundName; + QPixmap background; +}; + +class Song +{ + // Class for storing song information: number, name, songbook + // The instance of this class is specific to a song & songbook. +public: + //functions + Song(); + Song(int id); + Song(int id, int num, QString songbook_id, QString songbook_name); + void readData(); + void saveUpdate(); + void saveNew(); + QStringList getSongTextList(); + Stanza getStanza(int current); + QString getSongbookName(); + bool isValid(); + + //members + int songID; // Database ID of this song + QString songbook_id; + QString songbook_name; + int number; // Number of the song in the specified songbook + QString title; + int category; + QString tune; + QString wordsBy; + QString musicBy; + QString songText; + QString notes; + bool usePrivateSettings; + int alignmentV; + int alignmentH; + QColor color; + QFont font; + QColor infoColor; + QFont infoFont; + QColor endingColor; + QFont endingFont; + bool useBackground; + QString backgroundName; + QPixmap background; + +private: + void setDefaults(); + QString getStanzaBlock(int &i, QStringList &list); + void removeLastChorus(QStringList ct, QStringList &list); +}; + +class SongsModel : public QAbstractTableModel +{ + // Class for storing the data for the song table + Q_OBJECT + Q_DISABLE_COPY(SongsModel) +public: + SongsModel(); + void setSongs(QList songs); + void addSong(Song song); + Song getSong(int row); + Song getSong(QModelIndex index); + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + + bool removeRows( int row, int count, const QModelIndex & parent = QModelIndex() ); + QList song_list; + void emitLayoutChanged(); + void emitLayoutAboutToBeChanged(); + void updateSongFromDatabase(int songid); + void updateSongFromDatabase(int newSongId, int oldSongId); + bool isInTable(int songid); +}; + +class SongProxyModel : public QSortFilterProxyModel +{ + Q_OBJECT + +public: + SongProxyModel(QObject *parent = 0); + void setFilterString(QString new_string, bool new_match_beginning, bool new_exact_match); + void setSongbookFilter(QString new_songbook); + void setCategoryFilter(int category); + bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; + +private: + QString filter_string, songbook_filter, category_filter; + bool match_beginning, exact_match; +}; + +class SongDatabase +{ +public: + SongDatabase(); + void addSongbook(QString name, QString info); + void saveUpdate(); + void saveNew(); + void deleteSong(int songId); + QString getSongbookIdStringFromName(QString songbook_name); + Song getSong(int id); + QList getSongs(); + int lastUser(QString songbook_id); +}; + +#endif // SONG_H diff --git a/songcounter.cpp b/songcounter.cpp new file mode 100644 index 0000000..3af00f1 --- /dev/null +++ b/songcounter.cpp @@ -0,0 +1,302 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "songcounter.h" +#include "ui_songcounter.h" + +SongCounter::SongCounter(QWidget *parent, QString loc) : + QDialog(parent), + ui(new Ui::SongCounter) +{ + ui->setupUi(this); + ui->closeButton->setFocus(); + + splocale = loc; + + song_count_list = getSongCounts(); + songCounterModel = new SongCounterModel; + loadCounts(); + + // Modify the column widths: + ui->countTable->setColumnWidth(0, 150);//songbook + ui->countTable->setColumnWidth(1, 65);//number + ui->countTable->setColumnWidth(2, 250);//title + ui->countTable->setColumnWidth(3, 60);////count + ui->countTable->setColumnWidth(4, 100);//date + // Decrease the row height: + ui->countTable->resizeRowsToContents(); +} + +SongCounter::~SongCounter() +{ + delete ui; +} + +void SongCounter::on_closeButton_clicked() +{ + close(); +} + +void SongCounter::on_resetButton_clicked() +{ + // Code to reset counters to 0 + QSqlQuery sq; + sq.exec("UPDATE Songs SET count = 0 , date = '' WHERE count > 0"); + + song_count_list = getSongCounts(); + loadCounts(); +} + + +void SongCounter::on_resetOneButton_clicked() +{ + // reset curently selected to 0 + int row = songCounterProxyModel->mapToSource(ui->countTable->currentIndex()).row(); + + if(row>=0) + { + Counter count_to_remove = songCounterModel->getSongCount(row); + + QSqlQuery sq; + sq.exec("UPDATE Songs SET count = 0, date = '' WHERE id = " + count_to_remove.id); + song_count_list = getSongCounts(); + loadCounts(); + } +} + +void SongCounter::loadCounts() +{ + songCounterProxyModel = new QSortFilterProxyModel; + songCounterProxyModel->setSourceModel(songCounterModel); + songCounterModel->setCounter(song_count_list); + ui->countTable->setModel(songCounterProxyModel); +} + +void SongCounter::addSongCount(Song song) +{ + int id = song.songID; + int current_count(0); + + // get current song count + QSqlQuery sq; + sq.exec("SELECT count FROM Songs WHERE id = '" + QString::number(id) + "' "); + sq.first(); + current_count = sq.value(0).toInt(); + sq.clear(); + + // add one count to song + ++current_count; + + // set todays date + QDate d(QDate::currentDate()); + + sq.exec(QString("UPDATE Songs SET count = %1 , date = '%2' WHERE id = %3").arg(QString::number(current_count)).arg(d.toString("MM:dd:yyyy")).arg(QString::number(id))); + // sq.exec("UPDATE Songs SET count = " + QString::number(current_count) + " WHERE id = " + QString::number(id)); +} + +//*********************************** +//*********************************** + +QList SongCounter::getSongCounts() +{ + QList song_counts; + Counter song_count; + QSqlQuery sq, sq1; + + // Get counts + // 0 1 2 3 4 5 + sq.exec("SELECT id, songbook_id, number, title, count, date FROM Songs WHERE count > 0"); + while (sq.next()) + { + song_count.id = sq.value(0).toString(); + QString sbid = sq.value(1).toString(); + song_count.number = sq.value(2).toInt(); + song_count.title = sq.value(3).toString(); + song_count.count = sq.value(4).toInt(); + song_count.date = sq.value(5).toString(); + updateMonth(song_count.date); + + // get songbook name + sq1.exec("SELECT name FROM Songbooks WHERE id = " + sbid); + sq1.first(); + song_count.songbook = sq1.value(0).toString(); + song_counts.append(song_count); + } + return song_counts; +} + +void SongCounter::updateMonth(QString &date) +{ + // need to use this function because Qt does not provide locale translations for all languages. + QStringList dl = date.split(":"); + + if(splocale == "en" || splocale.isEmpty()) + { + // If current translation is English, use standard English date format + if(dl.at(0)=="01") + date = QString("%1 %2, %3").arg(tr("January")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="02") + date = QString("%1 %2, %3").arg(tr("February")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="03") + date = QString("%1 %2, %3").arg(tr("March")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="04") + date = QString("%1 %2, %3").arg(tr("April")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="05") + date = QString("%1 %2, %3").arg(tr("May")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="06") + date = QString("%1 %2, %3").arg(tr("June")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="07") + date = QString("%1 %2, %3").arg(tr("July")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="08") + date = QString("%1 %2, %3").arg(tr("August")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="09") + date = QString("%1 %2, %3").arg(tr("September")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="10") + date = QString("%1 %2, %3").arg(tr("October")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="11") + date = QString("%1 %2, %3").arg(tr("November")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="12") + date = QString("%1 %2, %3").arg(tr("December")).arg(dl.at(1)).arg(dl.at(2)); + } + else + { + // If current translation is NOT English, then use standart Europe date format + if(dl.at(0)=="01") + date = QString("%2 %1 %3").arg(tr("January")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="02") + date = QString("%2 %1 %3").arg(tr("February")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="03") + date = QString("%2 %1 %3").arg(tr("March")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="04") + date = QString("%2 %1 %3").arg(tr("April")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="05") + date = QString("%2 %1 %3").arg(tr("May")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="06") + date = QString("%2 %1 %3").arg(tr("June")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="07") + date = QString("%2 %1 %3").arg(tr("July")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="08") + date = QString("%2 %1 %3").arg(tr("August")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="09") + date = QString("%2 %1 %3").arg(tr("September")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="10") + date = QString("%2 %1 %3").arg(tr("October")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="11") + date = QString("%2 %1 %3").arg(tr("November")).arg(dl.at(1)).arg(dl.at(2)); + else if(dl.at(0)=="12") + date = QString("%2 %1 %3").arg(tr("December")).arg(dl.at(1)).arg(dl.at(2)); + } + +} + +//*************************************** +//**** Song Use Counter Model **** +//*************************************** +Counter::Counter() +{ +} + +SongCounterModel::SongCounterModel() +{ +} + +void SongCounterModel::setCounter(QList song_counts) +{ + emit layoutAboutToBeChanged(); + song_count_list.clear(); + for (int i(0); i < song_counts.size(); i++) + { + Counter song_count = song_counts.at(i); + song_count_list.append(song_count); + } + emit layoutChanged(); +} + +void SongCounterModel::addCounter(Counter song_count) +{ + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + song_count_list.append(song_count); + endInsertRows(); +} + +Counter SongCounterModel::getSongCount(int row) +{ + return song_count_list.at(row); +} + +int SongCounterModel::rowCount(const QModelIndex &parent) const +{ + return song_count_list.count(); +} + +int SongCounterModel::columnCount(const QModelIndex &parent) const +{ + return 5; +} + +QVariant SongCounterModel::data(const QModelIndex &index, int role) const +{ + if( index.isValid() && role == Qt::DisplayRole ) + { + Counter song_count = song_count_list.at(index.row()); + if( index.column() == 0 ) + return QVariant(song_count.songbook); + else if(index.column() == 1 ) + return QVariant(song_count.number); + else if(index.column() == 2) + return QVariant(song_count.title); + else if(index.column() == 3) + return QVariant(song_count.count); + else if(index.column() == 4) + return QVariant(song_count.date); + } + return QVariant(); +} + +QVariant SongCounterModel::headerData(int section, + Qt::Orientation orientation, + int role) const +{ + if (role == Qt::DisplayRole && orientation == Qt::Horizontal ) + { + switch(section) { + case 0: + return QVariant(tr("Songbook")); + case 1: + return QVariant(tr("Number")); + case 2: + return QVariant(tr("Title")); + case 3: + return QVariant(tr("Count")); + case 4: + return QVariant(tr("Date")); + } + } + return QVariant(); +} + +bool SongCounterModel::removeRows(int row, int count, const QModelIndex &parent) +{ + beginRemoveRows(parent, row, row+count-1); + // Need to remove starting from the end: + for(int i=row+count-1; i>=row; i--) + song_count_list.removeAt(i); + endRemoveRows(); + return true; +} diff --git a/songcounter.h b/songcounter.h new file mode 100644 index 0000000..a0433a6 --- /dev/null +++ b/songcounter.h @@ -0,0 +1,91 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SONGCOUNTER_H +#define SONGCOUNTER_H + +#include +#include +#include "song.h" + +namespace Ui { +class SongCounter; +} + +class Counter +{ +public: + Counter(); + QString id; + QString title; + QString songbook; + int count; + QString date; + int number; +}; + +class SongCounterModel : public QAbstractTableModel +{ + // Class for storing data for Song Use Counter Table + Q_OBJECT + Q_DISABLE_COPY(SongCounterModel) + +public: + SongCounterModel(); + QList song_count_list; + + void setCounter(QList song_counts); + void addCounter(Counter song_count); + Counter getSongCount(int row); + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); + +}; + +class SongCounter : public QDialog +{ + Q_OBJECT +public: + explicit SongCounter(QWidget *parent = 0,QString loc = "en"); + ~SongCounter(); + +private: + QString splocale; + QList song_count_list; + SongCounterModel *songCounterModel; + QSortFilterProxyModel *songCounterProxyModel; + Ui::SongCounter *ui; + +public slots: + void addSongCount(Song song); + +private slots: + void updateMonth(QString& date); + void loadCounts(); + void on_resetOneButton_clicked(); + void on_resetButton_clicked(); + void on_closeButton_clicked(); + QList getSongCounts(); +}; + +#endif // SONGCOUNTER_H diff --git a/songcounter.ui b/songcounter.ui new file mode 100644 index 0000000..2bdbcbb --- /dev/null +++ b/songcounter.ui @@ -0,0 +1,87 @@ + + + SongCounter + + + + 0 + 0 + 676 + 300 + + + + Song Counter + + + + :/icons/icons/song_count.png:/icons/icons/song_count.png + + + + + + QAbstractItemView::SelectRows + + + true + + + false + + + true + + + false + + + 20 + + + + + + + + + Reset Selected + + + + + + + Reset All + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Close + + + + + + + + + + + + diff --git a/songsettingwidget.cpp b/songsettingwidget.cpp new file mode 100644 index 0000000..4840728 --- /dev/null +++ b/songsettingwidget.cpp @@ -0,0 +1,417 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "songsettingwidget.h" +#include "ui_songsettingwidget.h" + +SongSettingWidget::SongSettingWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::SongSettingWidget) +{ + ui->setupUi(this); +} + +void SongSettingWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch ( e->type() ) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +SongSettingWidget::~SongSettingWidget() +{ + delete ui; +} + +void SongSettingWidget::setSettings(SongSettings &settings, SongSettings &settings2) +{ + mySettings = settings; + mySettings2 = settings2; + loadSettings(); +} + +void SongSettingWidget::getSettings(SongSettings &settings, SongSettings &settings2) +{ + // Effects + mySettings.useShadow = ui->checkBoxUseShadow->isChecked(); + mySettings.useFading = ui->checkBoxUseFading->isChecked(); + mySettings.useBlurShadow = ui->checkBoxUseBlurredShadow->isChecked(); + + mySettings2.useShadow = ui->checkBoxUseShadow2->isChecked(); + mySettings2.useFading = ui->checkBoxUseFading2->isChecked(); + mySettings2.useBlurShadow = ui->checkBoxUseBlurredShadow2->isChecked(); + + // Save Song info + mySettings.showStanzaTitle = ui->checkBoxStanzaTitle->isChecked(); + mySettings.showSongKey = ui->checkBoxSongKey->isChecked(); + mySettings.showSongNumber = ui->checkBoxSongNumber->isChecked(); + mySettings.infoAling = ui->comboBoxInfoAlign->currentIndex(); + + mySettings2.showStanzaTitle = ui->checkBoxStanzaTitle2->isChecked(); + mySettings2.showSongKey = ui->checkBoxSongKey2->isChecked(); + mySettings2.showSongNumber = ui->checkBoxSongNumber2->isChecked(); + mySettings2.infoAling = ui->comboBoxInfoAlign2->currentIndex(); + + // Save song ending + mySettings.showSongEnding = ui->groupBoxSongEnding->isChecked(); + mySettings.endingType = ui->comboBoxEndingType->currentIndex(); + mySettings.endingPosition = ui->comboBoxEndingPosition->currentIndex(); + + mySettings2.showSongEnding = ui->groupBoxSongEnding2->isChecked(); + mySettings2.endingType = ui->comboBoxEndingType2->currentIndex(); + mySettings2.endingPosition = ui->comboBoxEndingPosition2->currentIndex(); + + // Save song background + mySettings.useBackground = ui->groupBoxSongBackground->isChecked(); + mySettings.backgroundName = ui->lineEditSongBackground->text(); + + mySettings2.useBackground = ui->groupBoxSongBackground2->isChecked(); + mySettings2.backgroundName = ui->lineEditSongBackground2->text(); + + // Save alingment + mySettings.textAlingmentV = ui->comboBoxVerticalAling->currentIndex(); + mySettings.textAlingmentH = ui->comboBoxHorizontalAling->currentIndex(); + + mySettings2.textAlingmentV = ui->comboBoxVerticalAling2->currentIndex(); + mySettings2.textAlingmentH = ui->comboBoxHorizontalAling2->currentIndex(); + + // Screen use + mySettings.screenUse = ui->spinBoxScreenUse->value(); + mySettings.screenPosition = ui->comboBoxScreenUse->currentIndex(); + + mySettings2.screenUse = ui->spinBoxScreenUse2->value(); + mySettings2.screenPosition = ui->comboBoxScreenUse2->currentIndex(); + + // Use secondary display screen settings + mySettings2.useDisp2settings = ui->groupBoxDisplay2->isChecked(); + + settings = mySettings; + settings2 = mySettings2; +} + +void SongSettingWidget::loadSettings() +{ + QPalette p; + // Set Effects + ui->checkBoxUseShadow->setChecked(mySettings.useShadow); + ui->checkBoxUseFading->setChecked(mySettings.useFading); + ui->checkBoxUseBlurredShadow->setChecked(mySettings.useBlurShadow); + + ui->checkBoxUseShadow2->setChecked(mySettings2.useShadow); + ui->checkBoxUseFading2->setChecked(mySettings2.useFading); + ui->checkBoxUseBlurredShadow2->setChecked(mySettings2.useBlurShadow); + + // Set Song Information + ui->checkBoxStanzaTitle->setChecked(mySettings.showStanzaTitle); + ui->checkBoxSongKey->setChecked(mySettings.showSongKey); + ui->checkBoxSongNumber->setChecked(mySettings.showSongNumber); + p.setColor(QPalette::Base,mySettings.infoColor); + ui->graphicViewInfoColor->setPalette(p); + ui->labelInfoFont->setText(getFontText(mySettings.infoFont)); + ui->comboBoxInfoAlign->setCurrentIndex(mySettings.infoAling); + + ui->checkBoxStanzaTitle2->setChecked(mySettings2.showStanzaTitle); + ui->checkBoxSongKey2->setChecked(mySettings2.showSongKey); + ui->checkBoxSongNumber2->setChecked(mySettings2.showSongNumber); + p.setColor(QPalette::Base,mySettings2.infoColor); + ui->graphicViewInfoColor2->setPalette(p); + ui->labelInfoFont2->setText(getFontText(mySettings2.infoFont)); + ui->comboBoxInfoAlign2->setCurrentIndex(mySettings2.infoAling); + + // Set Song Ending + ui->groupBoxSongEnding->setChecked(mySettings.showSongEnding); + p.setColor(QPalette::Base,mySettings.endingColor); + ui->graphicViewEndingColor->setPalette(p); + ui->labelEndingFont->setText(getFontText(mySettings.endingFont)); + ui->comboBoxEndingType->setCurrentIndex(mySettings.endingType); + ui->comboBoxEndingPosition->setCurrentIndex(mySettings.endingPosition); + + ui->groupBoxSongEnding2->setChecked(mySettings2.showSongEnding); + p.setColor(QPalette::Base,mySettings2.endingColor); + ui->graphicViewEndingColor2->setPalette(p); + ui->labelEndingFont2->setText(getFontText(mySettings2.endingFont)); + ui->comboBoxEndingType2->setCurrentIndex(mySettings2.endingType); + ui->comboBoxEndingPosition2->setCurrentIndex(mySettings2.endingPosition); + + // Set Song Background + ui->groupBoxSongBackground->setChecked(mySettings.useBackground); + ui->lineEditSongBackground->setText(mySettings.backgroundName); + + ui->groupBoxSongBackground2->setChecked(mySettings2.useBackground); + ui->lineEditSongBackground2->setText(mySettings2.backgroundName); + + // Set Text Properties + p.setColor(QPalette::Base,mySettings.textColor); + ui->graphicViewTextColor->setPalette(p); + ui->labelFont->setText(getFontText(mySettings.textFont)); + ui->comboBoxVerticalAling->setCurrentIndex(mySettings.textAlingmentV); + ui->comboBoxHorizontalAling->setCurrentIndex(mySettings.textAlingmentH); + + p.setColor(QPalette::Base,mySettings2.textColor); + ui->graphicViewTextColor2->setPalette(p); + ui->labelFont2->setText(getFontText(mySettings2.textFont)); + ui->comboBoxVerticalAling2->setCurrentIndex(mySettings2.textAlingmentV); + ui->comboBoxHorizontalAling2->setCurrentIndex(mySettings2.textAlingmentH); + + // Set Screen Use + ui->spinBoxScreenUse->setValue(mySettings.screenUse); + ui->comboBoxScreenUse->setCurrentIndex(mySettings.screenPosition); + + ui->spinBoxScreenUse2->setValue(mySettings2.screenUse); + ui->comboBoxScreenUse2->setCurrentIndex(mySettings2.screenPosition); + + // Set secondary screen + ui->groupBoxDisplay2->setChecked(mySettings2.useDisp2settings); + on_groupBoxDisplay2_toggled(mySettings2.useDisp2settings); +} + +void SongSettingWidget::setDispScreen2Visible(bool visible) +{ + ui->groupBoxDisplay2->setVisible(visible); +} + +void SongSettingWidget::on_checkBoxUseShadow_stateChanged(int arg1) +{ + if(arg1==2) + ui->checkBoxUseBlurredShadow->setEnabled(true); + else + { + ui->checkBoxUseBlurredShadow->setChecked(false); + ui->checkBoxUseBlurredShadow->setEnabled(false); + } +} + +void SongSettingWidget::on_checkBoxUseShadow2_stateChanged(int arg1) +{ + if(arg1==2) + ui->checkBoxUseBlurredShadow2->setEnabled(true); + else + { + ui->checkBoxUseBlurredShadow2->setChecked(false); + ui->checkBoxUseBlurredShadow2->setEnabled(false); + } +} +void SongSettingWidget::on_toolButtonInfoColor_clicked() +{ + QColor c(QColorDialog::getColor(mySettings.infoColor,this)); + if(c.isValid()) + mySettings.infoColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings.infoColor); + ui->graphicViewInfoColor->setPalette(p); +} + +void SongSettingWidget::on_toolButtonInfoColor2_clicked() +{ + QColor c(QColorDialog::getColor(mySettings2.infoColor,this)); + if(c.isValid()) + mySettings2.infoColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings2.infoColor); + ui->graphicViewInfoColor2->setPalette(p); +} + +void SongSettingWidget::on_toolButtonInfoFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings.infoFont,this); + if(ok) + mySettings.infoFont = font; + + ui->labelInfoFont->setText(getFontText(mySettings.infoFont)); +} + +void SongSettingWidget::on_toolButtonInfoFont2_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings2.infoFont,this); + if(ok) + mySettings2.infoFont = font; + + ui->labelInfoFont2->setText(getFontText(mySettings2.infoFont)); +} + +void SongSettingWidget::on_toolButtonEndingColor_clicked() +{ + QColor c(QColorDialog::getColor(mySettings.endingColor,this)); + if(c.isValid()) + mySettings.endingColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings.endingColor); + ui->graphicViewEndingColor->setPalette(p); +} + +void SongSettingWidget::on_toolButtonEndingColor2_clicked() +{ + QColor c(QColorDialog::getColor(mySettings2.endingColor,this)); + if(c.isValid()) + mySettings2.endingColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings2.endingColor); + ui->graphicViewEndingColor2->setPalette(p); +} + +void SongSettingWidget::on_toolButtonEndingFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings.endingFont,this); + if(ok) + mySettings.endingFont = font; + + ui->labelEndingFont->setText(getFontText(mySettings.endingFont)); +} + +void SongSettingWidget::on_toolButtonEndingFont2_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings2.endingFont,this); + if(ok) + mySettings2.endingFont = font; + + ui->labelEndingFont2->setText(getFontText(mySettings2.endingFont)); +} + +void SongSettingWidget::on_buttonSongBackground_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select a image for song wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + if(!filename.isNull()) + { + QPixmap p(filename); + if(p.width()>1280 || p.height()>1280) + mySettings.backgroundPix = p.scaled(1280,1280,Qt::KeepAspectRatio); + else + mySettings.backgroundPix = p; + QFileInfo fi(filename); + filename = fi.fileName(); + mySettings.backgroundName = filename; + ui->lineEditSongBackground->setText(filename); + } +} + +void SongSettingWidget::on_buttonSongBackground2_clicked() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Select a image for song wallpaper"), + ".", tr("Images(%1)").arg(getSupportedImageFormats())); + if(!filename.isNull()) + { + QPixmap p(filename); + if(p.width()>1280 || p.height()>1280) + mySettings2.backgroundPix = p.scaled(1280,1280,Qt::KeepAspectRatio); + else + mySettings2.backgroundPix = p; + QFileInfo fi(filename); + filename = fi.fileName(); + mySettings2.backgroundName = filename; + ui->lineEditSongBackground2->setText(filename); + } +} + +void SongSettingWidget::on_toolButtonColor_clicked() +{ + QColor c(QColorDialog::getColor(mySettings.textColor,this)); + if(c.isValid()) + mySettings.textColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings.textColor); + ui->graphicViewTextColor->setPalette(p); +} + +void SongSettingWidget::on_toolButtonColor2_clicked() +{ + QColor c(QColorDialog::getColor(mySettings2.textColor,this)); + if(c.isValid()) + mySettings2.textColor = c; + QPalette p; + p.setColor(QPalette::Base,mySettings2.textColor); + ui->graphicViewTextColor2->setPalette(p); +} + +void SongSettingWidget::on_toolButtonFont_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings.textFont,this); + if(ok) + mySettings.textFont = font; + + ui->labelFont->setText(getFontText(mySettings.textFont)); +} + +void SongSettingWidget::on_toolButtonFont2_clicked() +{ + bool ok; + QFont font = QFontDialog::getFont(&ok,mySettings2.textFont,this); + if(ok) + mySettings2.textFont = font; + + ui->labelFont2->setText(getFontText(mySettings2.textFont)); +} + +void SongSettingWidget::on_groupBoxDisplay2_toggled(bool arg1) +{ + ui->groupBoxEffects2->setVisible(arg1); + ui->groupBoxSongBackground2->setVisible(arg1); + ui->groupBoxSongEnding2->setVisible(arg1); + ui->groupBoxSongInfo2->setVisible(arg1); + ui->groupBoxTextProperties2->setVisible(arg1); + ui->groupBoxScreenUse2->setVisible(arg1); +} + +void SongSettingWidget::on_pushButtonDefault_clicked() +{ + SongSettings s; + mySettings = s; + mySettings2 = s; + loadSettings(); +} + +QString SongSettingWidget::getFontText(QFont font) +{ + QString st(QString("%1: %2").arg(font.rawName()).arg(font.pointSize())); + if(font.bold()) + st += ", " + tr("Bold"); + if(font.italic()) + st += ", " + tr("Italic"); + if(font.strikeOut()) + st += ", " + tr("StrikeOut"); + if(font.underline()) + st += ", " + tr("Underline"); + + return st; +} + +void SongSettingWidget::on_pushButtonApplyToAll_clicked() +{ + emit applyBackToAll(2,mySettings.backgroundName,mySettings.backgroundPix); +} + +void SongSettingWidget::setBackgroungds(QString name, QPixmap back) +{ + mySettings.backgroundName = name; + mySettings.backgroundPix = back; + mySettings2.backgroundName = name; + mySettings2.backgroundPix = back; + ui->lineEditSongBackground->setText(name); + ui->lineEditSongBackground2->setText(name); +} diff --git a/songsettingwidget.h b/songsettingwidget.h new file mode 100644 index 0000000..961743a --- /dev/null +++ b/songsettingwidget.h @@ -0,0 +1,79 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SONGSETTINGWIDGET_H +#define SONGSETTINGWIDGET_H + +//#include +#include +#include "theme.h" + +namespace Ui { +class SongSettingWidget; +} + +class SongSettingWidget : public QWidget +{ + Q_OBJECT +public: + explicit SongSettingWidget(QWidget *parent = 0); + ~SongSettingWidget(); + +public slots: + void getSettings(SongSettings &settings, SongSettings &settings2); + void setSettings(SongSettings &settings, SongSettings &settings2); + void setDispScreen2Visible(bool visible); + void setBackgroungds(QString name, QPixmap back); + +signals: + void applyBackToAll(int t, QString backName, QPixmap background); + +private slots: + void loadSettings(); + void on_checkBoxUseShadow_stateChanged(int arg1); + void on_checkBoxUseShadow2_stateChanged(int arg1); + void on_toolButtonInfoColor_clicked(); + void on_toolButtonInfoColor2_clicked(); + void on_toolButtonInfoFont_clicked(); + void on_toolButtonInfoFont2_clicked(); + void on_toolButtonEndingColor_clicked(); + void on_toolButtonEndingColor2_clicked(); + void on_toolButtonEndingFont_clicked(); + void on_toolButtonEndingFont2_clicked(); + void on_buttonSongBackground_clicked(); + void on_buttonSongBackground2_clicked(); + void on_toolButtonColor_clicked(); + void on_toolButtonColor2_clicked(); + void on_toolButtonFont_clicked(); + void on_toolButtonFont2_clicked(); + void on_groupBoxDisplay2_toggled(bool arg1); + void on_pushButtonDefault_clicked(); + QString getFontText(QFont font); + void on_pushButtonApplyToAll_clicked(); + +private: + SongSettings mySettings; + SongSettings mySettings2; + + Ui::SongSettingWidget *ui; +protected: + virtual void changeEvent(QEvent *e); +}; + +#endif // SONGSETTINGWIDGET_H diff --git a/songsettingwidget.ui b/songsettingwidget.ui new file mode 100644 index 0000000..d6ccaed --- /dev/null +++ b/songsettingwidget.ui @@ -0,0 +1,1592 @@ + + + SongSettingWidget + + + + 0 + 0 + 417 + 1009 + + + + + + + Effects + + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + + + Use fading effects + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use shadow + + + + + + + false + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use blurred shadow + + + + + + + + + + Song Information + + + + + + + + Show Stanza Title + + + + + + + Show Song Key + + + + + + + Show Song Number + + + + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + + + + + + + + + + + Alignment: + + + + + + + + Above Text + + + + + Below Text + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Show Song Ending + + + true + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + + + + + + + + + + + Type: + + + + + + + + 0 + 0 + + + + + * * * + + + + + - - - + + + + + ° ° ° + + + + + • • • + + + + + ● ● ● + + + + + ▪ ▪ ▪ + + + + + ■ ■ ■ + + + + + Song Copyright Info + + + + + + + + Position: + + + + + + + + Below Song Text + + + + + Bottom of Screen + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Use Background Image + + + true + + + + + + true + + + + + + + Browse... + + + + + + + Apply this background to all active backgrounds. + + + + :/icons/icons/apply_to_all.png:/icons/icons/apply_to_all.png + + + + + + + + + + Song Text Properties + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + 0 + 0 + + + + true + + + + + + + + + + + Alingment: + + + + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 59 + 20 + + + + + + + + + + + + + Amount Of Screen To Use + + + + + + Vertical Screen Use: + + + + + + + Percent of screen to be used. + + + % + + + 100 + + + + + + + Position: + + + + + + + Select to use either top portion of the screen or bottom. + + + + Top of screen + + + + + Bottom of screen + + + + + + + + Qt::Horizontal + + + + 97 + 20 + + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 170 + 85 + 255 + + + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 85 + 0 + 127 + + + + + + + 170 + 85 + 255 + + + + + + + + + 120 + 120 + 120 + + + + + + + 120 + 120 + 120 + + + + + + + 120 + 120 + 120 + + + + + + + 51 + 153 + 255 + + + + + + + + Use Separate Secondary Display Screen Settings + + + true + + + true + + + + 0 + + + 0 + + + 0 + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Effects + + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + + + Use fading effects + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use shadow + + + + + + + false + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + + + Use blurred shadow + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Song Information + + + + + + + + Show Stanza Title + + + + + + + Show Song Key + + + + + + + Show Song Number + + + + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + + + + + + + + + + + Alignment: + + + + + + + + Above Text + + + + + Below Text + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Show Song Ending + + + true + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + + + + + + + + + + + Type: + + + + + + + + 0 + 0 + + + + + * * * + + + + + - - - + + + + + ° ° ° + + + + + • • • + + + + + ● ● ● + + + + + ▪ ▪ ▪ + + + + + ■ ■ ■ + + + + + Song Copyright Info + + + + + + + + Position: + + + + + + + + Below Song Text + + + + + Bottom of Screen + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Use Background Image + + + true + + + + + + true + + + + + + + Browse... + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Song Text Properties + + + + + + + + Color... + + + + + + + + 0 + 0 + + + + + 50 + 20 + + + + + 50 + 19 + + + + + + + + Qt::Vertical + + + + + + + Font... + + + + + + + + 0 + 0 + + + + true + + + + + + + + + + + Alignment: + + + + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + + + Left + + + + + Center + + + + + Right + + + + + + + + Qt::Horizontal + + + + 59 + 20 + + + + + + + + + + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 85 + 0 + 127 + + + + + + + + + 120 + 120 + 120 + + + + + + + + Amount Of Screen To Use + + + + + + Vertical Screen Use + + + + + + + Percent of screen to be used. + + + % + + + 100 + + + + + + + Position: + + + + + + + Select to use either top portion of the screen or bottom. + + + + Top of Screen + + + + + Bottom of Screen + + + + + + + + Qt::Horizontal + + + + 110 + 20 + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 6 + + + + + + + + + + Reset All To Default + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + checkBoxUseFading + checkBoxUseShadow + checkBoxUseBlurredShadow + checkBoxStanzaTitle + checkBoxSongKey + checkBoxSongNumber + toolButtonInfoColor + graphicViewInfoColor + toolButtonInfoFont + comboBoxInfoAlign + groupBoxSongEnding + toolButtonEndingColor + graphicViewEndingColor + toolButtonEndingFont + comboBoxEndingType + comboBoxEndingPosition + groupBoxSongBackground + buttonSongBackground + lineEditSongBackground + toolButtonColor + graphicViewTextColor + toolButtonFont + comboBoxVerticalAling + comboBoxHorizontalAling + spinBoxScreenUse + comboBoxScreenUse + groupBoxDisplay2 + checkBoxUseFading2 + checkBoxUseShadow2 + checkBoxUseBlurredShadow2 + checkBoxStanzaTitle2 + checkBoxSongKey2 + checkBoxSongNumber2 + toolButtonInfoColor2 + graphicViewInfoColor2 + toolButtonInfoFont2 + comboBoxInfoAlign2 + groupBoxSongEnding2 + toolButtonEndingColor2 + graphicViewEndingColor2 + toolButtonEndingFont2 + comboBoxEndingType2 + comboBoxEndingPosition2 + groupBoxSongBackground2 + buttonSongBackground2 + lineEditSongBackground2 + toolButtonColor2 + graphicViewTextColor2 + toolButtonFont2 + comboBoxVerticalAling2 + comboBoxHorizontalAling2 + spinBoxScreenUse2 + comboBoxScreenUse2 + pushButtonDefault + + + + + + diff --git a/songwidget.cpp b/songwidget.cpp new file mode 100644 index 0000000..99b80ff --- /dev/null +++ b/songwidget.cpp @@ -0,0 +1,620 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include +#include "songwidget.h" +#include "ui_songwidget.h" + +SongWidget::SongWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::SongWidget) +{ + ui->setupUi(this); + + songs_model = new SongsModel; + proxy_model = new SongProxyModel(this); + proxy_model->setSourceModel(songs_model); + proxy_model->setDynamicSortFilter(true); + ui->songs_view->setModel(proxy_model); + connect(ui->songs_view->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex&, const QModelIndex&)), + this, SLOT(songsViewRowChanged(const QModelIndex&, const QModelIndex&))); + + // Decrease the row height: + ui->songs_view->resizeRowsToContents(); + + // Modify the column widths: + ui->songs_view->setColumnWidth(0, 0);//Category + ui->songs_view->setColumnWidth(1, 40);//Song Number + ui->songs_view->setColumnWidth(2, 150);//Song Title + ui->songs_view->setColumnWidth(3, 80);//Songbook + ui->songs_view->setColumnWidth(4, 50);//Tune + + proxy_model->setSongbookFilter("ALL"); + proxy_model->setCategoryFilter(-1); + loadSongbooks(); + loadCategories(false); + + isSpinboxEditing = false; + + // set highligher + highlight = new HighlighterDelegate(ui->listPreview); + ui->listWidgetDummy->setVisible(false); +} + +SongWidget::~SongWidget() +{ + delete ui; + delete songs_model; +} + +void SongWidget::songsViewRowChanged(const QModelIndex ¤t, const QModelIndex &previous) +{ + if( current.isValid() ) + { + // Called when a new song is selected in the songs table + int row = proxy_model->mapToSource(current).row(); + Song song = songs_model->getSong(row); + sendToPreview(song); + isSongFromSchelude = false; + } + updateButtonStates(); +} + +void SongWidget::updateButtonStates() +{ + bool enable_live; + + // focus in songs table + if( proxy_model->rowCount() == 0 ) + enable_live = false; + else + enable_live = ui->songs_view->currentIndex().isValid(); + + ui->btnLive->setEnabled(enable_live); +} + +void SongWidget::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void SongWidget::loadSongbooks() +{ + QSqlQuery sq; + QStringList sbor; + sq.exec("SELECT id, name FROM Songbooks"); + while (sq.next()) + { + songbookList << sq.value(0).toString(); + sbor << sq.value(1).toString(); + } + ui->songbook_menu->addItem(tr("All songbooks")); + ui->songbook_menu->addItems(sbor); + allSongs = song_database.getSongs(); + songs_model->setSongs(allSongs); + + // Hide song search items + ui->comboBoxSearchType->setVisible(false); + if(ui->pushButtonClearResults->isVisible()) + ui->listPreview->setItemDelegate(ui->listWidgetDummy->itemDelegate()); + ui->pushButtonClearResults->setVisible(false); + ui->labelSearchType->setText(tr("Filter Type:")); + ui->labelFilter->setText(tr("Filter:")); + + // update the song spin box and redraw the table: + on_songbook_menu_currentIndexChanged( ui->songbook_menu->currentIndex() ); +} + +Song SongWidget::currentSong() +{ + // Returns the selected song + QModelIndex current_index; + int current_row; + current_index = proxy_model->mapToSource(ui->songs_view->currentIndex()); + current_row = current_index.row(); + + Song return_song; + if(current_row>=0) + return_song = songs_model->getSong(current_row); + return return_song; +} + +void SongWidget::selectMatchingSong(QString text) +{ + bool startonly = (ui->comboBoxFilterType->currentIndex() == 1); + // Look for a song matching . Select it and scroll to show it. + for (int i = 0; i < songs_model->song_list.size(); i++) + { + QString s = songs_model->song_list.at(i).title; + bool matches; + if( startonly ) + matches = s.startsWith(text); + else + matches = s.contains(text); + + if( matches ) + { + // Select the row : + ui->songs_view->selectRow(i); + // Scroll the songs table to the row : + ui->songs_view->scrollTo( songs_model->index(i, 0) ); + return; + } + } +} + +void SongWidget::sendToPreview(Song song) +{ + QStringList song_list = song.getSongTextList(); + ui->listPreview->clear(); + ui->listPreview->addItems(song_list); + ui->listPreview->setCurrentRow(0); + ui->preview_label->setText(song.title); + if(song.notes.isEmpty()) + ui->label_notes->setVisible(false); + else + { + ui->label_notes->setText(QString("%1\n%2").arg(tr("Notes:","Notes to songs")).arg(song.notes)); + ui->label_notes->setVisible(true); + } + preview_song = song; +} + +void SongWidget::sendToPreviewFromSchedule(Song &song) +{ + ui->songs_view->clearSelection(); + isSongFromSchelude = true; + sendToPreview(song); +} + +void SongWidget::sendToProjector(Song song, int row) +{ + // Display the specified song text in the right-most column of softProjector: + emit sendSong(song, row); + + // Add a count to a song + counter.addSongCount(song); +} + +void SongWidget::on_songbook_menu_currentIndexChanged(int index) +{ + // Called when a different songbook is selected from the pull-down menu + + songs_model->emitLayoutAboutToBeChanged(); //prepeare to chage layout + if( index == 0 ) + { + proxy_model->setSongbookFilter("ALL"); + ui->song_num_spinbox->setEnabled(false); + } + else + { + QString songbook_name = ui->songbook_menu->currentText(); + proxy_model->setSongbookFilter(songbook_name); + ui->song_num_spinbox->setEnabled(true); + } + + updateButtonStates(); + + songs_model->emitLayoutChanged(); // forces the view to redraw +} + +void SongWidget::on_song_num_spinbox_valueChanged(int value) +{ + // checks if spinbox just got into eding mode, it yes, then it reset searchbox and sorts song table view + if (!isSpinboxEditing) + { + isSpinboxEditing = true; + ui->lineEditSearch->clear(); + on_lineEditSearch_textEdited(""); + ui->songs_view->sortByColumn(0,Qt::AscendingOrder); + } + + //int max_num = 0; + // Look for a song with number . Select it and scroll to show it. + for (int i = 0; i < songs_model->song_list.size(); i++) + { + Song s = songs_model->song_list.at(i); + if( s.number == value && s.songbook_name == ui->songbook_menu->currentText() ) + { + // Found a song with this song number + QModelIndex source_index = songs_model->index(i, 0); + if( proxy_model->filterAcceptsRow(source_index.row(), source_index) ) + { + // If this row is visible + QModelIndex proxy_index = proxy_model->mapFromSource(source_index); + + // Select the row : + ui->songs_view->selectRow(proxy_index.row()); + // Scroll the songs table to the row : + ui->songs_view->scrollTo(proxy_index); + } + else + { + // This song is filtered out using text filter, so can't select + // it in the table. Just show it: + sendToPreview(s); + isSongFromSchelude = false; + } + return; + } + } + + QMessageBox mb(this); + mb.setText(tr("Could not find song with number ") + QString::number(value) ); + mb.setWindowTitle(tr("No such song")); + mb.setIcon(QMessageBox::Warning); + mb.exec(); +} + +void SongWidget::on_song_num_spinbox_editingFinished() +{ + // Called when the user presses enter after editing the song number + // At this point, the song is already selected in the songs table + // Resets spin box to non eding mode + isSpinboxEditing = false; +} + +void SongWidget::on_btnLive_clicked() +{ + sendToProjector(preview_song, ui->listPreview->currentRow()); // Send current selected +} + +void SongWidget::on_lineEditSearch_textEdited(QString text) +{ + // Check if full-text search is in progress + // If no full-text search is in progress, then filter + if(!ui->pushButtonClearResults->isVisible()) + { + // These two options are mutually exclusive: + bool match_beginning = (ui->comboBoxFilterType->currentIndex() == 1); + bool exact_match = (ui->comboBoxFilterType->currentIndex() == 2); + + songs_model->emitLayoutAboutToBeChanged(); // prepares view to be redrawn + proxy_model->setFilterString(text, match_beginning, exact_match); + songs_model->emitLayoutChanged(); // forces the view to redraw + + // Select the first row that matches the new filter: + ui->songs_view->selectRow(0); + ui->songs_view->scrollToTop(); + + // Load Preview on song changes + int row = proxy_model->mapToSource(ui->songs_view->currentIndex()).row(); + if( row>=0) + { + Song song = songs_model->getSong(row); + sendToPreview(song); + isSongFromSchelude = false; + } + } + updateButtonStates(); +} + +Song SongWidget::getSongToEdit() +{ + isScheduleSongEdited = isSongFromSchelude; + return preview_song; +} + +void SongWidget::on_songs_view_doubleClicked(QModelIndex index) +{ + // Called when a song is double-clicked + int row = proxy_model->mapToSource(index).row(); + Song song = songs_model->getSong(row); + + emit addToSchedule(song); + sendToPreview(song); + isSongFromSchelude = false; +} + +void SongWidget::on_songs_view_clicked(QModelIndex index) +{ + // This method is implemented for the case where the use clicks + // in the playlist table without changing the previous selection. + Song song = songs_model->getSong(proxy_model->mapToSource(index)); + sendToPreview(song); + isSongFromSchelude = false; + updateButtonStates(); +} + +void SongWidget::on_listPreview_doubleClicked(QModelIndex index) +{ + sendToProjector(preview_song, index.row()); +} + +void SongWidget::updateSongbooks() +{ + emit setWaitCursor(); + // Reload the songbook and reselect the one that used to be selected + // if it's still available, otherwise show all songbooks + + QString current_songbook = ui->songbook_menu->currentText(); + QString item0 = ui->songbook_menu->itemText(0); + ui->songbook_menu->clear(); + loadSongbooks(); + + int new_index = ui->songbook_menu->findText(current_songbook); + if( new_index == -1 ) + new_index = 0; // All songbooks + + ui->songbook_menu->setCurrentIndex(new_index); + emit setArrowCursor(); +} + +void SongWidget::updateSongFromDatabase(int songid, int initial_sid) +{ + songs_model->updateSongFromDatabase(songid, initial_sid); + + // Update in allSongs list + for(int i(0);ipreview_label->clear(); + ui->listPreview->clear(); + int row = ui->songs_view->currentIndex().row(); + proxy_model->removeRow(row); +} + +void SongWidget::addNewSong(Song song, int initial_sid) +{ + songs_model->addSong(song); + allSongs.append(song); + ui->songs_view->selectRow(songs_model->rowCount()-1); + + sendToPreview(song); +} + +void SongWidget::filterModeChanged() +{ + // Re-apply the filter: + QString new_text = ui->lineEditSearch->text(); + on_lineEditSearch_textEdited(new_text); +} + +void SongWidget::on_comboBoxFilterType_currentIndexChanged(int index) +{ + filterModeChanged(); +} + +QByteArray SongWidget::getSplitterState() +{ + return ui->splitter->saveState(); +} + +void SongWidget::setSplitterState(QByteArray& state) +{ + ui->splitter->restoreState(state); +} + +void SongWidget::retranslateUis() +{ + ui->songbook_menu->setItemText(0,tr("All songbooks")); + loadCategories(true); +} + +bool SongWidget::isSongSelected() +{ + if(ui->songs_view->selectionModel()->selectedRows().count() > 0) + return true; + else + return false; +} + +void SongWidget::loadCategories(bool ui_update) +{ + EditWidget e; + + // retrieve current category id + int cur_cat_id(-1); + int cur_index = ui->comboBoxCategory->currentIndex(); + if(cur_index>0) + cur_cat_id = cat_ids.at(cur_index-1); + + // get categories + QStringList cat_list; + cat_list = e.categories(); + + // create sorting by name and refrance categories id + QMap cmap; + for(int i(0); i< cat_list.count(); ++i) + cmap.insert(cat_list.at(i),i); + cat_ids.clear(); + cat_list.clear(); + cat_ids.append(cmap.values()); + cat_list.append(cmap.keys()); + + if(ui_update) // update categories to retranslate + { + ui->comboBoxCategory->setItemText(0,tr("All song categories")); + for(int i(1); i <= ui->comboBoxCategory->count()-1;++i) + { + ui->comboBoxCategory->setItemText(i,cat_list.at(i-1)); + } + + // reset to selected category + if(cur_cat_id==-1) + cur_index=0; + else + cur_index= cat_ids.indexOf(cur_cat_id)+1; + ui->comboBoxCategory->setCurrentIndex(cur_index); + } + else if(!ui_update) // initialize categories + { + ui->comboBoxCategory->addItem(tr("All song categories")); + ui->comboBoxCategory->addItems(cat_list); + } +} + +void SongWidget::on_comboBoxCategory_currentIndexChanged(int index) +{ + if(index!=-1) + { + songs_model->emitLayoutAboutToBeChanged(); //prepeare to chage layout + if(index==0) + proxy_model->setCategoryFilter(index-1); + else + proxy_model->setCategoryFilter(cat_ids.at(index-1)); + songs_model->emitLayoutChanged(); + } +} + +void SongWidget::on_pushButtonSearch_clicked() +{ + QString search_text = ui->lineEditSearch->text(); + search_text = clean(search_text); // remove all none alphanumeric charecters + QList search_results; + int type = ui->comboBoxSearchType->currentIndex(); + + // Make sure that there is some text to do a search for, if none, then return + if(search_text.count()<1) + { + ui->lineEditSearch->clear(); + ui->lineEditSearch->setPlaceholderText(tr("Please enter search text")); + return; + } + + // set filter + QRegExp rx; + rx.setCaseSensitivity(Qt::CaseInsensitive); + search_text.replace(" ","\\W*"); + if(type == 1 ) + // Search whole word exsact phrase only + rx.setPattern("\\b"+search_text+"\\b"); + else if(type == 2) // contains all words + // Search begining of every line + rx.setPattern("\n"+search_text); + else if(type == 3 || type == 4) + { + // Search for any of the search words + search_text.replace("\\W*","|"); + rx.setPattern("\\b("+search_text+")\\b"); + } + else + // Search text phrase + rx.setPattern(search_text); + + // perform search + for(int i(0);ipushButtonSearch->setText(tr("Search")); + ui->comboBoxFilterType->setVisible(false); + ui->labelSearchType->setText(tr("Search Type:")); + ui->labelFilter->setText(tr("Search:")); + ui->comboBoxSearchType->setVisible(true); + ui->pushButtonClearResults->setVisible(true); + + // set new songs_model with search relusts + songs_model->setSongs(search_results); + + // setup higligher + ui->listPreview->setItemDelegate(highlight); + if(type == 2) + highlight->highlighter->setHighlightText(search_text); + else + highlight->highlighter->setHighlightText(rx.pattern()); + // reset filter on song table to show all results + songs_model->emitLayoutAboutToBeChanged(); // prepares view to be redrawn + proxy_model->setFilterString("", false, false); + songs_model->emitLayoutChanged(); // forces the view to redraw + + ui->songs_view->selectRow(0); + ui->songs_view->scrollToTop(); + + int row = proxy_model->mapToSource(ui->songs_view->currentIndex()).row(); + if( row>=0) + { + sendToPreview(songs_model->getSong(row)); + isSongFromSchelude = false; + } + else + { + Song s; + sendToPreview(s); + } + + updateButtonStates(); +} + +void SongWidget::on_pushButtonClearResults_clicked() +{ + // try to reset highliting settings on preview list + ui->listPreview->setItemDelegate(ui->listWidgetDummy->itemDelegate()); + + ui->lineEditSearch->setPlaceholderText(""); + + // Hide song filter items and show search items + //ui->pushButtonSearch->setText(""); + ui->comboBoxFilterType->setVisible(true); + ui->comboBoxSearchType->setVisible(false); + ui->pushButtonClearResults->setVisible(false); + ui->labelSearchType->setText(tr("Filter Type:")); + ui->labelFilter->setText(tr("Filter:")); + songs_model->setSongs(allSongs); + ui->lineEditSearch->clear(); + Song s; + sendToPreview(s); + updateButtonStates(); +} diff --git a/songwidget.h b/songwidget.h new file mode 100644 index 0000000..971e4ec --- /dev/null +++ b/songwidget.h @@ -0,0 +1,103 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SONGWIDGET_H +#define SONGWIDGET_H + +#include +#include "song.h" +#include "songcounter.h" +#include "editwidget.h" + +namespace Ui { +class SongWidget; +} + +class SongWidget : public QWidget { + Q_OBJECT + Q_DISABLE_COPY(SongWidget) +public: + explicit SongWidget(QWidget *parent = 0); + virtual ~SongWidget(); + Song currentSong(); + SongsModel *songs_model; + SongCounter counter; + +public slots: + void retranslateUis(); + void deleteSong(); + Song getSongToEdit(); + void updateSongbooks(); + bool isSongSelected(); + void updateSongFromDatabase(int songid, int initial_sid); + void addNewSong(Song song, int initial_sid); + QByteArray getSplitterState(); + void setSplitterState(QByteArray& state); + void sendToPreviewFromSchedule(Song &song); + void sendToProjector(Song song, int row); + void songsViewRowChanged(const QModelIndex ¤t, const QModelIndex &previous); + +protected: + virtual void changeEvent(QEvent *e); + +signals: + void setWaitCursor(); + void setArrowCursor(); + void sendSong(Song song, int currentItem); + void addToSchedule(Song &song); + +private slots: + void on_comboBoxCategory_currentIndexChanged(int index); + void on_listPreview_doubleClicked(QModelIndex index); + void on_songs_view_clicked(QModelIndex index); + void on_song_num_spinbox_editingFinished(); + void on_songs_view_doubleClicked(QModelIndex index); + void on_lineEditSearch_textEdited(QString Text); + void on_btnLive_clicked(); + void on_song_num_spinbox_valueChanged(int value); + void on_songbook_menu_currentIndexChanged(int index); + void selectMatchingSong(QString title); + void sendToPreview(Song song); + void loadSongbooks(); + void updateButtonStates(); + void filterModeChanged(); + void loadCategories(bool ui_update); + void on_pushButtonSearch_clicked(); + void on_pushButtonClearResults_clicked(); + void on_comboBoxFilterType_currentIndexChanged(int index); + +private: + Ui::SongWidget *ui; + QString songbook; + QStringList allTitles; + QStringList songbookList; + int titleType; + SongDatabase song_database; + SongProxyModel *proxy_model; + bool isSpinboxEditing; + bool isSongFromSchelude; + bool isScheduleSongEdited; + Song preview_song; + + QList cat_ids; + QList allSongs; + HighlighterDelegate *highlight; +}; + +#endif // SONGWIDGET_H diff --git a/songwidget.ui b/songwidget.ui new file mode 100644 index 0000000..2579be9 --- /dev/null +++ b/songwidget.ui @@ -0,0 +1,375 @@ + + + SongWidget + + + + 0 + 0 + 575 + 528 + + + + + 0 + 0 + + + + + 400 + 0 + + + + Form + + + + + + Qt::Horizontal + + + false + + + + + + + + + Use this menu to show only songs beloning to a particular Songbook + + + Select Songbook to use + + + QComboBox::AdjustToMinimumContentsLengthWithIcon + + + true + + + + + + + Selects a song by the number in the selected Songbook + + + 1 + + + 2800 + + + 1 + + + + + + + + + + + + + + Filter: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + 125 + 0 + + + + Use this field to limit the display of the songs to only the ones that contain the specified text in the song title or song number + + + + + + + + + + + Search Type: + + + + + + + + 0 + 0 + + + + + Contains + + + + + Begins + + + + + Exact Match + + + + + + + + + 0 + 0 + + + + + Contains Phrase + + + + + Contains Word Phrase + + + + + Line Begins + + + + + Contains Any Word + + + + + Contains All Words + + + + + + + + Search + + + + :/icons/icons/search.png:/icons/icons/search.png + + + Return + + + + + + + + + + + + 10 + 10 + + + + true + + + 5 + + + + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 120 + 120 + 120 + + + + + + + + + 75 + true + + + + Done Searching? - Clear Search Results + + + + + + + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + true + + + true + + + false + + + 20 + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Quickly display the selected song on the screen without adding it to playlist first + + + Go Live (F5) + + + + :/icons/icons/go_live.png:/icons/icons/go_live.png + + + F5 + + + + + + + + + + + + + 150 + 0 + + + + true + + + 5 + + + + + + + + + + true + + + + + + + + + + + songbook_menu + song_num_spinbox + comboBoxCategory + lineEditSearch + comboBoxSearchType + pushButtonSearch + listWidgetDummy + pushButtonClearResults + songs_view + listPreview + btnLive + + + + + + diff --git a/spfunctions.cpp b/spfunctions.cpp new file mode 100644 index 0000000..7a8f8cc --- /dev/null +++ b/spfunctions.cpp @@ -0,0 +1,64 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "spfunctions.h" +//spFunctions::spFunctions() +//{ +//} + +QByteArray pixToByte(const QPixmap & pmap) +{ + QByteArray bytes; + QBuffer buffer(&bytes); + buffer.open(QIODevice::WriteOnly); + pmap.save(&buffer, "JPG",90); + return buffer.data(); +} + +bool isAnnounceTitle(QString string) +{ + // Check if the line is verse title line + if(string.startsWith("Announce")) + return true; + else if (string.startsWith("Slide")) + return true; + else if (string.startsWith(QString::fromUtf8("Объявление"))) + return true; + else if (string.startsWith(QString::fromUtf8("Слайд"))) + return true; + else if (string.startsWith(QString::fromUtf8("Оголошення"))) + return true; + else if (string.startsWith(QString::fromUtf8("Ankündigung"))) + return true; + else if (string.startsWith(QString::fromUtf8("Oznámení"))) + return true; + else if (string.startsWith(QString::fromUtf8("Snímek"))) + return true; + else + return false; +} + +QString getSupportedImageFormats() +{ + QList im = QImageReader::supportedImageFormats(); + QString imfor; + foreach (QByteArray f,im) + imfor += " *." + f; + return imfor.trimmed(); +} diff --git a/spfunctions.h b/spfunctions.h new file mode 100644 index 0000000..9499606 --- /dev/null +++ b/spfunctions.h @@ -0,0 +1,39 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef SPFUNCTIONS_H +#define SPFUNCTIONS_H + +#include +#include +#include +#include +#include + + +QByteArray pixToByte(const QPixmap & pmap); +bool isAnnounceTitle(QString string); +QString getSupportedImageFormats(); +//class spFunctions +//{ +//public: +// spFunctions(); +//}; + +#endif // SPFUNCTIONS_H diff --git a/spimageprovider.cpp b/spimageprovider.cpp new file mode 100644 index 0000000..7b21106 --- /dev/null +++ b/spimageprovider.cpp @@ -0,0 +1,16 @@ +#include "spimageprovider.hpp" + +SpImageProvider::SpImageProvider() : + QQuickImageProvider(QQuickImageProvider::Pixmap) +{ +} + +QPixmap SpImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) +{ + return m_pixmap; +} + +void SpImageProvider::setPixMap(QPixmap &p) +{ + m_pixmap = p; +} diff --git a/spimageprovider.hpp b/spimageprovider.hpp new file mode 100644 index 0000000..aab69d6 --- /dev/null +++ b/spimageprovider.hpp @@ -0,0 +1,20 @@ +#ifndef SPIMAGEPROVIDER_HPP +#define SPIMAGEPROVIDER_HPP + +#include + +class SpImageProvider : public QQuickImageProvider +{ + +public: + SpImageProvider(); + QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize); + + void setPixMap(QPixmap &p); + +private: + QPixmap m_pixmap; +}; + + +#endif // SPIMAGEPROVIDER_HPP diff --git a/theme.cpp b/theme.cpp new file mode 100644 index 0000000..0e3b333 --- /dev/null +++ b/theme.cpp @@ -0,0 +1,514 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "theme.h" +/* +PassiveSettings::PassiveSettings() +{ + useBackground = false; + backgroundName = ""; + backgroundPix = QPixmap(); + useDisp2settings = false; +} + +BibleSettings::BibleSettings() +{ + // Apply Bible Defaults + useShadow = true; + useFading = true; + useBlurShadow = false; + useBackground = false; + backgroundName = ""; + backgroundPix = QPixmap(); + textFont.fromString("Arial,48,-1,5,50,0,0,0,0,0"); + textColor = QColor(Qt::white); + textAlingmentV = 0; + textAlingmentH = 0; + captionFont.fromString("Arial,36,-1,5,50,0,0,0,0,0"); + captionColor = QColor(Qt::white); + captionAlingment = 2; + captionPosition = 1; + useAbbriviation = false; + screenUse = 100; + screenPosition = 1; + useDisp2settings = false; +} + +SongSettings::SongSettings() +{ + // Apply song defaults + useShadow = true; + useFading = true; + useBlurShadow = false; + showStanzaTitle = false; + showSongKey = false; + showSongNumber = false; + infoColor = QColor(Qt::white); + infoFont.fromString("Arial,36,-1,5,50,0,0,0,0,0"); + infoAling = 0; + showSongEnding = true; + endingColor = QColor(Qt::white); + endingFont.fromString("Arial,48,-1,5,50,0,0,0,0,0"); + endingType = 0; + endingPosition = 1; + useBackground = false; + backgroundName = ""; + backgroundPix = QPixmap(); + textColor = QColor(Qt::white); + textFont.fromString("Arial,48,-1,5,50,0,0,0,0,0"); + textAlingmentV = 1; + textAlingmentH = 1; + screenUse = 100; + screenPositon = 1; + useDisp2settings = false; +} + +AnnounceSettings::AnnounceSettings() +{ + // Apply annouce defaults + useShadow = true; + useFading = true; + useBlurShadow = false; + useBackground = false; + backgroundName = ""; + backgroundPix = QPixmap(); + textFont.fromString("Arial,48,-1,5,50,0,0,0,0,0"); + textColor = QColor(Qt::white); + textAlingmentV = 0; + textAlingmentH = 1; + useDisp2settings = false; +} +*/ +ThemeInfo::ThemeInfo() +{ + themeId = 0; + name = "Default"; + comments = "Default SoftProjector Theme"; +} + +Theme::Theme() +{ + m_info = ThemeInfo(); + // themeId = 0; + // name = "Default"; + // comments = "Default SoftProjector Theme"; +} + +void Theme::saveThemeNew() +{ + QSqlQuery sq; + sq.prepare("INSERT INTO Themes (name, comment) VALUES (?,?)"); + sq.addBindValue(m_info.name); + sq.addBindValue(m_info.comments); + sq.exec(); + + // get new theme id + sq.exec("SELECT seq FROM sqlite_sequence WHERE name = 'Themes'"); + sq.first(); + m_info.themeId = sq.value(0).toInt(); + savePassiveNew(1,passive); + savePassiveNew(2,passive2); + saveBibleNew(1,bible); + saveBibleNew(2,bible2); + saveSongNew(1,song); + saveSongNew(2,song2); + saveAnnounceNew(1,announce); + saveAnnounceNew(2,announce2); +} + +void Theme::savePassiveNew(int screen, TextSettings &settings) +{ + QSqlQuery sq; + sq.prepare("INSERT INTO ThemePassive (theme_id, disp, use_background, background_name, backgroundPix, use_disp_2) " + "VALUES(?,?,?,?,?,?)"); + sq.addBindValue(m_info.themeId); + sq.addBindValue(screen); + sq.addBindValue(settings.useBackground); + sq.addBindValue(settings.backgroundName); + sq.addBindValue(pixToByte(settings.backgroundPix)); + sq.addBindValue(settings.useDisp2settings); + sq.exec(); +} + +void Theme::saveBibleNew(int screen, BibleSettings &settings) +{ + QSqlQuery sq; + sq.prepare("INSERT INTO ThemeBible (theme_id, disp, use_shadow, use_fading, use_blur_shadow, use_background, " + "background_name, background, text_font, text_color, text_align_v, text_align_h, caption_font, " + "caption_color, caption_align, caption_position, use_abbr, screen_use, screen_position, use_disp_2) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + sq.addBindValue(m_info.themeId); + sq.addBindValue(screen); + sq.addBindValue(settings.useShadow); + sq.addBindValue(settings.useFading); + sq.addBindValue(settings.useBlurShadow); + sq.addBindValue(settings.useBackground); + sq.addBindValue(settings.backgroundName); + sq.addBindValue(pixToByte(settings.backgroundPix)); + sq.addBindValue(settings.textFont.toString()); + sq.addBindValue((unsigned int)(settings.textColor.rgb())); + sq.addBindValue(settings.textAlingmentV); + sq.addBindValue(settings.textAlingmentH); + sq.addBindValue(settings.captionFont.toString()); + sq.addBindValue((unsigned int)(settings.captionColor.rgb())); + sq.addBindValue(settings.captionAlingment); + sq.addBindValue(settings.captionPosition); + sq.addBindValue(settings.useAbbriviation); + sq.addBindValue(settings.screenUse); + sq.addBindValue(settings.screenPosition); + sq.addBindValue(settings.useDisp2settings); + sq.exec(); +} + +void Theme::saveSongNew(int screen, SongSettings &settings) +{ + QSqlQuery sq; + sq.prepare("INSERT INTO ThemeSong (theme_id, disp, use_shadow, use_fading, use_blur_shadow, show_stanza_title, " + "show_key, show_number, info_color, info_font, info_align, show_song_ending, ending_color, ending_font, " + "ending_type, ending_position, use_background, background_name, backgroundPix, text_font, text_color, " + "text_align_v, text_align_h, screen_use, screen_position, use_disp_2) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + sq.addBindValue(m_info.themeId); + sq.addBindValue(screen); + sq.addBindValue(settings.useShadow); + sq.addBindValue(settings.useFading); + sq.addBindValue(settings.useBlurShadow); + sq.addBindValue(settings.showStanzaTitle); + sq.addBindValue(settings.showSongKey); + sq.addBindValue(settings.showSongNumber); + sq.addBindValue((unsigned int)(settings.infoColor.rgb())); + sq.addBindValue(settings.infoFont.toString()); + sq.addBindValue(settings.infoAling); + sq.addBindValue(settings.showSongEnding); + sq.addBindValue((unsigned int)(settings.endingColor.rgb())); + sq.addBindValue(settings.endingFont.toString()); + sq.addBindValue(settings.endingType); + sq.addBindValue(settings.endingPosition); + sq.addBindValue(settings.useBackground); + sq.addBindValue(settings.backgroundName); + sq.addBindValue(pixToByte(settings.backgroundPix)); + sq.addBindValue(settings.textFont); + sq.addBindValue((unsigned int)(settings.textColor.rgb())); + sq.addBindValue(settings.textAlingmentV); + sq.addBindValue(settings.textAlingmentH); + sq.addBindValue(settings.screenUse); + sq.addBindValue(settings.screenPosition); + sq.addBindValue(settings.useDisp2settings); + sq.exec(); +} + +void Theme::saveAnnounceNew(int screen, TextSettings &settings) +{ + QSqlQuery sq; + sq.prepare("INSERT INTO ThemeAnnounce (theme_id, disp, use_shadow, use_fading, use_blur_shadow, use_background, " + "background_name, backgroundPix, text_font, text_color, text_align_v, text_align_h, use_disp_2) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)"); + sq.addBindValue(m_info.themeId); + sq.addBindValue(screen); + sq.addBindValue(settings.useShadow); + sq.addBindValue(settings.useFading); + sq.addBindValue(settings.useBlurShadow); + sq.addBindValue(settings.useBackground); + sq.addBindValue(settings.backgroundName); + sq.addBindValue(pixToByte(settings.backgroundPix)); + sq.addBindValue(settings.textFont.toString()); + sq.addBindValue(settings.textColor.rgb()); + sq.addBindValue(settings.textAlingmentV); + sq.addBindValue(settings.textAlingmentH); + sq.addBindValue(settings.useDisp2settings); + sq.exec(); +} + +void Theme::saveThemeUpdate() +{ + QSqlQuery sq; + sq.prepare("UPDATE Themes SET name = ?, comments = ? WHERE id = ?"); + sq.addBindValue(m_info.name); + sq.addBindValue(m_info.comments); + sq.addBindValue(m_info.themeId); + sq.exec(); + + savePassiveUpdate(1,passive); + savePassiveUpdate(2,passive2); + saveBibleUpdate(1,bible); + saveBibleUpdate(2,bible2); + saveSongUpdate(1,song); + saveSongUpdate(2,song2); + saveAnnounceUpdate(1,announce); + saveAnnounceUpdate(2,announce2); +} + +void Theme::savePassiveUpdate(int screen, TextSettings &settings) +{ + QSqlQuery sq; + sq.prepare("UPDATE ThemePassive SET use_background = ?, background_name = ?, background = ?, use_disp_2 = ? " + "WHERE theme_id = ? AND disp = ?"); + sq.addBindValue(settings.useBackground); + sq.addBindValue(settings.backgroundName); + sq.addBindValue(pixToByte(settings.backgroundPix)); + sq.addBindValue(settings.useDisp2settings); + sq.addBindValue(m_info.themeId); + sq.addBindValue(screen); + sq.exec(); +} + +void Theme::saveBibleUpdate(int screen, BibleSettings &settings) +{ + + QSqlQuery sq; + sq.prepare("UPDATE ThemeBible SET use_shadow = ?, use_fading = ?, use_blur_shadow = ?, " + "use_background = ?, background_name = ?, background = ?, text_font = ?, text_color = ?, text_align_v = ?, " + "text_align_h = ?, caption_font = ?, caption_color = ?, caption_align = ?, caption_position = ?, " + "use_abbr = ?, screen_use = ?, screen_position = ?, use_disp_2 = ? " + "WHERE theme_id = ? AND disp = ?"); + sq.addBindValue(settings.useShadow); + sq.addBindValue(settings.useFading); + sq.addBindValue(settings.useBlurShadow); + sq.addBindValue(settings.useBackground); + sq.addBindValue(settings.backgroundName); + sq.addBindValue(pixToByte(settings.backgroundPix)); + sq.addBindValue(settings.textFont.toString()); + sq.addBindValue((unsigned int)(settings.textColor.rgb())); + sq.addBindValue(settings.textAlingmentV); + sq.addBindValue(settings.textAlingmentH); + sq.addBindValue(settings.captionFont.toString()); + sq.addBindValue((unsigned int)(settings.captionColor.rgb())); + sq.addBindValue(settings.captionAlingment); + sq.addBindValue(settings.captionPosition); + sq.addBindValue(settings.useAbbriviation); + sq.addBindValue(settings.screenUse); + sq.addBindValue(settings.screenPosition); + sq.addBindValue(settings.useDisp2settings); + sq.addBindValue(m_info.themeId); + sq.addBindValue(screen); + sq.exec(); +} + +void Theme::saveSongUpdate(int screen, SongSettings &settings) +{ + QSqlQuery sq; + sq.prepare("UPDATE ThemeSong SET use_shadow = ?, use_fading = ?, use_blur_shadow = ?, " + "show_stanza_title = ?, show_key = ?, show_number = ?, info_color = ?, info_font = ?, info_align = ?, " + "show_song_ending = ?, ending_color = ?, ending_font = ?, ending_type = ?, ending_position = ?, " + "use_background = ?, background_name = ?, background = ?, text_font = ?, text_color = ?, text_align_v = ?, " + "text_align_h = ?, screen_use = ?, screen_position = ?, use_disp_2 = ? " + "WHERE theme_id = ? AND disp = ?"); + sq.addBindValue(settings.useShadow); + sq.addBindValue(settings.useFading); + sq.addBindValue(settings.useBlurShadow); + sq.addBindValue(settings.showStanzaTitle); + sq.addBindValue(settings.showSongKey); + sq.addBindValue(settings.showSongNumber); + sq.addBindValue((unsigned int)(settings.infoColor.rgb())); + sq.addBindValue(settings.infoFont.toString()); + sq.addBindValue(settings.infoAling); + sq.addBindValue(settings.showSongEnding); + sq.addBindValue((unsigned int)(settings.endingColor.rgb())); + sq.addBindValue(settings.endingFont.toString()); + sq.addBindValue(settings.endingType); + sq.addBindValue(settings.endingPosition); + sq.addBindValue(settings.useBackground); + sq.addBindValue(settings.backgroundName); + sq.addBindValue(pixToByte(settings.backgroundPix)); + sq.addBindValue(settings.textFont); + sq.addBindValue((unsigned int)(settings.textColor.rgb())); + sq.addBindValue(settings.textAlingmentV); + sq.addBindValue(settings.textAlingmentH); + sq.addBindValue(settings.screenUse); + sq.addBindValue(settings.screenPosition); + sq.addBindValue(settings.useDisp2settings); + sq.addBindValue(m_info.themeId); + sq.addBindValue(screen); + sq.exec(); +} + +void Theme::saveAnnounceUpdate(int screen, TextSettings &settings) +{ + QSqlQuery sq; + sq.prepare("UPDATE ThemeAnnounce SET use_shadow = ?, use_fading = ?, use_blur_shadow = ?, " + "use_background = ?, background_name = ?, background = ?, text_font = ?, text_color = ?, " + "text_align_v = ?, text_align_h = ?, use_disp_2 = ? " + "WHERE theme_id = ? AND disp = ?"); + sq.addBindValue(settings.useShadow); + sq.addBindValue(settings.useFading); + sq.addBindValue(settings.useBlurShadow); + sq.addBindValue(settings.useBackground); + sq.addBindValue(settings.backgroundName); + sq.addBindValue(pixToByte(settings.backgroundPix)); + sq.addBindValue(settings.textFont.toString()); + sq.addBindValue(settings.textColor.rgb()); + sq.addBindValue(settings.textAlingmentV); + sq.addBindValue(settings.textAlingmentH); + sq.addBindValue(settings.useDisp2settings); + sq.addBindValue(m_info.themeId); + sq.addBindValue(screen); + sq.exec(); +} + +void Theme::loadTheme() +{ + QSqlQuery sq; + bool ok, allok; + allok = false; + + sq.exec(QString("SELECT name, comment FROM Themes WHERE id = %1").arg(m_info.themeId)); + ok = sq.first(); + if(ok) + { + m_info.name = sq.value(0).toString(); + m_info.comments = sq.value(1).toString(); + allok = true; + } + else + { + sq.exec("SELECT id, name, comment FROM Themes"); + ok = sq.first(); + + // Check at least one theme exitst + if (ok) // If exist, then load it + { + m_info.themeId = sq.value(0).toInt(); + m_info.name = sq.value(1).toString(); + m_info.comments = sq.value(2).toString(); + allok = true; + } + else // No themes exist, creat one and exit + { + saveThemeNew(); + allok = false; + } + } + + if(allok) + { + loadPassive(1,passive); + loadPassive(2,passive2); + loadBible(1,bible); + loadBible(2,bible2); + loadSong(1,song); + loadSong(2,song2); + loadAnnounce(1,announce); + loadAnnounce(2,announce2); + } +} + +void Theme::loadPassive(int screen, TextSettings &settings) +{ + QSqlQuery sq; + QSqlRecord sr; + sq.exec(QString("SELECT * FROM ThemePassive WHERE theme_id = %1 and disp = %2").arg(m_info.themeId).arg(screen)); + sq.first(); + sr = sq.record(); + settings.useBackground = sr.field("use_background").value().toBool(); + settings.backgroundName = sr.field("background_name").value().toString(); + settings.backgroundPix.loadFromData(sr.field("background").value().toByteArray()); + settings.useDisp2settings = sr.field("use_disp_2").value().toBool(); +} + +void Theme::loadBible(int screen, BibleSettings &settings) +{ + QSqlQuery sq; + QSqlRecord sr; + sq.exec(QString("SELECT * FROM ThemeBible WHERE theme_id = %1 and disp = %2").arg(m_info.themeId).arg(screen)); + sq.first(); + sr = sq.record(); + settings.useShadow = sr.field("use_shadow").value().toBool(); + settings.useFading = sr.field("use_fading").value().toBool(); + settings.useBlurShadow = sr.field("use_blur_shadow").value().toBool(); + settings.useBackground = sr.field("use_background").value().toBool(); + settings.backgroundName = sr.field("background_name").value().toString(); + settings.backgroundPix.loadFromData(sr.field("background").value().toByteArray()); + settings.textFont.fromString(sr.field("text_font").value().toString()); + settings.textColor = QColor::fromRgb(sr.field("text_color").value().toUInt()); + settings.textAlingmentV = sr.field("text_align_v").value().toInt(); + settings.textAlingmentH = sr.field("text_align_h").value().toInt(); + settings.captionFont.fromString(sr.field("caption_font").value().toString()); + settings.captionColor = QColor::fromRgb(sr.field("caption_color").value().toUInt()); + settings.captionAlingment = sr.field("caption_align").value().toInt(); + settings.captionPosition = sr.field("caption_position").value().toInt(); + settings.useAbbriviation = sr.field("use_abbr").value().toBool(); + settings.screenUse = sr.field("screen_use").value().toInt(); + settings.screenPosition = sr.field("screen_position").value().toInt(); + settings.useDisp2settings = sr.field("use_disp_2").value().toBool(); +} + +void Theme::loadSong(int screen, SongSettings &settings) +{ + QSqlQuery sq; + QSqlRecord sr; + sq.exec(QString("SELECT * FROM ThemeSong WHERE theme_id = %1 and disp = %2").arg(m_info.themeId).arg(screen)); + sq.first(); + sr = sq.record(); + settings.useShadow = sr.field("use_shadow").value().toBool(); + settings.useFading = sr.field("use_fading").value().toBool(); + settings.useBlurShadow = sr.field("use_blur_shadow").value().toBool(); + settings.showStanzaTitle = sr.field("show_stanza_title").value().toBool(); + settings.showSongKey = sr.field("show_key").value().toBool(); + settings.showSongNumber = sr.field("show_number").value().toBool(); + settings.infoColor = QColor::fromRgb(sr.field("info_color").value().toUInt()); + settings.infoFont.fromString(sr.field("info_font").value().toString()); + settings.infoAling = sr.field("info_align").value().toInt(); + settings.showSongEnding = sr.field("show_song_ending").value().toBool(); + settings.endingColor = QColor::fromRgb(sr.field("ending_color").value().toUInt()); + settings.endingFont.fromString(sr.field("ending_font").value().toString()); + settings.endingType = sr.field("ending_type").value().toInt(); + settings.endingPosition = sr.field("ending_position").value().toInt(); + settings.useBackground = sr.field("use_background").value().toBool(); + settings.backgroundName = sr.field("background_name").value().toString(); + settings.backgroundPix.loadFromData(sr.field("background").value().toByteArray()); + settings.textFont.fromString(sr.field("text_font").value().toString()); + settings.textColor = QColor::fromRgb(sr.field("text_color").value().toUInt()); + settings.textAlingmentV = sr.field("text_align_v").value().toInt(); + settings.textAlingmentH = sr.field("text_align_h").value().toInt(); + settings.screenUse = sr.field("screen_use").value().toInt(); + settings.screenPosition = sr.field("screen_position").value().toInt(); + settings.useDisp2settings = sr.field("use_disp_2").value().toBool(); +} + +void Theme::loadAnnounce(int screen, TextSettings &settings) +{ + QSqlQuery sq; + QSqlRecord sr; + sq.exec(QString("SELECT * FROM ThemeAnnounce WHERE theme_id = %1 and disp = %2").arg(m_info.themeId).arg(screen)); + sq.first(); + sr = sq.record(); + settings.useShadow = sr.field("use_shadow").value().toBool(); + settings.useFading = sr.field("use_fading").value().toBool(); + settings.useBlurShadow = sr.field("use_blur_shadow").value().toBool(); + settings.useBackground = sr.field("use_background").value().toBool(); + settings.backgroundName = sr.field("background_name").value().toString(); + settings.backgroundPix.loadFromData(sr.field("background").value().toByteArray()); + settings.textFont.fromString(sr.field("text_font").value().toString()); + settings.textColor = QColor::fromRgb(sr.field("text_color").value().toUInt()); + settings.textAlingmentV = sr.field("text_align_v").value().toInt(); + settings.textAlingmentH = sr.field("text_align_h").value().toInt(); + settings.useDisp2settings = sr.field("use_disp_2").value().toBool(); +} + +void Theme::setThemeInfo(ThemeInfo info) +{ + m_info.themeId = info.themeId; + m_info.name = info.name; + m_info.comments = info.comments; +} + +ThemeInfo Theme::getThemeInfo() +{ + return m_info; +} diff --git a/theme.h b/theme.h new file mode 100644 index 0000000..9bd6db4 --- /dev/null +++ b/theme.h @@ -0,0 +1,166 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef THEME_H +#define THEME_H + +//#include +#include +//#include "spfunctions.h" +#include "settings.h" +/* +class PassiveSettings +{ +public: + PassiveSettings(); + bool useBackground; + QString backgroundName; + QPixmap background; + bool useDisp2settings; +}; + +class BibleSettings +{ + // To store Bible projection related settings +public: + BibleSettings(); + bool useShadow; + bool useFading; + bool useBlurShadow; + bool useBackground; + QString backgroundName; + QPixmap background; + QFont textFont; + QColor textColor; + int textAlingmentV; + int textAlingmentH; + QFont captionFont; + QColor captionColor; + int captionAlingment; + int captionPosition; + bool useAbbriviations; + int screenUse; + int screenPosition; + + bool useDisp2settings; +}; + +class SongSettings +{ + // To store Song related settings +public: + SongSettings(); + bool useFading; + bool useShadow; + bool useBlurShadow; + bool showStanzaTitle; + bool showSongKey; + bool showSongNumber; + QColor infoColor; + QFont infoFont; + int infoAling; // 0 = Top, 1 = Bottom + bool showSongEnding; + QColor endingColor; + QFont endingFont; + int endingType; // 0 = ***, 1 = ---, 2 = °°°, 3 = •••, 4 = ●●●, 5 = ▪▪▪, 6 = ■■■, 7 = for song copyright info + int endingPosition; + bool useBackground; + QString backgroundName; // file path for background image + QPixmap background; + QColor textColor; + QFont textFont; + int textAlingmentV; + int textAlingmentH; + int screenUse; + int screenPositon; // 0 = Top, 1 = Bottom + bool useDisp2settings; +}; + +class AnnounceSettings +{ // To store Announcement related settings +public: + AnnounceSettings(); + bool useShadow; + bool useFading; + bool useBlurShadow; + bool useBackground; + QString backgroundName; // file path for background image + QPixmap background; + QFont textFont; + QColor textColor; + int textAlingmentV; + int textAlingmentH; + + bool useDisp2settings; +}; +*/ + +class ThemeInfo +{ +public: + ThemeInfo(); + int themeId; + QString name; + QString comments; +}; + +class Theme +{ +public: + Theme(); + TextSettingsBase common; + TextSettingsBase common2; // Holds secondary display screen settings + TextSettings passive; + TextSettings passive2; // Holds secondary display screen settings + BibleSettings bible; + BibleSettings bible2; // Holds secondary display screen settings + SongSettings song; + SongSettings song2; // Holds secondary display screen settings + TextSettings announce; + TextSettings announce2; // Holds secondary display screen settings + +public slots: + void saveThemeNew(); + void saveThemeUpdate(); + void loadTheme(); + void setThemeId(int id){m_info.themeId = id;} + int getThemeId(){return m_info.themeId;} + void setThemeInfo(ThemeInfo info); + ThemeInfo getThemeInfo(); + +private: + ThemeInfo m_info; + +private slots: + void savePassiveNew(int screen, TextSettings &settings); + void saveBibleNew(int screen, BibleSettings &settings); + void saveSongNew(int screen, SongSettings &settings); + void saveAnnounceNew(int screen, TextSettings &settings); + void savePassiveUpdate(int screen, TextSettings &settings); + void saveBibleUpdate(int screen, BibleSettings &settings); + void saveSongUpdate(int screen, SongSettings &settings); + void saveAnnounceUpdate(int screen, TextSettings &settings); + void loadPassive(int screen, TextSettings &settings); + void loadBible(int screen, BibleSettings &settings); + void loadSong(int screen, SongSettings &settings); + void loadAnnounce(int screen, TextSettings &settings); + +}; + +#endif // THEME_H diff --git a/translations/flag_cs.png b/translations/flag_cs.png new file mode 100644 index 0000000000000000000000000000000000000000..31f9ad9b1e243652ed01f0d86f6688d030abff1b GIT binary patch literal 1295 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 + + +UTF-8 + + AboutDialog + + + About softProjecor + O softProjectoru + + + + Version: + Verze: + + + + an open souce media projection software + Program s otevřeným zdrojovým kódem pro promítání médií softProjector + + + + Developers: + Vývojáři: + + + + Vladislav Kobzar +------------------- +Ilya Spivakov +Matvey Adzhigirey + Ilya Spivakov +Matvey Adzhigirey +Vladislav Kobzar + Vladislav Kobzar +------------------- +Ilya Spivakov +Matvey Adzhigirey + + + + Mac Build: + Sestavení pro OS X (Mac): + + + + Volodimir Vasuk + + + + + Special Thanks To: + Poděkování: + + + + Vitaliy Zhaborovskyy + Vitaliy Zhaborovskyy + + + + Translators: + Překladatelé: + + + + Russian: +German: +Czech: +Ukranian: + Ruština: +Němčina: +Čeština: +Ukrajinština: + + + + Vladimir Zinchenko +Eduard Schlak +Pavel Fric +Vitaliy Zhaborovskyy + Vladimir Zinchenko +Eduard Schlak +Pavel Fric +Vitaliy Zhaborovskyy + + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + V případě že byste chtěli pomoci s vývojem nebo přispět<br> +materiálem, prosím, navštivte:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Donate</a> + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Darovat</a> + + + Russian: +German: +Czech: + Ruština: +Němčina: +Čeština: + + + Special thanks to: + Zvláštní poděkování: + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.sourceforge.net/">http://softprojector.sourceforge.net/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + V případě že byste chtěli pomoci s vývojem nebo přispět<br> +materiálem, prosím, navštivte:<br> +<a href="http://softprojector.sourceforge.net/">http://softprojector.sourceforge.net/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you would like to help developing this program </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">or would like to contribute data, please visit:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.sourceforge.net/"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://softprojector.sourceforge.net/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you would like to help developing this program </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">or would like to contribute data, please visit:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.com/"><span style=" text-decoration: underline; color:#0000ff;">http://softprojector.com/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">V případě že byste chtěli pomoci s vývojem nebo přispět</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">materiálem, prosím, navštivte:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.sourceforge.net/"><span style=" text-decoration: underline; color:#0000ff;">http://softprojector.sourceforge.net/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + + + + Close + Zavřít + + + + AddSongbookDialog + + + Add songbook + Přidat zpěvník + + + + Songbook Title: + Název zpěvníku: + + + + Description: + Popis: + + + + AnnounceModel + + + Title + Název + + + + AnnounceWidget + + + Form + Formulář + + + Announcement text: + Text oznámení: + + + Quickly display the selected song on the screen without adding it to playlist first + Schnelle Anzeige auf dem Bildschirm, ohne die vorherige Aufnahme in die Wiedergabe-Liste + + + + Announcements: + Oznámení: + + + + Quickly display announcement + Quickly display announcemnt + Rychlé zobrazení oznámení na promítací ploše, bez předchozího nahrání do seznamu pro promítání + + + + Go Live (F5) + Ukázat (F5) + + + + F5 + F5 + + + + Announcement Preview: + Náhled oznámení: + + + Settings + Nastavení + + + Horizontal alignment: + Vodorovné zarovnání: + + + Left + Zarovnat vlevo + + + Center + Zarovnat na střed + + + Right + Zarovnat vpravo + + + Vertical alignment: + Svislé zarovnání: + + + Top + Nahoře + + + Middle + Na střed + + + Bottom + Dole + + + Add this announcement to history list, automatically will be added to the list when "Go Live" button is pressed + add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + Přidat toto oznámení do seznamu s historií. Bude automaticky přidáno do seznamu s historií stisknutím klávesy F5 + + + Add (F2) + Přidat (F2) + + + F2 + F2 + + + F3 + F3 + + + Add to history + Hinzufugen zur Geschichte + + + This list contains verses that were sent to be shown + Tento seznam obsahuje verše, které byly poslány, aby byly ukázány + + + Remove current selected announcement in the history list + Remove current selected verse in the history list + Odstranit v současnosti vybrané oznámení v seznamu s historií + + + Remove (F3) + Remove from history + Odstranit (F3) + + + + AnnouncementSettingWidget + + Form + Formulář + + + + + Effects + Efekty + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Je-li vybráno, při přepínání zobrazovaného textu starý text pozvolna mizí a nový text se zvolna objevuje. + + + + + Use fading effects + Použít prolínací účinek + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Užitečné, když používáte obrázek na pozadí. Zobrazuje zvláštní stínový účinek. + + + + + Use shadow + Použít stín + + + + + Use blurred shadow + Použít rozmazaný stín + + + + + Use Background Image + Použít obrázek pozadí + + + + + Browse... + Procházet... + + + Text Alingment + Zarovnání textu + + + Vertical: + Svislé: + + + Horizontal: + Vodorovné: + + + + + Top + Nahoře + + + + + Middle + Uprostřed + + + + + Bottom + Dole + + + + + Left + Vlevo + + + + + Center + Na střed + + + + + Right + Vpravo + + + + + Text Properties + Vlastnosti textu + + + + Apply this background to all active backgrounds. + Použijte tuto zázemí všem aktivním prostředí. + + + + + Color... + Barva... + + + Color: + Barva: + + + Choose Color... + Vybrat barvu... + + + + + Font... + Font + Písmo... + + + + + Alignment: + Zarovnání: + + + + Use Separate Secondary Display Screen Settings + Použít nastavení pro samostatnou vedlejší zobrazovací obrazovku + + + + Reset All To Default + Nastavit vše znovu na výchozí + + + + + Images(%1) + Obrázky (%1) + + + + Bold + Tučné + + + + Italic + Kurzíva + + + + StrikeOut + Přeškrtnutí + + + + Underline + Podtržení + + + + + Select a image for announcement wallpaper + Vyberte obrázek pro obrázek na pozadí s oznámením + + + Images (*.png *.jpg *.jpeg) + Obrázky (*.png *.jpg *.jpeg) + + + + BibleInformationDialog + + + Bible Information + Informace o Bibli + + + + Bible Name: + Název Bible: + + + + Abbreviation: + Zkratka: + + + + Information\ +Copyright: + Informace/ +Autorské právo: + + + + Right to left + Zprava doleva + + + + BibleSettingWidget + + Form + Formulář + + + + + Primary Bible: + Hlavní Bible: + + + + + Secondary Bible: + Vedlejší Bible: + + + + + Trinary Bible: + Třetí Bible: + + + + Operator Screen Bible: + Bible na obrazovce operátora: + + + + This bible version will be used for the operator to select verses and search bible + Tato verze Bible bude použita pro výběr veršů a vyhledávání v Bibli operátorem + + + + + Effects + Efekty + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Je-li vybráno, při přepínání zobrazovaného textu starý text pozvolna mizí a nový text se zvolna objevuje. + + + + + Use fading effects + Použít prolínací účinek + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Užitečné, když používáte obrázek na pozadí. Zobrazuje zvláštní stínový účinek. + + + + + Use shadow + Použít stín + + + + + Use blurred shadow + Použít rozmazaný stín + + + + + Use Background Image + Použít obrázek pozadí + + + + + Browse... + Procházet... + + + + Apply this background to all active backgrounds. + Použijte tuto zázemí všem aktivním prostředí. + + + + + Amount of screen to use: + Množství z plochy obrazovky, která se použije: + + + + + Percent of screen to be used. + Procento z plochy obrazovky, která se použije. + + + + + Select to use either top portion of the screen or bottom. + Vyberte, aby se použila buď horní část obrazovky, anebo dolní část obrazovky. + + + + + Top of Screen + Horní část obrazovky + + + + Botton of Screen + Dolní část obrazovky + + + Text Alingment + Zarovnání textu + + + Vertical: + Svislé: + + + + + Top + Nahoře + + + + + Middle + Uprostřed + + + + + Bottom + Dole + + + Horizontal: + Vodorovné: + + + + + + + Left + Vlevo + + + + + + + Center + Na střed + + + + + + + Right + Vpravo + + + + + Text Properties + Vlastnosti textu + + + Color: + Barva: + + + Choose color... + Vybrat barvu... + + + + + + + Font... + Font + Písmo... + + + + + + + Alignment: + Zarovnání: + + + + + Caption Properties + Vlastnosti záhlaví + + + + + + + Position: + Poloha: + + + + + Above Text + Nad textem + + + + + Below Text + Pod textem + + + + + Show Bible Version Abbriviation + Ukázat zkratku verze Bible + + + + + Amount Of Screen To Use + Amount Of Sceen To Use + Množství z plochy obrazovky, která se použije + + + Select "Top" to use top portion of the display screen + Vyberte Nohoře, aby se použila horní část zobrazovací obrazovky + + + Select "Bottom" to use bottom portion of the display screen + Vyberte Dole, aby se použila dolní část zobrazovací obrazovky + + + Use this much of the screen: + Použít tak velkou část obrazovky: + + + + + + + Color... + Barva... + + + Align to: + Aling to: + Zarovnat k: + + + + Use Separate Secondary Display Screen Settings + Použít nastavení pro samostatnou vedlejší zobrazovací obrazovku + + + + Bottom of Screen + Dolní část obrazovky + + + + Reset All To Default + Nastavit vše znovu na výchozí + + + + + + + + + + + None + Žádné + + + + + Same as primary Bible + Stejný jako hlavní Bible + + + + + Images(%1) + Obrázky (%1) + + + + Bold + Tučné + + + + Italic + Kurzíva + + + + StrikeOut + Přeškrtnutí + + + + Underline + Podtržení + + + + + Select a image for Bible wallpaper + Vyberte obrázek pro pozadí Bible + + + Images (*.png *.jpg *.jpeg) + Obrázky (*.png *.jpg *.jpeg) + + + + BibleWidget + + + Form + Formulář + + + + Search: + Hledat: + + + + Search the bible for specified text. Matched verses will appear in the list below. If a bible book is selected, only that book will be searched. + Hledat v Bibli zadaný text. Odpovídající verše se objeví v seznamu dole. Když byla vybrána kniha z Bible, hledá se jen v této knize. + + + If selected, only Bible verses starting with the search string will be searched. + Když je vybráno, hledají se jen biblické verše, které začínají hledaným pojmem. + + + Begins + Začíná + + + If selected, Bible verses that contain the search string will be searched. + Když je vybráno, prohledávají se jen biblické verše, které obsahují hledaný pojem. + + + Contains + Obsahuje + + + + + Quickly display the selected Bible verse on the screen + Rychlé zobrazení vybraného biblického verše na promítací ploše + + + + Search + Hledat + + + + Return + Return + + + Limit search to: + Hledání omezit na: + + + If selected, the entire bible will be searched. + Když je vybráno, prohledává se celá Bible. + + + + Entire Bible + Celá Bible + + + If selected, only the selected Bible book will be searched. + Když je vybráno, prohledává se pouze vybraná kniha Bible. + + + + Current Book + Současná kniha + + + If selected, only the selected chapter of the selected Bible book will be searched. + Když je vybráno, prohledává se pouze vybraná kapitola z vybrané knihy Bible. + + + + Current Chapter + Současná kapitola + + + + Hide +Results + Skrýt +výsledky + + + + Results: + Výsledky: + + + + Select search range + Vybrat rozsah hledání + + + + Select search type + Vybrat typ hledání + + + + Contains Phrase + Obsahuje slovní spojení + + + + Contains Word Phrase + Obsahuje slovní obrat + + + + Verse Begins + Verš začíná + + + + Contains Any Word + Obsahuje jakékoli slovo + + + + Contains All Words + Obsahuje všechna slova + + + + Book: + Kniha: + + + + + + Filter criteria for the bible list. If the first character of the filter is a number, then only books starting with this number are matched. Example filters: "Deuter", "1Thes". + Filtrovat hlediska pro seznam s Biblí. Pokud je prvním znakem ve filtru číslo, potom jsou porovnávány jen knihy začínající tímto číslem. Příklad filtru: "5Mo", "1Thes". + + + + Chapter: + Kapitola: + + + + Verse: + Verš: + + + + Go Live (F5) + Ukázat (F5) + + + + F5 + F5 + + + Add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + V současnosti vybrané verše jsou automaticky přidány do seznamu s historií stisknutím klávesy F5 + + + Add (F2) + Přidat (F2) + + + F2 + F2 + + + F3 + F3 + + + Add to history + Zur Geschichte hinzufugen + + + + This list contains verses that were sent to be shown + Tento seznam obsahuje verše, které byly poslány, aby byly ukázány + + + Remove current selected verse in the history list + Odstranit v současnosti vybrané verše v seznamu s historií + + + Remove (F3) + Remove from history + Odstranit (F3) + + + Clear all history items + Odstranit všechny položky v historii + + + Clear + Clear History + Vyprázdnit + + + Total of + Ukázáno celkem + + + search results returned. + výsledků hledání. + + + Total of 281 or more results. <font color=red>Only 281 results can be returned.</font> + Celkem 281 výsledků hledání nebo více. <font color=red>Lze ukázat jen 281 výsledků hledání.</font> + + + Total + + Celkem + + + + +results + +výsledků + + + No search results have retrieved + Nezískány žádné výsledky hledání + + + No search results + Žádné výsledky hledání + + + + Please enter search text + Zadejte, prosím, hledaný text + + + + Total +resutls: +%1 + Celkem +výsledků: +%1 + + + + No search +results. + Žádné výsledky hledání. + + + Error opening Bible histories + Chyba při otevírání historií Bible + + + Cound not find any or all Bible verses from file withing current primary Bible. +Try changing primary Bible and reopen project file. + Nepodařilo se najít nějaký nebo všechny verše Bible v souboru v současné hlavní Bibli. +Zkuste změnit hlavní Bibli a otevřete soubor s projektem znovu. + + + + BiblesModel + + + Title + Název + + + + DisplayScreen + + Form + Formulář + + + + Video Player Error + Chyba v přehrávači videa + + + + Words by: %1, Music by: %2 + Slova od: %1, Hudba od: %2 + + + + Words by: %1 + Slova od: %1 + + + + Music by: %1 + Hudba od: %1 + + + + Dispaly Screen + Zobrazovací obrazovka + + + + EditAnnouncementDialog + + + Edit Announcement + Upravit oznámení + + + + Title: + Název: + + + + ID: + ID: + + + + Use Private Settings + Použít osobní nastavení + + + + Timed slides: + Časované snímky: + + + + sec + seconds + s + + + + Loop + Smyčka + + + + Save + Uložit + + + + Cancel + Zrušit + + + + Announce + - Text of the announcement goes here + +Slide + - Text of the announcement goes here +You can have both Annouce or Slide as announcement block titles. + Oznámení + - Text oznámení zde + +Snímek + - Text oznámení zde +Můžete mít jak oznámení tak snímek jako názvy bloku oznámení. + + + + Announcement title cannot be left empty. +Please enter announcement title. + Název oznámení nelze nechat prázdný. +Zadejte, prosím, název oznámení. + + + + Announcement title is missing + Název oznámení chybí + + + + EditWidget + + + Edit and/or Add New songs + Upravit a/nebo přidat nové písně + + + + Songbook: + Zpěvník: + + + + Print + Tisk + + + + Title: + Název: + + + + Words by: + Básník: + + + + Music by: + Skladatel: + + + + Key: + Tónina: + + + + Category: + Skupina: + + + + Use Private Song Settings + Použít osobní nastavení písně + + + + Main Text Properties: + Vlastnosti hlavního textu: + + + + + + Color... + Barva... + + + + + + Font... + Písmo... + + + + Main Text Alignment: + Zarovnání hlavního textu: + + + + Song Information Properties: + Vlastnosti informací o písni: + + + + Song Ending Properties: + Vlastnosti zakončení písně: + + + + Use Background: + Použít obrázek pozadí: + + + Align Vertical: + Zarovnat svisle: + + + + Top + Nahoře + + + + Middle + Uprostřed + + + + Bottom + Dole + + + Align Horizontal + Zarovnat vodorovně + + + + Other + Jiné + + + Text Alingment + Zarovnání textu + + + + Left + Vlevo + + + + Center + Na střed + + + + Right + Vpravo + + + Text Color... + Barva textu... + + + Text Font... + Písmo textu... + + + + Browse... + Procházet... + + + Use default + Použít výchozí + + + Text font: + Písmo textu: + + + Background: + Pozadí: + + + + Notes: + Bere na vědomí: + + + Comments: + Poznámky: + + + + Save + Uložit + + + + Ctrl+S + Ctrl+S + + + + Cancel + Zrušit + + + + Ctrl+Q + Ctrl+Q + + + + Add a new Songbook + Přidat nový zpěvník + + + + Select Songbook + Vybrat zpěvník + + + + Select a Songbook to which you want to add a song + Vyberte zpěvník, do kterého chcete přidat píseň + + + + Song title cannot be left empty. +Please enter song title. + Název písně nemůže zůstat nevyplněn. +Zadejte, prosím, název písně. + + + + Song title is missing + Název písně chybí + + + + Cannot find exact match in database + V databázi nelze najít přesnou shodu + + + + The exact match of a song you are editing was not found in database. +In order to edit this song, you need to add it to database. + +Please select a Songbook to which you want to copy this song to: + Přesná shoda písně, kterou upravujete, v databázi nalezena nebyla. +Abyste tuto píseň mohl upravit, musíte ji přidat do databáze. + +Vyberte, prosím, zpěvník, do kterého tuto píseň chcete zkopírovat: + + + + Copy to a new Songbook + Kopírovat do nového zpěvníku + + + + Select a Songbook to which you want to copy this song to + Vybrat zpěvník, do kterého chcete píseň kopírovat + + + Verse 1 + - words of verse go here + +Refrain + - words of Chorus/Refrain +go here + +Verse 2 + - words of verse go here + Verš 1 + - Slova verše zde + +Sbor + - Slova sboru zde + +Verš 2 + - Slova verše zde + + + + Add a Songbook + Přidat zpěvník + + + Select a picture for the wallpaper + Vyberte obrázek pro pozadí + + + + Verse 1 + - words of verse go here + +Refrain +- words of Chorus/Refrain +go here + +Verse 2 + - words of verse go here + Verš 1 + - Slova verše zde + +Sbor + - Slova sboru/refrénu zde + +Verš 2 + - Slova verše zde + + + + Bible Stories + Biblické příběhy + + + + Gospel + Slovo Boží + + + + God, His love and greatness + Bůh, Jeho láska a velikost + + + + The Resurrection of Christ + Zmrtvýchvstání Kristovo + + + + Time + Čas + + + + The second coming of Christ and the judgement + Druhý příchod Krista a soud + + + + Children and Family + Děti a rodina + + + + For new converts + Pro nové konvertity + + + + Spiritual struggle and victory + Duchovní boj a vítězství + + + + Harvest + Žně + + + + Jesus Christ + Ježíš Kristus + + + + Love + Láska + + + + Prayer + Modlitebník + + + + Youth + Mládí + + + + Mother + Matka + + + + Wedding + Svatba + + + + Baptism + Křest + + + + Sunset / Sunrise + Západ/Východ slunce + + + + New Years + Nové roky + + + + Funeral + Pohřeb + + + + At the ordination + Svěcení + + + + On the Lord's Supper + Pánova večeře + + + + Heavenly abode + Nebeský příbytek + + + + Instruction and self-test + Pokyn a zkouška sebe + + + + Holy Ghost + Duch svatý + + + + Church + Kostel + + + + Before church meeting + Před shromáždění věřících v kostele + + + + Last Days + Poslední dny + + + + Practical life with God + Skutečný život s Bohem + + + + At the end of church meeting + Na konci shromáždění věřících v kostele + + + + Welcome and farewell + Uvítání a rozloučení + + + + The call to work + Volání do práce + + + + Call to repentance + Volání k lítosti + + + + Journey of faith, faith and hope + Cesta víry, víra a naděje + + + + Various Christian holidays + Různé křesťanské svátky + + + + Determination and faithfulness + Odhodlání a věrnost + + + + Christmas + Vánoce + + + + Following Christ + Následování Krista + + + + The Word of God + Slovo boží + + + + Salvation + Spása + + + + Suffering and death of Christ + Utrpení a smrt Krista + + + + Consolation and encouragement + Útěcha a povzbuzení + + + + Praise and thanksgiving + Chvála a díkůvzdání + + + + Christian Joy + Křesťanská radost + + + + Select an image for the wallpaper + Vyberte obrázek pro pozadí + + + + Images(%1) + Obrázky (%1) + + + + GeneralSettingWidget + + Form + Formulář + + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + Je-li vybráno, je "okno" pro promítací plochu ukazováno vždy v popředí. Tím se zamezuje tomu, aby se na promítací ploše promítacího stroje ukazovala další okna. + + + + Display window always on top + Promítací plochu ukazovat vždy v popředí + + + + Theme: + Motiv: + + + + Add New Theme + Přidat nový motiv + + + + Primary Display Screen: + Hlavní zobrazovací obrazovka: + + + + Secondary Display Screen: + Vedlejší zobrazovací obrazovka: + + + + Primary Display Screen Controls + Ovládací prvky hlavní zobrazovací obrazovky + + + + Button Size: + Velikost tlačítka: + + + + 16x16 + 16 x 16 + + + + 24x24 + 24 x 24 + + + + 32x32 + 32 x 32 + + + + 48x48 + 48 x 48 + + + + 64x64 + 64 x 64 + + + + 96x96 + 96 x 96 + + + + Alignment: + Zarovnání: + + + + Top + Nahoře + + + + Middle + Uprostřed + + + + Bottom + Dole + + + + Left + Vlevo + + + + Center + Na střed + + + + Right + Vpravo + + + + Opacity: + Neprůhlednost: + + + + Transparent + Průhledné + + + + Opaque + Neprůhledné + + + + NOTE: Display screen controls will be visible on the primary display screen only when one monitor is avaliable. + Poznámka: Ovládací prvky zobrazovací obrazovky budou viditelné na hlavní zobrazovací obrazovce, jen když bude toto zobrazovací zařízení dostupné. + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Užitečné, když používáte obrázek na pozadí. Zobrazuje zvláštní stínový účinek. + + + Use shadow + Použít stín + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Je-li vybráno, při přepínání zobrazovaného textu starý text pozvolna mizí a nový text se zvolna objevuje. + + + Use fading effects + Použít prolínací účinek + + + Use blurred shadow + Použít rozmazaný stín + + + Use Passive Background Image + Použít nečinný obrázek pozadí + + + Browse... + Procházet... + + + + Display Screen Selection + Volba zobrazovací obrazovky + + + Display Screen: + Zobrazovací obrazovka: + + + + + Select onto which screen to dispaly + Vybrat, na které obrazovce se má zobrazovat + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">NOTE:</span><span style=" font-size:8pt; color:#ff0000;"> Display screen selection is currenly under development. Changing the screen number, will change on which screen projection will be displayed.<br />On Windows, order is from left-to-right.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">NOTE:</span><span style=" font-size:8pt; color:#ff0000;"> Display screen selection is currenly under development. Changing the screen number, will change on which screen projection will be displayed.<br />On Windows, oder is from right-to-left.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">POZNÁMKA:</span><span style=" font-size:8pt; color:#ff0000;">Volba zobrazovací obrazovky se v současnosti vyvíjí. Změna čísla obrazovky změní obrazovku, na které se promítání zobrazí.<br />U Windows je pořadí zleva doprava.</span></p></body></html> + + + + Reset All To Default + Nastavit vše znovu na výchozí + + + Select a image for main wallpaper + Vyberte obrázek pro hlavní pozadí + + + Images (*.png *.jpg *.jpeg) + Obrázky (*.png *.jpg *.jpeg) + + + + none + žádné + + + + None + Žádné + + + + Edit Theme + Upravit motiv + + + + Theme Name: + Název motivu: + + + + Comments: + Poznámky: + + + + Default + Výchozí + + + + This theme will contain program default settings. + Tento motiv bude obsahovat výchozí nastavení programu. + + + + HelpDialog + + + softProjector Help + Nápověda k softProjectoru + + + + about:blank + o:prázdný + + + + Close + Zavřít + + + + Ctrl+Q + Ctrl+Q + + + + ManageDataDialog + + + Manage Database + Spravovat databázi + + + + Bibles + Bible + + + + + + Download +&& Import... + Stažení +a zavedení... + + + + Import a new Bible into your database + Zavést novou Bibli do databáze + + + + + + &Import... + &Zavést... + + + + + + + Ctrl+I + Ctrl+I + + + + Edit Bible title of currently selected Bible. + Upravit název Bible u nyní vybrané Bible. + + + + + + &Edit... + &Upravit... + + + + + + Ctrl+E + Ctrl+E + + + + Export currently selected Bible to share with others. + Vyvést nyní vybranou Bibli ke sdílení s ostatními. + + + + + + E&xport... + V&yvést... + + + + + + + Ctrl+X + Ctrl+X + + + + Delete a Bible that you will no longer want to use in this program. + Smazat Bibli, kterou už dále v tomto programu nechcete používat. + + + + + + &Delete... + S&mazat... + + + + + + Ctrl+D + Ctrl+D + + + + Songbooks + Zpěvníky + + + + + + Import a new Songbook into database. + Zavést nový zpěvník do databáze. + + + + + Edit the title and information about the Songbook. + Upravit název a informace o zpěvníku. + + + + + + Export currently selected Songbook to be able to share with others and for backup. + Vyvést nyní vybraný zpěvník ke sdílení s ostatními a kvůli záloze. + + + + + Delete currently selected Songbook from database. + Smazat nyní vybraný zpěvník z databáze. + + + + Themes + Motivy + + + + &New... + &Nový... + + + + Export All... + Vyvést vše... + + + + Close Manage Database Dialog + Zavřít dialog “Spravovat databázi” + + + + Close + Zavřít + + + + Ctrl+Q + Ctrl+Q + + + + Select a songbook to import + Vybrat zpěvník k zavedení + + + softProjector songbook file + Soubor se zpěvníkem pro softProjector + + + + + Importing... + Zavádí se... + + + + + + Cancel + Zrušit + + + User songbook + Uživatelův zpěvník + + + Songbook imported by the user + Zpěvník zavedený uživatelem + + + + Too old SongBook file format + Příliš starý souborový formát zpěvníku + + + The SongBook file you are opening, is in very old format +and is no longer supported by current version of softProjector. +You may try to import it with version 1.07 and then export it, and import it again. + Soubor zpěvníku, jejž otevíráte, je ve velmi starém formátu, +která současnou verzí softProjectoru už není podporována. +Můžete zkusit jeho zavedení s verzí 1.07, a potom jej vyvést a znovu zavést. + + + + Save the songbook as: + Uložit zpěvník jako: + + + softProjector songbook file (*.sps) + Soubor se zpěvníkem pro softProjector (*.sps) + + + + Export complete + Vyvedení dokončeno + + + + The songbook " + Zpěvník " + + + + " +Has been saved to: + + " +Uložen jako: + + + + + Delete songbook? + Smazat zpěvník? + + + + + Are you sure that you want to delete: + Jste si jistý, že chcete smazat: + + + + This action will permanentrly delete this songbook + Tímto krokem bude zpěvník neodvolatelně smazán + + + + Select Bible file to import + Vybrat soubor s Biblí k zavedení + + + + + SoftProjector Bible file + Soubor s Biblí pro softProjector + + + Old Bible file format + Starý formát souboru s Biblí + + + The Bible format you are importing is of an old version. +Your current SoftProjector does not support this format. +Please download lattest Bibles and import them. + The Bible format you are importing is of an old version. +Your current SoftProjector does not support this format. +Please download lattest Bibles and import them + Formát Bible, který zavádíte, je ve staré verzi. +SoftProjector, který používáte nyní, tento formát nepodporuje. +Stáhněte si, prosím, Bible v posledním formátu a zaveďte je. + + + + New Bible file format + Nový formát souboru s Biblí + + + + The Bible format you are importing is of an new version. +Your current SoftProjector does not support this format. +Please upgrade SoftProjector to latest version. + Formát Bible, který zavádíte, je v nové verzi. +SoftProjector, který používáte nyní, tento formát nepodporuje. +Povyšte, prosím, SoftProjector na poslední verzi. + + + + SoftProjector songbook file + Soubor se zpěvníkem pro softProjector + + + + The SongBook file you are opening, is of a later release and +is not supported by current version of SoftProjector. +You are trying to open SongBook version %1. +Please upgrade to latest version of SoftProjector and try again. + Soubor zpěvníku, jejž otevíráte, je ve velmi starém formátu, +který současnou verzí softProjectoru už není podporován. +Pokoušíte se o otevření zpěvníku verze %1. +Povyšte, prosím, na nejnovější verzi SoftProjectoru a zkuste to znovu. + + + + + Unsupported SongBook version. + Nepodporovaná verze zpěvníku. + + + + The SongBook file you are opening, is not supported +by current version of SoftProjector. + + Soubor zpěvníku, který otevíráte, není nynější +verzí SoftProjectoru podporován. + + + + + The SongBook file you are opening, is in very old format +and is no longer supported by current version of SoftProjector. +You may try to import it with version 1.07 and then export it, and import it again. + Soubor zpěvníku, jejž otevíráte, je ve velmi starém formátu, +který současnou verzí softProjectoru už není podporován. +Můžete zkusit jeho zavedení s verzí 1.07, a potom jej vyvést a znovu zavést. + + + + SoftProjector songbook file (*.sps) + Soubor se zpěvníkem pro softProjector (*.sps) + + + + + An error has ocured when overwriting existing file. +Please try again with different file name. + Při přepisování stávajícího souboru se vyskytla chyba. +Zkuste to, prosím, znovu s jiným názvem souboru. + + + + The Bible format you are importing is of an usupported file version. +Your current SoftProjector version does not support this format. + Formát Bible, který zavádíte, je v nepodporované verzi. +SoftProjector, který používáte nyní, tento formát nepodporuje. + + + + Unsupported Bible file format + Nepodporovaný formát souboru s Biblí + + + + + Edit Theme + Upravit motiv + + + + + Theme Name: + Název motivu: + + + + + Comments: + Poznámky: + + + + Default + Výchozí + + + + This theme will contain program default settings. + Tento motiv bude obsahovat výchozí nastavení programu. + + + + Select a Theme to import + Vybrat motiv k zavedení + + + + + SoftProjector Theme file + Soubor se vzhledem pro softProjector + + + + Importing Themes... + Zavádí se témata vzhledu... + + + + The Theme file you are opening, is of a later release and +is not supported by current version of SoftProjector. +You are trying to open Theme version %1. +Please upgrade to latest version of SoftProjector and try again. + Soubor s tématem vzhledu, jejž otevíráte, je ve velmi starém formátu, +který současnou verzí softProjectoru už není podporován. +Pokoušíte se o otevření tématu vzhledu verze %1. +Povyšte, prosím, na nejnovější verzi SoftProjectoru a zkuste to znovu. + + + + + Unsupported Theme version. + Nepodporovaná verze tématu vzhledu. + + + + The Theme file you are opening, is not supported +by current version of SoftProjector. + + Soubor s tématem vzhledu, který otevíráte, není nynější +verzí SoftProjectoru podporován. + + + + + softProjector Theme file + Soubor s motivem pro softProjector + + + + Error opening module list. + Chyba při otevírání seznamu modulů. + + + + Failed to open mod list + Nepodařilo se otevřít seznam modulů + + + + +Downloading: %1 +From: %2 + +Stahuje se: %1 +Z: %2 + + + + Error opening save file %1 for download %2 +Error: %3 + Chyba při otevírání uloženého souboru %1 pro stažení %2 +Chyba: %3 + + + + Error downloading module list. + Chyba při stahování seznamu modulů. + + + + Bible Module Download + Stažení modulu Bible + + + + Songbook Module Download + Stažení modulu zpěvníku + + + + Theme Module Download + Stažení modulu motivu + + + + Download Error: %1 + Chyba při stahování: %1 + + + + Saved to: %1 + Uloženo do: %1 + + + + +Importing: %1 + +Zavádí se: %1 + + + + Export Theme as: + Vyvést motiv jako: + + + + Export all theme as: + Vyvést všechny motivy jako: + + + + Exporting Themes... + Vyvádí se témata vzhledu... + + + + Delete Theme? + Smazat motiv? + + + + Are you sure that you want to delete theme: + Jste si jistý, že chcete smazat motiv: + + + + This action will permanentrly delete this theme + Tímto krokem bude motiv neodvolatelně smazán + + + All supported Bible files + Všechny podporované soubory s Biblemi + + + softProjector Bible file + Soubor s Biblí pro softProjector + + + Unbound Bible file + Soubor s Biblí Unbound + + + + Save exported Bible as: + Uložit vyvedenou Bibli jako: + + + + Exporting... + Vyvádí se... + + + + Bible has been exported + Bibel byla vyvedena + + + + Bible: + + Bible: + + + + + +Has been saved to: + + +Byla uložena jako: + + + + + Delete Bible? + Smazat Bibli? + + + + This action will permanentrly delete this Bible + Tímto krokem bude Bible neodvolatelně smazána + + + + Edit Songbook + Upravit zpěvník + + + Edit Bible name + Upravit název Bible + + + Bible title: + Název Bible: + + + + MediaWidget + + + Form + Formulář + + + + - Media Library - + - Knihovna médií - + + + + Go Live (F5) + Ukázat (F5) + + + + F5 + F5 + + + + Open + Otevřít + + + + Aspect Ratio: + Poměr stran: + + + + Auto + Automaticky + + + + Scale + Měřítko + + + + 4/3 + 4/3 + + + + 16/9 + 16/9 + + + + + <center>No media</center> + <center>Žádná multimédia</center> + + + + No Media + Žádná multimédia + + + + Open Music/Video File + Otevřít soubor s hudbou/obrazovým záznamem + + + + + Media Files (%1);;Audio Files (%2);;Video Files (%3) + Multimediální soubory (%1);;Soubory se zvukem (%2);;Soubory s obrazovým záznamem (%3) + + + + Select Music/Video Files to Open + Vybrat soubory s hudbou/obrazovým záznamem k otevření + + + + ModuleDownloadDialog + + + Dialog + Dialog + + + + Select modules you wish to download and import. + Vyberte moduly, které chcete stáhnout a zavést. + + + + Select All + Vybrat vše + + + + Deselect All + Zrušit výběr všeho + + + + ModuleProgressDialog + + + Download / Import Progress Dialog + Dialog pro stahování/postup + + + + Current Progress: + Nynější postup: + + + + Total Progress: + Celkový postup: + + + + Close + Zavřít + + + + Native language name + + English + Český + + + + English + Do not change + Český + + + + PassiveSettingWidget + + Form + Formulář + + + + + Use Passive Background Image + Použít nehybný obrázek pozadí + + + + + Browse... + Procházet... + + + + Use Separate Secondary Display Screen Settings + Použít nastavení pro samostatnou vedlejší zobrazovací obrazovku + + + + Reset All To Default + Nastavit vše znovu na výchozí + + + + + Select a image for passive wallpaper + Vyberte obrázek pro nehybné pozadí + + + + + Images(%1) + Obrázky (%1) + + + Images (*.png *.jpg *.jpeg) + Obrázky (*.png *.jpg *.jpeg) + + + + PictureSettingWidget + + Picture Settings + Nastavení obrázků + + + + When Displaying Slideshows: + Při zobrazení promítání snímků: + + + + Expand Small Images + Roztáhnout malé obrázky + + + + Fit Images To Screen + Přizpůsobit obrázky obrazovce + + + + Fit Images To Screen By Expanding + Přizpůsobit obrázky obrazovce pomocí roztažení + + + + Resize Large Images on Import + Změnit velikost velkých obrázků při zavádění + + + + It is highly recommended to reduce large images on import. This will improve load, save and display time of slideshows. +We recommend to resize images to display screen size. + Doporučuje se zmenšit velikost velkých obrázků při zavádění. Tím se zrychlí nahrávání, ukládání a zobrazování promítání snímků. +Doporučuje se změna velikosti obrázků na velikost zobrazovací obrazovky. + + + + Bound Box: + Rozlišení: + + + + 800 x 800 + 800 x 800 + + + + 1024 x 1024 + 1024 x 1024 + + + + 1280 x 1280 + 1280 x 1280 + + + + 1366 x 1366 + 1366 x 1366 + + + + 1440 x 1440 + 1440 x 1440 + + + + 1600 x 1600 + 1600 x 1600 + + + + 1920 x 1920 + 1920 x 1920 + + + + Custom + Vlastní + + + + Inalid Numeric Value + Neplatná číselná hodnota + + + + Entered '%1' custom width is not numeric. + Zadaná vlastní šířka '%1' není číselná. + + + + PictureWidget + + + Form + Formulář + + + + Slide Shows: + Promítání snímků: + + + + Go Live (F5) + Ukázat (F5) + + + + F5 + F5 + + + + + Picture Preview + Náhled na obrázek + + + + Picture Information + Informace o obrázku + + + + Edit Preview Slide Show: + Upravit náhled na promítání snímků: + + + + Add + Přidat + + + + Remove + Odstranit + + + Add Pictures + Přidat obrázky + + + Remove Picture + Odstranit obrázek + + + + Clear + Vyprázdnit + + + + Editing slide show here will not change anything in database. To have save changes, use "New Slide Show" or "Edit Slide Show". + Upravením promítání snímků zde se v databázi nic nezmění. Pro uložení změn použijte Nové promítání snímků nebo Upravit promítání snímků. + + + + + Preview slide: + Náhled na snímek: + + + + Select Images to Open + Vybrat obrázky k otevření + + + Images(*.png *.jpg *.jpeg) + Obrázky (*.png *.jpg *.jpeg) + + + + Images(%1) + Obrázky (%1) + + + + Adding files... + Přidávají se soubory... + + + + Cancel + Zrušit + + + + Slide Show: %1 + Promítání snímků: %1 + + + + PrintPreviewDialog + + + softProjector Print Dialog + Tisk dialog softProjectoru + + + + Margins: + Okraje: + + + + Left Margin + Levý okraj + + + + L: + L: + + + + Top Margin + Horní okraj + + + + T: + H: + + + + Right Margin + Pravý okraj + + + + R: + P: + + + + Bottom Margin + Dolní okraj + + + + B: + D: + + + + Inch + Palec + + + + Millimeter + Milimetr + + + + Pixel + Pixel + + + + Point + Bod + + + + Font: + Písmo: + + + + To PDF + Do PDF + + + + Print + Tisk + + + + Tune: %1 + + Vyladit: %1 + + + + + Words By: %1 Music By: %2 + + + Slova od: %1 Hudba od: %2 + + + + + + Words By: %1 + + + Slova od: %1 + + + + + + Music By: %1 + + + Hudba od: %1 + + + + + + + +Notes: +%1 + + +Poznámky: +%1 + + + + Announcements: %1 + + + Oznámení: %1 + + + + + SoftProject Schedule: + Plán SoftProjectoru: + + + + Save PDF as + Uložit PDF jako + + + + SettingsDialog + + + softProjector - Settings + Nastavení softProjectoru + + + + General + Obecné + + + + Passive + Nehybné pozadí + + + + Bible + Bible + + + + Picture + Obrázek + + + + Media + Multimédia + + + + Announcements + Oznámení + + + + General SoftProjector Settings + Obecná nastavení pro softProjector + + + + Passive Settings + Nastavení při nečinnosti + + + + This setting are displayed when nothing is to be projected. + Tato nastavení se zobrazují, když není co promítat. + + + + Bible Settings + Nastavení Bible + + + + Song Settings + Nastavení písně + + + + Picture Settings + Nastavení obrázku + + + + Media Settings + Nastavení multimédií + + + + Announcement Settings + Nastavení oznámení + + + Primary Bible: + Hlavní Bible: + + + Secondary Bible: + Vedlejší Bible: + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + Je-li vybráno, je "okno" pro promítací plochu ukazováno vždy v popředí. Tím se zamezuje tomu, aby se na promítací ploše promítacího stroje ukazovala další okna. + + + Display window always on top + Promítací plochu ukazovat vždy v popředí + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Je-li vybráno, při přepínání zobrazovaného textu starý text pozvolna mizí a nový text se zvolna objevuje. + + + Use fading effects + Použít prolínací účinek + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Užitečné, když používáte obrázek na pozadí. Zobrazuje zvláštní stínový účinek. + + + Use blurred shadow + Použít rozmazané stíny + + + Change Font... + Změnit písmo... + + + Text color: + Barva textu: + + + Choose color... + Vybrat barvu... + + + Active wallpaper + Činné pozadí + + + Browse... + Procházet... + + + Remove wallpaper + Odstranit pozadí + + + Passive wallpaper + Nečinné pozadí + + + + Songs + Písně + + + Show song number + Ukázat číslo písně + + + Show song key + Ukázat tóninu písně + + + Show stanza title + Ukázat název sloky + + + None + Žádné + + + Select a picture for the wallpaper + Vybrat obrázek pro pozadí + + + Images (*.png *.jpg *.jpeg) + Obrázky (*.png *.jpg *.jpeg) + + + + OK + OK + + + + Cancel + Zrušit + + + + Apply + Použít + + + + SlideShowEditor + + + Slide Show Editor + Editor promítání snímků + + + + Slide Show Title: + Název promítání snímků: + + + + Slide Show Info: + Informace o promítání snímků: + + + + Add Pictures + Přidat obrázky + + + + Remove Picture + Odstranit obrázek + + + + Picture Preview + Náhled na obrázek + + + + Picture Information + Informace o obrázku + + + + Save + Uložit + + + + + Cancel + Zrušit + + + + Select Images to Open + Vybrat obrázky k otevření + + + Images(*.png *.jpg *.jpeg) + Obrázky (*.png *.jpg *.jpeg) + + + + Images(%1) + Obrázky (%1) + + + + Adding files... + Přidávají se soubory... + + + + Slide show title cannot be left empty. +Please enter a title. + Název promítání obrázků nemůže zůstat nevyplněn. +Zadejte, prosím, název promítání obrázků. + + + + Slide show title is missing + Název promítání obrázků chybí + + + + Saving Slide Show + Ukládá se promítání snímků + + + + Preview slide: %1 + Náhled na snímek: %1 + + + + SoftProjector + + This software is free and Open Source. If you can help in improving this program please visit softprojector.sourceforge.net + This software is free and Open Source. If you can help in improving this program please visit sourceforge.net/projects/softprojector/ + Tento program je zdarma a jeho kód je otevřen. Pokud můžete a chcete pomoci při zlepšování tohoto programu, navštivte, prosím, stránky na adrese sourceforge.net/projects/softprojector/ + + + + + Bible (F6) + Bible (F6) + + + + + Songs (F7) + Písně (F7) + + + + + Pictures + Obrázky + + + + + Media + Média + + + + + Announcements (F8) + Oznámení (F8) + + + Project not saved + project as in document file + Projekt neuložen + + + Do you want to save current project? + project as in document file + Chcete uložit nynější projekt? + + + Announcement + Oznámení + + + Words by: %1, Music by: %2 + Slova od: %1, Hudba od: %2 + + + Words by: %1 + Slova od: %1 + + + Music by: %1 + Hudba od: %1 + + + + Cannot start new edit + Nelze začít novou úpravu + + + + + + Another song is already been edited. + Another song is already beeb edited. + Již je upravována jiná píseň. + + + + Schedule not saved + Rozvrh neuložen + + + + Do you want to save current schedule? + Chcete uložit nynější rozvrh? + + + + &Clear Bible History List + &Smazat seznam s historií Bible + + + + &New Song... + &Nová píseň... + + + + &Edit Song... + &Upravit píseň... + + + + &Copy Song... + &Kopírovat píseň... + + + + &Delete Song + &Smazat píseň + + + + &New Slide Show... + &Nové promítání snímků... + + + + &Edit Slide Show... + &Upravit promítání snímků... + + + + &Delete Slide Show + &Smazat promítání snímků + + + + &Add Media Files... + &Přidat multimediální soubory... + + + + &Remove Media Files + &Odstranit multimediální soubory + + + + &New Announcement... + &Nové oznámení... + + + + &Edit Announcement... + &Upravit oznámení... + + + + &Copy Announcement... + &Kopírovat oznámení... + + + + &Delete Announcement + &Smazat oznámení + + + + + + Please save and/or close current edited song before edited a different song. + Uložte, prosím, a/nebo zavřete nyní upravovanou píseň, předtím než začnete upravovat jinou píseň. + + + + + + + No song selected + Nebyla vybrána žádná píseň + + + No song has been selected to be edited. + Nebyla vybrána žádná píseň pro úpravy. + + + Please select a song to be edited. + Vyberte, prosím, píseň pro úpravy. + + + + Cannot create a new song + Nelze vytvořit novou píseň + + + + No song has been selected to edit. + Nebyla vybrána žádná píseň pro úpravy. + + + + Please select a song to edit. + Vyberte, prosím, píseň pro úpravy. + + + + Cannot copy this song + Nelze kopírovat tento píseň + + + + No song has been selected to copy + Nebyla vybrána žádná píseň ke kopírování + + + + Please select a song to copy + Vyberte, prosím, píseň pro kopírování + + + + No song has been selected to delete + Nebyla vybrána žádná píseň ke smazání + + + + Please select a song to delete + Vyberte, prosím, píseň ke smazání + + + + + No slideshow selected + Nebylo vybráno žádné promítání snímků + + + + No slideshow has been selected to edit. + Nebylo vybráno žádné promítání snímků pro úpravy. + + + + Please select a slideshow to edit. + Vyberte, prosím, promítání snímků pro úpravy. + + + + Delete slideshow? + Smazat promítání snímků? + + + + Delete slideshow: " + Smazat promítání snímků: " + + + + This action will permanentrly delete this slideshow + Tímto krokem bude promítání snímků neodvolatelně smazáno + + + + No slideshow has been selected to delete. + Nebylo vybráno žádné promítání snímků ke smazání. + + + + Please select a slideshow to delete. + Vyberte, prosím, promítání snímků ke smazání. + + + + No media selected + Nebyla vybrána žádná multimédia + + + + No media item has been selected to delete. + Nebyla vybrána žádná multimédiální položka ke smazání. + + + + Please select a media item to delete. + Vyberte, prosím, multimédiální položku ke smazání. + + + + + + No Announcement Selected + Nebylo vybráno žádné oznámení + + + + No announcement has been selected to edit + Nebylo vybráno žádné oznámení pro úpravy + + + + Please select an announcement to edit + Vyberte, prosím, oznámení pro úpravy + + + + No announcement has been selected to copy + Nebylo vybráno žádné oznámení ke kopírování + + + + Please select an announcement to copy + Vyberte, prosím, oznámení ke kopírování + + + + Delete Announcement? + Smazat oznámení? + + + + Delete announcement: " + Smazat oznámení: " + + + + This action will permanentrly delete this announcement + Tímto krokem bude oznámení neodvolatelně smazáno + + + + No announcement has been selected to delete + Nebylo vybráno žádné oznámení ke smazání + + + + Please select an announcement to delete + Vyberte, prosím, oznámení ke smazání + + + + No song has been selected to be printed. + Nebyla vybrána žádná píseň k vytištění. + + + + Please select a song to be printed. + Vyberte, prosím, píseň pro tisk. + + + + No announcement selected + Nebylo vybráno žádné oznámení + + + + No announcement has been selected to be printed. + Nebylo vybráno žádné oznámení k vytištění. + + + + Please select a announcement to be printed. + Vyberte, prosím, oznámení pro tisk. + + + + + + Save Schedule? + Uložit rozvrh? + + + + Do you want to save current schedule before creating a new schedule? + Chcete uložit nynější rozvrh před vytvořením nového rozvrhu? + + + + Do you want to save current schedule before opening a new schedule? + Chcete uložit nynější rozvrh před otevřením nového rozvrhu? + + + + Open SoftProjector schedule: + Otevřít rozvrh SoftProjectoru: + + + + + SoftProjector schedule file + Soubor s rozvrhem pro SoftProjector + + + + Save SoftProjector schedule as: + Uložit rozvrh SoftProjectoru jako: + + + Open softProjector schedule: + Otevřít rozvrh softProjectoru: + + + softProjector schedule file + Soubor s rozvrhem pro softProjector + + + Save softProjector schedule as: + Uložit rozvrh softProjectoru jako: + + + + Do you want to save current schedule before closing it? + Chcete uložit nynější rozvrh před jeho zavřením? + + + + Saving schedule file... + Ukládá se soubor s rozvrhem... + + + + An error has ocured when overwriting existing file. +Please try again with different file name. + Při přepisování stávajícího souboru se vyskytla chyba. +Zkuste to, prosím, znovu s jiným názvem souboru. + + + + Opening schedule file... + Otevírá se soubor s rozvrhem... + + + + The schedule file you are trying to open is of uncompatible version. +Compatible version: 2 +This schedule file version: + Soubor s rozvrhem, který se pokoušíte otevřít, je v neslučitelné verzi. +Slučitelná verze: 2 +Verze tohoto souboru s rozvrhem: + + + English + Angličtina + + + Save Project? + project as in document file + Uložit projekt? + + + Do you want to save current project before opening other? + project as in document file + Chcete uložit nynější projekt před otevřením jiného? + + + Open softProjector project + Otevřít projekt softProjectoru + + + softProjector project file + Soubor s projektem pro softProjector + + + Save softProjector project as: + Uložit projekt softProjectoru jako: + + + Save Project? + Uložit projekt? + + + Do you want to save current project before creating a new project? + Chcete uložit nynější projekt před vytvořením nového projektu? + + + Do you want to save current project before closing it? + Chcete uložit nynější projekt před jeho zavřením? + + + Incorrect project file format + Nesprávný formát souboru s projektem + + + The softProjector project file you are opening, +is not supported by your version of softProjector. +You may try upgrading your version of softProjector. + Souboru s projektem pro softProjector, který otevíráte, +není podporován vaší verzí softProjectoru. +Můžete zkusit povýšit svou verzi softProjectoru. + + + No song has been selected to be edited + Nebyla vybrána žádná píseň pro úpravy + + + Please select a song to be edited + Vyberte, prosím, píseň pro úpravy + + + No song has been selected to be copied + No song has been selected to be coppied + Nebyla vybrána žádná píseň pro kopírování + + + Please select a song to be copied + Please select a song to be coppied + Vyberte, prosím, píseň pro kopírování + + + + Delete song? + Smazat píseň? + + + + Delete song " + Smazat píseň " + + + No song has been selected to be deleted + Nebyla vybrána žádná píseň ke smazání + + + Please select a song to be deleted + Vyberte, prosím, píseň ke smazání + + + Are you sure that you want to delete a song? + Sind Sie sich sicher, dass Sie ein Lied loschen mochten? + + + + This action will permanentrly delete this song + Tímto krokem bude tato píseň neodvolatelně smazána + + + + SoftProjectorClass + + + Tab + Karta + + + Stop displaying text to the screen (display black screen or wallpaper). Sortcut for this button is the Escape key. + Zastavit zobrazování textu na promítací ploše (ukazovat černou promítací plochu nebo pozadí). Klávesovou zkratkou pro to je klávesa Esc. + + + Hide (Esc) + Skrýt (Esc) + + + + Esc + Esc + + + If Clear was pressed earlier, this will re-display the text to the screen + Pokud bylo dříve stisknuto Smazat,bude text znovu zobrazen na promítací ploše + + + Show (F4) + Ukázat (F4) + + + + F4 + F4 + + + + Use Multi Verse + Použít více veršů + + + + Service Schedule: + Rozvrh služby: + + + + If selected, this will allow to select multiple verses at one time. Will need to press "Show" each time. + Je-li vybráno, umožní vám to vybrat více veršů najednou. Bude potřeba pokaždé stisknout Ukázat. + + + + &File + &Soubor + + + + &Edit + Úp&ravy + + + + + &Help + &Nápověda + + + + Select Language + Vybrat jazyk + + + + Language + Jazyk + + + + Schedule + Rozvrh + + + + Display Screen + Zobrazovací obrazovka + + + + File Tool Bar + Nástrojový pruh pro soubor + + + + Schedule Tool Bar + Nástrojový pruh pro rozvrh + + + + Edit Tool Bar + Nástrojový pruh pro úpravy + + + + Display Control Tool Bar + Nástrojový pruh pro ovládání zobrazení + + + + Import and export Bibles, songbooks and themes + Zavést a vyvést Bible, zpěvníky a motivy vzhledu + + + + Open Help + Otevřít nápovědu + + + + &Open Schedule + &Otevřít rozvrh + + + + &Save Schedule + &Uložit rozvrh + + + + Save Schedule &As + Uložit rozvrh &jako + + + + Save Schedule with different name + Uložit rozvrh pod jiným názvem + + + + &New Schedule + &Nový rozvrh + + + + Start new Schedule + Začít nový rozvrh + + + + + Close Schedule + Zavřít rozvrh + + + + Prints selected Bible chapter, selected song and selected announcement. + Vytiskne vybranou kapitolu Bible, vybranou píseň a vybrané oznámení. + + + + + Print Schedule + Vytisknout rozvrh + + + + Add to Schedule + Přidat do rozvrhu + + + + F2 + F2 + + + + Remove from Schedule + Odstranit z rozvrhu + + + + Ctrl+Del + + + + F3 + F3 + + + + Clear Schedule + Vyprázdnit rozvrh + + + + Move Item To Top + Posunout položku úplně nahoru + + + + Move Schedule item to top of the list + Posunout položku rozvrhu v seznamu úplně nahoru + + + + Move Item Up + Posunout položku nahoru + + + + Move Schedule item up + Posunout položku rozvrhu nahoru + + + + Mode Item Down + Posunout položku dolů + + + + Move Schedule item down + Posunout položku rozvrhu dolů + + + + Move Item To Bottom + Posunout položku úplně dolů + + + + Move Schedule item to bottom of the list + Posunout položku rozvrhu v seznamu úplně dolů + + + + Show + Ukázat + + + + Dsiplay to the screen (F4) + Zobrazit na obrazovce (F4) + + + + Show Passive Screen (Stop displaying to the screen) (Esc) + Ukázat pasivní obrazovku (Zastavit zobrazení na obrazovce) (Esc) + + + + Clear + Smazat + + + + Clear Display Text (Shift+Esc) + Smazat promítaný text (Shift+Esc) + + + + Shift+Esc + Shift+Esc + + + + On / Off + Zapnuto/Vypnuto + + + + Turn Display Screen On/Off + Zapnout/Vypnout zobrazení obrazovky + + + Close + Zavřít + + + Close Display Window + Zavřít promítací plochu + + + Dsiplay to the screen. + Zobrazit na obrazovce + + + + Hide + Skrýt + + + Stop displaying to the screen. + Zastavit zobrazování na obrazovce. + + + &New Project + &Nový projekt + + + + &Print + &Tisk + + + Print everything but softProjector project + Vytisknout projekt softProjector + + + Print Project + Vytisknout projekt + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + Del + Delete + + + + Donate + Darovat + + + + Donate to softProjector development team + Dejte dar vývojářům softProjectoru + + + Songs + Písně + + + toolBar + Nástrojový pruh + + + + &About + &O programu + + + + &Settings... + &Nastavení... + + + + Open settings dialog + Otevřít dialog nastavení + + + + Ctrl+T + Ctrl+T + + + + E&xit + &Ukončit + + + + Exit SoftProjector + Ukončit softProjector + + + + Ctrl+Q + Ctrl+Q + + + &Edit Current Song... + &Upravit nynější píseň... + + + + Ctrl+E + Ctrl+E + + + &New Song... + &Nová píseň... + + + + Ctrl+N + Ctrl+N + + + + &Manage Database... + &Spravovat databázi... + + + Import and export song collections and Bibles + Zavést a vyvést sbírky písní a Biblí + + + + Ctrl+M + Ctrl+M + + + &Delete Current Song + &Smazat nynější píseň + + + Ctrl+D + Ctrl+D + + + + F1 + F1 + + + Copy Current Song... + Kopírovat nynější píseň... + + + Copy current song into a new songbook + Kopírovat nynější píseň do nového zpěvníku + + + + Ctrl+C + Ctrl+C + + + + Song Counter... + Song Counter + Počítadlo písní... + + + + View + Pohled + + + &Open Project + &Otevřít projekt + + + + Ctrl+O + Ctrl+O + + + &Save Project + &Uložit projekt + + + + Ctrl+S + Ctrl+S + + + Save Project &As + Uložit projekt &jako + + + New Project + Nový projekt + + + + Ctrl+Shift+N + + + + Close Project + Zavřít projekt + + + + Ctrl+P + Ctrl+P + + + + SongCounter + + + Song Counter + Počítadlo písní + + + + Reset Selected + Nastavit vybrané znovu + + + + Reset All + Nastavit znovu vše + + + + Close + Zavřít + + + + + January + January %1, %2 + ledna + + + + + February + February %1, %2 + února + + + + + March + March %1, %2 + března + + + + + April + April %1, %2 + dubna + + + + + May + května + + + + + June + June %1, %2 + června + + + + + July + July %1, %2 + července + + + + + August + August %1, %2 + srpna + + + + + September + September %1, %2 + září + + + + + October + October %1, %2 + října + + + + + November + November %1, %2 + listopadu + + + + + December + December %1, %2 + prosince + + + + SongCounterModel + + Song Title + Název písně + + + + Number + Číslo + + + + Title + Název + + + + Count + Počet + + + + Date + Datum + + + + Songbook + Zpěvník + + + + SongSettingWidget + + Form + Formulář + + + + + Effects + Efekty + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Je-li vybráno, při přepínání zobrazovaného textu starý text pozvolna mizí a nový text se zvolna objevuje. + + + + + Use fading effects + Použít prolínací účinek + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Užitečné, když používáte obrázek na pozadí. Zobrazuje zvláštní stínový účinek. + + + + + Use shadow + Použít stín + + + + + Use blurred shadow + Použít rozmazaný stín + + + + + Song Information + Informace o písni + + + + + Show Stanza Title + Ukázat název sloky + + + + + Show Song Key + Ukázat tóninu písně + + + + + Show Song Number + Ukázat číslo písně + + + Align To: + Zarovnat k: + + + + + Show Song Ending + Ukázat zakončení písně + + + *** + *** + + + This will show WordsBy and MusicBy as song ending + Toto ukáže Slova od a Hudba od jako zakončení písně + + + + + Song Copyright Info + Informace o autorském právu + + + + + Use Background Image + Použít obrázek pozadí + + + + + Browse... + Procházet... + + + Text Alingment + Zarovnání textu + + + Vertical: + Svislé: + + + Horizontal: + Vodorovné: + + + + + + + + + Color... + Barva... + + + + + + Alignment: + Zarovnání: + + + + + Above Text + Nad textem + + + + + Below Text + Pod textem + + + + + Type: + Typ: + + + + + + + Position: + Poloha: + + + + + Below Song Text + Pod textem písně + + + + + + Bottom of Screen + V dolní části obrazovky + + + + + Song Text Properties + Vlastnosti textu písně + + + + Alingment: + Zarovnání: + + + + + Top + Nahoře + + + + + Middle + Uprostřed + + + + + Bottom + Dole + + + + + Left + Vlevo + + + + + Center + Na střed + + + + + Right + Vpravo + + + Text Properties + Vlastnosti textu + + + Color: + Barva: + + + Choose color... + Vybrat barvu... + + + + + + + + + Font... + Font + Písmo... + + + + Apply this background to all active backgrounds. + Použijte tuto zázemí všem aktivním prostředí. + + + + + Amount Of Screen To Use + Množství z plochy obrazovky, která se použije + + + + Vertical Screen Use: + Svislé využití plochy obrazovky: + + + + + Percent of screen to be used. + Procento z plochy obrazovky, která se použije. + + + + + Select to use either top portion of the screen or bottom. + Vyberte, aby se použila buď horní část obrazovky, anebo dolní část obrazovky. + + + + Top of screen + Horní část obrazovky + + + + Bottom of screen + Dolní část obrazovky + + + + Use Separate Secondary Display Screen Settings + Použít nastavení pro samostatnou vedlejší zobrazovací obrazovku + + + + * * * + * * * + + + + - - - + - - - + + + + ° ° ° + ° ° ° + + + + • • • + • • • + + + + ● ● ● + ● ● ● + + + + ▪ ▪ ▪ + ▪ ▪ ▪ + + + + ■ ■ ■ + ■ ■ ■ + + + + Vertical Screen Use + Svislé využití plochy obrazovky + + + + % + % + + + + Top of Screen + Horní část obrazovky + + + + Reset All To Default + Nastavit vše znovu na výchozí + + + + + Images(%1) + Obrázky (%1) + + + + Bold + Tučné + + + + Italic + Kurzíva + + + + StrikeOut + Přeškrtnutí + + + + Underline + Podtržení + + + + + Select a image for song wallpaper + Vyberte obrázek pro pozadí písně + + + Images (*.png *.jpg *.jpeg) + Obrázky (*.png *.jpg *.jpeg) + + + + SongWidget + + + Form + Formulář + + + + Use this menu to show only songs beloning to a particular Songbook + Použijte tuto nabídku, aby se ukazovaly pouze písně z určitého zpěvníku + + + + Select Songbook to use + Vybrat zpěvník k používání + + + + Selects a song by the number in the selected Songbook + Vyberte píseň podle čísla ve vybraném zpěvníku + + + + + + Filter: + Filtr: + + + + Use this field to limit the display of the songs to only the ones that contain the specified text in the song title or song number + Použijte toto pole, abyste omezil zobrazování písní jen na ty, které obsahují určitý text v názvu písně nebo v čísle písně + + + + Return + Vrací + + + Matches only songs the song number or title of which contains the entered string. + Spojí jen písně, jejichž číslo písně nebo název obsahuje zadaný pojem. + + + + Contains + Obsahuje + + + Matches only songs the song number or title of which begins with the entered string. + Spojí jen písně, jejichž číslo písně nebo název začíná zadaným pojmem. + + + + Begins + Začíná + + + Matches only songs the song number or title of which exactly matches the entered string. + Spojí jen písně, jejichž číslo písně nebo název přesně odpovídá zadanému pojmu. + + + Exact match + Přesná shoda + + + + + Search Type: + Typ hledání: + + + + Exact Match + Přesná shoda + + + + Contains Phrase + Obsahuje slovní spojení + + + + Contains Word Phrase + Obsahuje slovní obrat + + + + Line Begins + Řádek začíná + + + + Contains Any Word + Obsahuje jakékoli slovo + + + + Contains All Words + Obsahuje všechna slova + + + + Search + Hledat + + + + Done Searching? - Clear Search Results + Hledání hotovo? - Smazat výsledky hledání + + + Add the selected song to the playlist + Přidat vybranou píseň do seznamu skladeb + + + Add (F2) + Add to playlist (F2) + Přidat (F2) + + + F2 + F2 + + + Remove the selected song from the playlist + Odstranit vybranou píseň ze seznamu skladeb + + + Remove (F3) + Remove from playlist + Odstranit (F3) + + + F3 + F3 + + + Song preview: None + Náhled: Píseň chybí + + + Song preview + Lied-Vorschau + + + + Quickly display the selected song on the screen without adding it to playlist first + Rychlé zobrazení vybrané písně na promítací ploše bez toho, že by byla nejprve přidána do seznamu skladeb + + + + Go Live (F5) + Ukázat (F5) + + + + F5 + F5 + + + + + All songbooks + Všechny zpěvníky + + + Song Preview: + Náhled na píseň: + + + Comments: + Comments to songs + Poznámky: + + + + + Filter Type: + Typ filtru: + + + + Notes: + Notes to songs + Bere na vědomí: + + + + Could not find song with number + Číslo písně se nepodařilo najít + + + + No such song + Není žádná taková píseň + + + + + All song categories + Všechny skupiny písní + + + + Please enter search text + Zadejte, prosím, hledaný text + + + + Search: + Hledat: + + + + SongbooksModel + + + Title + Název + + + + Information + Infomation + Informace + + + + SongsModel + + + Num + Číslo + + + + Title + Název + + + + Songbook + Zpěvník + + + + Tune + Tónina + + + + ThemeModel + + + Name + Název + + + + Comments + Poznámky + + + diff --git a/translations/softpro_de.qm b/translations/softpro_de.qm new file mode 100644 index 0000000000000000000000000000000000000000..b37f38901d0a2a7a7d90c7485a4ba3e31680e63d GIT binary patch literal 87028 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 literal 0 HcmV?d00001 diff --git a/translations/softpro_de.ts b/translations/softpro_de.ts new file mode 100644 index 0000000..fcb8f1f --- /dev/null +++ b/translations/softpro_de.ts @@ -0,0 +1,5107 @@ + + + +UTF-8 + + AboutDialog + + + About softProjecor + Über softProjector + + + + Version: + Version: + + + + an open souce media projection software + Freigegebenes Programm softProjector + + + + Developers: + Entwickler: + + + + Vladislav Kobzar +------------------- +Ilya Spivakov +Matvey Adzhigirey + Ilya Spivakov +Matvey Adzhigirey +Vladislav Kobzar + Vladislav Kobzar +------------------- +Ilya Spivakov +Matvey Adzhigirey + + + + Mac Build: + Mac Aufbau: + + + + Volodimir Vasuk + + + + + Special Thanks To: + Besonderer Dank an: + + + + Vitaliy Zhaborovskyy + Vitaliy Zhaborovskyy + + + + Translators: + Übersetzer: + + + + Russian: +German: +Czech: +Ukranian: + Russisch: +Deutsch: +Tschechisch: +Ukrainisch: + + + + Vladimir Zinchenko +Eduard Schlak +Pavel Fric +Vitaliy Zhaborovskyy + Vladimir Zinchenko +Eduard Schlak +Pavel Fric +Vitaliy Zhaborovskyy + + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + Falls Sie bei der Entwicklung mithelfen oder mit Ihrem<br> +Material beitragen möchten, so besuchen Sie bitte:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Donate</a> + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Spende</a> + + + Russian: +German: +Czech: + Russisch: +Deutsch: +Tschechisch: + + + Special thanks to: + Ein besonderer Dank für: + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.sourceforge.net/">http://softprojector.sourceforge.net/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + Falls Sie bei der Entwicklung mithelfen oder mit Ihrem<br> +Material beitragen möchten, so besuchen Sie bitte:<br> +<a href="http://softprojector.sourceforge.net/">http://softprojector.sourceforge.net/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you would like to help developing this program </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">or would like to contribute data, please visit:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.sourceforge.net/"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://softprojector.sourceforge.net/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you would like to help developing this program </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">or would like to contribute data, please visit:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.com/"><span style=" text-decoration: underline; color:#0000ff;">http://softprojector.com/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Falls Sie bei der Entwicklung mithelfen oder mit Ihrem</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Material beitragen möchten, so besuchen Sie bitte:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.sourceforge.net/"><span style=" text-decoration: underline; color:#0000ff;">http://softprojector.sourceforge.net/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + + + + Close + Schließen + + + + AddSongbookDialog + + + Add songbook + Gesangbuch hinzufügen + + + + Songbook Title: + Gesangbuch-Titel: + + + + Description: + Beschreibung: + + + + AnnounceModel + + + Title + Titel + + + + AnnounceWidget + + + Form + Form + + + Announcement text: + Ankündigungstext: + + + Quickly display the selected song on the screen without adding it to playlist first + Schnelle Anzeige auf dem Bildschirm, ohne die vorherige Aufnahme in die Wiedergabe-Liste + + + + Announcements: + Ankündigungen: + + + + Quickly display announcement + Quickly display announcemnt + Schnelle Ankündigungsanzeige + + + + Go Live (F5) + Zeigen (F5) + + + + F5 + F5 + + + + Announcement Preview: + Ankündigungen-Vorschau: + + + Settings + Einstellungen + + + Horizontal alignment: + Horizontale Ausrichtung: + + + Left + Links + + + Center + Zentriert + + + Right + Rechts + + + Vertical alignment: + Vertikale Ausrichtung: + + + Top + Oben + + + Middle + Zentrieren + + + Bottom + Unten + + + Add this announcement to history list, automatically will be added to the list when "Go Live" button is pressed + add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + Die aktuell ausgewählten Verse werden automatisch in der Geschichte-Liste durch Drücken der F5-Taste hinzugefügt + + + Add (F2) + Fügen (F2) + + + Add to history + Hinzufugen zur Geschichte + + + This list contains verses that were sent to be shown + Diese Liste enthält Verse, die geschickt wurden, um angezeigt zu werden + + + Remove current selected announcement in the history list + Remove current selected verse in the history list + Entfernen Sie aktuell ausgewählte Verse aus der Geschichte-Liste + + + Remove (F3) + Remove from history + Entfernen (F3) + + + + AnnouncementSettingWidget + + Form + Form + + + + + Effects + Effekte + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Wenn aktiviert, beim Umschalten wird der alte Text aus- und der neue eingeblendet. + + + + + Use fading effects + Animationseffekte verwenden + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Nützlich, wenn ein Hintergrundbild benutzt wird. Zeigt einen besonderen Schatten-Effekt an. + + + + + Use shadow + Schatten verwenden + + + + + Use blurred shadow + Verschwommene Schatten verwenden + + + + + Use Background Image + Hintergrundbild benutzen + + + + + Browse... + Durchsuchen... + + + + Apply this background to all active backgrounds. + Wenden Sie diesen Hintergrund an alle aktiven Hintergründe. + + + + + Color... + Farbe... + + + Text Alingment + Textausrichtung + + + Vertical: + Vertikal: + + + Horizontal: + Horizontal: + + + + + Top + Oben + + + + + Middle + Zentrieren + + + + + Bottom + Unten + + + + + Left + Links + + + + + Center + Zentriert + + + + + Right + Rechts + + + + + Text Properties + Texteigenschaften + + + Color: + Farbe: + + + Choose Color... + Wählen Sie eine Farbe... + + + + + Font... + Font + Schrift... + + + + + Alignment: + Ausrichtung: + + + + Use Separate Secondary Display Screen Settings + Einstellungen für den 2. Bildschirm + + + + Reset All To Default + Alles zurücksetzen + + + + + Select a image for announcement wallpaper + Wählen Sie ein Hintergrundbild für Ankündigungen + + + + + Images(%1) + Bilder(%1) + + + + Bold + Fett + + + + Italic + Kursiv + + + + StrikeOut + Durchgestrichen + + + + Underline + Unterstreichen + + + Images (*.png *.jpg *.jpeg) + Bilder (*.png *.jpg *.jpeg) + + + + BibleInformationDialog + + + Bible Information + Bibel-Information + + + + Bible Name: + Bibel-Name: + + + + Abbreviation: + Abkürzung: + + + + Information\ +Copyright: + Information\ +Urheberrecht: + + + + Right to left + Von Rechts nach Links + + + + BibleSettingWidget + + Form + Form + + + + + Primary Bible: + Erste Bibel: + + + + + Secondary Bible: + Zweite Bibel: + + + + + Trinary Bible: + Dritte Bibel: + + + + Operator Screen Bible: + Bedienerfenster für Bibel: + + + + This bible version will be used for the operator to select verses and search bible + Diese Bibelversion wird für den Bediener für Verse-Auswahl und Bibel-Suche benutzt + + + + + Effects + Effekte + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Wenn aktiviert, beim Umschalten wird der alte Text aus- und der neue eingeblendet. + + + + + Use fading effects + Animationseffekte verwenden + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Nützlich, wenn ein Hintergrundbild benutzt wird. Zeigt einen besonderen Schatten-Effekt an. + + + + + Use shadow + Schatten verwenden + + + + + Use blurred shadow + Verschwommene Schatten verwenden + + + + + Use Background Image + Verwenden Sie ein Hintergrundbild + + + + + Browse... + Durchsuchen... + + + + Apply this background to all active backgrounds. + Wenden Sie diesen Hintergrund an alle aktiven Hintergründe. + + + + + + + Color... + Farbe... + + + + + Amount of screen to use: + Fläche vom Bildschirm benutzen: + + + + + Percent of screen to be used. + Prozentuale Nutzung vom Bildschirm. + + + + + Select to use either top portion of the screen or bottom. + Nutzungswahl zwischen des oberen oder des unteren Teils am Bildschirm. + + + + + Top of Screen + Oben auf dem Bildschirm + + + + Botton of Screen + Unten auf dem Bildschirm + + + + Use Separate Secondary Display Screen Settings + Einstellungen für den 2. Bildschirm + + + + Bottom of Screen + Unten auf dem Bildschirm + + + Text Alingment + Textausrichtung + + + Vertical: + Vertikal: + + + + + Top + Oben + + + + + Middle + Zentrieren + + + + + Bottom + Unten + + + Horizontal: + Horizontal: + + + + + + + Left + Links + + + + + + + Center + Zentrieren + + + + + + + Right + Rechts + + + + + Text Properties + Texteigenschaften + + + Color: + Farbe: + + + Choose color... + Farbe wählen... + + + + + + + Font... + Font + Schrift... + + + + + + + Alignment: + Ausrichtung: + + + + + Caption Properties + Untertitel-Eigenschaften + + + + + + + Position: + Position: + + + + + Above Text + Über dem Text + + + + + Below Text + Unter dem Text + + + + + Show Bible Version Abbriviation + Abkürzung der Bibel-Version anzeigen + + + + + Amount Of Screen To Use + Amount Of Sceen To Use + Fläche vom Bildschirm benutzen + + + Select "Top" to use top portion of the display screen + Wählen Sie "Oben", um den oberen Teil des Bildschirms zu verwenden + + + Select "Bottom" to use bottom portion of the display screen + Wählen Sie "Unten", um den unteren Teil des Bildschirms zu verwenden + + + Use this much of the screen: + Verwenden Sie so viel des Bildschirms: + + + Align to: + Aling to: + Ausrichten: + + + + Reset All To Default + Alles zurücksetzen + + + + + + + + + + + None + Keine + + + + + Same as primary Bible + Gleich wie die erste Bibel + + + + + Select a image for Bible wallpaper + Ein Hintergrundbild für Bibel wählen + + + + + Images(%1) + Bilder(%1) + + + + Bold + Fett + + + + Italic + Kursiv + + + + StrikeOut + Durchgestrichen + + + + Underline + Unterstreichen + + + Images (*.png *.jpg *.jpeg) + Bilder (*.png *.jpg *.jpeg) + + + + BibleWidget + + + Form + Form + + + + Search: + Suche: + + + + Search the bible for specified text. Matched verses will appear in the list below. If a bible book is selected, only that book will be searched. + Suche in der Bibel nach dem speziellen Text. Relevante Verse erscheinen unten in der Liste. Wenn ein Buch aus der Bibel ausgewählt wurde, wird nur in dem Buch gesucht. + + + If selected, only Bible verses starting with the search string will be searched. + Wenn ausgewählt, werden nur Bibelverse gesucht, die mit dem Suchbegriff beginnen. + + + Begins + Beginnt + + + If selected, Bible verses that contain the search string will be searched. + Wenn ausgewählt, werden Bibelverse, die den Suchbegriff enthalten, durchsucht. + + + Contains + Enthält + + + + + Quickly display the selected Bible verse on the screen + Schnelle Anzeige der ausgewählten Bibelverse auf dem Bildschirm + + + + Search + Suche + + + + Return + Zurück + + + Limit search to: + Suche beschränken auf: + + + If selected, the entire bible will be searched. + Wenn ausgewählt, wird die ganze Bibel durchsucht. + + + + Entire Bible + Ganze Bibel + + + If selected, only the selected Bible book will be searched. + Wenn ausgewählt, wird nur das ausgewählte Bibelbuch durchsucht. + + + + Current Book + Aktuelles Buch + + + If selected, only the selected chapter of the selected Bible book will be searched. + Wenn ausgewählt, wird nur das ausgewählte Kapitel des ausgewählten Buches der Bibel durchsucht. + + + + Current Chapter + Aktuelles Kapitel + + + + Hide +Results + Ergebnisse +ausblenden + + + + Results: + Ergebnisse: + + + + Select search range + Suchbereich wählen + + + + Select search type + Such-Art wählen + + + + Contains Phrase + Enthält eine Phrase + + + + Contains Word Phrase + Enthält einen Wort-Satz + + + + Verse Begins + Vers beginnt + + + + Contains Any Word + Enthält jedes Wort + + + + Contains All Words + Enthält alle Worte + + + + Book: + Buch: + + + + + + Filter criteria for the bible list. If the first character of the filter is a number, then only books starting with this number are matched. Example filters: "Deuter", "1Thes". + Kriterien für die Bibel-Liste filtern. Wenn das erste Schriftzeichen des Filters eine Zahl ist, dann werden nur Bücher angepasst, die mit dieser Zahl beginnen. Beispiel Filter: "5Mo", "1Thes". + + + + Chapter: + Kapitel: + + + + Verse: + Vers: + + + + Go Live (F5) + Anzeigen (F5) + + + + F5 + F5 + + + Add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + Die aktuell ausgewählten Verse werden in die Geschichte-Liste automatisch hinzugefügt, wenn "F5"-Taste gedrückt wird + + + Add (F2) + Fügen (F2) + + + Add to history + Zur Geschichte hinzufugen + + + + This list contains verses that were sent to be shown + Diese Liste enthält Verse, die geschickt wurden, um angezeigt zu werden + + + Remove current selected verse in the history list + Entfernen Sie die aktuell ausgewählten Verse in der Geschichte-Liste + + + Remove (F3) + Remove from history + Entfernen (F3) + + + Clear all history items + Entfernen der Geschichte-Liste + + + Clear + Clear History + Entfernen + + + Total of + Gesamt + + + search results returned. + suchergebnisse. + + + Total of 281 or more results. <font color=red>Only 281 results can be returned.</font> + Insgesamt 281 Suchergebnisse oder mehr. <font color=red>Nur 281 Suchergebnisse können angezeigt werden.</font> + + + Total + + Insgesamt + + + + +results + +Ergebnisse + + + No search results have retrieved + Keine Suchergebnisse + + + No search results + Keine Suchergebnisse + + + Error opening Bible histories + Fehler beim öffnen der Bibelgeschichten + + + Cound not find any or all Bible verses from file withing current primary Bible. +Try changing primary Bible and reopen project file. + Kann nicht finden einen oder alle Bibelvers(e) aus einer Datei in der laufenden primären Bibel. +Ändern Sie die primäre Bibel und öffnen Sie die Projekt-Datei wieder. + + + + Please enter search text + Bitte einen Such-Text eingeben + + + + Total +resutls: +%1 + Gesamte +Ergebnisse +%1 + + + + No search +results. + Keine Such-Ergebnisse. + + + + BiblesModel + + + Title + Titel + + + + DisplayScreen + + + Dispaly Screen + Bildschirm + + + + Video Player Error + Video-Player Fehler + + + + Words by: %1, Music by: %2 + Dichter: %1, Komponist: %2 + + + + Words by: %1 + Dichter: %1 + + + + Music by: %1 + Komponist: %1 + + + + EditAnnouncementDialog + + + Edit Announcement + Ankündigungen bearbeiten + + + + Title: + Titel: + + + + ID: + Identifikation: + + + + Use Private Settings + Privat-Einstellungen verwenden + + + + Timed slides: + Zeitgesteuerte Dias: + + + + sec + seconds + Sekunden + sek + + + + Loop + Schleife + + + + Save + Speichern + + + + Cancel + Abbrechen + + + + Announce + - Text of the announcement goes here + +Slide + - Text of the announcement goes here +You can have both Annouce or Slide as announcement block titles. + Ankündigungen + - Text der Ankündigung hier + +Dias + - Text der Ankündigungen hier +Sie können sowohl Ankündigungen oder auch Diashow als Ankündigung Block-Titel haben. + + + + Announcement title cannot be left empty. +Please enter announcement title. + Ankündigungstitel kann nicht leer gelassen werden. +Bitte geben Sie den Ankündigungstitel ein. + + + + Announcement title is missing + Ankündigunstitel fehlt + + + + EditWidget + + + Edit and/or Add New songs + Neue Lieder bearbeiten und/oder hinzufügen + + + + Songbook: + Gesangbuch: + + + + Print + Drucken + + + + Title: + Titel: + + + + Words by: + Dichter: + + + + Music by: + Komponist: + + + + Key: + Tonart: + + + + Category: + Kategorie: + + + + Use Private Song Settings + Private Lied-Einstellungen benutzen + + + + Main Text Properties: + Haupttext-Eigenschaften: + + + + + + Color... + Farbe... + + + + + + Font... + Schrift... + + + + Main Text Alignment: + Haupttext für Ankündigungen: + + + + Song Information Properties: + Liedinformation-Einstellungen: + + + + Song Ending Properties: + Liedendung-Einstellungen: + + + + Use Background: + Hintergrund benutzen: + + + + Top + Oben + + + + Middle + Zentrieren + + + + Bottom + Unten + + + + Other + Andere + + + Text Alingment + Textausrichtung + + + + Left + Links + + + + Center + Zentrieren + + + + Right + Rechts + + + + Browse... + Durchsuchen... + + + Use default + Standard verwenden + + + Text font: + Schriftart: + + + Background: + Hintergrund: + + + + Notes: + Notizen: + + + Comments: + Kommentare: + + + + Save + Speichern + + + + Ctrl+S + Ctrl+S + + + + Cancel + Abbrechen + + + + Ctrl+Q + Ctrl+Q + + + + Add a new Songbook + Ein neues Gesangbuch hinzufügen + + + + Select Songbook + Gesangbuch wählen + + + + Select a Songbook to which you want to add a song + Wählen Sie ein Gesangbuch, zu dem Sie ein Lied hinzufügen möchten + + + + Song title cannot be left empty. +Please enter song title. + Der Name des Liedes kann nicht unausgefüllt bleiben. +Fügen Sie bitte den Namen des Liedes ein. + + + + Song title is missing + Der Name des Liedes fehlt + + + + Cannot find exact match in database + Kann nicht die exakte Übereinstimmung in der Datenbank finden + + + + The exact match of a song you are editing was not found in database. +In order to edit this song, you need to add it to database. + +Please select a Songbook to which you want to copy this song to: + Die exakte Übereinstimmung eines Liedes, das Sie bearbeiten, ist in der Datenbank nicht gefunden worden. +Um dieses Lied zu erstellen, müssen Sie es zur Datenbank hinzuzufügen. + +Wählen Sie bitte ein Gesangbuch, zu dem Sie dieses Lied kopieren möchten: + + + + Copy to a new Songbook + Das Lied in dem neuen Buch speichern + + + + Select a Songbook to which you want to copy this song to + Ein Gesangbuch wählen, in das Sie das Lied hinzufügen möchten + + + Verse 1 + - words of verse go here + +Refrain + - words of Chorus/Refrain +go here + +Verse 2 + - words of verse go here + Strophe 1 + - Worte des Verses hier + +Chorus + - Worte des Chores hier + +Strophe 2 + - Worte des Verses hier + + + + Add a Songbook + Ein Gesangbuch hinzufügen + + + Select a picture for the wallpaper + Wählen Sie ein Bild für den Hintergrund + + + + Verse 1 + - words of verse go here + +Refrain +- words of Chorus/Refrain +go here + +Verse 2 + - words of verse go here + Vers 1 + - Vers-Worte hier + +Refrain +- Refrain-Worte vom Chorus/Refrain +hier + +Vers 2 + - Vers-Worte hier + + + + Bible Stories + Biblische Geschichten + + + + Gospel + Verkündigung + + + + God, His love and greatness + Gott, Seine Liebe und Herrlichkeit + + + + The Resurrection of Christ + Christi Auferstehung + + + + Time + Zeit + + + + The second coming of Christ and the judgement + Die Wiederkunft Christi und das Gericht + + + + Children and Family + Christliche Familie und Kindererziehung + + + + For new converts + Für Neubekehrte + + + + Spiritual struggle and victory + Geistlicher Kampf und Sieg + + + + Harvest + Erntedankfest + + + + Jesus Christ + Jesus Christus + + + + Love + Liebe + + + + Prayer + Gebet + + + + Youth + Jugend + + + + Mother + Mutter + + + + Wedding + Hochzeit + + + + Baptism + Wassertaufe + + + + Sunset / Sunrise + Sonnenauf- und niedergang + + + + New Years + Neujahr + + + + Funeral + Beerdigung + + + + At the ordination + Einsegnung + + + + On the Lord's Supper + Abendmahl + + + + Heavenly abode + Himmlische Heimat + + + + Instruction and self-test + Belehrung und Selbstprüfung + + + + Holy Ghost + Heiliger Geist + + + + Church + Gemeinde + + + + Before church meeting + Vor dem Gottesdienst + + + + Last Days + Letzte Zeit + + + + Practical life with God + Praktisches Leben mit Gott + + + + At the end of church meeting + Schlußlieder + + + + Welcome and farewell + Begrüßung und Abschied + + + + The call to work + Arbeit für den Herrn + + + + Call to repentance + Einladung zum Heil + + + + Journey of faith, faith and hope + Gnadenstand und Heilsgewißheit + + + + Various Christian holidays + Erlösungsfreude in Christus + + + + Determination and faithfulness + Entschlossenheit und Treue + + + + Christmas + Geburt Christi + + + + Following Christ + Christi Nachfolge + + + + The Word of God + Wort Gottes + + + + Salvation + Erlösung + + + + Suffering and death of Christ + Passion und Auferstehung Christi + + + + Consolation and encouragement + Trost und Ermunterung + + + + Praise and thanksgiving + Lob und Danksagung + + + + Christian Joy + Christliche Freude + + + + Select an image for the wallpaper + Ein Bild für Hintergrund wählen + + + + Images(%1) + Bilder(%1) + + + + GeneralSettingWidget + + Form + Form + + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + Wenn ausgewählt, wird der Bildschirm "Fenster" immer im Vordergrund angezeigt. Dadurch wird verhindert, dass andere Fenster auf dem Bildschirm des Projektors angezeigt werden. + + + + Display window always on top + Bildschirm immer im Vordergrund anzeigen + + + + Theme: + Thema: + + + + Add New Theme + Neues Thema hinzufügen + + + + Primary Display Screen: + Erster Bildschirm: + + + + Secondary Display Screen: + Zweiter Bildschirm: + + + + Primary Display Screen Controls + Erster Bildschirm Steuerung + + + + Button Size: + Tasten-Größe: + + + + 16x16 + 16x16 + + + + 24x24 + 24x24 + + + + 32x32 + 32x32 + + + + 48x48 + 48x48 + + + + 64x64 + 64x64 + + + + 96x96 + 96x96 + + + + Alignment: + Ausrichtung: + + + + Top + Oben + + + + Middle + Zentrieren + + + + Bottom + Unten + + + + Left + Links + + + + Center + Zentrieren + + + + Right + Rechts + + + + Opacity: + Undurchsichtigkeit: + + + + Transparent + Transparent + + + + Opaque + Undurchsichtig + + + + NOTE: Display screen controls will be visible on the primary display screen only when one monitor is avaliable. + HINWEIS: Bildschirm-Steuerung wird auf dem ersten Bildschirm sichtbar sein, wenn nur ein Monitor vorhanden ist. + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Nützlich, wenn Sie ein Hintergrundbild benutzen. Zeigt einen besonderen Schatten-Effekt an. + + + Use shadow + Verwenden Sie ein Schatten + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Animationsübergang von einem Vers zum anderen. + + + Use fading effects + Animationseffekte verwenden + + + Use blurred shadow + Verzerrte Schatten verwenden + + + Use Passive Background Image + Verwenden Sie ein passives Hintergrundbild + + + Browse... + Durchsuchen... + + + + Display Screen Selection + Bildschirm-Auswahl + + + Display Screen: + Bildschirm-Anzeige: + + + + + Select onto which screen to dispaly + Wählen Sie, auf welchem Bildschirm angezeigt werden soll + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">NOTE:</span><span style=" font-size:8pt; color:#ff0000;"> Display screen selection is currenly under development. Changing the screen number, will change on which screen projection will be displayed.<br />On Windows, order is from left-to-right.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">NOTE:</span><span style=" font-size:8pt; color:#ff0000;"> Display screen selection is currenly under development. Changing the screen number, will change on which screen projection will be displayed.<br />On Windows, oder is from right-to-left.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</syple></head><body style="font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style="font-size:8pt; font-weight:600; color:#ff0000;">NOTE: </span><span style=" font-size:8pt; color:#ff0000;"> Bildschirm-Anzeige ist momentan in der Entwicklung. Beim Ändern der Bildschirm-Nummer wird auch geändert, auf welchem Bildschirm die Projektion angezeigt werden soll.<br />In Windows, die Reihenfolge von links nach rechts</span></p></body></html> + + + + Reset All To Default + Alles zurücksetzen + + + Select a image for main wallpaper + Wählen Sie ein Haput-Hintergrundbild + + + Images (*.png *.jpg *.jpeg) + Bilder (*.png *.jpg *.jpeg) + + + + none + kein(e) + + + + None + Kein(e) + + + + Edit Theme + Thema bearbeiten + + + + Theme Name: + Thema-Name: + + + + Comments: + Kommentare: + + + + Default + Standart + + + + This theme will contain program default settings. + Dieses Thema wird die Programm-Standardeinstellungen enthalten. + + + + HelpDialog + + + softProjector Help + softProjector Hilfe + + + + about:blank + über:leer + + + + Close + Schließen + + + + Ctrl+Q + Ctrl+Q + + + + ManageDataDialog + + + Manage Database + Datenbank verwalten + + + + Bibles + Bibeln + + + + + + Download +&& Import... + Herunterladen +&& Importieren... + + + + Import a new Bible into your database + Eine neue Bibel in die Datenbank importieren + + + + + + &Import... + &Importieren... + + + + + + + Ctrl+I + Ctrl+I + + + + Edit Bible title of currently selected Bible. + Bearbeiten eines Bibel-Titels der aktuell ausgewählten Bibel. + + + + + + &Edit... + &Bearbeiten... + + + + + + Ctrl+E + Ctrl+E + + + + Export currently selected Bible to share with others. + Die aktuell ausgewählte Bibel exportieren, um mit anderen zu teilen. + + + + + + E&xport... + E&xport... + + + + + + + Ctrl+X + Ctrl+X + + + + Delete a Bible that you will no longer want to use in this program. + Löschen einer Bibel, die Sie in diesem Programm nicht mehr benutzen möchten. + + + + + + &Delete... + &Löschen... + + + + + + Ctrl+D + Ctrl+D + + + + Songbooks + Gesangbücher + + + + + + Import a new Songbook into database. + Importieren eines neuen Gesangbuches in die Datenbank. + + + + + Edit the title and information about the Songbook. + Bearbeiten Sie den Titel und die Informationen von dem Gesangbuch. + + + + + + Export currently selected Songbook to be able to share with others and for backup. + Exportieren des aktuell ausgewählten Gesangbuches, um in der Lage zu sein, mit Anderen zu teilen und für die Datensicherung. + + + + + Delete currently selected Songbook from database. + Das aktuell ausgewählte Gesangbuch aus der Datenbank löschen. + + + + Themes + Themen + + + + &New... + &Neu... + + + + Export All... + Alle exportieren... + + + + Close Manage Database Dialog + “Datenbank verwalten”-Dialogfeld schließen + + + + Close + Schließen + + + + Ctrl+Q + Ctrl+Q + + + + Select a songbook to import + Wählen eines Gesangbuches zum Importieren + + + softProjector songbook file + softProjector Gesangbuch-Datei + + + + + Importing... + Importieren... + + + + + + Cancel + Abbrechen + + + User songbook + Benutzer-Gesangbuch + + + Songbook imported by the user + Gesangbuch durch den Benutzer importiert + + + + Too old SongBook file format + Gesangbuch-Dateiformat ist zu alt + + + + Save the songbook as: + Gesangbuch speichern als: + + + softProjector songbook file (*.sps) + softProjector Gesangbuch-Datei (*.sps) + + + + SoftProjector songbook file + SoftProjector Gesangbuch-Datei + + + + The SongBook file you are opening, is of a later release and +is not supported by current version of SoftProjector. +You are trying to open SongBook version %1. +Please upgrade to latest version of SoftProjector and try again. + Die Gesandbuch-Datei, die Sie öffnen, ist von einem späteren Release und +wird nicht durch aktuelle Version von softProjector unterstützt. +Sie versuchen, Gesangbuch-Version %1 zu öffnen. +Bitte aktualisieren Sie die neueste Version von softProjector und versuchen Sie es erneut. + + + + + Unsupported SongBook version. + Nicht unterstützte Gesangbuch-Version. + + + + The SongBook file you are opening, is not supported +by current version of SoftProjector. + + Die Gesangbuch-Datei, die Sie öffnen, wird nicht +durch aktuelle Version des softProjectors unterstützt. + + + + The SongBook file you are opening, is in very old format +and is no longer supported by current version of SoftProjector. +You may try to import it with version 1.07 and then export it, and import it again. + Die Gesangbuch-Datei, die Sie öffnen, ist in einem sehr alten Format +und wird nicht mehr durch aktuelle Version des softProjector unterstützt. +Sie können versuchen, sie mit der Version 1.07 zu importieren und exportieren und wieder importieren. + + + + SoftProjector songbook file (*.sps) + SoftProjector Gesangbuch-Datei (*.sps) + + + + + An error has ocured when overwriting existing file. +Please try again with different file name. + Ein Fehler ist beim Überschreiben der bestehenden Datei aufgetreten. +Bitte versuchen Sie es mit einem anderen Dateinamen. + + + + Export complete + Exportieren abgeschlossen + + + + The songbook " + Das Gesangbuch " + + + + " +Has been saved to: + + " +Gespeichert als: + + + + + Delete songbook? + Gesangbuch löschen? + + + + + Are you sure that you want to delete: + Sind Sie sicher, dass Sie löschen möchten: + + + + This action will permanentrly delete this songbook + Durch diese Aktion wird das Gesangbuch unwiderruflich gelöscht + + + + Select Bible file to import + Eine Bibel-Datei zum Import auswählen + + + + + SoftProjector Bible file + SoftProjector Bibel-Datei + + + + The Bible format you are importing is of an usupported file version. +Your current SoftProjector version does not support this format. + Das Bibel-Format, das Sie importieren, ist eine nicht unterstützte Dateiversion. +Ihre aktuelle softProjector-Version unterstützt nicht dieses Format. + + + + Unsupported Bible file format + Nicht unterstütztes Bibeldatei-Format + + + + + Edit Theme + Thema bearbeiten + + + + + Theme Name: + Thema-Name: + + + + + Comments: + Kommentare: + + + + Default + Standart + + + + This theme will contain program default settings. + Dieses Thema wird die Programm-Standardeinstellungen enthalten. + + + + Select a Theme to import + Ein Thema zum Importieren wählen + + + + + SoftProjector Theme file + SoftProjector Thema-Datei + + + + Importing Themes... + Themen zum Importieren... + + + + The Theme file you are opening, is of a later release and +is not supported by current version of SoftProjector. +You are trying to open Theme version %1. +Please upgrade to latest version of SoftProjector and try again. + Die Thema-Datei, die Sie öffnen, ist von einem späteren Release und +wird nicht durch aktuelle Version von softProjector unterstützt. +Sie versuchen, Gesangbuch-Version %1 zu öffnen. +Bitte aktualisieren Sie die neueste Version von softProjector und versuchen Sie es erneut. + + + + + Unsupported Theme version. + Nicht unterstützte Thema-Version. + + + + The Theme file you are opening, is not supported +by current version of SoftProjector. + + Die Thema-Datei, die Sie öffnen, wird nicht +durch aktuelle Version des softProjectors unterstützt. + + + + Export Theme as: + Thema exportieren als: + + + + Export all theme as: + Alle Themen exportieren als: + + + + softProjector Theme file + softProjector Thema-Datei + + + + Exporting Themes... + Themen exportieren... + + + + Delete Theme? + Thema löschen? + + + + Are you sure that you want to delete theme: + Sind Sie sicher, dass Sie das Thema löschen möchten?: + + + + This action will permanentrly delete this theme + Durch diese Aktion wird das Thema unwiderruflich gelöscht + + + + Error opening module list. + Fehler beim Öffnen der Modulliste. + + + + Failed to open mod list + Öffnen der Modulliste gescheitert + + + + +Downloading: %1 +From: %2 + Heruntergeladen: %1 +Von: %2 + + + + Error opening save file %1 for download %2 +Error: %3 + Fehler beim Öffnen der "Datei speichern" %1 zum Download %2 +Fehler: %3 + + + + Error downloading module list. + Fehler beim Herunterladen der Modul-Liste. + + + + Bible Module Download + Bibel-Modul herunterladen + + + + Songbook Module Download + Gesangbuch-Modul herunterladen + + + + Theme Module Download + Thema-Modul herunterladen + + + + Download Error: %1 + Herunterladen-Fehler: %1 + + + + Saved to: %1 + Gespeichert in: %1 + + + + +Importing: %1 + Importieren: %1 + + + Old Bible file format + Altes Bibel-Dateiformat + + + The Bible format you are importing is of an old version. +Your current SoftProjector does not support this format. +Please download lattest Bibles and import them. + The Bible format you are importing is of an old version. +Your current SoftProjector does not support this format. +Please download lattest Bibles and import them + Das Bibel-Format, das Sie importieren, ist eine alte Version. +Ihr aktueller SoftProjector unterstützt nicht dieses Format. +Bitte laden Sie die aktuellen Bibeln herunter und importieren sie. + + + + New Bible file format + Neues Bibel-Dateiformat + + + + The Bible format you are importing is of an new version. +Your current SoftProjector does not support this format. +Please upgrade SoftProjector to latest version. + Das Bibel-Format, das Sie importieren aus einer neuen Version. +Ihr aktueller SoftProjector unterstützt nicht dieses Format. +Bitte aktualisieren Sie SoftProjector auf die neueste Version. + + + All supported Bible files + Alle unterstützten Bibel-Dateien + + + softProjector Bible file + softProjector Bibel-Datei + + + Unbound Bible file + Unbound Bibel-Datei + + + + Save exported Bible as: + Exportierte Bibel speichern als: + + + + Exporting... + Exportieren... + + + + Bible has been exported + Bibel wurde exportiert + + + + Bible: + + Bibel: + + + + + +Has been saved to: + + +Gespeichert als: + + + + + Delete Bible? + Bibel löschen? + + + + This action will permanentrly delete this Bible + Diese Aktion löscht die Bibel unwiderruflich + + + + Edit Songbook + Gesangbuch bearbeiten + + + Edit Bible name + Bibel Name bearbeiten + + + Bible title: + Bibel-Titel: + + + + MediaWidget + + + Form + Form + + + + - Media Library - + - Media-Bibliothek - + + + + Go Live (F5) + Anzeigen (F5) + + + + F5 + F5 + + + + Open + Öffnen + + + + Aspect Ratio: + Seitenverhältnis: + + + + Auto + Auto + + + + Scale + Maßstab + + + + 4/3 + 4/3 + + + + 16/9 + 16/9 + + + + + <center>No media</center> + <center>Kein Medium</center> + + + + No Media + Kein Medium + + + + Open Music/Video File + Öffnen Musik-/Video-Datei + + + + + Media Files (%1);;Audio Files (%2);;Video Files (%3) + Media-Dateien (%1);;Audio-Dateien (%2);;Video-Dateien (%3) + + + + Select Music/Video Files to Open + Music-/Videodateien zum Öffnen wählen + + + + ModuleDownloadDialog + + + Dialog + Dialog + + + + Select modules you wish to download and import. + Ein Modul, das Sie herunterladen oder importieren möchten, wählen. + + + + Select All + Alles wählen + + + + Deselect All + Alles deaktivieren + + + + ModuleProgressDialog + + + Download / Import Progress Dialog + Herunterladen / Importieren Fortschritt-Dialog + + + + Current Progress: + Aktueller Fortschritt: + + + + Total Progress: + Gesamt Fortschritt: + + + + Close + Schließen + + + + Native language name + + English + Deutsch + + + + English + Do not change + Deutsch + + + + PassiveSettingWidget + + Form + Form + + + + + Use Passive Background Image + Verwenden Sie ein passives Hintergrundbild + + + + + Browse... + Durchsuchen... + + + + Use Separate Secondary Display Screen Settings + Einstellungen für den 2. Bildschirm + + + + Reset All To Default + Alles zurücksetzen + + + + + Select a image for passive wallpaper + Ein Bild für den passiven Hintergrund wählen + + + + + Images(%1) + Bilder(%1) + + + + PictureSettingWidget + + Picture Settings + Bildeinstellungen + + + + When Displaying Slideshows: + Wenn Dias angezeigt werden: + + + + Expand Small Images + Kleine Bilder erweitern + + + + Fit Images To Screen + Bilder fürs Anzeigen anpassen + + + + Fit Images To Screen By Expanding + Bilder fürs Anzeigen anpassen durch Erweiterung + + + + Resize Large Images on Import + Änderung der großen Bilder zum Importieren + + + + It is highly recommended to reduce large images on import. This will improve load, save and display time of slideshows. +We recommend to resize images to display screen size. + Es wird dringend empfohlen, die großen Bilder zum Importieren zu reduzieren. Dies wird besser, um zu laden, speichern und anzeigen für Slideshow. +Wir empfehlen, die Größe von Bildern auf Bildschirmgröße anzupassen. + + + + Bound Box: + Gebundene Box: + + + + 800 x 800 + 800 x 800 + + + + 1024 x 1024 + 1024 x 1024 + + + + 1280 x 1280 + 1280 x 1280 + + + + 1366 x 1366 + 1366 x 1366 + + + + 1440 x 1440 + 1440 x 1440 + + + + 1600 x 1600 + 1600 x 1600 + + + + 1920 x 1920 + 1920 x 1920 + + + + Custom + Benutzerdefiniert + + + + Inalid Numeric Value + Ungültiger nummerischer Wert + + + + Entered '%1' custom width is not numeric. + Eingegebene %1 benutzerdefinierte Breite ist nicht numerisch. + + + + PictureWidget + + + Form + Form + + + + Slide Shows: + Dia-Shows: + + + + Go Live (F5) + Anzeigen (F5) + + + + F5 + F5 + + + + + Picture Preview + Bild-Vorschau + + + + Picture Information + Bild-Information + + + + Edit Preview Slide Show: + Dias-Show-Vorschau bearbeiten: + + + + Add + Hinzufügen + + + + Remove + Entfernen + + + + Clear + Entfernen + + + + Editing slide show here will not change anything in database. To have save changes, use "New Slide Show" or "Edit Slide Show". + Bearbeiten von Dia-Show hier wird nichts in der Datenbank ändern. Um die Änderungen zu speichern, verwenden Sie "Neue Dia-Show" oder "Dia-Show-Bearbeiten". + + + + + Preview slide: + Dia-Vorschau: + + + + Select Images to Open + Bilder zum Öffnen wählen + + + + Images(%1) + Bilder(%1) + + + + Adding files... + Hinzufügen von Dateien... + + + + Cancel + Abbrechen + + + + Slide Show: %1 + Dia-Show: %1 + + + + PrintPreviewDialog + + + softProjector Print Dialog + softProjector Drucken-Dialog + + + + Margins: + Ränder: + + + + Left Margin + Linker Rand + + + + L: + L: + + + + Top Margin + Oberer Rand + + + + T: + O: + + + + Right Margin + Rechter Rand + + + + R: + R: + + + + Bottom Margin + Unterer Rand + + + + B: + U: + + + + Inch + Zoll + + + + Millimeter + Millimeter + + + + Pixel + Pixel + + + + Point + Punkt + + + + Font: + Schriftart: + + + + To PDF + Zu PDF + + + + Print + Drucken + + + + Tune: %1 + + Melodie: %1 + + + + + Words By: %1 Music By: %2 + + + Dichter: %1 Komponist: %2 + + + + + + Words By: %1 + + + Dichter: %1 + + + + + + Music By: %1 + + + Komponist: %1 + + + + + + + +Notes: +%1 + + +Notizen: +%1 + + + + Announcements: %1 + + + Ankündigungen: %1 + + + + + + SoftProject Schedule: + SoftProjector Plan: + + + + Save PDF as + Speichern als PDF + + + + SettingsDialog + + + softProjector - Settings + softProjector-Einstellungen + + + + General + Allgemein + + + + Passive + Passiv + + + + Bible + Bibel + + + + Picture + Bild + + + + Media + Media + + + + Announcements + Ankündigungen + + + + General SoftProjector Settings + Allgeimene SoftProjector Einstellungen + + + + Passive Settings + Passiv-Einstellungen + + + + This setting are displayed when nothing is to be projected. + Diese Einstellung werden angezeigt, wenn nichts zu projizieren ist. + + + + Bible Settings + Bibel-Einstellungen + + + + Song Settings + Lied-Einstellungen + + + + Picture Settings + Bild-Einstellungen + + + + Media Settings + Media-Einstellungen + + + + Announcement Settings + Ankündigunen-Einstellungen + + + Primary Bible: + Primäre Bibel: + + + Secondary Bible: + Sekundäre Bibel: + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + Wenn ausgewählt, wird der Bildschirm "Fenster" immer im Vordergrund angezeigt. Dadurch wird verhindert, dass andere Fenster auf dem Bildschirm des Projektors angezeigt werden. + + + Display window always on top + Bildschirm immer im Vordergrund anzeigen + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Animationsübergang von einem Vers zum anderen. + + + Use fading effects + Animationseffekte verwenden + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Nützlich, wenn Sie ein Hintergrundbild benutzen. Zeigt einen besonderen Schatten-Effekt an. + + + Use blurred shadow + Verzerrte Schatten verwenden + + + Change Font... + Schriftart ändern... + + + Text color: + Textfarbe: + + + Choose color... + Farbe wählen... + + + Active wallpaper + Aktiver Hintergrund + + + Browse... + Durchsuchen... + + + Remove wallpaper + Hintergrund entfernen + + + Passive wallpaper + Passiver Hintergrund + + + + Songs + Lieder + + + Show song number + Lied-Nummer anzeigen + + + Show song key + Tonart anzeigen + + + Show stanza title + Strophen-Titel anzeigen + + + None + Keine + + + Select a picture for the wallpaper + Ein Bild für den Hintergrund auswählen + + + Images (*.png *.jpg *.jpeg) + Bilder (*.png *.jpg *.jpeg) + + + + OK + OK + + + + Cancel + Abbrechen + + + + Apply + Übernehmen + + + + SlideShowEditor + + + Slide Show Editor + Diashow-Editor + + + + Slide Show Title: + Diashow-Titel: + + + + Slide Show Info: + Diashow-Info: + + + + Add Pictures + Bilder hinzufügen + + + + Remove Picture + Bild entfernen + + + + Picture Preview + Bild-Vorschau + + + + Picture Information + Bild-Information + + + + Save + Speichern + + + + + Cancel + Abbrechen + + + + Select Images to Open + Bilder zum Öffnen wählen + + + + Images(%1) + Bilder(%1) + + + + Adding files... + Hinzufügen von Dateien... + + + + Slide show title cannot be left empty. +Please enter a title. + Diashow-Titel kann nicht leer gelassen werden. +Bitte geben Sie einen Titel ein. + + + + Slide show title is missing + Diashow-Titel fehlt + + + + Saving Slide Show + Diashow speichern + + + + Preview slide: %1 + Diashow-Vorschau: %1 + + + + SoftProjector + + This software is free and Open Source. If you can help in improving this program please visit softprojector.sourceforge.net + This software is free and Open Source. If you can help in improving this program please visit sourceforge.net/projects/softprojector/ + Diese Software ist kostenlos und ohne Kodierung. Wenn Sie bei der Verbesserung dieses Programms mithelfen möchten, besuchen Sie bitte sourceforge.net/projects/softprojector/ + + + + + Bible (F6) + Bibel (F6) + + + + + Songs (F7) + Lieder (F7) + + + + + Pictures + Bilder + + + + + Media + Media + + + + + Announcements (F8) + Ankündigungen (F8) + + + Project not saved + project as in document file + Projekt nicht gespeichert + + + Do you want to save current project? + project as in document file + Möchten Sie aktuelles Projekt speichern? + + + Announcement + Ankündigung + + + Words by: %1, Music by: %2 + Text: %1, Komponist: %2 + + + Words by: %1 + Text: %1 + + + Music by: %1 + Komponist: %1 + + + + Cannot start new edit + Neue Bearbeitung kann nicht strarten + + + + + + Another song is already been edited. + Another song is already beeb edited. + Ein weiteres Lied ist bereits bearbeitet. + + + + Schedule not saved + Plan nicht gespeichert + + + + Do you want to save current schedule? + Möchten Sie den aktuellen Plan speichern? + + + + &Clear Bible History List + &Bibelhistory-Liste entfernen + + + + &New Song... + &Neues Lied... + + + + &Edit Song... + &Lied bearbeiten... + + + + &Copy Song... + &Lied kopieren... + + + + &Delete Song + &Lied löschen + + + + &New Slide Show... + &Neue Diashow... + + + + &Edit Slide Show... + &Diashow bearbeiten... + + + + &Delete Slide Show + &Diashow löschen + + + + &Add Media Files... + &Hinzufügen der Mediadateien... + + + + &Remove Media Files + &Entfernen der Mediadateien + + + + &New Announcement... + &Neue Ankündigug... + + + + &Edit Announcement... + &Ankündigung bearbeiten... + + + + &Copy Announcement... + &Ankündigung kopieren... + + + + &Delete Announcement + &Ankündigung löschen + + + + + + Please save and/or close current edited song before edited a different song. + Bitte speichern und/oder schließen Sie das aktuell bearbeitete Lied vor einer neuen Liedbearbeitung. + + + + + + + No song selected + Kein Lied gewählt + + + No song has been selected to be edited. + Zum Bearbeiten wurde kein Lied ausgewählt. + + + Please select a song to be edited. + Zum Bearbeiten wählen Sie bitte ein Lied. + + + + Cannot create a new song + Ein neues Lied kann nicht erstellt werden + + + + No song has been selected to edit. + Kein Lied zum Bearbeiten gewählt. + + + + Please select a song to edit. + Bitte ein Lied zum Bearbeiten wählen. + + + + Cannot copy this song + Dieses Lied kann nicht kopiert werden + + + + No song has been selected to copy + Kein Lied zum Kopieren gewählt + + + + Please select a song to copy + Bitte ein Lied zum Kopieren wählen + + + + No song has been selected to delete + Kein Lied zum Löschen gewählt + + + + Please select a song to delete + Bitte ein Lied zum Löschen wählen + + + + + No slideshow selected + Keine Diashow gewählt + + + + No slideshow has been selected to edit. + Keine Diashow zum Bearbeiten gewählt. + + + + Please select a slideshow to edit. + Bitte eine Diashow zum Bearbeiten wählen. + + + + Delete slideshow? + Diashow löschen? + + + + Delete slideshow: " + Löschen der Diashow: " + + + + This action will permanentrly delete this slideshow + Durch diese Aktion wird die Diashow unwiderruflich gelöscht + + + + No slideshow has been selected to delete. + Keine Diashow zum Löschen gewählt. + + + + Please select a slideshow to delete. + Bitte eine Diashow zum Löschen wählen. + + + + No media selected + Kein Media gewählt + + + + No media item has been selected to delete. + Kein Media-Artikel zum Löschen gewählt. + + + + Please select a media item to delete. + Bitte ein Media-Artikel zum Löschen wählen. + + + + + + No Announcement Selected + Keine Ankündigung gewählt + + + + No announcement has been selected to edit + Keine Ankündigung zum Bearbeiten gewählt + + + + Please select an announcement to edit + Bitte eine Ankündigung zum Bearbeiten wählen + + + + No announcement has been selected to copy + Keine Ankündigung zum Kopieren gewählt + + + + Please select an announcement to copy + Bitte eine Ankündigung zum Kopieren wählen + + + + Delete Announcement? + Ankündigung löschen? + + + + Delete announcement: " + Löschen der Ankündigung: " + + + + This action will permanentrly delete this announcement + Durch diese Aktion wird die Ankündigung unwiderruflich gelöscht + + + + No announcement has been selected to delete + Keine Ankündigung zum Löschen gewählt + + + + Please select an announcement to delete + Bitte eine Ankündigung zum Löschen wählen + + + + No song has been selected to be printed. + Kein Lied zum Drucken gewählt. + + + + Please select a song to be printed. + Bitte ein Lied zum Drucken wählen. + + + + No announcement selected + Keine Ankündigung gewählt + + + + No announcement has been selected to be printed. + Keine Ankündigung zum Drucken gewählt. + + + + Please select a announcement to be printed. + Bitte eine Ankündigung zum Drucken wählen. + + + + + + Save Schedule? + Plan speichern? + + + + Do you want to save current schedule before creating a new schedule? + Möchten Sie den aktuellen Plan speichern bevor Sie einen neuen Plan erstellen? + + + + Do you want to save current schedule before opening a new schedule? + Möchten Sie den aktuellen Plan speichern bevor Sie einen neuen Plan öffnen? + + + + Open SoftProjector schedule: + SoftProjector-Plan öffnen: + + + + + SoftProjector schedule file + SoftProjector-Plandatei + + + + Save SoftProjector schedule as: + SoftProjector-Plan speichern als: + + + Open softProjector schedule: + softProjector-Plan öffnen: + + + softProjector schedule file + softProjector-Plandatei + + + Save softProjector schedule as: + softProjector-Plan speichern als: + + + + Do you want to save current schedule before closing it? + Möchten Sie den aktuellen Plan speichern bevor Sie schließen? + + + + Saving schedule file... + Plandatei speichern... + + + + An error has ocured when overwriting existing file. +Please try again with different file name. + Ein Fehler ist beim Überschreiben der bestehenden Datei aufgetreten. +Bitte versuchen Sie es mit einem anderen Dateinamen. + + + + Opening schedule file... + Plandatei öffnen... + + + + The schedule file you are trying to open is of uncompatible version. +Compatible version: 2 +This schedule file version: + Die Plan-Datei, die Sie zu öffnen versuchen, ist nicht kompatible-Version. +Kompatible Version: 2 +Diese Plan-Datei Version: + + + English + Englisch + + + Save Project? + project as in document file + Projekt speichern? + + + Do you want to save current project before opening other? + project as in document file + Bevor Sie ein anderes Projekt öffnen, möchten Sie dieses spreichern? + + + Open softProjector project + softProjector Projekt öffnen + + + softProjector project file + softProjector Projekt-Datei + + + Save softProjector project as: + softProjector Projekt speichern als: + + + Save Project? + Projekt speichern? + + + Do you want to save current project before creating a new project? + Möchten Sie vor dem Erstellen eines neuen Projekts das aktuelle speichern? + + + Do you want to save current project before closing it? + Möchten Sie vor dem Schließen speichern? + + + Incorrect project file format + Falsches Projekt Dateiformat + + + The softProjector project file you are opening, +is not supported by your version of softProjector. +You may try upgrading your version of softProjector. + Die softProjector Projekt-Datei, die Sie öffnen, +wird nicht von Ihrer Version von softProjector unterstützt. +Bitte versuchen Sie, ein Upgrade Ihrer Version von softProjector zu machen. + + + No song has been selected to be edited + Ein Lied zum bearbeiten wurde nicht ausgewählt + + + Please select a song to be edited + Wählen Sie ein Lied zum bearbeiten + + + No song has been selected to be copied + No song has been selected to be coppied + Ein Lied zum speichern wurde nicht ausgewählt + + + Please select a song to be copied + Please select a song to be coppied + Wählen Sie ein Lied zum speichern + + + + Delete song? + Lied löschen? + + + + Delete song " + Löschen des Liedes " + + + No song has been selected to be deleted + Das Lied zum löschen wurde nicht ausgewählt + + + Please select a song to be deleted + Wählen Sie ein Lied zum löschen + + + Are you sure that you want to delete a song? + Sind Sie sich sicher, dass Sie ein Lied loschen mochten? + + + + This action will permanentrly delete this song + Durch diese Aktion wird das Lied unwiderruflich gelöscht + + + + SoftProjectorClass + + + Tab + Tab + + + Stop displaying text to the screen (display black screen or wallpaper). Sortcut for this button is the Escape key. + Den Text auf dem Bildschirm nicht anzeigen (Schwarzer Bildschirm oder Hintergrund anzeigen). Direktlink ist die Esc-Taste. + + + Hide (Esc) + Verstecken (Esc) + + + + Esc + Esc + + + If Clear was pressed earlier, this will re-display the text to the screen + Wenn Löschen gedrückt wurde, wird der Text auf den Bildschirm wieder angezeigt + + + Show (F4) + Anzeigen (F4) + + + + F4 + F4 + + + + Use Multi Verse + Mehrere Verse anzeigen + + + + Service Schedule: + Serviceplan: + + + + If selected, this will allow to select multiple verses at one time. Will need to press "Show" each time. + Wenn aktiviert, ermöglicht es, mehrere Verse auf einmal auswählen. Sie müssen jedes Mal die Taste "Anzeigen" drücken. + + + + &File + &Datei + + + + &Edit + &Bearbeiten + + + + + &Help + &Hilfe + + + + Select Language + Sprache wählen + + + + Language + Sprache + + + + View + Ansicht + + + + Schedule + Plan + + + + Display Screen + Bildschirm + + + + File Tool Bar + Datei-Symbolleiste + + + + Schedule Tool Bar + Plan-Symbolleiste + + + + Edit Tool Bar + Symbolleiste bearbeiten + + + + Display Control Tool Bar + Kontrolsymbolleiste-Anzeige + + + + Import and export Bibles, songbooks and themes + Bibeln, Gesangbücher und Themen importieren und exportieren + + + + Open Help + Hilfe öffnen + + + + &Open Schedule + &Plan öffnen + + + + &Save Schedule + &Plan speichern + + + + Save Schedule &As + Plan speichern &als + + + + Save Schedule with different name + Plan unter einem anderen Namen speichern + + + + &New Schedule + &Neuer Plan + + + + Start new Schedule + Neuen Plan starten + + + + + Close Schedule + Plan schließen + + + + &Print + &Drucken + + + + Prints selected Bible chapter, selected song and selected announcement. + Druckt ausgewählte Bibel-Kapitel, Lieder und Ankündigung. + + + + + Print Schedule + Druckt Plan + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + Del + Löschen + + + + Donate + Spende + + + + Donate to softProjector development team + Spende für das softProjector-Entwicklungsteam + + + + Add to Schedule + Zum Plan hinzufügen + + + + F2 + F2 + + + + Remove from Schedule + Vom Plan entfernen + + + + Ctrl+Del + + + + F3 + F3 + + + + Clear Schedule + Plan entfernen + + + + Move Item To Top + Nach oben verschieben + + + + Move Schedule item to top of the list + Plan in der Liste nach oben verschieben + + + + Move Item Up + Nach oben verschieben + + + + Move Schedule item up + Plan nach oben verschieben + + + + Mode Item Down + Nach unten verschieben + + + + Move Schedule item down + Plan nach unten verschieben + + + + Move Item To Bottom + Nach unten verschieben + + + + Move Schedule item to bottom of the list + Plan in der Liste nach unten verschieben + + + + Show + Anzeigen + + + + Dsiplay to the screen (F4) + Auf dem Bildschirm anzeigen (F4) + + + + Show Passive Screen (Stop displaying to the screen) (Esc) + Passiven Bildschirm anzeigen (Beenden der Anzeige auf dem Bildschirm) (Esc) + + + + Clear + Entfernen + + + + Clear Display Text (Shift+Esc) + Bildschirm-Text entfernen (Shift+Esc) + + + + Shift+Esc + Shift+Esc + + + + On / Off + Ein / Aus + + + + Turn Display Screen On/Off + Bildschirmanzeige ein- bzw. ausschalten + + + Close + Schließen + + + Close Display Window + Bildschirm-Fenster schließen + + + + Hide + Verstecken + + + Songs + Lieder + + + toolBar + Symbolleiste + + + + &About + &Über + + + + &Settings... + &Einstellungen... + + + + Open settings dialog + Einstellungen-Dialog öffnen + + + + Ctrl+T + Ctrl+T + + + + E&xit + &Beenden + + + + Exit SoftProjector + softProjector beenden + + + + Ctrl+Q + Ctrl+Q + + + &Edit Current Song... + &Aktuelles Lied bearbeiten... + + + + Ctrl+E + Ctrl+E + + + &New Song... + &Neues Lied... + + + + Ctrl+N + Ctrl+N + + + + &Manage Database... + &Datenbank verwalten... + + + Import and export song collections and Bibles + Import und Export von Lieder-Sammlungen und Bibeln + + + + Ctrl+M + Ctrl+M + + + &Delete Current Song + &Aktuelles Lied löschen + + + Ctrl+D + Ctrl+D + + + + F1 + F1 + + + Copy Current Song... + Lied speichern... + + + Copy current song into a new songbook + Lied speichern in das neue Gesangbuch + + + + Ctrl+C + Ctrl+C + + + + Song Counter... + Song Counter + Lied-Zähler... + + + &Open Project + &Öffnen Projekt + + + + Ctrl+O + Ctrl-O + + + &Save Project + &Speichern Projekt + + + + Ctrl+S + Ctrl+S + + + Save Project &As + Speichern Projekt &unter + + + New Project + Neues Projekt + + + + Ctrl+Shift+N + Ctrl+Shift+N + + + Close Project + Schließen Projekt + + + + Ctrl+P + Ctrl+P + + + + SongCounter + + + Song Counter + Lied-Zähler + + + + Reset Selected + Zurücksetzen + + + + Reset All + Alles zurücksetzen + + + + Close + Schließen + + + + + January + January %1, %2 + Januar + + + + + February + February %1, %2 + Februar + + + + + March + March %1, %2 + März + + + + + April + April %1, %2 + April + + + + + May + Mai + + + + + June + June %1, %2 + Juni + + + + + July + July %1, %2 + Juli + + + + + August + August %1, %2 + August + + + + + September + September %1, %2 + September + + + + + October + October %1, %2 + Oktober + + + + + November + November %1, %2 + November + + + + + December + December %1, %2 + Dezember + + + + SongCounterModel + + Song Title + Name des Liedes + + + + Number + Nummer + + + + Title + Titel + + + + Count + Zähler + + + + Date + Datum + + + + Songbook + Gesangbuch + + + + SongSettingWidget + + Form + Form + + + + + Effects + Effekte + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Wenn aktiviert, beim Umschalten wird der alte Text aus- und der neue eingeblendet. + + + + + Use fading effects + Animationseffekte verwenden + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Nützlich, wenn ein Hintergrundbild benutzt wird. Zeigt einen besonderen Schatten-Effekt an. + + + + + Use shadow + Schatten verwenden + + + + + Use blurred shadow + Verschwommene Schatten verwenden + + + + + Song Information + Lied-Information + + + + + Show Stanza Title + Strophentitel anzeigen + + + + + Show Song Key + Lied-Tonart anzeigen + + + + + Show Song Number + Lied-Nummer anzeigen + + + + + + + + + Color... + Farbe... + + + + + + Alignment: + Ausrichtung: + + + + + Above Text + Über dem Text + + + + + Below Text + Unter dem Text + + + + + Show Song Ending + Lied-Endung anzeigen + + + *** + *** + + + This will show WordsBy and MusicBy as song ending + Beim Lied-Ende wirden Text und Komponist angezeigt + + + + + Song Copyright Info + Lied Urheberrechte-Info + + + + + + + Position: + Position: + + + + + Below Song Text + Unter dem Liedtext + + + + + + Bottom of Screen + Unten auf dem Bildschirm + + + + + Use Background Image + Ein Hintergrundbild verwenden + + + + + Browse... + Durchsuchen... + + + Text Alingment + Textausrichtung + + + Vertical: + Vertikal: + + + Horizontal: + Horizontal: + + + + + Top + Oben + + + + + Middle + Zentrieren + + + + + Bottom + Unten + + + + + Left + Links + + + + + Center + Zentrieren + + + + + Right + Rechts + + + Text Properties + Texteigenschaften + + + Color: + Farbe: + + + Choose color... + Farbe wählen... + + + + + + + + + Font... + Font + Schrift... + + + + + Type: + Art: + + + + Apply this background to all active backgrounds. + Wenden Sie diesen Hintergrund an alle aktiven Hintergründe. + + + + + Song Text Properties + Liedtext-Eigenschaften + + + + Alingment: + Ausrichtung: + + + + + Amount Of Screen To Use + Fläche vom Bildschirm benutzen + + + + Vertical Screen Use: + Vertikale Bildschirm-Nutzung: + + + + + Percent of screen to be used. + Prozentuale Nutzung vom Bildschirm. + + + + + Select to use either top portion of the screen or bottom. + Nutzungswahl zwischen des oberen oder des unteren Teils am Bildschirm. + + + + Top of screen + Oben auf dem Bildschirm + + + + Bottom of screen + Unten auf dem Bildschirm + + + + Use Separate Secondary Display Screen Settings + Einstellungen für den 2. Bildschirm + + + + * * * + * * * + + + + - - - + - - - + + + + ° ° ° + ° ° ° + + + + • • • + • • • + + + + ● ● ● + ● ● ● + + + + ▪ ▪ ▪ + ▪ ▪ ▪ + + + + ■ ■ ■ + ■ ■ ■ + + + + Vertical Screen Use + Vertikale Bildschirm-Nutzung + + + + % + % + + + + Top of Screen + Oben auf dem Bildschirm + + + + Reset All To Default + Alles zurücksetzen + + + + + Select a image for song wallpaper + Ein Hintergrundbild für Lied wählen + + + + + Images(%1) + Bilder(%1) + + + + Bold + Fett + + + + Italic + Kursiv + + + + StrikeOut + Durchgestrichen + + + + Underline + Unterstreichen + + + Images (*.png *.jpg *.jpeg) + Bilder (*.png *.jpg *.jpeg) + + + + SongWidget + + + Form + Form + + + + Use this menu to show only songs beloning to a particular Songbook + Verwenden Sie dieses Menü, um nur Lieder aus einem bestimmten Gesangbuch anzuzeigen + + + + Select Songbook to use + Gesangbuch wählen, um es zu verwenden + + + + Selects a song by the number in the selected Songbook + Wählt ein Lied nach der Nummer im gewählten Gesangbuch aus + + + + + + Filter: + Filter: + + + + Use this field to limit the display of the songs to only the ones that contain the specified text in the song title or song number + Dieses Feld verwenden, um die Anzeige von Liedern zu limitieren, die bestimmten Text im Lied-Titel oder in der Lied-Nummer enthalten + + + + + Search Type: + Suchart: + + + + Exact Match + Genaue Übereinstimmung + + + + Contains Phrase + Enthält Phrase + + + + Contains Word Phrase + Enthält Wordsatz + + + + Line Begins + Zeile beginnt + + + + Contains Any Word + Enthält jedes Wort + + + + Contains All Words + Enthält alle Worte + + + + Search + Suche + + + + Return + Zurück + + + Matches only songs the song number or title of which contains the entered string. + Verknüpft nur Lieder mit Lied-Nummer oder Titel, welche den eingegebenen Begriff enthalten. + + + + Contains + Enthält + + + Matches only songs the song number or title of which begins with the entered string. + Verknüpft nur Lieder mit Lied-Nummer oder Titel, welche mit dem eingegebenen Begriff beginnen. + + + + Begins + Beginnt + + + Matches only songs the song number or title of which exactly matches the entered string. + Verknüpft nur Lieder mit Lied-Nummer oder Titel, welche genau auf den eingegebenen Begriff zutreffen. + + + Exact match + Genaue Anpassung + + + + Done Searching? - Clear Search Results + Suche abgeschlossen? - Suchergebnisse löschen + + + Add the selected song to the playlist + Ausgewähltes Lied zur Wiedergabeliste hinzufügen + + + Add (F2) + Add to playlist (F2) + Fügen (F2) + + + F2 + F2 + + + Remove the selected song from the playlist + Ausgewähltes Lied aus der Wiedergabeliste entfernen + + + Remove (F3) + Remove from playlist + Entfernen (F3) + + + F3 + F3 + + + Song preview: None + Vorschau: Das Lied fehlt + + + Song preview + Lied-Vorschau + + + + Quickly display the selected song on the screen without adding it to playlist first + Schnelle Anzeige des ausgewählten Liedes auf dem Bildschirm, ohne es zuerst zur Wiedergabeliste hinzuzufügen + + + + Go Live (F5) + Zeigen (F5) + + + + F5 + F5 + + + + + All songbooks + Alle Gesangbücher + + + Song Preview: + Lied-Vorschau: + + + Comments: + Comments to songs + Kommentare zum Lied: + + + + + Filter Type: + Filter-Art: + + + + Notes: + Notes to songs + Notizen für Lieder + Notizen: + + + + Could not find song with number + Die Nummer des Liedes konnte nicht gefunden werden + + + + No such song + Dieses Lied gibt es nicht + + + + + All song categories + Alle Lied-Kategorien + + + + Please enter search text + Bitte Such-Text eingeben + + + + Search: + Suche: + + + + SongbooksModel + + + Title + Titel + + + + Information + Infomation + Information + + + + SongsModel + + + Num + Nr. + + + + Title + Titel + + + + Songbook + Gesangbuch + + + + Tune + Tonart + + + + ThemeModel + + + Name + Name + + + + Comments + Kommentare + + + diff --git a/translations/softpro_ru.qm b/translations/softpro_ru.qm new file mode 100644 index 0000000000000000000000000000000000000000..c39e69e4c436f3439f533694c5f741597192333b GIT binary patch literal 80597 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 LB>L+7*rfjtrk`|P literal 0 HcmV?d00001 diff --git a/translations/softpro_ru.ts b/translations/softpro_ru.ts new file mode 100644 index 0000000..4c3923d --- /dev/null +++ b/translations/softpro_ru.ts @@ -0,0 +1,5118 @@ + + + +UTF-8 + + AboutDialog + + + About softProjecor + О программе softProjector + + + + Version: + Версия: + + + + an open souce media projection software + Открытая программа Софт Проектор + + + + Developers: + Разработчики: + + + + Vladislav Kobzar +------------------- +Ilya Spivakov +Matvey Adzhigirey + Ilya Spivakov +Matvey Adzhigirey +Vladislav Kobzar + Илия Спиваков +Матфей Аджигирей +Владислав Кобзарь + + + + Mac Build: + Подготовлет для Mac: + + + + Volodimir Vasuk + Володимир Васюк + + + + Special Thanks To: + Особая благодарность: + + + + Vitaliy Zhaborovskyy + + + + + Translators: + Переводчики: + + + + Russian: +German: +Czech: +Ukranian: + + + + + Vladimir Zinchenko +Eduard Schlak +Pavel Fric +Vitaliy Zhaborovskyy + + + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + Если вы хотите помочь в разроботке или желаете<br> +внести свой вклад данных, пожалуйста, посетите:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Donate</a> + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Пожертвовать</a> + + + Russian: +German: +Czech: + Русский: +Немецкий: +Чешский: + + + Vladimir Zinchenko +Eduard Schlak +Pavel Fric + Владимир Зинченко +Эдуард Шлак +Павел Фрик + + + Special thanks to: + Особая благодарность: + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.sourceforge.net/">http://softprojector.sourceforge.net/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + Если вы хотите помочь в разроботке или желаете<br> +внести свой вклад данных, пожалуйста, посетите:<br> +<a href="http://softprojector.sourceforge.net/">http://softprojector.sourceforge.net/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you would like to help developing this program </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">or would like to contribute data, please visit:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.sourceforge.net/"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://softprojector.sourceforge.net/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you would like to help developing this program </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">or would like to contribute data, please visit:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.com/"><span style=" text-decoration: underline; color:#0000ff;">http://softprojector.com/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Если вы хотите помочь в разроботке или желаете</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">внести свой вклад данных, пожалуйста, посетите:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://softprojector.sourceforge.net/"><span style=" text-decoration: underline; color:#0000ff;">http://softprojector.sourceforge.net/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/softprojector/"><span style=" text-decoration: underline; color:#0000ff;">http://sourceforge.net/projects/softprojector/</span></a></p></body></html> + + + + Close + Закрыть + + + + AddSongbookDialog + + + Add songbook + Добавить сборник + + + + Songbook Title: + Название сборника: + + + + Description: + Описание: + + + + AnnounceModel + + + Title + Название + + + + AnnounceWidget + + + Form + Форма + + + Announcement text: + Текст объявления: + + + Quickly display the selected song on the screen without adding it to playlist first + Вывод на экран без предварительного включения в список воспроизведения + + + + Announcements: + Обьявление: + + + + Quickly display announcement + Quickly display announcemnt + Быстрый вывод объявлений + Быстрый вывод объявлений + + + + Go Live (F5) + На экран (F5) + + + + F5 + + + + + Announcement Preview: + Предпросмотр: + + + Settings + Настройки + + + Horizontal alignment: + Горизонтальное выравнивание: + + + Left + Лево + + + Center + Центр + + + Right + Право + + + Vertical alignment: + Вертикальное выравнивание: + + + Top + Верх + + + Middle + Середина + + + Bottom + Нижний + + + Add this announcement to history list, automatically will be added to the list when "Go Live" button is pressed + add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + Добавить выбранный текст в список истории (автоматически добавляется при нажатии F5) + + + Add (F2) + Добавить (F2) + + + Add to history + Добавить к истории + + + This list contains verses that were sent to be shown + В списке находятся тексты для вывода на экран + + + Remove current selected announcement in the history list + Remove current selected verse in the history list + Удалить выбранный текст из списка истории + + + Remove (F3) + Remove from history + Удалить (F3) + + + + AnnouncementSettingWidget + + Form + Форма + + + + + Effects + Эфекты + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавное затухание при переходе с одного стиха на другой. + + + + + Use fading effects + Эффект затухания + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Полезно при использовании фоновых рисунков. Получаются интересные теневые эффекты. + + + + + Use shadow + Использовать тени + + + + + Use blurred shadow + Размытая тень + + + + + Use Background Image + Использовать рисунок фона + + + + + Browse... + Обзор... + + + + Apply this background to all active backgrounds. + Применить этот фон ко всем активным фоном. + + + + + Color... + Цвет... + + + Text Alingment + Выравнивание текста + + + Vertical: + Вертикальное: + + + Horizontal: + Горизонтальное: + + + + + Top + Верх + + + + + Middle + Середина + + + + + Bottom + Нижний + + + + + Left + Лево + + + + + Center + Центр + + + + + Right + Право + + + + + Text Properties + Свойства текста + + + Color: + Цвет: + + + Choose Color... + Выбрать цвет... + + + + + Font... + Font + Шрифт... + + + + + Alignment: + Выровнять к: + + + + Use Separate Secondary Display Screen Settings + Особые настройки для дополнительного экрана + + + + Reset All To Default + Сбросить на умолчания + + + + + Select a image for announcement wallpaper + Выбор рисунка + + + + + Images(%1) + Файлы изображений (%1) + + + + Bold + Жирный + + + + Italic + Курсив + + + + StrikeOut + Зачеркнутый + + + + Underline + Подчеркнутый + + + Images (*.png *.jpg *.jpeg) + Изображения (*.png *.jpg *.jpeg) + + + + BibleInformationDialog + + + Bible Information + Информация о Библии + + + + Bible Name: + Версия Библии: + + + + Abbreviation: + Аббревиатура: + + + + Information\ +Copyright: + Информация/ +Копирайт: + + + + Right to left + Чтение справа налево + + + + BibleSettingWidget + + Form + Форма + + + + + Primary Bible: + Первая Библия: + + + + + Secondary Bible: + Вторая Библия: + + + + + Trinary Bible: + Третья Библия: + + + + Operator Screen Bible: + Библия оператора: + + + + This bible version will be used for the operator to select verses and search bible + Эта версия Библии используется оператором для выбора и поиска стихов + + + + + Effects + Эфекты + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавное затухание при переходе с одного стиха на другой. + + + + + Use fading effects + Эффект затухания + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Полезно при использовании фоновых рисунков. Получаются интересные теневые эффекты. + + + + + Use shadow + Использовать тени + + + + + Use blurred shadow + Размытая тень + + + + + Use Background Image + Использовать рисунок фона + + + + + Browse... + Обзор... + + + + Apply this background to all active backgrounds. + Применить этот фон ко всем активным фоном. + + + + + + + Color... + Цвет... + + + + + Amount of screen to use: + Размер используемого экрана: + + + + + Percent of screen to be used. + Размер используемого экрана. + + + + + Select to use either top portion of the screen or bottom. + а я и дом мой будем... + Выберете ныне себе, какую часть экрана использовать. + + + + + Top of Screen + Вверху экрана + + + + Botton of Screen + Внизу экрана + + + + Use Separate Secondary Display Screen Settings + Особые настройки для дополнительного экрана + + + + Bottom of Screen + Внизу экрана + + + Text Alingment + Выравнивание текста + + + Vertical: + Вертикальное: + + + + + Top + Верх + + + + + Middle + Середина + + + + + Bottom + Нижний + + + Horizontal: + Горизонтальное: + + + + + + + Left + Лево + + + + + + + Center + Центр + + + + + + + Right + Право + + + + + Text Properties + Свойства текста + + + Color: + Цвет: + + + Choose color... + Изменить цвет... + + + + + + + Font... + Font + Шрифт... + + + + + + + Alignment: + Выровнять к: + + + + + Caption Properties + Свойства оглавления + + + + + + + Position: + Положение: + + + + + Above Text + Перед текстом + + + + + Below Text + После текста + + + + + Show Bible Version Abbriviation + Показывать абревиатуру Библии + + + + + Amount Of Screen To Use + Amount Of Sceen To Use + Размер используемого экрана + + + Select "Top" to use top portion of the display screen + Выберете "Верх" для использования верхней части экрана + + + Select "Bottom" to use bottom portion of the display screen + можна и не переводить, смотри украинский перевод, там кеп подписался + Выберете "Нижний" для использования нижний части экрана + + + Amount Of Sceen To Use (Primary Bible Only) + Размер используемого экрана (только для первой Библии) + + + Use this much of the screen: + Использовать экрана: + + + Align to: + Aling to: + Выровнять к: + + + Buttom + По нижнему краю + + + + Reset All To Default + Сбросить на умолчания + + + + + + + + + + + None + Не выбрана + + + + + Same as primary Bible + Такая же, как первая Библия + + + + + Select a image for Bible wallpaper + Выбор рисунка + + + + + Images(%1) + Файлы изображений (%1) + + + + Bold + Жирный + + + + Italic + Курсив + + + + StrikeOut + Зачеркнутый + + + + Underline + Подчеркнутый + + + Images (*.png *.jpg *.jpeg) + Изображения (*.png *.jpg *.jpeg) + + + + BibleWidget + + + Form + Форма + + + + Search: + Поиск: + + + + Search the bible for specified text. Matched verses will appear in the list below. If a bible book is selected, only that book will be searched. + Поиск в Библии по заданному тексту. Найденные стихи появятся в списке ниже. Поиск осуществляется только по выбранной книге. + + + If selected, only Bible verses starting with the search string will be searched. + Стихи Библии которые начинаются словами введенными в строку поиска. + + + Begins + Начинается + + + If selected, Bible verses that contain the search string will be searched. + Стихи Библии содержащие слова введенные в строку поиска. + + + Contains + Содержит + + + + Search + Поиск + + + + Return + + + + Limit search to: + Поиск по: + + + If selected, the entire bible will be searched. + Поиск по всей Библии. + + + + Entire Bible + Всей Библии + + + If selected, only the selected Bible book will be searched. + Поиск по выбранной книге Библии. + + + + Current Book + Выбранной книге + + + If selected, only the selected chapter of the selected Bible book will be searched. + Поиск по выбранной главе. + + + + Current Chapter + Выбранной главе + + + Add (F2) + Добавить (F2) + + + Clear all history items + Очистить список истории + + + Clear + Clear History + Очистить + + + + Results: + Найдено: + + + + Book: + Книга: + + + + + + Filter criteria for the bible list. If the first character of the filter is a number, then only books starting with this number are matched. Example filters: "Deuter", "1Thes". + Критерии поиска по книгам Библии. Если вначале ставится цифра, то подбираются только книги начинающиеся с этой цифры. Примеры задания критериев: "Втор", "1Тим". + + + + + Quickly display the selected Bible verse on the screen + Вывести выбранный текст на экран + + + + Select search range + Диапазон поиска + + + + Select search type + Тип поиска + + + + Contains Phrase + Содержит фразу + + + + Contains Word Phrase + Содержить слово/фразу + + + + Verse Begins + В начале стиха + + + + Contains Any Word + Содержит любое из слов + + + + Contains All Words + Содержит все слова + + + + Hide +Results + Скрыть +найденное + + + + Chapter: + Глава: + + + + Verse: + Стих: + + + + Go Live (F5) + На экран (F5) + + + + F5 + + + + Add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + Добавить выбранный текст к истории. Автоматически добавляется при нажатии F5 + + + Add to history + Добавить к истории + + + + This list contains verses that were sent to be shown + В этом списке находятся стихи для вывода на экран + + + Remove current selected verse in the history list + Удалить данный стих из списка истории + + + Remove (F3) + Remove from history + Удалить (F3) + + + Total of + Всего + + + search results returned. + результаты поиска. + + + Total of 281 or more results. <font color=red>Only 281 results can be returned.</font> + Найдено 281 или больше записей. <font color=red>Выводится только 281 записей.</font> + + + Total + + Всего + + + + +results + +результатов + + + No search results have retrieved + Не найдено ничего + + + No search results + Не найдено ничего + + + Error opening Bible histories + Ошибка при открытии Библейских историй + + + Cound not find any or all Bible verses from file withing current primary Bible. +Try changing primary Bible and reopen project file. + Не найдено ничего в первой версии Библии +Попытайтесь сменить первую версию Библии и снова открыть файл. + + + + Please enter search text + Пожалуйся, введите текст для поиска + + + + Total +resutls: +%1 + Всего: %1 + + + + No search +results. + Ничего не найдено. + + + + BiblesModel + + + Title + Название + + + + DisplayScreen + + + Dispaly Screen + Экран + + + + Video Player Error + Ошибка видеоплеера + + + + Words by: %1, Music by: %2 + Слова: %1, Музыка: %2 + + + + Words by: %1 + Слова: %1 + + + + Music by: %1 + Музыка: %1 + + + + EditAnnouncementDialog + + + Edit Announcement + Редактировать обьявление + + + + Title: + Название: + + + + ID: + + + + + Use Private Settings + Использовать особые настройки + + + + Timed slides: + Время на слайд: + + + + sec + seconds + сек + + + + Loop + Повторять + + + + Save + Сохранить + + + + Cancel + Отмена + + + + Announce + - Text of the announcement goes here + +Slide + - Text of the announcement goes here +You can have both Annouce or Slide as announcement block titles. + Обьявление + - Здесь текст обьявления + +Слайд + - И здесь текст обьявления + Вы можете .создавать блоки обьявлений. + + + + Announcement title cannot be left empty. +Please enter announcement title. + Обьявление не может быть без названия. +Пожалуйста, введите название для этого обьявления. + + + + Announcement title is missing + Отсутствует название обьявления + + + + EditWidget + + + Edit and/or Add New songs + Редактировать или добавить новую песню + + + + Songbook: + Сборник: + + + + Print + Печать + + + + Title: + Название: + + + + Words by: + Слова: + + + + Music by: + Музыка: + + + + Key: + Тональность: + + + + Category: + Категория: + + + + Use Private Song Settings + Использовать особые настройки для этой песни + + + + Main Text Properties: + Свойства основного текста: + + + + + + Color... + Цвет... + + + + + + Font... + Шрифт... + + + + Main Text Alignment: + Выравнивание основного текста: + + + + Song Information Properties: + Отображение информации: + + + + Song Ending Properties: + Свойства футера песни: + + + + Use Background: + Использовать фон: + + + + Top + Верх + + + + Middle + Середина + + + + Bottom + Низ + + + + Other + Дополнительно + + + Text Alingment + Выравнивание текста + + + + Left + По левому краю + + + + Center + По центру + + + + Right + По правому краю + + + + Browse... + Обзор... + + + Use default + По умолчанию + + + Text font: + Шрифт текста: + + + Background: + Фоновый рисунок: + + + + Notes: + Заметки: + + + Comments: + Коментарии: + + + + Save + Сохранить + + + + Ctrl+S + + + + + Cancel + Отмена + + + + Ctrl+Q + + + + + Add a new Songbook + Добавить новый сборник + + + + Select Songbook + Выбрать сборник + + + + Select a Songbook to which you want to add a song + Выбрать сборник в который вы хотите добавить песню + + + + Song title cannot be left empty. +Please enter song title. + Название песни не может остаться незаполненным. +Пожалуйста введите название песни. + + + + Song title is missing + Название песни отсутствует + + + + Cannot find exact match in database + Невозможно найти точное соответствие в базе данных + + + + The exact match of a song you are editing was not found in database. +In order to edit this song, you need to add it to database. + +Please select a Songbook to which you want to copy this song to: + В базе данных не найдено песни точно соответствующей редактируемой. +Для продолжения редактирования, необходимо добавит песню в базу данных. + +Пожалуйста выберите сборник в который вы желаете поместить данную песню: + + + + Copy to a new Songbook + Копировать песню в новый сборник + + + + Select a Songbook to which you want to copy this song to + Выбрать сборник в который вы хотите добавить песню + + + Verse 1 + - words of verse go here + +Refrain + - words of Chorus/Refrain +go here + +Verse 2 + - words of verse go here + Куплет 1 + - слова куплета здесь + +Припев + - слова припева здесь + +Куплет 2 + - слова куплета здесь + + + + Add a Songbook + Добавить сборник + + + Select a picture for the wallpaper + Выбрать фоновый рисунок + + + + Bible Stories + Библейские истории + + + + Gospel + Весть о спасении + + + + God, His love and greatness + Божья любовь и величие + + + + The Resurrection of Christ + Воскресение Христово + + + + Time + Время + + + + The second coming of Christ and the judgement + Второе пришествие Христа и суд + + + + Children and Family + Детские и семейные + + + + For new converts + Для новообращённых + + + + Spiritual struggle and victory + Духовная борьба и победа + + + + Harvest + Жатвенные + + + + Jesus Christ + Иисус Христос + + + + Love + Любовь + + + Mom + Мама + + + + Prayer + Молитвенные + + + + Youth + Молодёжные + + + + Mother + Мама + + + + Wedding + На бракосочетание + + + Sunset / dawn + На закате / рассвете + + + + Verse 1 + - words of verse go here + +Refrain +- words of Chorus/Refrain +go here + +Verse 2 + - words of verse go here + Куплет 1 + - слова куплета здесь + +Припев + - слова припева здесь + +Куплет 2 + - слова куплета здесь + + + + Baptism + На крещение + + + + Sunset / Sunrise + Утренние и вечерние + + + + New Years + На новый год + + + + Funeral + На погребение + + + + At the ordination + На рукоположение + + + + On the Lord's Supper + На хлебопреломление + + + + Heavenly abode + Небесные обители + + + + Instruction and self-test + Наставление и самоиспытание + + + + Holy Ghost + О Духе Святом + + + + Church + О Церкви + + + + Before church meeting + Перед началом собрания + + + + Last Days + Последнее время + + + + Practical life with God + Практическая жизнь с Богом + + + + At the end of church meeting + При заключении собрания + + + + Welcome and farewell + Приветственные и прощальные + + + + The call to work + Призыв к труду + + + + Call to repentance + Призыв к покаянию + + + + Journey of faith, faith and hope + Путь веры, вера и упование + + + + Various Christian holidays + Разные христианские праздники + + + + Determination and faithfulness + Решительность и верность + + + + Christmas + Рождество Христово + + + + Following Christ + Следование за Христом + + + + The Word of God + Слово Божье + + + + Salvation + Спасение + + + + Suffering and death of Christ + Страдание и смерть Христа + + + + Consolation and encouragement + Утешение и ободрение + + + + Praise and thanksgiving + Хвала и благодарение + + + + Christian Joy + Христианская радость + + + + Select an image for the wallpaper + Выберете рисунок для фона + + + + Images(%1) + Файлы изображений (%1) + + + + GeneralSettingWidget + + Form + Форма + + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + Окно экрана сверху других окон (требуется перезапуск программы). Эта опция предохраняет от случайного вывода информации на экран. + + + + Display window always on top + Окно экрана всегда сверху + + + + Theme: + Тема: + + + + Add New Theme + Добавить новую тему + + + + Primary Display Screen: + Главный экран: + + + + Secondary Display Screen: + Дополнителный экран: + + + + Primary Display Screen Controls + Клавиши управление основным экраном + + + + Button Size: + Размер клавиш: + + + + 16x16 + + + + + 24x24 + + + + + 32x32 + + + + + 48x48 + + + + + 64x64 + + + + + 96x96 + + + + + Alignment: + Выровнять к: + + + + Top + Верх + + + + Middle + Середина + + + + Bottom + Нижний + + + + Left + По левому краю + + + + Center + По центру + + + + Right + Право + + + + Opacity: + Прозрачность: + + + + Transparent + Прозрачный + + + + Opaque + темный + + + + NOTE: Display screen controls will be visible on the primary display screen only when one monitor is avaliable. + Обратите внимание, что клавиши управления экраном будуть видимы на основном экране только если один монитор используеться. + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Полезно при использовании фоновых рисунков. Получаются интересные теневые эффекты. + + + Use shadow + Использовать тени + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавное затухание при переходе с одного стиха на другой. + + + Use fading effects + Эффект затухания + + + Use blurred shadow + Размытая тень + + + Use Passive Background Image + Использовать пасивный фон + + + Browse... + Обзор... + + + + Display Screen Selection + Выбрать экран + + + Display Screen: + Экран: + + + + + Select onto which screen to dispaly + Выбор экрана для отображения + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">NOTE:</span><span style=" font-size:8pt; color:#ff0000;"> Display screen selection is currenly under development. Changing the screen number, will change on which screen projection will be displayed.<br />On Windows, order is from left-to-right.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">NOTE:</span><span style=" font-size:8pt; color:#ff0000;"> Display screen selection is currenly under development. Changing the screen number, will change on which screen projection will be displayed.<br />On Windows, oder is from right-to-left.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">ОБРАТИТЕ ВНИМАНИЕ:</span><span style=" font-size:8pt; color:#ff0000;">Опция выбора экрана в разработке.<br />Смена номер экрана позволяет задать рабочий стол,<br />на который будет выводиться изображение<br />В Windows рабочие столы в порядке слева направо</span></p></body></html> + + + + Reset All To Default + Сбросить все на умолчания + + + Select a image for main wallpaper + Выбрать фоновый рисунок + + + Images (*.png *.jpg *.jpeg) + Изображения (*.png *.jpg *.jpeg) + + + + none + Не выбрана + + + + None + Не выбрана + + + + Edit Theme + Редактировать тему + + + + Theme Name: + Название темы: + + + + Comments: + Коментарии: + + + + Default + По умолчанию + + + + This theme will contain program default settings. + Эта тема содержить установки по умолчанию. + + + + HelpDialog + + + softProjector Help + softProject Help + Справка по Софт Проектору + + + + about:blank + + + + + Close + Закрыть + + + + Ctrl+Q + + + + + ManageDataDialog + + + Manage Database + Управление базой данных + + + + Bibles + Библии + + + + + + Download +&& Import... + Загрузка +&& Импорт... + + + + Import a new Bible into your database + Import a new Bible into your database/ + Добавить в базу данных новый модуль Библии + + + + + + &Import... + Импортирование модуля Библии + &Импорт... + + + + + + + Ctrl+I + + + + + Edit Bible title of currently selected Bible. + Редактировать название выбранного модуля Библии. + + + + + + &Edit... + &Правка... + + + + + + Ctrl+E + + + + + Export currently selected Bible to share with others. + Экспортировать выбранный модуль Библии. + + + + + + E&xport... + &Экспорт... + + + + + + + Ctrl+X + + + + + Delete a Bible that you will no longer want to use in this program. + Удалить модуль Библии который вы больше не будет использовать в этой программе. + + + + + + &Delete... + &Удаление... + + + + + + Ctrl+D + + + + + Songbooks + Сборники + + + + + + Import a new Songbook into database. + Добавить в базу данных новый сборник. + + + + + Edit the title and information about the Songbook. + Редактировать название сборника и информацию о нем. + + + + + + Export currently selected Songbook to be able to share with others and for backup. + Экспортировать выбранный сборник для других пользователей и для резервной копии. + + + + + Delete currently selected Songbook from database. + Удалить выбранный сборник из базы данных. + + + + Themes + Темы + + + + &New... + &Новая... + + + + Export All... + Экспортировать все... + + + + Close Manage Database Dialog + Закрыть диалоговое окно управления базой данных + + + + Close + Закрыть + + + + Ctrl+Q + + + + + Select a songbook to import + Выбрать сборник для импортирования + + + softProjector songbook file + Файл сборника в формате Софт Проектор + + + + + Importing... + Импортируется... + + + + + + Cancel + Отмена + + + User songbook + Пользовательский сборник + + + Songbook imported by the user + Сборник добавленный пользователем + + + + Too old SongBook file format + Формат файла старой версии SoftProjector + + + + Save the songbook as: + Сохранить сборник как: + + + softProjector songbook file (*.sps) + Файл сборника в формате Софт Проектор (*.sps) + + + + SoftProjector songbook file + Файлы песенников SoftProjector + + + + The SongBook file you are opening, is of a later release and +is not supported by current version of SoftProjector. +You are trying to open SongBook version %1. +Please upgrade to latest version of SoftProjector and try again. + Этот песенник создан более позней версией SoftProjector +и не может быть открыт. Нужен SoftProjector хотя бы версии %1. + Пожалуйста, обновите SoftProjector до последний версии и +попробуйте опять. + + + + + Unsupported SongBook version. + Неподдерживаемый формат файла песенника. + + + + The SongBook file you are opening, is not supported +by current version of SoftProjector. + + Песенник не поддерживается. + + + + The SongBook file you are opening, is in very old format +and is no longer supported by current version of SoftProjector. +You may try to import it with version 1.07 and then export it, and import it again. + Песенник, который вы пытаетесь открыт, имеет очень старый формат, +который уже не поддерживается этой версией SoftProjector. +Вы можете попробовать експортировать его предідущей версией, +потом экспортировать, и уже получений результат открыть в этой версии SoftProjector. + + + + + SoftProjector songbook file (*.sps) + Файл сборника в формате SoftProjector (*.sps) + + + + + An error has ocured when overwriting existing file. +Please try again with different file name. + Ошибка переименования файла. +Пожалуйста, укажите другое имя. + + + + Export complete + Экспорт завершен + + + + The songbook " + Сборник " + + + + " +Has been saved to: + + " +Сохранён как: + + + + + Delete songbook? + Удалить сборник? + + + + + Are you sure that you want to delete: + Вы уверены, что хотите удалить: + + + + This action will permanentrly delete this songbook + Сборник будет удален навсегда + + + + Select Bible file to import + Выбор модуля Библии для импортирования + + + + + SoftProjector Bible file + Библия в формате Софт Проектора + + + + The Bible format you are importing is of an usupported file version. +Your current SoftProjector version does not support this format. + Формат импортируемого файла Библии +не поддерживается этой версией SoftProjector. + + + + Unsupported Bible file format + Неподдерживаемый формат файла Библии + + + + + Edit Theme + Редактировать тему + + + + + Theme Name: + Название темы: + + + + + Comments: + Коментарии: + + + + Default + По умолчанию + + + + This theme will contain program default settings. + Эта тема содержить установки по умолчанию. + + + + Select a Theme to import + Выберете тему для импорта + + + + + SoftProjector Theme file + Файлы тем SoftProjector + + + + Importing Themes... + Импортирование тем... + + + + The Theme file you are opening, is of a later release and +is not supported by current version of SoftProjector. +You are trying to open Theme version %1. +Please upgrade to latest version of SoftProjector and try again. + Эта тема создана более позней версией SoftProjector +и не может быть открыта. Нужен SoftProjector хотя бы версии %1. + Пожалуйста, обновите SoftProjector до последний версии и +попробуйте опять. + + + + + Unsupported Theme version. + Неподдерживаемая версия темы. + + + + The Theme file you are opening, is not supported +by current version of SoftProjector. + + Тема, которую вы пытаетесь открыть не поддерживается. + + + + Export Theme as: + Экспортировать тему, как: + + + + Export all theme as: + Экспортировать все темы, как: + + + + softProjector Theme file + Файл темы SoftProjector + + + + Exporting Themes... + Экспортирование тем... + + + + Delete Theme? + Удалить тему? + + + + Are you sure that you want to delete theme: + Вы действительно хотите удалить тему: + + + + This action will permanentrly delete this theme + Это действие удалит тему навсегда + + + + Error opening module list. + Ошибка открытия список модулей. + + + + Failed to open mod list + Не удалось открыть список модулей + + + + +Downloading: %1 +From: %2 + Загружается: %1 +с: %2 + + + + Error opening save file %1 for download %2 +Error: %3 + Ошибка при открытии сохраненного файла %1 при загрузке %2. +Ошибка: %3 + + + + Error downloading module list. + Ошибка загрузки списка модулей. + + + + Bible Module Download + Скачать библейский модуль + + + + Songbook Module Download + Скачать модуль песенника + + + + Theme Module Download + Скачать модуль темы + + + + Download Error: %1 + + + + + Saved to: %1 + Сохранено в: %1 + + + + +Importing: %1 + Импортирование: %1 + + + Old Bible file format + Библия в старом формате Софт Проектора + + + The Bible format you are importing is of an old version. +Your current SoftProjector does not support this format. +Please download lattest Bibles and import them. + The Bible format you are importing is of an old version. +Your current SoftProjector does not support this format. +Please download lattest Bibles and import them + Вы пытаетесь импортировать Библию в старом формате. +Данная версия Софт Проектора не поддерживает этот формат. +Пожалуйста загрузите и импортируйте новую версию Библии. + + + + New Bible file format + Новый формат Библии + + + + The Bible format you are importing is of an new version. +Your current SoftProjector does not support this format. +Please upgrade SoftProjector to latest version. + Вы импортируете Библию в новом формате. +Ваша версия Софт Проектора не поддерживает этот формат. +Пожалуйста установите новейшую версию Софт Проектора. + + + All supported Bible files + Все поддерживаемые модули Библий + + + softProjector Bible file + Библия в формате Софт Проектора + + + Unbound Bible file + Библия в формате Unbound Bible + + + + Save exported Bible as: + Сохранить экспортируемую Библию как: + + + + Exporting... + Экспорт... + + + + Bible has been exported + Экспорт Библии завершен + + + + Bible: + + Библия: + + + + + +Has been saved to: + + +Сохранена как: + + + + + Delete Bible? + Удалить Библию? + + + + This action will permanentrly delete this Bible + Библия будет удалена навсегда + + + + Edit Songbook + Редактировать сборник + + + Edit Bible name + Редактировать название Библии + + + Bible title: + Название Библии: + + + + MediaWidget + + + Form + Форма + + + + - Media Library - + -- Медиа библиотека -- + + + + Go Live (F5) + На экран (F5) + + + + F5 + + + + + Open + Открыть + + + + Aspect Ratio: + Соотношение сторон: + + + + Auto + Авто + + + + Scale + Масштаб + + + + 4/3 + + + + + 16/9 + + + + + + <center>No media</center> + <center>Нет медиа</center> + + + + No Media + Нет медиа + + + + Open Music/Video File + Открыть файл с видео/музыкой + + + + + Media Files (%1);;Audio Files (%2);;Video Files (%3) + Медиа файлы (%1);; файлы аудио (%2);; видео файлы (%3) + + + + Select Music/Video Files to Open + Выбор файлов музыки/видео + + + + ModuleDownloadDialog + + + Dialog + + + + + Select modules you wish to download and import. + Выберете модули, которые желаете загрузить и импортировать. + + + + Select All + Выбрать все + + + + Deselect All + Отменить выбор + + + + ModuleProgressDialog + + + Download / Import Progress Dialog + Загрузить / Импортировать диалог прогреса + + + + Current Progress: + Текущий прогрес: + + + + Total Progress: + Общий прогрес: + + + + Close + Закрыть + + + + Native language name + + English + Русский + + + + English + Do not change + Русский + + + + PassiveSettingWidget + + Form + Форма + + + + + Use Passive Background Image + Использовать пасивный фон + + + + + Browse... + Обзор... + + + + Use Separate Secondary Display Screen Settings + Особо для дополнительного экрана + + + + Reset All To Default + Сбросить на умолчания + + + + + Select a image for passive wallpaper + Выбрать фоновый рисунок + + + + + Images(%1) + Изображения (%1) + + + + PictureSettingWidget + + Picture Settings + НАстройка изображений + + + + When Displaying Slideshows: + Для слайдшоу: + + + + Expand Small Images + Розтягивать маленькие изображения + + + + Fit Images To Screen + Фитировать изображения + + + + Fit Images To Screen By Expanding + Фитировать по наименшей стороне + + + + Resize Large Images on Import + Масштабировать большие изображения перед импортом + + + + It is highly recommended to reduce large images on import. This will improve load, save and display time of slideshows. +We recommend to resize images to display screen size. + Для оптимизации показа и смены слайдов очень рекомендуется перед импортом +изменять размеры изображений соответствено размерам экрана. + + + + Bound Box: + Граничные размеры: + + + + 800 x 800 + + + + + 1024 x 1024 + + + + + 1280 x 1280 + + + + + 1366 x 1366 + + + + + 1440 x 1440 + + + + + 1600 x 1600 + + + + + 1920 x 1920 + + + + + Custom + Другие + + + + Inalid Numeric Value + Некоректное число + + + + Entered '%1' custom width is not numeric. + %1 не есть число. + + + + PictureWidget + + + Form + Форма + + + + Slide Shows: + Слайд шоу: + + + + Go Live (F5) + На экран (F5) + + + + F5 + + + + + + Picture Preview + Предпросмотр изображения + + + + Picture Information + Информация о изображении + + + + Edit Preview Slide Show: + Редактирование предпросмотра: + + + + Add + Добавить + + + + Remove + Удалить + + + + Clear + Очистить + + + + Editing slide show here will not change anything in database. To have save changes, use "New Slide Show" or "Edit Slide Show". + Изменения, проведенные здесь, изменяют только предпросмотр слайдшоу и не влияют больше ни на что. + + + + + Preview slide: + Предпросмотр слайда: + + + + Select Images to Open + Открыть изображение + + + + Images(%1) + Файлы изображений (%1) + + + + Adding files... + Добавить файлы... + + + + Cancel + Отмена + + + + Slide Show: %1 + Слайд шоу: %1 + + + + PrintPreviewDialog + + + softProjector Print Dialog + Диалог печати softProjector + + + + Margins: + Поля: + + + + Left Margin + Левое + + + + L: + Л: + + + + Top Margin + Верхнее + + + + T: + В: + + + + Right Margin + Правоє + + + + R: + П: + + + + Bottom Margin + Нижнее + + + + B: + Н: + + + + Inch + дюймы + + + + Millimeter + миллиметры + + + + Pixel + пиксели + + + + Point + точки + + + + Font: + Шрифт: + + + + To PDF + в PDF + + + + Print + Печать + + + + Tune: %1 + + Тональьность: %1 + + + + + Words By: %1 Music By: %2 + + + Слова: %1, Музыка: %2 + + + + + + Words By: %1 + + + + + Слова: %1 + + + + + Music By: %1 + + + Музыка: %1 + + + + + + + +Notes: +%1 + + +Заметки: +%1 + + + + Announcements: %1 + + + Обьявлений: %1 + + + + + + SoftProject Schedule: + Программа SoftProjector: + + + + Save PDF as + Зберегти PDF як + + + + SettingsDialog + + + softProjector - Settings + Настройки программы + + + + General + Общие + + + + Passive + Пасив + + + + Bible + Библия + + + + Picture + Изображения + + + + Media + + + + + Announcements + Объявление + + + + General SoftProjector Settings + Общие настройки SoftProjector + + + + Passive Settings + Настройки пасивного режима + + + + This setting are displayed when nothing is to be projected. + Эти настроки используются, когла ничего не отображается. + + + + Bible Settings + Настройки отображения Библии + + + + Song Settings + Настройки отображения песен + + + + Picture Settings + Настройки пасивного режима + + + + Media Settings + Настройки media + + + + Announcement Settings + Настройки отображения объявлений + + + Primary Bible: + Первая Библия: + + + Secondary Bible: + Вторая Библия: + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + Окно экрана сверху других окон (требуется перезапуск программы). Эта опция предохраняет от случайного вывода информации на экран. + + + Display window always on top + Окно экрана всегда сверху + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавное затухание при переходе с одного стиха на другой. + + + Use fading effects + Эффект затухания + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Полезно при использовании фоновых рисунков. Получаются интересные теневые эффекты. + + + Change Font... + Изменить шрифт... + + + Text color: + Цвет шрифта: + + + Choose color... + Изменить цвет... + + + Browse... + Обзор... + + + Remove wallpaper + Удалить рисунок + + + + Songs + Песни + + + Show stanza title + Показывать номер куплета + + + Show song number + Показывать номер песни + + + Use blurred shadow + Размытая тень + + + Active wallpaper + Фоновый рисунок + + + Passive wallpaper + Заставка + + + Show song key + Показывать тональность песни + + + None + Не выбрана + + + Select a picture for the wallpaper + Выберите изображение для фонового рисунка + + + Images (*.png *.jpg *.jpeg) + Изображения (*.png *.jpg *.jpeg) + + + + OK + + + + + Cancel + Отмена + + + + Apply + Применить + + + + SlideShowEditor + + + Slide Show Editor + Редактор слайдшоу + + + + Slide Show Title: + Название: + + + + Slide Show Info: + Информация: + + + + Add Pictures + Добавить изображения + + + + Remove Picture + Удалить изображение + + + + Picture Preview + Предпросмотр изображения + + + + Picture Information + Информация о изображении + + + + Save + Сохранить + + + + + Cancel + Отмена + + + + Select Images to Open + Открыть изображение + + + + Images(%1) + Файлы изображений (%1) + + + + Adding files... + Добавить файлы... + + + + Slide show title cannot be left empty. +Please enter a title. + Пропущено название слайдшоу. +Пожалуйста, введите имя слайдшоу. + + + + Slide show title is missing + Нет имени слайдшоу + + + + Saving Slide Show + Сохранить слайдшоу + + + + Preview slide: %1 + Предпросмотр слайда %1 + + + + SoftProjector + + This software is free and Open Source. If you can help in improving this program please visit softprojector.sourceforge.net + This software is free and Open Source. If you can help in improving this program please visit sourceforge.net/projects/softprojector/ + Эта программа бесплатная, с открытым исходным кодом. Если вы можете помочь в улучшении этой программы посетите sourceforge.net/projects/softprojector/ + + + + + Bible (F6) + Библия (F6) + + + + + Songs (F7) + Песни (F7) + + + + + Pictures + Изображения + + + + + Media + Медия + + + + + Announcements (F8) + Объявления (F8) + + + Project not saved + project as in document file + Проект не сохранен + + + Do you want to save current project? + project as in document file + Вы желаете сохранить данный проект? + + + Announcement + Объявление + + + Words by: %1, Music by: %2 + Слова: %1, Музыка: %2 + + + Words by: %1 + Слова: %1 + + + Music by: %1 + Музыка: %1 + + + + Cannot start new edit + Невозможно начать новое редактирование + + + + + + Another song is already been edited. + Another song is already beeb edited. + Уже редактируется другая песня. + + + + Schedule not saved + Програма не сохранена + + + + Do you want to save current schedule? + Вы хотите сохранить програму служения? + + + + &Clear Bible History List + &Очистить список истории Библии + + + + &New Song... + &Новая песня... + + + + &Edit Song... + Редактировать &песню... + + + + &Copy Song... + &Копировать песню... + + + + &Delete Song + &Удалить песню + + + + &New Slide Show... + &Новое слайдшоу... + + + + &Edit Slide Show... + Редактировать &слайдшоу... + + + + &Delete Slide Show + &Удалить слайдшоу + + + + &Add Media Files... + &Добавить файлы медиа... + + + + &Remove Media Files + &Удалить медиа файлы + + + + &New Announcement... + &Новое обьявление... + + + + &Edit Announcement... + &Редактировать обьявление... + + + + &Copy Announcement... + &Копировать обьявление... + + + + &Delete Announcement + &Удалить обьявление + + + + + + Please save and/or close current edited song before edited a different song. + Пожалуйста сохраните и (или) закройте данную песню прежде чем редактировать другую. + + + + + + + No song selected + Ни одна песня не выбрана + + + No song has been selected to be edited. + Ни одна песня не выбрана для редактирования. + + + Please select a song to be edited. + Пожалуйста выберите песню для редактирования. + + + + Cannot create a new song + Невозможно создать новую песню + + + + No song has been selected to edit. + Песня для редактирования не выбрана. + + + + Please select a song to edit. + Выберите песню для редактирования. + + + + Cannot copy this song + Невозможно скопировать песню + + + + No song has been selected to copy + Песня не выбрана --- нечего копировать + + + + Please select a song to copy + Выберете, пожалуйста, песню + + + + No song has been selected to delete + Песня для удаления не выбрана + + + + Please select a song to delete + Выберите песню для удаления + + + + + No slideshow selected + Слайдшоу не выбрано + + + + No slideshow has been selected to edit. + Не выбрано слайдшову для редактирования. + + + + Please select a slideshow to edit. + Пожалуйста выберите слайдшоу для редактирования. + + + + Delete slideshow? + Удалить слайдшоу? + + + + Delete slideshow: " + Удалить слайдшоу: " + + + + This action will permanentrly delete this slideshow + Слайдшоу будет удалено навсегда + + + + No slideshow has been selected to delete. + Не выбрано слайдшову для удаления. + + + + Please select a slideshow to delete. + Пожалуйста выберите слайдшоу для удаления. + + + + No media selected + Медиа не выбрано + + + + No media item has been selected to delete. + Не выбрано медиа для удаления. + + + + Please select a media item to delete. + Пожалуйста выберите медиа для удаления. + + + + + + No Announcement Selected + Обьявление не выбрано + + + + No announcement has been selected to edit + Обьявление для редактирования не выбрано + + + + Please select an announcement to edit + Пожалуйста выберите обьявление для редактирования + + + + No announcement has been selected to copy + Обьявление для копирования не выбрано + + + + Please select an announcement to copy + Пожалуйста выберите обьявление для копирования + + + + Delete Announcement? + Удалить обьявление? + + + + Delete announcement: " + Удалить обьявление: " + + + + This action will permanentrly delete this announcement + Обьявление будет удалено навсегда + + + + No announcement has been selected to delete + Обьявление для удаления не выбрано + + + + Please select an announcement to delete + Пожалуйста выберите обьявление для удаления + + + + No song has been selected to be printed. + Ни одна песня не выбрана для печати. + + + + Please select a song to be printed. + Пожалуйста выберите песню для печати. + + + + No announcement selected + Обьявление не выбрано + + + + No announcement has been selected to be printed. + Обьявление для печати не выбрано. + + + + Please select a announcement to be printed. + Пожалуйста выберите обьявление для печати. + + + + + + Save Schedule? + Сохранить програму? + + + + Do you want to save current schedule before creating a new schedule? + Вы хотите сохранить текущую програму перед созданием новой? + + + + Do you want to save current schedule before opening a new schedule? + Вы хотите сохранить текущую програму перед открытием новой? + + + + Open SoftProjector schedule: + Открыть прораму SoftProjector: + + + + + SoftProjector schedule file + Файлы програм SoftProjector + + + + Save SoftProjector schedule as: + Сохранить програму SoftProjector как: + + + Open softProjector schedule: + Открыть прораму softProjector: + + + softProjector schedule file + Файлы програм softProjector + + + Save softProjector schedule as: + Сохранить програму softProjector как: + + + + Do you want to save current schedule before closing it? + Вы желаете сохранить текущую програму прежде чем закрыть его? + + + + Saving schedule file... + Сохранение програмы в файл... + + + + An error has ocured when overwriting existing file. +Please try again with different file name. + Ошибка переименования файла. +Пожалуйста, укажите другое имя. + + + + Opening schedule file... + Открытие файла програмы softProjector... + + + + The schedule file you are trying to open is of uncompatible version. +Compatible version: 2 +This schedule file version: + Вы пытаетесь открыть програму, которая несовместима с Вашей версией softProjector. +Совместимая версия: 2 +Версия програмы: + + + English + Русский + + + Save Project? + project as in document file + Сохранить проект? + + + Do you want to save current project before opening other? + project as in document file + Вы желаете сохранить данный проект? + + + Open softProjector project + Открыть проект + + + softProjector project file + Файл проекта + + + Save softProjector project as: + Сохранить проект как: + + + Save Project? + Сохранить проект? + + + Do you want to save current project before creating a new project? + Вы желаете сохранить текущий проект прежде чем создать новый? + + + Do you want to save current project before closing it? + Вы желаете сохранить текущий проект прежде чем закрыть его? + + + Incorrect project file format + Неправильный формат файла проекта + + + The softProjector project file you are opening, +is not supported by your version of softProjector. +You may try upgrading your version of softProjector. + Файл проекта, который вы открываете, +не поддерживается данной версией Софт Проектора. +Вам следует обновить версию Софт Проектора. + + + No song has been selected to be edited + Песня для редактирования не выбрана + + + Please select a song to be edited + Выберите песню для редактирования + + + No song has been selected to be copied + No song has been selected to be coppied + Песня для копирования не выбрана + + + Please select a song to be copied + Please select a song to be coppied + Выберите песню для копирования + + + + Delete song? + Удалить песню? + + + + Delete song " + Удаление песни " + + + No song has been selected to be deleted + Песня для удаления не выбрана + + + Please select a song to be deleted + Выберите песню для удаления + + + Are you sure that you want to delete a song? + Вы уверены что хотите удалить песню? + + + + This action will permanentrly delete this song + Песня будет удалена навсегда + + + + SoftProjectorClass + + + Tab + Закладка + + + Stop displaying text to the screen (display black screen or wallpaper). Sortcut for this button is the Escape key. + Убрать текст с экрана (останется черный экран или заставка). Клавиша - Escape. + + + Hide (Esc) + Скрыть (Esc) + + + + Esc + + + + If Clear was pressed earlier, this will re-display the text to the screen + Вернуть на экран скрытый текст + + + Show (F4) + Показать (F4) + + + + F4 + + + + + Use Multi Verse + Показать несколько стихов + + + + Service Schedule: + Програма служения: + + + + If selected, this will allow to select multiple verses at one time. Will need to press "Show" each time. + Позволяет показывать несколько стихов за раз. При смене стихов нужно нажимать "Показать". + + + + &File + &Файл + + + + &Edit + &Правка + + + + + &Help + &Справка + + + + Select Language + Выберите язык + + + + Language + Язык + + + + View + Вид + + + + Schedule + Програма + + + + Display Screen + Экран + + + + File Tool Bar + Файловая панель инструментов + + + + Schedule Tool Bar + Панель управления програмы + + + + Edit Tool Bar + Панельинструментов для редактирования + + + + Display Control Tool Bar + Панель управления инструментов контроля экрана + + + + Import and export Bibles, songbooks and themes + Импорт и экспорт Библий, песенников и тем + + + + Open Help + + + + + &Open Schedule + &Открыть програму + + + + &Save Schedule + &Сохранить програму + + + + Save Schedule &As + Сохранить програму &как + + + + Save Schedule with different name + Сохранить програму с другим именем + + + + &New Schedule + &Новая програма + + + + Start new Schedule + Создать новую програму + + + + + Close Schedule + Закрыть програму + + + + &Print + &Печать + + + + Prints selected Bible chapter, selected song and selected announcement. + Печатать выбраную главу Библии, песню и обьявление. + + + + + Print Schedule + Печатать програму + + + + Ctrl+Shift+P + + + + + Del + + + + + Donate + Пожертвовать + + + + Donate to softProjector development team + Пожертвовать команде softProjector + + + + Add to Schedule + Добавить в програму + + + + F2 + + + + + Remove from Schedule + Удалить с програмы + + + + Ctrl+Del + + + + + Clear Schedule + Очистить програму + + + + Move Item To Top + Переместить вверх + + + + Move Schedule item to top of the list + Переместить элемент на верх списка + + + + Move Item Up + Переместить вверх + + + + Move Schedule item up + Перемещать элемент програмы вверх + + + + Mode Item Down + Перемещать вниз + + + + Move Schedule item down + Перемещает элемент програмы вниз + + + + Move Item To Bottom + Переместить элемент вниз + + + + Move Schedule item to bottom of the list + Перемещает элемент програмы вниз списка + + + + Show + Показать + + + + Dsiplay to the screen (F4) + Показать на экране (F4) + + + + Show Passive Screen (Stop displaying to the screen) (Esc) + Показать пасивный экран (остановить презентацию) (Esc) + + + + Clear + Очистить + + + + Clear Display Text (Shift+Esc) + Очистить текст на дисплее (Shift+Esc) + + + + Shift+Esc + + + + + On / Off + Вкл. / Выкл. + + + + Turn Display Screen On/Off + Включить / Выключить экран дисплея + + + Close + Закрыть + + + Close Display Window + Закрыть окно экрана + + + + Hide + Спрятать + + + Songs + Песни + + + toolBar + Панель инструментов + + + + &About + &О программе + + + + &Settings... + &Настройки... + + + + Open settings dialog + Открыть диалог настроек + + + + Ctrl+T + + + + + E&xit + &Выход + + + + Exit SoftProjector + Выйти с softProjector + + + + Ctrl+Q + + + + &Edit Current Song... + &Редактировать песню... + + + + Ctrl+E + + + + &New Song... + &Новая песня... + + + + Ctrl+N + + + + + &Manage Database... + &Управление базой данных... + + + Import and export song collections and Bibles + Импортирование и экспортирование сборников и Библий + + + + Ctrl+M + + + + &Delete Current Song + &Удалить песню + + + + F1 + + + + Copy Current Song... + Копировать песню... + + + Copy current song into a new songbook + Копировать песню в новый сборник + + + + Ctrl+C + + + + + Song Counter... + Song Counter + Счетчик Песен... + + + &Open Project + &Открыть проект + + + + Ctrl+O + + + + &Save Project + &Сохранить проект + + + + Ctrl+S + + + + Save Project &As + Сохранить проект &как + + + New Project + Новый проект + + + + Ctrl+Shift+N + + + + Close Project + Закрыть проект + + + + Ctrl+P + + + + Russian + Русский + + + English + Английский + + + + SongCounter + + + Song Counter + Счетчик Песен + + + + Reset Selected + Сбросить выбранное + + + + Reset All + Сбросить все + + + + Close + Закрыть + + + + + January + January %1, %2 + января + + + + + February + February %1, %2 + февраля + + + + + March + March %1, %2 + марта + + + + + April + April %1, %2 + апреля + + + + + May + мая + + + + + June + June %1, %2 + июня + + + + + July + July %1, %2 + июля + + + + + August + August %1, %2 + августа + + + + + September + September %1, %2 + сентября + + + + + October + October %1, %2 + октября + + + + + November + November %1, %2 + ноября + + + + + December + December %1, %2 + декабря + + + + SongCounterModel + + Song Title + Название песни + + + + Number + Номер + + + + Title + Название + + + + Count + Счет + + + + Date + Дата + + + + Songbook + Сборник + + + + SongSettingWidget + + Form + Форма + + + + + Effects + Эфекты + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавное затухание при переходе с одного стиха на другой. + + + + + Use fading effects + Эффект затухания + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Полезно при использовании фоновых рисунков. Получаются интересные теневые эффекты. + + + + + Use shadow + Использовать тени + + + + + Use blurred shadow + Размытая тень + + + + + Song Information + Информация о песне + + + + + Show Stanza Title + Показывать номер куплета + + + + + Show Song Key + Показывать тональность песни + + + + + Show Song Number + Показывать номер песни + + + + + + + + + Color... + Цвет... + + + + + + Alignment: + Выровнять к: + + + + + Above Text + Перед текстом + + + + + Below Text + После текста + + + + + Show Song Ending + Показывать конец песни + + + *** + *** + + + This will show WordsBy and MusicBy as song ending + Будет отображаться информация о авторах слов и музыки + + + + + Song Copyright Info + Копирайт песни + + + + + + + Position: + Положение: + + + + + Below Song Text + После текста песни + + + + + + Bottom of Screen + Внизу экрана + + + + + Use Background Image + Использовать рисунок фона + + + + + Browse... + Обзор... + + + Text Alingment + Выравнивание текста + + + Vertical: + Вертикальное: + + + Horizontal: + Горизонтальное: + + + + + Top + Верх + + + + + Middle + Середина + + + + + Bottom + Нижний + + + + + Left + Лево + + + + + Center + Центр + + + + + Right + Право + + + Text Properties + Свойства текста + + + Color: + Цвет: + + + Choose color... + Изменить цвет... + + + + + + + + + Font... + Font + Шрифт... + + + + + Type: + Тип: + + + + Apply this background to all active backgrounds. + Применить этот фон ко всем активным фоном. + + + + + Song Text Properties + Свойства текста песни + + + + Alingment: + Выровнять к: + + + + + Amount Of Screen To Use + Размер используемого экрана + + + + Vertical Screen Use: + Использувать по-вертикали экрана: + + + + + Percent of screen to be used. + Размер используемого экрана. + + + + + Select to use either top portion of the screen or bottom. + Выберете, какую часть экрана использовать. + + + + Top of screen + Вверху экрана + + + + Bottom of screen + Внизу экрана + + + + Use Separate Secondary Display Screen Settings + Особые настройки для дополнительного экрана + + + + * * * + + + + + - - - + + + + + ° ° ° + + + + + • • • + + + + + ● ● ● + + + + + ▪ ▪ ▪ + + + + + ■ ■ ■ + + + + + Vertical Screen Use + Использувать по-вертикали экрана + + + + % + + + + + Top of Screen + Вверху экрана + + + + Reset All To Default + Сбросить все на умолчания + + + + + Select a image for song wallpaper + Выбор рисунка + + + + + Images(%1) + Файлы изображений (%1) + + + + Bold + Жирный + + + + Italic + Курсив + + + + StrikeOut + Зачеркнутый + + + + Underline + Подчеркнутый + + + Images (*.png *.jpg *.jpeg) + Изображения (*.png *.jpg *.jpeg) + + + + SongWidget + + + Form + Форма + + + + Use this menu to show only songs beloning to a particular Songbook + Отображаются только песни из выбранного сборника + + + + Select Songbook to use + Выбрать рабочий сборник + + + + + All songbooks + Все сборники + + + + Selects a song by the number in the selected Songbook + Выбор песни из данного сборника по номеру + + + + + + Filter: + Фильтр: + + + + Use this field to limit the display of the songs to only the ones that contain the specified text in the song title or song number + Выбор песен по критериям + + + + + Search Type: + Тип поиска: + + + + Exact Match + Точное соответствие + + + + Contains Phrase + Содержит фразу + + + + Contains Word Phrase + Содержить слово/фразу + + + + Line Begins + В начале строки + + + + Contains Any Word + Содержит любое слово + + + + Contains All Words + Содержит все слова + + + + Search + Поиск + + + + Return + Вернутся + + + Matches only songs the song number or title of which contains the entered string. + Выбираются песни по номеру или названию. + + + + Contains + Содержит + + + Matches only songs the song number or title of which begins with the entered string. + Выбираются песни по номеру или по первой строчке. + + + + Begins + Начинается + + + Matches only songs the song number or title of which exactly matches the entered string. + Выбираются песни в точном соответствии с заданными критериями. + + + Exact match + Точное соответствие + + + + Done Searching? - Clear Search Results + Закончить поиск и очистить результаты + + + Add the selected song to the playlist + Добавить песню в список воспроизведения + + + Add (F2) + Add to playlist (F2) + Добавить (F2) + + + Remove the selected song from the playlist + Удалить песню из списка воспроизведения + + + Remove (F3) + Remove from playlist + Удалить (F3) + + + Song preview: None + Предосмотр: Песня отсутствует + + + Song preview + Предварительный просмотр + + + + Quickly display the selected song on the screen without adding it to playlist first + Вывод на экран без занесения в список воспроизведения + + + + Go Live (F5) + На экран (F5) + + + + F5 + + + + Song Preview: + Предосмотр песни: + + + Comments: + Comments to songs + Коментарии: + + + + + Filter Type: + Тип филтрации: + + + + Notes: + Notes to songs + Заметки: + + + + Could not find song with number + Песня с указанным номером не найдена + + + + No such song + Песня отсутствует + + + + + All song categories + Все категории + + + + Please enter search text + Пожалуйся, введите текст для поиска + + + + Search: + Поиск: + + + + SongbooksModel + + + Title + Название + + + + Information + Infomation + Информация + + + + SongsModel + + + Num + Номер + + + + Title + Название + + + + Songbook + Сборник + + + + Tune + Тональьность + + + + ThemeModel + + + Name + Название + + + + Comments + Коментарий + + + diff --git a/translations/softpro_ua.qm b/translations/softpro_ua.qm new file mode 100644 index 0000000000000000000000000000000000000000..cd0182e02def0213a3b86e9a744e968a09ef019f GIT binary patch literal 82873 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 XH$ZwePK-Qza{cqI713ws$0q$Be0#qA literal 0 HcmV?d00001 diff --git a/translations/softpro_ua.ts b/translations/softpro_ua.ts new file mode 100644 index 0000000..b45ace8 --- /dev/null +++ b/translations/softpro_ua.ts @@ -0,0 +1,4984 @@ + + + +UTF-8 + + AboutDialog + + + About softProjecor + Довідкова інформація + + + + Version: + Версія: + + + + an open souce media projection software + відкрите програмне забезпечення для медіапрезентацій + + + + Developers: + Розробники: + + + + Vladislav Kobzar +------------------- +Ilya Spivakov +Matvey Adzhigirey + Ilya Spivakov +Matvey Adzhigirey +Vladislav Kobzar + + + + + Mac Build: + Збірка для Mac: + + + + Volodimir Vasuk + Володимир Васюк + + + + Special Thanks To: + Особлива подяка: + + + + Vitaliy Zhaborovskyy + + + + + Translators: + Перекладачі: + + + + Russian: +German: +Czech: +Ukranian: + + + + + Vladimir Zinchenko +Eduard Schlak +Pavel Fric +Vitaliy Zhaborovskyy + + + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + Якщо у Вас виникло бажання допомогти у розробці або якимось <br> +іншим чином внести свій вклад, будь ласка, відвідайте:<br> +<a href="http://softprojector.org/">http://softprojector.org/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + If you would like to help developing this program<br> +or would like to contribute data, please visit:<br> +<a href="http://softprojector.sourceforge.net/">http://softprojector.sourceforge.net/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + Якщо у Вас виникло бажання допомогти у розробці або якимось <br> +іншим чином внести свій вклад, будь ласка, відвідайте:<br> +<a href="http://softprojector.sourceforge.net/">http://softprojector.sourceforge.net/</a> +<br> +<a href="http://sourceforge.net/projects/softprojector/">http://sourceforge.net/projects/softprojector/</a> + + + + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Donate</a> + <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FPCLPXFMH9XP4">Пожертвування</a> + + + + Close + Закрити + + + + AddSongbookDialog + + + Add songbook + Додати збірник + + + + Songbook Title: + Назва: + + + + Description: + Опис: + + + + AnnounceModel + + + Title + Заголовок + + + + AnnounceWidget + + + Form + + + + Announcement text: + Текст оголошення: + + + + Announcements: + Оголошення: + + + + Quickly display announcement + Швидке відображення оголошень + + + + Go Live (F5) + Показати (F5) + + + + F5 + + + + + Announcement Preview: + Попередній перегляд: + + + Settings + Налаштування + + + Horizontal alignment: + Горизонтальне вирівнювання: + + + Left + Ліворуч + + + Center + Центр + + + Right + Праворуч + + + Vertical alignment: + Вертикальне вирівнювання: + + + Top + Зверху + + + Middle + Середина + + + Bottom + Внизу + + + Add this announcement to history list, automatically will be added to the list when "Go Live" button is pressed + Додати це оголошення в історію, буде додано автоматично при натисненні кнопки "Показати" + + + Add (F2) + Додати (F2) + + + This list contains verses that were sent to be shown + Вірші, які слід показати + + + Remove current selected announcement in the history list + Видалити виділені оголошення з історії + + + Remove (F3) + Видалити (F3) + + + + AnnouncementSettingWidget + + Form + Форма + + + + + Effects + Ефекти + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавне затухання при зміні кадрів. + + + + + Use fading effects + Використовувати ефект затухання + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Використовується, якщо наявний малюнок тла. + + + + + Use shadow + Використовувати тіні + + + + + Use blurred shadow + Використовувати розмиту тінь + + + + + Use Background Image + Використовувати малюнок тла + + + + + Browse... + Огляд... + + + + Apply this background to all active backgrounds. + Застосувати цей фон до всіх активних фоном. + + + + + Color... + Колір... + + + Text Alingment + Вирівнювання тексту + + + Vertical: + вертикальне: + + + Horizontal: + Горизонтальне: + + + + + Top + Зверху + + + + + Middle + Середина + + + + + Bottom + Внизу + + + + + Left + Ліворуч + + + + + Center + Центр + + + + + Right + Праворуч + + + + + Text Properties + Текст + + + Color: + Колір: + + + Choose Color... + Обрати... + + + + + Font... + Font + Шрифт... + + + + + Alignment: + Вирівнювання: + + + + Use Separate Secondary Display Screen Settings + Використовувати власні налаштування для другого дисплею + + + + Reset All To Default + Скинути усі налаштування + + + + + Select a image for announcement wallpaper + Обрати зображення тла + + + + + Images(%1) + файли малюнків (%1) + + + + Bold + Жирний + + + + Italic + Курсив + + + + StrikeOut + Закреслений + + + + Underline + Підкреслений + + + Images (*.png *.jpg *.jpeg) + Файли зображень (*.png *.jpg *.jpeg) + + + + BibleInformationDialog + + + Bible Information + Інформація про Біблію + + + + Bible Name: + Ідентифікатор: + + + + Abbreviation: + Аббревіатура: + + + + Information\ +Copyright: + Інформація, копірайт: + + + + Right to left + Читання зправа на ліво + + + + BibleSettingWidget + + Form + Форма + + + + + Primary Bible: + Перша Біблія: + + + + + Secondary Bible: + Друга Біблія: + + + + + Trinary Bible: + Третя Біблія: + + + + Operator Screen Bible: + Біблія Оператора: + + + + This bible version will be used for the operator to select verses and search bible + Ця версія Бібії використовується оператором для пошуку та вибору віршів + + + + + Effects + Ефекти + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавне затухання при зміні кадрів. + + + + + Use fading effects + Використовувати ефект затухання + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + При використанні фонових малюнків утворюються цікаві штуки. Спробуйте. + + + + + Use shadow + Використовувати тінь + + + + + Use blurred shadow + Використовувати розмиту тінь + + + + + Use Background Image + Використовувати малюнок тла + + + + + Browse... + Огляд... + + + + Apply this background to all active backgrounds. + Застосувати цей фон до всіх активних фоном. + + + + + + + Color... + Колір... + + + + + Amount of screen to use: + Частина екрана, що використовується: + + + + + Percent of screen to be used. + Частина екрана, яка використовуватиметься, у відсотках. + + + + + Select to use either top portion of the screen or bottom. + Оберіть, яку частину (верхню чи нижню) дисплею використовувати. + + + + + Top of Screen + Вверху екрана + + + + Botton of Screen + Внизу екрана + + + + Use Separate Secondary Display Screen Settings + Використовувати власні налаштування для другого дисплею + + + + Bottom of Screen + Внизу екрану + + + Text Alingment + Вирівнювання тексту + + + Vertical: + Вертикальне: + + + + + Top + Зверху + + + + + Middle + Середина + + + + + Bottom + Внизу + + + Horizontal: + Горизонтальне: + + + + + + + Left + Ліворуч + + + + + + + Center + Центр + + + + + + + Right + Праворуч + + + + + Text Properties + Текст + + + Color: + Колір: + + + Choose color... + Обрати... + + + + + + + Font... + Font + Шрифт... + + + + + + + Alignment: + Вирівнювання: + + + + + Caption Properties + Властивості заголовку + + + + + + + Position: + Положення: + + + + + Above Text + Перед текстом + + + + + Below Text + Після тексту + + + + + Show Bible Version Abbriviation + Показувати абревіатуру Біблії + + + + + Amount Of Screen To Use + Amount Of Sceen To Use + Частина екрана, який використовується + + + Select "Top" to use top portion of the display screen + Оберіть "Зверху" для відображення тексту зверху екрана + + + Select "Bottom" to use bottom portion of the display screen + Оберіть "Внизу" для відображення тексту внизу екрана + + + Amount Of Sceen To Use (Primary Bible Only) + При використанні першої Біблії можна задати область, на якій буде текст + + + Use this much of the screen: + Використовувати екрана: + + + Align to: + Aling to: + Вирівняти: + + + Buttom + Знизу + + + + Reset All To Default + Скинути усі налаштування + + + + + + + + + + + None + Не обрано + + + + + Same as primary Bible + Така ж, як Перша Біблія + + + + + Select a image for Bible wallpaper + Обрати зображення фону + + + + + Images(%1) + файли малюнків (%1) + + + + Bold + Жирний + + + + Italic + Курсив + + + + StrikeOut + Закреслений + + + + Underline + Підкреслений + + + Images (*.png *.jpg *.jpeg) + Файли зображень (*.png *.jpg *.jpeg) + + + + BibleWidget + + + Form + + + + + Search: + Пошук: + + + + Search the bible for specified text. Matched verses will appear in the list below. If a bible book is selected, only that book will be searched. + Пошук в Біблії заданого тексту. Знайдені вірші подаються в список нижче. Якщо обрана конкретна книга, то пошук здійснюється лише по ній. + + + If selected, only Bible verses starting with the search string will be searched. + Лише вірші, які починаються на слова пошуку. + + + Begins + Починається + + + If selected, Bible verses that contain the search string will be searched. + Вірші, в яких присутні слова пошуку. + + + Contains + Включають + + + + + Quickly display the selected Bible verse on the screen + Вивести текст на екран + + + + Search + Пошук + + + + Return + Повернутися + + + Limit search to: + Пошук в: + + + If selected, the entire bible will be searched. + Пошук по усій Біблій. + + + + Entire Bible + в усій Біблії + + + If selected, only the selected Bible book will be searched. + Пошук по обраній книзі Біблії. + + + + Current Book + в поточній книзі + + + If selected, only the selected chapter of the selected Bible book will be searched. + Пошук по обраному розділі. + + + + Select search range + Вибір діапазону пошуку + + + + Current Chapter + поточному розділі + + + + Select search type + Вибір типу пошуку + + + + Contains Phrase + Містить фразу + + + + Contains Word Phrase + Містить слово/фразу + + + + Verse Begins + На початку вірша + + + + Contains Any Word + Містить хоча б одне з слів + + + + Contains All Words + Містить усі слова + + + + Results: + Результат: + + + + Hide +Results + Приховати +результат + + + + Book: + Книга: + + + + + + Filter criteria for the bible list. If the first character of the filter is a number, then only books starting with this number are matched. Example filters: "Deuter", "1Thes". + Якщо перший символ фільтру число, до уваги приймаються лише книги, які починаються з цього числа. + Фільтр книг, по яким здійснюється пошук. Наприклад: "1Тим.", "ПЗак.". + + + + Chapter: + Розділ: + + + + Verse: + Вірш: + + + + Go Live (F5) + Показати (F5) + + + + F5 + + + + Add currently selected verse into history list, automatically will be added when "Go Live" button is pressed + Додати обраний вірш в історію. Автоматично додається при натисненні кнопки "Показати" + + + Add (F2) + Додати (F2) + + + + This list contains verses that were sent to be shown + Вірші, які потрібно показати + + + Remove current selected verse in the history list + Видалити обраний вірш з історії + + + Remove (F3) + Видалити (F3) + + + Clear all history items + Очистити усю історію + + + Clear + Очистити + + + Total + + Усього + + + +results + +результатів + + + No search results have retrieved + Нічого не знайдено + + + No search results + Нічого не знайдено + + + Error opening Bible histories + Помилка відкриття історії використання Біблії + + + Cound not find any or all Bible verses from file withing current primary Bible. +Try changing primary Bible and reopen project file. + Не вдається знайти жодного вірша з поточної Біблії. +Спробуйте змінити поточну Біблію і перевідкрити файл проекту. + + + + Please enter search text + Будь ласка, введіт ьтекст для пошуку + + + + Total +resutls: +%1 + Усього знайдено: %1 + + + + No search +results. + Нічого не знайдено. + + + + BiblesModel + + + Title + Назва + + + + DisplayScreen + + + Dispaly Screen + Екран + + + + Video Player Error + Помилка відеоплеєра + + + + Words by: %1, Music by: %2 + Лірика: %1, Музика: %2 + + + + Words by: %1 + Лірика: %1 + + + + Music by: %1 + Музика: %1 + + + + EditAnnouncementDialog + + + Edit Announcement + Редагування оголошення + + + + Title: + Заголовок: + + + + ID: + + + + + Use Private Settings + і що б це означало? + Використовувати особливі налаштування + + + + Timed slides: + Час на слайд: + + + + sec + seconds + сек + + + + Loop + Цикл + + + + Save + Зберегти + + + + Cancel + Скасувати + + + + Announce + - Text of the announcement goes here + +Slide + - Text of the announcement goes here +You can have both Annouce or Slide as announcement block titles. + Оголошенн + --Тут має міститися текст оголошення + +Слайд + -- Тут теж може міститися текст оголошення + Ви можете створювати .блоки слайдів, або прочитати англійський варіант, +який я не зміг толком перекласти: +"You can have both Annouce or Slide as announcement block titles.". + + + + Announcement title cannot be left empty. +Please enter announcement title. + Не можна залишати оголошення без заголовку, +будьте такі ласкаві, введіть заголовок для цього оголошення. + + + + Announcement title is missing + Ви забули про заголовок для оголошення + + + + EditWidget + + + Edit and/or Add New songs + Редагування і/або додання нової пісні + + + + Songbook: + Збірник: + + + + Print + Надрукувати + + + + Title: + Назва: + + + + Words by: + Слова: + + + + Music by: + Музика: + + + + Key: + Тональність: + + + + Category: + Категорія: + + + + Use Private Song Settings + Використовувати власні налаштування для пісні + + + + Main Text Properties: + Основний текст: + + + + + + Color... + Колір... + + + + + + Font... + Шрифт... + + + + Main Text Alignment: + Вирівнювання основного тексту: + + + + Song Information Properties: + Інформаційний текст: + + + + Song Ending Properties: + Властивості фоотера пісні: + + + + Use Background: + Використовувати тло: + + + + Top + Зверху + + + + Middle + Середина + + + + Bottom + Внизу + + + Text Alingment + Вирівнювання тексту + + + + Left + Ліворуч + + + + Center + Центр + + + + Right + Праворуч + + + + Browse... + Огляд... + + + Use default + Стандартний + + + Text font: + Шрифт тексту: + + + Background: + Тло: + + + + Notes: + Замітки: + + + Comments: + Коментарі: + + + + Save + Зберегти + + + + Ctrl+S + + + + + Cancel + Скасувати + + + + Ctrl+Q + + + + + Song title cannot be left empty. +Please enter song title. + Схаменіться, пісня не може бути без назви. +Будь ласка, додайте назву. + + + + Song title is missing + Пропущена назва пісні + + + + Cannot find exact match in database + Неможливо знайти точний відповідник у базі даних + + + + The exact match of a song you are editing was not found in database. +In order to edit this song, you need to add it to database. + +Please select a Songbook to which you want to copy this song to: + В базі відсутній точний відповідник для редагованої пісні. +Для продовження необхідно додати пісню в базу. + +Будь ласка, виберіть Збірник, у який слід додати пісню: + + + + Copy to a new Songbook + Скопіювати до нового Збірника + + + + Select a Songbook to which you want to copy this song to + Оберіть Збірник в який бажаєте скопіювати цю пісню + + + Verse 1 + - words of verse go here + +Refrain + - words of Chorus/Refrain +go here + +Verse 2 + - words of verse go here + Куплет 1 + + -- тут слова першого куплету + +Приспів + --тут слова приспіву + +Куплет 2 + + --тут слова другого куплету + + + + Add a new Songbook + Додати новий Збірник + + + + Select a Songbook to which you want to add a song + Оберіть Зібрник, у який бажаєте додати пісню + + + + Select Songbook + Оберіть збірник + + + + Add a Songbook + Додати збірник + + + Select a picture for the wallpaper + Обрати малюнок тла + + + + Verse 1 + - words of verse go here + +Refrain +- words of Chorus/Refrain +go here + +Verse 2 + - words of verse go here + чесно зплагіачено з ліни костенко + Куплет 1 + + -- тут слова першого куплету + +Приспів + --тут слова приспіву + +Куплет 2 + + --тут слова другого куплету + +і в тому ж стилі далі, бо хто зна, +чи ще прийдеться коли + + + + Other + Інше + + + + Bible Stories + Біблійні історії + + + + Gospel + Блага звістка + + + + God, His love and greatness + Божа любов та величність + + + + The Resurrection of Christ + Воскресіння Христа + + + + Time + Час + + + + The second coming of Christ and the judgement + Другий прихід Христа + + + + Children and Family + Дитячі та сімейні + + + + For new converts + Для новонавернених + + + + Spiritual struggle and victory + Духовна бородьба та перемога + + + + Harvest + На день Подяки + + + + Jesus Christ + Ісус Христос + + + + Love + Любов + + + + Mother + Мама + + + + Prayer + Молитовні + + + + Youth + Молодіжні + + + + Wedding + На весілля + + + + Sunset / Sunrise + Ранкові та вечірні + + + + Baptism + Хрещення + + + + New Years + Новорічні + + + + Funeral + Похоронні + + + + At the ordination + На рукопокладення + + + + On the Lord's Supper + На хліболамання + + + + Heavenly abode + Небесні оселі + + + + Instruction and self-test + Настанови та самовипробування + + + + Holy Ghost + Дух Святий + + + + Church + Церква + + + + Before church meeting + Перед початком служіння + + + + Last Days + Останній час + + + + Practical life with God + Практичне життя з Богом + + + + At the end of church meeting + На закінчення зібрання + + + + Welcome and farewell + Привітальні та прощальні + + + + The call to work + Заклик до роботи + + + + Call to repentance + Заклик до покаяння + + + + Journey of faith, faith and hope + Віра та надія + + + + Various Christian holidays + Різноманітні християнські свята + + + + Determination and faithfulness + Рішучість та вірність + + + + Christmas + Різдв'яні + + + + Following Christ + Йдучи за Христом + + + + The Word of God + Слово Боже + + + + Salvation + Спасіння + + + + Suffering and death of Christ + Страждання та смерть Христа + + + + Consolation and encouragement + Потішення та підбадьорення + + + + Praise and thanksgiving + Хвала та подяка + + + + Christian Joy + Християнська радість + + + + Select an image for the wallpaper + Оберіть малюнок тла + + + + Images(%1) + Файли малюнків (%1) + + + + GeneralSettingWidget + + Form + Форма + + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + Вікно екрану завжди над іншими вікнами (потрібне перезавантаження програми). Ця опція перестраховує від випадкової видачі невалідної інфи. + + + + Display window always on top + Вікно завжди зверху + + + + Theme: + Тема: + + + + Add New Theme + Додати нову тему + + + + Primary Display Screen: + Головний дисплей: + + + + Secondary Display Screen: + Додатковий дисплей: + + + + Primary Display Screen Controls + Засоби керування основним дисплеем + + + + Button Size: + Розмір кнопок: + + + + 16x16 + + + + + 24x24 + + + + + 32x32 + + + + + 48x48 + + + + + 64x64 + + + + + 96x96 + + + + + Alignment: + Вирівнювання: + + + + Top + Зверху + + + + Middle + Середина + + + + Bottom + Внизу + + + + Left + Ліворуч + + + + Center + Центр + + + + Right + Праворуч + + + + Opacity: + Прозорість: + + + + Transparent + Прозорий + + + + Opaque + непрозорий + + + + NOTE: Display screen controls will be visible on the primary display screen only when one monitor is avaliable. + Зауважте, засоби контролю дисплею видимі на основному дисплеї лише за умови наявності одного монітору. + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + При використанні фонових малюнків утворюються цікаві штуки. Спробуйте. + + + Use shadow + Використовувати тіні + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавне затухання при зміні кадрів. + + + Use fading effects + Використовувати ефект затухання + + + Use blurred shadow + Використовувати розмиту тінь + + + Use Passive Background Image + і шо сіє означає? + Використовувати пасивне зображення тла + + + Browse... + Огляд... + + + + Display Screen Selection + Обрати екран + + + Display Screen: + Екран: + + + + + Select onto which screen to dispaly + Оберіть екран, на якому буде будуватися зображення + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">NOTE:</span><span style=" font-size:8pt; color:#ff0000;"> Display screen selection is currenly under development. Changing the screen number, will change on which screen projection will be displayed.<br />On Windows, order is from left-to-right.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">NOTE:</span><span style=" font-size:8pt; color:#ff0000;"> Display screen selection is currenly under development. Changing the screen number, will change on which screen projection will be displayed.<br />On Windows, oder is from right-to-left.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600; color:#ff0000;">ЗАУВАЖТЕ:</span><span style=" font-size:8pt; color:#ff0000;"> Опція вибору екрану наразі розробляється. <br />Зміна номеру екрану дозволяє виставити стільницю, <br />на якій він буде відображатися. <br />У Вінді стільниць порядок зліва направо. </span></p></body></html> + + + + Reset All To Default + Скинути усі налаштування + + + Select a image for main wallpaper + Обрати малюнок тла + + + Images (*.png *.jpg *.jpeg) + Файли зображень (*.png *.jpg *.jpeg) + + + + none + Не обрано + + + + None + Не обрано + + + + Edit Theme + Редагувати тему + + + + Theme Name: + Назва теми: + + + + Comments: + Коментарі: + + + + Default + Стандартний + + + + This theme will contain program default settings. + Ця тема містить налаштування програми за замовчуванням. + + + + HelpDialog + + + softProjector Help + Довідка по softProjector + + + + about:blank + + + + + Close + Закрити + + + + Ctrl+Q + + + + + ManageDataDialog + + + Manage Database + Керування базами + + + + Bibles + Біблії + + + + + + Download +&& Import... + Завантаження +&& Імпорт... + + + + Import a new Bible into your database + Додати нову Біблію в базу + + + + + + &Import... + &Імпорт... + + + + + + + Ctrl+I + + + + + Edit Bible title of currently selected Bible. + Редагувати назву обраного біблійного модуля. + + + + + + &Edit... + &Редагувати... + + + + + + Ctrl+E + + + + + Export currently selected Bible to share with others. + Експортувати обраний біблійний модуль. + + + + + + E&xport... + &Експорт... + + + + + + + Ctrl+X + + + + + Delete a Bible that you will no longer want to use in this program. + Видалити обраний біблійний модуль. + + + + + + &Delete... + &Видалити... + + + + + + Ctrl+D + + + + + Songbooks + Збірники + + + + + + Import a new Songbook into database. + Додати новий збірник до бази. + + + + + Edit the title and information about the Songbook. + Редагувати назву збірника та додаткову інформацію. + + + + + + Export currently selected Songbook to be able to share with others and for backup. + Експортувати обраний збірник для інших юзерів та для бекапа. + + + + + Delete currently selected Songbook from database. + Вилучити обраний збірник із бази. + + + + Themes + Теми + + + + &New... + &Нова... + + + + Export All... + Експортувати усе... + + + + Close Manage Database Dialog + Закрити діалог менеджера баз + + + + Close + Закрити + + + + Ctrl+Q + + + + + Select a songbook to import + Оберіть збірник для імпорту + + + softProjector songbook file + файли збірників softProjector + + + + + Importing... + Імпортується... + + + + + + Cancel + Скасувати + + + User songbook + Збірник користувача + + + Songbook imported by the user + Збірник імортовано користувачем + + + + Too old SongBook file format + Формат файлу старої версії SoftProjector + + + + Save the songbook as: + Зберегти Збірник як: + + + softProjector songbook file (*.sps) + Файли збірників softProjector (*.sps) + + + + Export complete + Експорт завершено + + + + The songbook " + Збірник " + + + + " +Has been saved to: + + " +було збережено до: + + + + Delete songbook? + Вилучити збірник? + + + + + Are you sure that you want to delete: + Ви таки впевнені в тому, що бажаєте вилучити: + + + + This action will permanentrly delete this songbook + Це діло видалить збірник з кінцями. Для відновлення прийдеться попотіти + + + + Select Bible file to import + Оберіть Біблію для імпорту + + + + + SoftProjector Bible file + Файли біблійних модулів softProjector + + + Old Bible file format + Біблія в старому форматі softProjector + + + The Bible format you are importing is of an old version. +Your current SoftProjector does not support this format. +Please download lattest Bibles and import them. + Ви намагаєтеся імпортувати біблійний модуль в древньому форматі. +На превеликий жаль, Ваш softProjector непідтримує таке щастя. +Оптимальним вирішенням даної проблеми буде завантаження нової версії модуля. + + + + New Bible file format + Новий формат біблійного модуля + + + + The Bible format you are importing is of an new version. +Your current SoftProjector does not support this format. +Please upgrade SoftProjector to latest version. + Ви намагаєтеся імпортувати біблійний модуль в новітньому форматі. +На превеликий жаль, Ваш softProjector непідтримує таке щастя. +Оптимальним вирішенням даної проблеми буде завантаження нової версії softProjector. + + + + SoftProjector songbook file + Файли пісенників SoftProjector + + + + The SongBook file you are opening, is of a later release and +is not supported by current version of SoftProjector. +You are trying to open SongBook version %1. +Please upgrade to latest version of SoftProjector and try again. + Пісенник, що Ви намагаетеся його відкрити, створений більш пізньою +версією SoftProjector і не підтримується поточною. +Спробуйте відкрити його за допомогою SoftProjector версії %1. +Будьте такі ласкаві, оновіть SoftProjector до останньої версії та спробуйте знову. + + + + + Unsupported SongBook version. + Непідтримуваний формат файлу пісенника. + + + + The SongBook file you are opening, is not supported +by current version of SoftProjector. + + Пісенник не підтримується. + + + + The SongBook file you are opening, is in very old format +and is no longer supported by current version of SoftProjector. +You may try to import it with version 1.07 and then export it, and import it again. + Пісенник, що Ви намагаєтеся його відкрити, має ну дуже старий форма +та уже не підтримується даною версією SoftProjector. +Ви можете спробувати імпортувати його попередньою версією, потім експортувати +і після цього імпортувати отриманий файл цією версією SoftProjector. + + + + SoftProjector songbook file (*.sps) + Файли пісенників SoftProjector (*.sps) + + + + + An error has ocured when overwriting existing file. +Please try again with different file name. + Виникла помилка перезапису фалу. +Будь ласка, спробуйте інше ім’я для цього фалу. + + + + The Bible format you are importing is of an usupported file version. +Your current SoftProjector version does not support this format. + Формат файлу Біблії, що його Ви намагаєтеся імпортувати, на великий жаль, +відповідає непідтримуваній Вашим SoftProjector-ом версії. + + + + Unsupported Bible file format + Непідтримуваний формат файлу Біблії + + + + Save exported Bible as: + Зберегти експортований біблійний модуль як: + + + + + Edit Theme + Редагувати тему + + + + + Theme Name: + Темине ім’я ;) + Назва теми: + + + + + Comments: + Коментарі: + + + + Default + Замовчування + + + + This theme will contain program default settings. + Ця тема містить налаштування програми за замовчуванням. + + + + Select a Theme to import + Оберіть тему для імпорту + + + + + SoftProjector Theme file + Фали тем SoftProjector + + + + Importing Themes... + Імпортування тем... + + + + The Theme file you are opening, is of a later release and +is not supported by current version of SoftProjector. +You are trying to open Theme version %1. +Please upgrade to latest version of SoftProjector and try again. + Тема, що Ви намагаетеся її відкрити, створена більш пізньою +версією SoftProjector і не підтримується поточною. +Спробуйте відкрити її за допомогою SoftProjector версії %1. +Будьте такі ласкаві, оновіть SoftProjector до останньої версії та спробуйте знову. + + + + + Unsupported Theme version. + Непідтримквана версія теми. + + + + The Theme file you are opening, is not supported +by current version of SoftProjector. + + Тема, що її Ви намагаетеся відкрити є такою, що не підтримується. + + + + Export Theme as: + Експортувати тему як: + + + + Export all theme as: + Експортувати усі теми як: + + + + softProjector Theme file + Файл теми SoftProjector + + + + Exporting Themes... + Експортування тем... + + + + Delete Theme? + Такі видалити тему? + + + + Are you sure that you want to delete theme: + Ви такі точно бажаєте видалити тему, що називається: + + + + This action will permanentrly delete this theme + Дійсно продовжити? Ця дія ж бо приведе до видалення теми + + + + Error opening module list. + Помилка відкриття списку модулів. + + + + Failed to open mod list + Не вдалося відкрити сисок модулів + + + + +Downloading: %1 +From: %2 + Завантажується: %1 +з %2 + + + + Error opening save file %1 for download %2 +Error: %3 + Помилка відкриття збереженого файлу %1 при завантаженні %2. +Власне, сталося таке: %3 + + + + Error downloading module list. + Помилка при завантаженні спису модулів. + + + + Bible Module Download + вибачте мене, якщо я спутав часи і не вірно переклав. Я не розумію суті цієї дії. + Завантажити біблійний модуль + + + + Songbook Module Download + та сама пертушка + Завантажити модуль пісенника + + + + Theme Module Download + Завантажити модуль теми + + + + Download Error: %1 + Ошибка загрузки: %1 + Помилка завантаження: %1 + + + + Saved to: %1 + Збережено до: %1 + + + + +Importing: %1 + Імпортування: %1 + + + softProjector Bible file + файли біблійних модулів softProjector + + + + Exporting... + Експорт... + + + + Bible has been exported + Біблійний модуль експортовано + + + + Bible: + + Біблія: + + + + + +Has been saved to: + + Збережена до: + + + + + Delete Bible? + Видалити біблійний модуль? + + + + This action will permanentrly delete this Bible + Це діло повністю видалить модуль. Для відновлення прийдеться попотіти + + + + Edit Songbook + Редагування збірника + + + + MediaWidget + + + Form + Форма + + + + - Media Library - + -- Медіа бібліотека -- + + + + Go Live (F5) + Показати (F5) + + + + F5 + + + + + Open + Відкрити + + + + Aspect Ratio: + Пропорції сторін: + + + + Auto + Авто + + + + Scale + Масштаб + + + + 4/3 + + + + + 16/9 + + + + + + <center>No media</center> + <center>Тут наразі нічого немає</center> + + + + No Media + Немає медіа + + + + Open Music/Video File + Відкрити файл музики/відео + + + + + Media Files (%1);;Audio Files (%2);;Video Files (%3) + Медіа файли (%1);; файли аудіо (%2);; відео файли (%3) + + + + Select Music/Video Files to Open + Вибір файлів музики/відео + + + + ModuleDownloadDialog + + + Dialog + + + + + Select modules you wish to download and import. + Оберіть модулі, які бажаєте завантажити та імпортувати. + + + + Select All + Обрати усе + + + + Deselect All + Скасувати весь вибір + + + + ModuleProgressDialog + + + Download / Import Progress Dialog + незрозуміло, що це таке. викликати в програмі не вдалося + Завантажити / Зберегти діалог прогресу + + + + Current Progress: + Наразі: + + + + Total Progress: + Загалом: + + + + Close + Закрити + + + + Native language name + + English + Українська + + + + English + Do not change + Українська + + + + PassiveSettingWidget + + Form + Форма + + + + + Use Passive Background Image + Використовувати пасивне зображення тла + + + + + Browse... + Огляд... + + + + Use Separate Secondary Display Screen Settings + Додатковий дисплей + + + + Reset All To Default + Скинути усі налаштування + + + + + Select a image for passive wallpaper + Обрати зображення фону + + + + + Images(%1) + Файли зображень (%1) + + + + PictureSettingWidget + + Picture Settings + Налаштування зображень + + + + When Displaying Slideshows: + При показі слайдшоу: + + + + Expand Small Images + Розтягувати маленькі зображення + + + + Fit Images To Screen + Підганяти зображення під дисплей + + + + Fit Images To Screen By Expanding + Підганяти по найменшій стороні + + + + Resize Large Images on Import + Масштабувати великі зображення при імпорті + + + + It is highly recommended to reduce large images on import. This will improve load, save and display time of slideshows. +We recommend to resize images to display screen size. + Для прискорення процесу відображення та зміни слайдів дуже рекомендується перед імпортом +конфертувати зображення до розмірів дисплею. + + + + Bound Box: + Граничні розміри: + + + + 800 x 800 + + + + + 1024 x 1024 + + + + + 1280 x 1280 + + + + + 1366 x 1366 + + + + + 1440 x 1440 + + + + + 1600 x 1600 + + + + + 1920 x 1920 + + + + + Custom + Інші + + + + Inalid Numeric Value + Некоректне числове значення + + + + Entered '%1' custom width is not numeric. + Введене значення %1 не є числом. + + + + PictureWidget + + + Form + Форма + + + + Slide Shows: + Слайд шоу: + + + + Go Live (F5) + Показати (F5) + + + + F5 + + + + + + Picture Preview + Попередній перегляд + + + + Picture Information + Інформація про зображення + + + + Edit Preview Slide Show: + Модифікація слай шоу: + + + + Add + Додати + + + + Remove + Видалити + + + + Clear + Очистити + + + + Editing slide show here will not change anything in database. To have save changes, use "New Slide Show" or "Edit Slide Show". + Тут виконуються лише зміни для передперегляду слайдшову, які не впливають більш ні на що. + + + + + Preview slide: + Перегляд слайду: + + + + Select Images to Open + Відкрити зображення + + + + Images(%1) + Файли малюнків (%1) + + + + Adding files... + Додати файли... + + + + Cancel + Скасувати + + + + Slide Show: %1 + Слайд шоу: %1 + + + + PrintPreviewDialog + + + softProjector Print Dialog + Діалог друку softProjector + + + + Margins: + Поля: + + + + Left Margin + Ліве + + + + L: + Л: + + + + Top Margin + Верхнє + + + + T: + В: + + + + Right Margin + Праве + + + + R: + П: + + + + Bottom Margin + Нижнє + + + + B: + Н: + + + + Inch + дюймів + + + + Millimeter + міліметрів + + + + Pixel + пікселів + + + + Point + точок + + + + Font: + Шрифт: + + + + To PDF + в PDF + + + + Print + Друк + + + + Tune: %1 + + Тональність: %1 + + + + + Words By: %1 Music By: %2 + + + Лірика: %1, Музика: %2 + + + + + + Words By: %1 + + + Лірика: %1 + + + + + + Music By: %1 + + + Музика: %1 + + + + + + + +Notes: +%1 + + +Помітки: +%1 + + + + Announcements: %1 + + + Оголошень: %1 + + + + + + SoftProject Schedule: + Програма служіння SoftProjector: + + + + Save PDF as + Зберегти PDF як + + + + SettingsDialog + + + softProjector - Settings + Налаштування softProjectorа + + + + General + Загальні + + + + Passive + Пасив + + + + Bible + Біблія + + + + Picture + Зображення + + + + Media + + + + + Announcements + Оголошення + + + + General SoftProjector Settings + Загальні налаштування SoftProjector + + + + Passive Settings + Налаштування пасивного режиму + + + + This setting are displayed when nothing is to be projected. + Ці налаштування використовуються коли нічого не відображається. + + + + Bible Settings + Налаштування відображення Біблій + + + + Song Settings + Налаштування відображення пісень + + + + Picture Settings + Налаштування пасивного режиму + + + + Media Settings + Налаштування media + + + + Announcement Settings + Налаштування відображення оголошень + + + Primary Bible: + Перша Біблія: + + + Secondary Bible: + Друга Біблія: + + + If checked, the screen "window" is always drawn on top of other windows. This prevents the user from accidently drawing a window onto the projector's screen. + Вікно екрану завжди над іншими вікнами (потрібне перезавантаження програми). Ця опція перестраховує від випадкової видачі лівої інфи. + + + Display window always on top + Вікно завжди зверху + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавне затухання при зміні кадрів. + + + Use fading effects + Використовувати ефект затухання + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + При використанні фонових малюнків утворюються цікаві штуки. Спробуйте :) + + + Use blurred shadow + Використовувати розмиту тінь + + + Change Font... + Змінити шрифт... + + + Text color: + Колір тексту: + + + Choose color... + Змінити колір... + + + Active wallpaper + Малюнок тла + + + Browse... + Огляд... + + + Remove wallpaper + Вилучити малюнок + + + Passive wallpaper + Заставка + + + + Songs + Пісні + + + Show song number + Показувати номер пісні + + + Show song key + Показувати тональність + + + Show stanza title + Показувати номер куплету + + + None + Не обрано + + + Select a picture for the wallpaper + Оберіть малюнок для тла + + + Images (*.png *.jpg *.jpeg) + Файли зображень (*.png *.jpg *.jpeg) + + + + OK + + + + + Cancel + Скасувати + + + + Apply + Застосувати + + + + SlideShowEditor + + + Slide Show Editor + Редактор слайдшоу + + + + Slide Show Title: + Заголовок: + + + + Slide Show Info: + Інформація: + + + + Add Pictures + Додати зображення + + + + Remove Picture + Вилучити зображення + + + + Picture Preview + Перегляд зображення + + + + Picture Information + Інформація про зображення + + + + Save + Зберегти + + + + + Cancel + Скасувати + + + + Select Images to Open + Відкрити зображення + + + + Images(%1) + Файли малюнків (%1) + + + + Adding files... + Додати файли... + + + + Slide show title cannot be left empty. +Please enter a title. + Заголовок слайдшову не може бути порожнім. +Будьте такі ласкаві, вкажіть заголовок для слайшоу. + + + + Slide show title is missing + Провтик - відсутній заголовок + + + + Saving Slide Show + Зберегти слайдшоу + + + + Preview slide: %1 + Перегляд слайду: %1 + + + + SoftProjector + + + + Bible (F6) + Біблія (F6) + + + + + Songs (F7) + Пісні (F7) + + + + + Pictures + Зображення + + + + + Media + Медіа + + + + + Announcements (F8) + Оголошення (F8) + + + Project not saved + project as in document file + Проект не збережений + + + Do you want to save current project? + project as in document file + Ви бажаєте зберегти поточний проект? + + + Announcement + Оголошення + + + Words by: %1, Music by: %2 + Слова: %1, Музика: %2 + + + Words by: %1 + Слова: %1 + + + Music by: %1 + Музика: %1 + + + + Cannot start new edit + Відсутня можливість розпочати нове редагування + + + + + + Another song is already been edited. + О-о, інша пісня уже редагується. + + + + Schedule not saved + Прорама не збережена + + + + Do you want to save current schedule? + Ви бажаєте зберегти поточну прораму? + + + + &Clear Bible History List + &Очистити исторію показу Біблії + + + + &New Song... + Нова &пісня... + + + + &Edit Song... + Редагувати &пісню... + + + + &Copy Song... + &Копіювати пісню... + + + + &Delete Song + &Видалити пісню + + + + &New Slide Show... + &Нове слайдшоу... + + + + &Edit Slide Show... + Редагувати &слайдшоу... + + + + &Delete Slide Show + &Видалити слайдшоу + + + + &Add Media Files... + &Додати файли медіа... + + + + &Remove Media Files + &Видалити медіа файли + + + + &New Announcement... + &Нове оголошення... + + + + &Edit Announcement... + &Редагувати оголошення... + + + + &Copy Announcement... + &Копіювати оголошення... + + + + &Delete Announcement + &Видалити оголошення + + + + + + Please save and/or close current edited song before edited a different song. + Будьте ласкаві, збережіть і(або) закрийте поточну пісню перед тим, як братися редагувати іншу. + + + + + + + No song selected + Не обрано жодної пісні + + + + No song has been selected to copy + Не обрано жодної пісні для копіювання + + + + Please select a song to copy + Будьте такі ласкаві, оберіть пісню + + + + No song has been selected to delete + Не обрано жодної пісні для вилучення + + + + Please select a song to delete + Будьте такі ласкаві, оберіть пісню для вилучення + + + + + No slideshow selected + Не обрано слайдшоу + + + + No slideshow has been selected to edit. + Жодне слайдшоу не обрано для редагування. + + + + Please select a slideshow to edit. + Будьте ласкаві, оберіть слайдшоу для редагування. + + + + Delete slideshow? + Дійсно видалити слайдшоу? + + + + Delete slideshow: " + Видалити слайдшоу: " + + + + This action will permanentrly delete this slideshow + Слфйдшоу буде вилучено аж до закінчення Вічості + + + + No slideshow has been selected to delete. + Жодне слайдшоу не обрано для видалення. + + + + Please select a slideshow to delete. + Будьте такі ласкаві, оберіть слайдшоу для видалення. + + + + No media selected + Не обрано медіа + + + + No media item has been selected to delete. + Жодного медіа не обрано для видалення. + + + + Please select a media item to delete. + Будьте такі ласкаві, оберіть медиа для видалення. + + + + + + No Announcement Selected + Не обрано оголошення + + + + No announcement has been selected to edit + Жодного оголошення не обрано для редагування + + + + Please select an announcement to edit + Будьте такі ласкаві, оберіть оголошення для редагування + + + + No announcement has been selected to copy + Жодного оголошення не обрано для копіювання + + + + Please select an announcement to copy + Будьте такі ласкаві, оберіть оголошення для копіювання + + + + Delete Announcement? + Дійсно видалити оголошення? + + + + Delete announcement: " + Видалити оголошення: " + + + + This action will permanentrly delete this announcement + Оголошення буде вилучено аж до закінчення Вічості + + + + No announcement has been selected to delete + Жодного оголошення не обрано для видалення + + + + Please select an announcement to delete + Будьте такі ласкаві, оберіть оголошення для видалення + + + + No announcement selected + Не обрано оголошення + + + + No announcement has been selected to be printed. + Жодного оголошення не обрано для друку. + + + + Please select a announcement to be printed. + Будьте такі ласкаві, оберіть оголошення для друку. + + + + + + Save Schedule? + Зберегти прораму? + + + + Do you want to save current schedule before creating a new schedule? + Ви бажаєте збереги поточну програму перед створенням нової? + + + + Do you want to save current schedule before opening a new schedule? + Ви бажаєте збереги поточну програму перед тим, як відккрити іншу? + + + + Open SoftProjector schedule: + Відкрити програму SoftProjector: + + + + + SoftProjector schedule file + Файли прорам SoftProjector + + + + Save SoftProjector schedule as: + Зберегти програму SoftProjector як: + + + Open softProjector schedule: + Відкрити програму softProjector: + + + softProjector schedule file + Файли прорам softProjector + + + Save softProjector schedule as: + Зберегти програму softProjector як: + + + + Do you want to save current schedule before closing it? + Стоп, можливо було б доцільно зберегти цю програму перед тим як її закрити? + + + + Saving schedule file... + Зберегти програму у файл... + + + + An error has ocured when overwriting existing file. +Please try again with different file name. + Виникла помилка перезапису фалу. +Будь ласка, спробуйте інше ім’я для цього фалу. + + + + Opening schedule file... + Відкрити файл програми... + + + + The schedule file you are trying to open is of uncompatible version. +Compatible version: 2 +This schedule file version: + Програма, яку ви намагаєтеся відкрити, не відповідає Вашій версії softProjector. +Сумісна версія: 2 +Версія програми: + + + No song has been selected to be edited. + Не обрано жодної пісні для редагування. + + + Please select a song to be edited. + Будьте ласкаві, оберіть пісню для редагування. + + + + Cannot create a new song + Відсутня можливість створити нову пісню + + + + No song has been selected to edit. + Не обрано жодної пісні для редагування. + + + + Please select a song to edit. + Будьте такі ласкаві, оберіть пісню для редагування. + + + + Cannot copy this song + Відсутня можливість скопіювати цю пісню + + + No song has been selected to be copied + Не обрано жодної пісні для копіювання + + + Please select a song to be copied + Будьте ласкаві, оберіть пісню для копіювання + + + + Delete song? + А якщо подумати? + + + + Delete song " + Вилучення пісні " + + + + This action will permanentrly delete this song + Пісня буде вилучена аж до закінчення Вічості + + + No song has been selected to be deleted + Не обрано жодної пісні для вилучення + + + Please select a song to be deleted + Будьте ласкаві, оберіть пісню для вилучення + + + Save Project? + project as in document file + Зберегти проект, а? + + + Do you want to save current project before opening other? + project as in document file + Стоп, можливо було б доцільно зберегти поточний проект перед тим як відкрити інший? + + + Open softProjector project + Відкрити проект softProjectorа + + + softProjector project file + Файли проектів softProjector + + + Save softProjector project as: + Зберегти проект softProjectorа як: + + + Save Project? + Зберегти проект, а? + + + Do you want to save current project before creating a new project? + Стоп, можливо було б доцільно зберегти поточний проект перед тим як створити новий? + + + Do you want to save current project before closing it? + Стоп, можливо було б доцільно зберегти цей проект перед тим як його закрити? + + + Incorrect project file format + О-о, некоректний формат файлу пректа :( + + + The softProjector project file you are opening, +is not supported by your version of softProjector. +You may try upgrading your version of softProjector. + Опа, на превеликий жаль, файл проекту, який +Ви намагаєтеся відкрити, не підтримується даною +версією softProjector. +Рекомендується оновити програму. + + + + No song has been selected to be printed. + Не обрано жодної пісні для лруку. + + + + Please select a song to be printed. + Будьте ласкаві, оберіть пісню для друку. + + + English + Українська + + + + SoftProjectorClass + + + Tab + Закладка + + + Stop displaying text to the screen (display black screen or wallpaper). Sortcut for this button is the Escape key. + Припинити показувати текст на екрні (тло лишається) (Esc). + + + Hide (Esc) + Приховати (Esc) + + + + Esc + + + + If Clear was pressed earlier, this will re-display the text to the screen + Показати раніше прихований текст + + + Show (F4) + Показати (F4) + + + + F4 + + + + + Use Multi Verse + Використовувати декілька віршів + + + + Service Schedule: + ПРограма служіння: + + + + If selected, this will allow to select multiple verses at one time. Will need to press "Show" each time. + Дозволяє показувати декільька віршів за раз. Потребує натискання "Показати" кожного разу при зміні віршів. + + + + &File + &Файл + + + + &Edit + &Редагувати + + + + + &Help + &Допомога + + + + Select Language + Оберіть мову + + + + Language + Мови + + + + View + Вигляд + + + + Schedule + Програма + + + + Display Screen + Дислей + + + + File Tool Bar + Файлова панель інструментів + + + + Schedule Tool Bar + Панель інструментів програми + + + + Edit Tool Bar + Панель інструментів для редагування + + + + Display Control Tool Bar + Панель інструментів контролю дисплею + + + + Import and export Bibles, songbooks and themes + Імпорт та експорт Біблій, пісенників та тем + + + + Open Help + Открыть справку + Відкрити довідку + + + + &Open Schedule + &Відкрити програму + + + + &Save Schedule + &Зберегти програму + + + + Save Schedule &As + Зберегти програму &як + + + + Save Schedule with different name + Зберегти програму з іншим ім’ям + + + + &New Schedule + &Нова програма + + + + Start new Schedule + Створити нову програму + + + + + Close Schedule + Зкрити програму + + + + &Print + &Надрукувати + + + + Prints selected Bible chapter, selected song and selected announcement. + Друкувати обраний розділ Біблії, обрану піснб та оголошення. + + + + + Print Schedule + Друкувати програму + + + + Ctrl+Shift+P + + + + + Del + + + + + Donate + Пожертвувати + + + + Donate to softProjector development team + Пожертвувати для команди softProjector + + + + Add to Schedule + Додати в програму + + + + F2 + + + + + Remove from Schedule + Видалити з програми + + + + Ctrl+Del + + + + + Clear Schedule + Очистити програму + + + + Move Item To Top + Рухати наверх + + + + Move Schedule item to top of the list + Перемістити елемент на верх списку + + + + Move Item Up + Рухати догори + + + + Move Schedule item up + Рухати елемент програми догори + + + + Mode Item Down + Рухати вниз + + + + Move Schedule item down + Рухає елемент програми вних + + + + Move Item To Bottom + Перемістити елемент в низ + + + + Move Schedule item to bottom of the list + Переміщає елемент програми вниз списку + + + + Show + Показати + + + + Dsiplay to the screen (F4) + Показати на дисплеї (F4) + + + + Show Passive Screen (Stop displaying to the screen) (Esc) + Показати пасивний дисплей (припинити показувати) (Esc) + + + + Clear + Очистити + + + + Clear Display Text (Shift+Esc) + Очистити текст на дисплеї (Shift+Esc) + + + + Shift+Esc + + + + + On / Off + Увмкн. / Вмкн. + + + + Turn Display Screen On/Off + Увімкнути / Вимкнути дисплей + + + Close + Закрити + + + Close Display Window + Закрити вікно дисплею + + + + Hide + Сховати + + + Songs + Пісні + + + toolBar + Панель інструментів + + + + &About + Про &програму + + + + &Settings... + &Налаштування... + + + + Open settings dialog + Відкрити вікно налаштувань + + + + Ctrl+T + + + + + E&xit + Ви&хід + + + + Exit SoftProjector + Вийти з softProjector + + + + Ctrl+Q + + + + &Edit Current Song... + &Редагувати поточну пісню... + + + + Ctrl+E + + + + &New Song... + Нова &пісня... + + + + Ctrl+N + + + + + &Manage Database... + Керування &базами... + + + Import and export song collections and Bibles + Іпортування та експортування збірниками пісень та Біблій + + + + Ctrl+M + + + + &Delete Current Song + &Вилучити поточну пісню + + + + F1 + + + + Copy Current Song... + Копіювати поточну пісню... + + + Copy current song into a new songbook + Копіювати поточну пісню до нового збірника + + + + Ctrl+C + + + + + Song Counter... + Лічильник пісень... + + + &Open Project + &Відкрити проект + + + + Ctrl+O + + + + &Save Project + &Зберегти проект + + + + Ctrl+S + + + + Save Project &As + Зберегти проект &як + + + New Project + Новий проект + + + + Ctrl+Shift+N + + + + Close Project + Зачинити проект + + + + Ctrl+P + + + + + SongCounter + + + Song Counter + Лічильник пісень + + + + Reset Selected + Скинути обране + + + + Reset All + Скинути усе + + + + Close + Закрити + + + + + January + January %1, %2 + січня + + + + + February + February %1, %2 + лютого + + + + + March + March %1, %2 + березня + + + + + April + April %1, %2 + квітня + + + + + May + травня + + + + + June + June %1, %2 + червня + + + + + July + July %1, %2 + липня + + + + + August + August %1, %2 + серпня + + + + + September + September %1, %2 + вересня + + + + + October + October %1, %2 + жовтня + + + + + November + November %1, %2 + листопада + + + + + December + December %1, %2 + грудня + + + + SongCounterModel + + Song Title + Назва + + + + Number + Номер + + + + Title + Назва + + + + Count + Штук + + + + Date + Дата + + + + Songbook + Збірник + + + + SongSettingWidget + + Form + Форма + + + + + Effects + Ефекти + + + + + If checked, when switching displayed text, fades the old text out and fades the new text in . + Плавне затухання при зміні кадрів. + + + + + Use fading effects + Використовувати ефект затухання + + + + + + + Useful when using a wallpaper image. Displays a fancy shadow effect. + Використовується, якщо наявний малюнок тла. + + + + + Use shadow + Використовувати тіні + + + + + Use blurred shadow + Використовувати розмиту тінь + + + + + Song Information + Інформація про пісню + + + + + Show Stanza Title + Показувати номер куплету + + + + + Show Song Key + Показувати тональність + + + + + Show Song Number + Показувати номер + + + + + + + + + Color... + Колір... + + + + + + Alignment: + Вирівнювання: + + + + + Above Text + Перед текстом + + + + + Below Text + Після тексту + + + + + Show Song Ending + Показувати закінчення + + + *** + *** + + + This will show WordsBy and MusicBy as song ending + Інформація про авторів слів та музики відображатиметься + + + + + Song Copyright Info + Інформація про копірайт + + + + + + + Position: + Положення: + + + + + Below Song Text + Після тексту + + + + + + Bottom of Screen + Внизу екрану + + + + + Use Background Image + Використовувати малюнок тла + + + + + Browse... + Огляд... + + + Text Alingment + Вирівнювання тексту + + + Vertical: + вертикальне: + + + Horizontal: + Горизонтальне: + + + + + Top + Зверху + + + + + Middle + Середина + + + + + Bottom + Внизу + + + + + Left + Ліворуч + + + + + Center + Центр + + + + + Right + Праворуч + + + Text Properties + Текст + + + Color: + Колір: + + + Choose color... + Обрати... + + + + + + + + + Font... + Font + Шрифт... + + + + + Type: + Тип: + + + + Apply this background to all active backgrounds. + Застосувати цей фон до всіх активних фоном. + + + + + Song Text Properties + Властивості тексту пісні + + + + Alingment: + Вирівнювання: + + + + + Amount Of Screen To Use + Частина екрана, яка використовується + + + + Vertical Screen Use: + Висота дисплея, що використовується: + + + + + Percent of screen to be used. + Частина екрана, яка використовуватиметься, у відсотках. + + + + + Select to use either top portion of the screen or bottom. + Оберіть, яку частину (верхню чи нижню) дисплею використовувати. + + + + Top of screen + Вверху екрана + + + + Bottom of screen + Внизу екрану + + + + Use Separate Secondary Display Screen Settings + Використовувати власні налаштування для другого дисплею + + + + * * * + + + + + - - - + + + + + ° ° ° + + + + + • • • + + + + + ● ● ● + + + + + ▪ ▪ ▪ + + + + + ■ ■ ■ + + + + + Vertical Screen Use + Висота дисплея, що використовується + + + + % + + + + + Top of Screen + Вверху екрана + + + + Reset All To Default + Скинути усі налаштування + + + + + Select a image for song wallpaper + Обрати малюнок тла + + + + + Images(%1) + файли малюнків (%1) + + + + Bold + Жирний + + + + Italic + Курсив + + + + StrikeOut + Закреслений + + + + Underline + Підкреслений + + + Images (*.png *.jpg *.jpeg) + Файли зображень (*.png *.jpg *.jpeg) + + + + SongWidget + + + Form + Форма + + + + Use this menu to show only songs beloning to a particular Songbook + Відображають лише пісні зі вказаного збірника + + + + Select Songbook to use + Обрати робочий збірник + + + + Selects a song by the number in the selected Songbook + Обрати пісню із поточного зібрника за номером + + + + + + Filter: + Фільтр: + + + + Use this field to limit the display of the songs to only the ones that contain the specified text in the song title or song number + Використовується для задання критеріїв відповідності тексту пісень або їхніх номерів + + + + + Search Type: + Тип пошуку: + + + + Exact Match + Точна відповідність + + + + Contains Phrase + Містить фразу + + + + Contains Word Phrase + Містить слово/фразу + + + + Line Begins + На початку рядочка + + + + Contains Any Word + Містить хоча б одне з слів + + + + Contains All Words + Містить усі слова + + + + Search + Пошук + + + + Return + Повернутися + + + Matches only songs the song number or title of which contains the entered string. + Обераються пісні по номеру або назві. + + + + Contains + Містить + + + Matches only songs the song number or title of which begins with the entered string. + Обераються пісні по номеру або по першій стрічці. + + + + Begins + Розпочинається + + + Matches only songs the song number or title of which exactly matches the entered string. + Обераються пісні, які точно відповідають заданим критеріям. + + + Exact match + Точна відповідність + + + + Done Searching? - Clear Search Results + Завершити пошук та очистити результати + + + Add the selected song to the playlist + Додати обрану пісню до списку відтворення + + + Add (F2) + Додати (F2) + + + Remove the selected song from the playlist + Вилучити обрану пісню із списка відстворення + + + Remove (F3) + Вилучити (F3) + + + + Quickly display the selected song on the screen without adding it to playlist first + Швидкий показ без занесення до списку відтворення + + + + Go Live (F5) + Показати (F5) + + + + F5 + + + + Song preview: None + Попередній перегляд: нічого немає + + + + + All songbooks + Усі збірники + + + Song Preview: + Попередній перегляд пісні: + + + Comments: + Comments to songs + Коментарі: + + + + + Filter Type: + Тип фільтру: + + + + Notes: + Notes to songs + Замітки: + + + + Could not find song with number + О-о, пісня з таким номером відсутня + + + + No such song + Опа, така пісня відсутня + + + + + All song categories + Усі категорії + + + + Please enter search text + Будьте ласкаві, введіть текст, що бажаєте його віднайти + + + + Search: + Пошук: + + + + SongbooksModel + + + Title + Назва + + + + Information + Інформація + + + + SongsModel + + + Num + Номер + + + + Title + Назва + + + + Songbook + Збірник + + + + Tune + Тональність + + + + ThemeModel + + + Name + Назва + + + + Comments + Коментар + + + diff --git a/videoinfo.cpp b/videoinfo.cpp new file mode 100644 index 0000000..4e51a5f --- /dev/null +++ b/videoinfo.cpp @@ -0,0 +1,25 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "videoinfo.h" + +VideoInfo::VideoInfo() +{ + aspectRatio = 0; +} diff --git a/videoinfo.h b/videoinfo.h new file mode 100644 index 0000000..2fd07bf --- /dev/null +++ b/videoinfo.h @@ -0,0 +1,35 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef VIDEOINFO_H +#define VIDEOINFO_H + +#include + +class VideoInfo +{ +public: + VideoInfo(); +public: + QString filePath; + QString fileName; + int aspectRatio; +}; + +#endif // VIDEOINFO_H diff --git a/videoplayerwidget.cpp b/videoplayerwidget.cpp new file mode 100644 index 0000000..be14e8e --- /dev/null +++ b/videoplayerwidget.cpp @@ -0,0 +1,103 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "videoplayerwidget.h" + +VideoPlayerWidget::VideoPlayerWidget(QWidget *parent): QMediaPlayer(parent)/*: + Phonon::VideoWidget(parent)*/ + +{ + +} + +void VideoPlayerWidget::setFullScreen(bool enabled) +{ +// Phonon::VideoWidget::setFullScreen(enabled); +} + +void VideoPlayerWidget::mouseDoubleClickEvent(QMouseEvent *e) +{ +// Phonon::VideoWidget::mouseDoubleClickEvent(e); +// setFullScreen(!isFullScreen()); +} + +void VideoPlayerWidget::keyPressEvent(QKeyEvent *e) +{ + int key = e->key(); + if (key == Qt::Key_Space) + { + emit playPause(); + e->accept(); + return; + } + else if (key == Qt::Key_Escape) + { + setFullScreen(false); + e->accept(); + return; + } +// Phonon::VideoWidget::keyPressEvent(e); +} + +bool VideoPlayerWidget::event(QEvent *e) +{ + switch(e->type()) + { + case QEvent::Close: + //we just ignore the cose events on the video widget + //this prevents ALT+F4 from having an effect in fullscreen mode + e->ignore(); + return true; + case QEvent::MouseMove: +//#ifndef QT_NO_CURSOR +//// unsetCursor(); +//#endif +// //fall through +// case QEvent::WindowStateChange: +// { +// if (windowState() & Qt::WindowFullScreen) +// m_timer.start(1000, this); +// else +// { +// m_timer.stop(); +//#ifndef QT_NO_CURSOR +// unsetCursor(); +//#endif +// } +// } + break; + default: + break; + } + +// return Phonon::VideoWidget::event(e); + return false; +} + +void VideoPlayerWidget::timerEvent(QTimerEvent *e) +{ +// if (e->timerId() == m_timer.timerId()) +// { + ///let's store the cursor shape +//#ifndef QT_NO_CURSOR +// setCursor(Qt::BlankCursor); +//#endif +// } +// Phonon::VideoWidget::timerEvent(e); +} diff --git a/videoplayerwidget.h b/videoplayerwidget.h new file mode 100644 index 0000000..cc3f4dd --- /dev/null +++ b/videoplayerwidget.h @@ -0,0 +1,51 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef VIDEOPLAYERWIDGET_H +#define VIDEOPLAYERWIDGET_H + +#include +#include +//#include +//#include + +class VideoPlayerWidget :QMediaPlayer//: public Phonon::VideoWidget +{ + Q_OBJECT +public: + VideoPlayerWidget(QWidget *parent = 0); +public slots: + + void setFullScreen(bool); + +signals: + void playPause(); + void handleDrops(QDropEvent *e); + +protected: + void mouseDoubleClickEvent(QMouseEvent *e); + void keyPressEvent(QKeyEvent *e); + bool event(QEvent *e); + void timerEvent(QTimerEvent *e); + +private: + QBasicTimer m_timer; +}; + +#endif // VIDEOPLAYERWIDGET_H

SiQ_^PaY(bhR5*8<|#D!Fv(skfSI3F=*EvOB`UL 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 CZ+$BO literal 0 HcmV?d00001 diff --git a/icons/controlExitPressed.png b/icons/controlExitPressed.png new file mode 100644 index 0000000000000000000000000000000000000000..49c0a235de06ab00640de55ec5f09fe4b65e14f6 GIT binary patch literal 7429 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 literal 0 HcmV?d00001 diff --git a/icons/controlNext.png b/icons/controlNext.png new file mode 100644 index 0000000000000000000000000000000000000000..af21d5fa496f3c15cb9ebfbcc7cc68c994a450ef GIT binary patch literal 4058 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 M07*qoM6N<$g0u<3asU7T literal 0 HcmV?d00001 diff --git a/icons/controlNextHovered.png b/icons/controlNextHovered.png new file mode 100644 index 0000000000000000000000000000000000000000..f819c216ee22ae5df19409fd7d8bd5629e7e57d8 GIT binary patch literal 6387 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ΠPj1ZEAj|VZ&mQ+>Sn= z5m|vmf|o1Q;xXf!YJ-E((#+EGX@2C+ye`gv$NM(h{f7_b;A!9SBxx{IW}AL22U^e2 zFweIzGZQ~gRJX~ZJ}XG##}hio8-wrtZJEq{x0gf+N>J^|s^7OfT(|W7ZG@}JF{W_s z{HOWEJFLY!8o^a7-2P?p4ok+y&flG#(CA>fIvu`!zTy)NYm1nIJb362m>O9?m6vWt F{~t3B`w;*D literal 0 HcmV?d00001 diff --git a/icons/controlPrev.png b/icons/controlPrev.png new file mode 100644 index 0000000000000000000000000000000000000000..7ed71547f3ecebb592ad8d94a26b869a3519049e GIT binary patch literal 4038 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 literal 0 HcmV?d00001 diff --git a/icons/controlPrevHovered.png b/icons/controlPrevHovered.png new file mode 100644 index 0000000000000000000000000000000000000000..f83e9d0a58dbab22d690590f5c5ad483f66e3549 GIT binary patch literal 6298 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%0D>GNqb&4=$gVZ^U4$7 zWQo=LkV_6tY*&9u_OLg4T#ZgDmh4U>wr@>r%pmGP*bJ$27G(NEj~GC*Yst>0S1v{| z5DV;y-(~orU)^v2pn4#`ysoAuN5J?t^|cJOBRe-r=TK5Gl)FO;3i{Y_&jC)PFWaf6 zZwiJycnA0V?gTkLUg3KJ&?(s2R8?71bN>3XJjFzdM{gMc!T>S{_w_}%Fll2toyUh) z`k-+hve@p)o9Sz7lM>O-e>T?Kj?_&Hbp}zT;)TvCegm8Xm>>LsTv=G7W7|`#GLvTi z#MZelVjSAY7;|FvLdL5#lPEX5!XDEh#EEF_W4bO{w!eTqyu%RZmnEzp?&q+=NSf^$ z1^X{*J%upxH1&H_-o*jV5y+RvKuNzb^b3`SY28k7UR6z4J55x3YX0OCY6oU?|6?)7 zNAquEr#?Vx2G>&j;>C;Tou=B}F7(!c&Bg^G@bI=Z1U=O~zD$6?GR00T$F=#|P9VDF z7{=IfAC{~V6NC9F>@zi{*s7ts;kbHJwO$SUr_rJ*(@LgNBX8k03C)`#pzCKG#fG~2 z0>{??t1KK}lC*h}`{v4<+S@rY7q|sAuY7rv6X<-<MniVCmz-;+gNp`kA)t7mPXR-Ukw07f-A43j~f+1@FerY^)i(Br2C<78!X7yzV^)S_8kGAghpYDE_)!)lg(a?TcpTG7LVd)NaV=Hp=343Fc`!|UmIi_PZ z{Oj7UjEleRZ)jIg=dYP8BbV`Qo${70xkVe6+1X#be! z%N`{@sTc^X%$FP8(i##UEK_7%(!+ojFG@$aT?DMk>YjSuqxG@X0cyE`nW+__6z`t+ EKY0mf8UO$Q literal 0 HcmV?d00001 diff --git a/icons/database.png b/icons/database.png new file mode 100644 index 0000000000000000000000000000000000000000..65d4a9234b2e8e1523c8db158c1699ba6acf68ea GIT binary patch literal 4257 zcmV;S5MJ+zP)h=2eX0y4o-EMCOfJ&uuWo&Hh z^5o>?()R7!>jw@TxKS(?lkxHKxK^trJ9g|y%H^`QS}h$L8`Hge_bLFcJ2yOJ9RV3S z-N}~_+g~_#>{z^hP6$cK2o#@w`svAfy?*z}ldn7( zR!1Ls>mPm^yY7Dgg#ZXL&`to6EM)?K0$Lj399;UD64OkZTaBgOnnPhsxazhm54`Q}%@`jtO>?6Jp^n+VLz%mgP+oESNK_UxYd`T38uy2)QZ z@>k!$_|}~$20-8hK_7S;_nd^~fcx^{P~_1kw>~4F^a+rFl2A=0l_=3m480gw?J5@M zXL0JAf6P(=?^|44e0Des4gjuSzwRzxyjW>88ao?}0Sf{Cd^7~At6wA$Uz&dkiX;W^*{ zV0L!aH5!d_yWO6IpaNPZ73oKP7)bx%;FDk$@}c~$|2|Aq27fysg?@mX2!i}KK!#yK z02J0kZ~(BfvLdZk%k_G_5M*oNe`m0I{W3I@gJt?%Z^A^b>kMl?W@v0~)A<-Prt#-s zoMyjaOs~}luZF}MyeE4r3vA9GhjTJ_?b@|9FdP7Q@2%VIYPZ|*FKGf z*%y!~;j;;*Mkv{TSl@Z_Natrhi8FxA%r7Tsd0_I%tQ@jaMK3l)v9T8`m*!r;+3$Zs z#&;i40@v4PAOwJgg#~sx9qo3zzSrw%Fun_SJ@iq$_RQCD?x)|!q4#|ple_O7ngbk2 zC!driYifb@-6tnIu-M^jn5E#;sFQI*#EGGCX%_R(e??j=*SY6|f1cFOzixK=IA>>P z*Vt$XfalJgW3$<`cDt=n6tNq{s7@cn;Xgf!<=GQ>>APRR*p?~mxbFdM-hDqtx80Gt zQD&9Q!aN*(W+?lavO#sWejOlG$-D-%>X)#5@f7Oko|l!YzrfT3AJskgKBAsMe0A=$ z_{87TN`(1EqtP%kvp9||iW5XW_2`|Bx2ldqSvaUdHD>QSN=~{E}w=WKxO9vtL=Ha z-SL6HwAcdlA~iLdCMqQP{4zIh-i$boElCn2UJ+|rguDTPa~Qwx zVQjkpJqR6;v>I5MKZWb(Pve(Ae+Ef=1-`cm0Z^!pp;#S9p)!V`GztKSyDLaKO(fkW z;`R-gnYcm?QW`;Z`(D;|AJr`nK2BGjg!jf+4V~D-Cz>WsLRD2~W>|mpGtlXDn3i~@ znL&*p1u8^ffOkU{SKfrNL&q?2??Y?6of;!<-9X%0X41;Qs$!%(hM+Raurx|nssUjc z=9OLznx0J5;5#wAS9&E(6{=-n1Z4j%`CG{O^KPo)X2=HX`ZG8O<@L- zLJ6Fi*-drymIMH-t)4?k`VK7n&s)9zQeNP(Iv^%wQyf=_(2AJN1 zW`sx*5IP2GapX2ynB7Ex44~$6 z(bV$Q`Xs5DgqX@~Af2=bWTg6Ja`{mS(qJ~60mu63A5^HZ6A7BPBcV=h+cZvn=krh{ z_q^v%D6Wt#4K;m;rMk|E^oiwi$?l`Skjei}vkGi^v@soyFIK&b6~ad*M{5QB$hh5Btdn9&Od8ers{*)OT)brEg6@l|Jztow}Dt zKK3OxFQ1X~$G`3xZ~V+%J^3^MAShNavh$FQ?7ENTu^kqaMi7*0bj1+_#Sx~hMVU0f z_f{q8HsO0s@!eJN(JHjJD)H)~bg#b=beHCw`JMnkP#R@r%K<;W|ASF^(;iO=B2Bzf zEx2t0W(JKC=DMzI-edcJ|FZ@X-KC3Ixp+#Nmrl9WORve57rqtHbi*G{s~oc4dZYgi zP#nKQN2ec1%A5CTX>zX*t6MEC0HAuGwSwMAy}6ILWd_Wsv8T~)(sekpos$RNi%t6; zRx_jd7;&p1+FOP1t{~~I!uM9i_f|!tRUyHkP@yZ-=)x*pu}T+KD1{n>;;2DFkolx0 z%_n&$n;xK1yqRVmep?w(gZIh6qkpBY1z~v;U16Nz$S#ypry*6dHGna<(saS2$m}w8 zD<=IpguZ>|6WvHLLVVhw-F^m0jg#B+YZA!X1?0qric&g6vx1hnPDUOa`pv#O4Y^X< zjFF;dX10+MHzH7Ny!o?W*SkLMDM4RCB>Fx-3}V<#(ud}mAuEQ>nVR$;Cs z1~C)F*10sZ8{l2PmH^4HyEN~XUO(sbQ7f_PiX%M#lP?yfI2zS<+^@Wau92>?IIL@~iS|ai z)&apGsbph^2&9=wnsdd~H@`I{K`EyB3%4U7PV9LgS-td1IQP`2%Og`qbj#sK9~J7aJyo3l@!wV|TMy{i^n-D6@*XXY?y|ueV6Cn(9MvJYteLQRX4r2z z04kH#mC&zVD8x5jFZtGmqJ&i|?|8Ug+WE+Aw0OL<5!72$Vk7A|vG4uS*q--BD|62k zm(M(1T>SahDgfZZGK&+_TAaAsmnQD^VP%_1ST+f(6v)~+z`-O14d!E5(iV%`PNQY# zTNetxb*bRnR|>RP0KgSSwY>A8W^wXpTf%Z%3ZaLvc>4s*px!g@3`eGqMYTI0jN+9A z={0^4M$2c~R#R&~6+r0!8lb~b>N+v;t5>(ZdwlV5mmQl7zl+6KVi&V*XM50fv z-1tSHNn)f)y5G}}>P>!~Mm{Hi0hvLhQ_%frZvc7?nIVDzA?C$NtnG!ZfL&WpAZNsO zyPY`amYs7iB<-u{EW8|=_hvpZ^Pc7ts`oJUG|j$il4i=Mr)fgcL!b~SA^kH=t{5Oj z5v7PhWN>fj?Lan$Do$bvf_AcUt`s-k+z;{_>j?-+h=>3v7K_E5BJws>{g9e`v@-SE z-O7#!dvF10CjD067P=lpdVN%fb=`m6%gkx=%;aO3MnED7!qwij*|2-zzwZ&)6K3`w zB-d2q{)=uAaR5dOg~A;G?gQ{{HTPkHQ>AV1YL~XYqa&^$eF7i^mc8}+4Rj4lZ>D=z z1JIylz!PynuXpXWa`*B}J3&1s)W0#ap8$xmh;2wf00g6>qqQiCwgI>cz_gjY&FDTr za#vyEzE(K8I|*yM;{ya@VNoX8J@ zAUIwu7MEMCRvSQqY?1jZ2@H`C00DqvrBbP>>bRMWJLkqpj*G~IsvZPzhzRb1$R?6y z&`PA10HL@-B0<3eLRuVBlLAO5&P5Q{6Oj&xI_OV}$jf0EzN)JAAP80pg+jB{YIOm` z$V%pV;I|~O0TGAv^=1J;u~aIR&8$YU76d_sWEnt#WC1|IIaeTABRNL03V-BmW-~@orBEI1|c=-5#YbrVKICZvB00000NkvXXu0mjf DhsqN1 literal 0 HcmV?d00001 diff --git a/icons/display.png b/icons/display.png new file mode 100644 index 0000000000000000000000000000000000000000..6d8a0713bf6f5687a7d146a4d19272416e4bb555 GIT binary patch literal 15765 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 T#=3h>00000NkvXXu0mjfbMn%M literal 0 HcmV?d00001 diff --git a/icons/display_off.png b/icons/display_off.png new file mode 100644 index 0000000000000000000000000000000000000000..d9dc1dbff9e2e5b4e486169bfa6bde8b8cc4fbb0 GIT binary patch literal 2918 zcmV-s3z_tZP)q@b`AfvrW{idF?Ik78YMStvz}R|!&xwX3*D z%F-oS%L^+=skoM)7^wmx9^i#WzypZxazwINU?FmO7Zq@|@HrNrTIAcTmCrIeAp=vYdLVHh#7!{NZ;aA4bZ zBv_V()*8#QP)cFjHcF{T2>|v2rwfKNt8$_x$3H`*u8rXgaC-dKqNn$7D6DUjFb;|NLL};DGrB&l9CeEuU`*vb}%lNi~9O{wr<^e zwqpNN@pwFuv^-lutu=u_;DQ^}8;Q2>oM3F*zTgJ+Mt)UbEX#_d&j}{F@Gnui4F>pi zG4o3Y6K&uBJ(z@snNsS48q-^ew(p$G{L;a6dzb-qwRig^Nw=BlT=-lPz4!XLBq1=} zF;ECWad9z~m6gnxF@xmfL+SM}6GE_d?OJxMUd_E79lSh!ItTXcWAy0J=gr7- z=?_bnyJn@73@^*)Vy3vbm}vzC$Qy4AHV$OpbQ5#u&gGta?)h2gTpTk(2x(cCQz?aI zS+uvepRuwKf?IC61yNlc`+eg^X54fW4u_-5Iu~kg#V{j+T9W*Je}BU;uq+G1Feoc4 zBRe~rciwr2&p-b>rh)YIbolD4*jC%x=&LoRX~sCUoSYoW%F1xN-F)-SH>_HiqAIq|G0)YUNCr@U3Z7okvnZjTD_2ZLQUZJe4tVc?Vii+5?V+V`+_vgN* zCRWazNp*EKrfK#HOf<{U!%P59AVVoN#N~4FbVUUh&!3NcFDqCU@R>XOGzF%uEqKlxQAU4D6C8e>E{QUfc+dLC9eSp*vBSyHz{{68v zQd4PgIH;|yO;}m9*tX4c&p(fvJUKq|+iw{=c5K3Jc4j6F#w~OKuzQxSVrLL|nam%}q zBS((Fz=81@et%3acUL-tfgm6Z!;o~fR|?(SpN}1IV`C#aD=R)jsV+CB=aT3SFaQnM zfN$r{oy{HD*{Y9WNTMC%o;?&_cO65A4kaxujijU`yk0LYEiGr=TlMSLkBp2A+-^5o zYg$`dDJ(2RG&RK+Hch0I3>q|u)YMd5E*GY0MsEAVPb1;q;dDw$N*ovqXxCbw+;`xB zuXyla7f~yk*uS5VBS&)b&fg#OL#I`0!z_z4ltf zr=P}^)x(ByaQk+$va-m?$iV4z0z@8^Y}>}`^SG#5lXj4iZ+p}lSaXoZsoG$t7vn*M%g!cA!yk2hv z(3f9+iN5^u*usT{?5wZHwrx5(I%sZgrm?XRkH^EMX=%{ekGWiUFS&&8zyBT~1c5*R zpU)Qwe!m~T-ydNq{Pbs8R^$avDfN}$^d{2-Tsd{>)S1=g<-e0R-y8=>z5FsWD=PNB z{`%`%91cf=*4mw(o?iU!yYF5-sAYi!<;TH<&C1EmRYlAt#Z5FTRa}mzjJbOTD8_T5E)8sZEcY{oxd4| zaZH4s;7lM5D3Vf^Y}&MG_EjHzkSaE8i0kpAPds7Io;!Ef`t|F#0mpy=9*<|_qD6~F zjUPY0UqeHK|D~5+`p>#`>vjQ$0O@o(hi%@x`RXe^{z@0x!DOd2e66f3RAnXAd-tANvt~_GO-)TpYiq0G^c>V_ zX=&!-#fvYw{e~OTl2)t`V(nVue3;XTy?V7Sz5DL1H8nMF5M<>5(5kgg_;MifbRJ^I z1zZeV;qiD%>$Y#7nmS{KgRcBSQWARFH1vcCbX_{ee8-xAW%B`@<7+ z=8SUOafhI#<;<;^CVI>mNKOtq#G^-{xf#x4kDfD!ZR5tZmXwsNJ%0T7d%$*rbF955 ztU%ONlh#@bA#9)(I0)>lsHjLuPEL0It*UCc79UJLw-;5_jW^m{#$n4Mh+kRNCP_5exc<>gW-Rl0c9s*y=gJ}JcJ%{|ox z>FKD4ALcXDJoU$E(`t?!Ir1^V3I78@r)~FSc!eeI?k07*qoM6N<$g0Z23lK=n! literal 0 HcmV?d00001 diff --git a/icons/display_on.png b/icons/display_on.png new file mode 100644 index 0000000000000000000000000000000000000000..616fe4af7209a02d4bab6e1d17f4b997250959c6 GIT binary patch literal 4324 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 IM6N<$f_d3LB>(^b literal 0 HcmV?d00001 diff --git a/icons/effectsBlurredShadow.png b/icons/effectsBlurredShadow.png new file mode 100644 index 0000000000000000000000000000000000000000..9e27f76cdf63490ae8f721d089aa35afcd8793d1 GIT binary patch literal 815 zcmV+~1JL}5P)V!bkx4{BR7i=nmR)WW zOAv*>`stamoCt)(2JTAkD^GVbJR`)8*a0iy2^673ktJV}VLaW%L$}8^2}DUm$x_Rj z@i}$s=d>jv_?zJX|GnckEKemD06u;|{7=ADoz(9SDHU1X6*&;yLl7)wiy$J`^Mpi} zclY3e)KhfPEuz0F2tIz0BLD#VW8!b#Za@?fMRb2UA_BZWCWr^Ca9>QfTSOE!N6b;{ zPz%%?_@s9foM!)UjN2>J9Q6)M1D;lp`u6nofgmD?D1bhS;AV4ydWUx_(r`xfb4^qf z7~M}Ye?p1AUw^IOt8>b{0|aU1f@?eJ0Z|@JaI?7}^=tC{10qmQSnBaK0OBV-h$l!G zw^tP$Fz@lIJZ@y}i6}D>nJAek1xjuYYO>EJcqpDtP;J2wHAEG(Sxa-gUwRL>2Rn)UWB*FG<5$ zBk7vi{WvC&n!Orgj-`P#wDlJ`%z54|_eD)6EmqO3UXX@!EDg;nV)g}`QaQv>>+m!z z#-*O{eqA@T%+M5|it4G_)UWY0pw9B&wxMUMZrh={;@flmsr6+Sx*2Fbt-CWS0; t)_(CnU;$l$oMD$?%<#_)mj(VUKLNx+5Aq{tU-ke1002ovPDHLkV1i8RVv_&> literal 0 HcmV?d00001 diff --git a/icons/effectsNone.png b/icons/effectsNone.png new file mode 100644 index 0000000000000000000000000000000000000000..092d3c2d786225d78d1d8660c6049ffdbf4bbdf8 GIT binary patch literal 640 zcmV-`0)PF9P)V!a;z>k7R7i=nmP<=p zQ4q&}#|ILXh{WQ;MHQQXMSR>CaG_w;Xm;JW>eg@IvWqTU_$3OiL=i+NbgNcHe4(ZB zL3E?Gt5y_rQ5&OP7gw2kavw>98Mxf}&zv*=xifPPSDB_sF{KRP{U?gT@?{)VQjEZM zDa&V3CZuKzEDauN!c9CV0?*k{l`ey8GIp{AmnK6PA;(@Ll|& zpw;Yx3G5}%8!Z=2w)6#PvKPM*N|m0-VSyPo8pR;a8H+|dl5$MiM9O3_0>h=yVNC{Kdy zlUp6I9zRLM+zA{X)=&p;U;77hlV}*~T$=6pf_PT;<5Tea(mkjVfzgDeD`oASS@Iz$ zErtG0!9V}N&arpa=U4FI9R!~G6_3K~GCbI>ajitL2-H*wex7|VNoQbnU+{CY?V=G3 z+2+|aVI}EL0I;yD25^{SZQQp200002?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4i1JZ-NNxMOQ4kup00i_>zopr0K*hmaR2}S literal 0 HcmV?d00001 diff --git a/icons/flag_uk.png b/icons/flag_uk.png new file mode 100644 index 0000000000000000000000000000000000000000..3853f5e1999a41dd3c949a017c52057ea6cc3d70 GIT binary patch literal 2675 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 literal 0 HcmV?d00001 diff --git a/icons/go_live.png b/icons/go_live.png new file mode 100644 index 0000000000000000000000000000000000000000..cdacaa999497fcc9772b35352adc62689ae90d5c GIT binary patch literal 1561 zcmV+!2Il#RP)DF6Tf8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11(r!fK~!jg?V5dv6m=NKKQp^`yX);U?QlM zh6NS`OWiupYQMG`8~hc6@1_4c7{0C0o*F?2pDVJ5ir)cBVZt8 zNm(gN%Cp7xdou(v0`~$3WJ%dAOUm5=`0s}xr_gHPZ&^~F3Xmf>0ZX5pO(aq>5jZGI z%1&8Q;z95PCScjqbNOV~I;PL423QaLB}>ZUV)Fzhz;#@zCseR)#~NN*wFprZWZ;l2 zDId#{5-S!@U;=F0#kL$u!XhuevXJ*adYS5p6#}pcI4MiYf@1IlHv+DQWxG^Q8c#eC zV`^;`A8ud8vK4ay?gx&@lJcG`DW$i<6PN(UcCkzc&-1CMjC1dV3L=p(Yt}7c^E=OR zcSTtUcndfoOUff7H*J1~S#u^cYwmqH4|HBNNHwH!Y?q_IpXJNlN9gXh08RjF zG+jNFFIgCvQCb>id}VRdv?vN#mV;xvIc?Es3G%cgmoK&P=)5URnVMwJuEU)D_wqcl zQ)&yaP199xI3A&@EYqee9wj<1zoa1K^%Pixj6h#R$CWarHc6@>!()r?XKHN~`@Z;% zR6}MV*>w9ButU?;L3>rGsjTy-&!}e2x+PRk9FLStH%k z&ZT5akvBA5{j9G|7{K$c3oso_b9ezkqk7VKqT@PoJ&(2PALo~!{^I0`3kl#;SyEmA z)@i!h2z}OoZMj(yd5pklpe!EczA5*RYDn|M@;OYMmgL9pPtw(8t{_{cZ`5>kuTWE2 z=O?S~;^BERRTCZh#`@XC?JMJB9SoVi5Q9U80F7SJIuFJKczB|$lR}C(nZ^p{) zz(0Z2ny&sam|Z^sEvYtIQf(uN^QM?RfBKN^zUR}NN~1UB@VdYUz*bFHt((~wTz?k| z*S-0X!?_bl5TFmGOi75P64lJy87ct{Rb|fBa@~ha~a>yIUVi+Ue|Or zC+Qc0zy-9Yb4r00V1uTs`-|a!w143E2AEx};9(R-;5yoXjhe3REw00000 LNkvXXu0mjf23p?r literal 0 HcmV?d00001 diff --git a/icons/help.png b/icons/help.png new file mode 100644 index 0000000000000000000000000000000000000000..36e0234ed40bd0818cd61fc5477823b2ce58f931 GIT binary patch literal 4275 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 Tm=8=Z00000NkvXXu0mjfn#M}P literal 0 HcmV?d00001 diff --git a/icons/photo.png b/icons/photo.png new file mode 100644 index 0000000000000000000000000000000000000000..95a9294df477ba3fdaa11ed04bebf44292045843 GIT binary patch literal 7225 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 literal 0 HcmV?d00001 diff --git a/icons/playerScreen.png b/icons/playerScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..76a9cd7231e828029823a69ba049f55ea30a38d5 GIT binary patch literal 24076 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 literal 0 HcmV?d00001 diff --git a/icons/print.png b/icons/print.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0e45583a3590436c2dab4ab511c27fdc4e06f5 GIT binary patch literal 1403 zcmV->1%&#EP)+9>^sj5k{?JL0d{V$i6mOi_7?b?A;r%sKJWeV2U*OzYJzWt4eH~_v)HCENc z&!tP3tcw>fZasPOL??~=_wVcS^72L+KUIaKiQC-VoEH&iadB~+4ju@lQVI2X{mp)M zsRC@VI*wyhweL-`fQSG<-)E;T;(EPqW@l$(H(6U-L%CcYja>qY z#Uid;xdI>%Fo^R~BQP^FV+ILhmLQq>{L~0kt5s7d6k<1MduS3Msh2Nb768p8o74#8 z^ZBVQVjvLk=+UE8j;RqS6bhzZug4;A#j zyB6`v$_lo(w?`tHgt@u7*qEdii^bsu6pKYutyW_KE?l@UG{OCXr0(qOqzXu#ym#-O z!2q>5E0EMep)h;|RMnJ9rI>)LSFd7YV`Cirx^VjRX{@fUhGUYtySqEQfELsk!&Ya+ zty{O?y6#9sli)Z`Y%C(`y6$KKNNThro;Y!0XoC9%NjQ#^OS4H;2LxU)CiP5_8Az(< zdHo}B_UzeN$8nZb)!A!c+qQT2?%mwN!a`O&d&2WPG#U-tw(So~rBW?AN78j&_s0hh z9_;YkxpN=P&oBG{>rm6sYPDTO*no}Zb5_o_Z6_>83I#O$mWbWDi{_Bgb3G59>-q}p z?46@}lxD>;#{bA-E`PIl^8EvxISN$;G$0i{^+c~h196J(`6&LY8N8^Dka`vX3l@Mw zJ*T~AnA!d9rbYN?)H;kD2?e1H2mwI@P%1dat!&p#(>eyiKVt!) zh=3v?F$H2`dI|v`3F0a>13z*9I4%$XXaN8zAlc>3KuofbBynDIa?QIXfbA1dSNil4 z63!=xGbVHQ#|4P66M+O`F(ELC;s~HQ!L|{mkWe}vPDvja1t`hlsL1tgk7E}=P>6Od zOidp_vbdIgVb;P{buwubrjU?9`lOW2LDEM7%+1;$8=YpDA%d4Ll;9&lHImk%j*ck; z3VU7?64L&?2y9z$^l;a%BolO{5Yx&g`Zu?B5jeh($IFTbW3ml{v;}m$&enKOM0#D@ z8>L8899vL4l6@39WmKex*W(e{Z*x1oZ~*0h-Atnpk3dfkw>+Dc_mTPNHOCelo1e*y zd_;iki&!rqN#cq}@|gtac8-CNDKZ)q>H(l@DR>9< z$DcIiWKM$NL=3hwTzyuF}+2EBI@IMp1Dx7~uvYY?_002ov JPDHLkV1nYSk1GHG literal 0 HcmV?d00001 diff --git a/icons/remove.png b/icons/remove.png new file mode 100644 index 0000000000000000000000000000000000000000..ef04f68bb47eeeef0b270cbe97d938ac630a76fd GIT binary patch literal 1020 zcmVWdJfTFg7hPF)c7O*Su25 z0000VbVXQnQ*U*0V`TtnbaZe!FE4aqZf9>TaB^>IWn*+MZ*phv;+72n00QtyL_t(& zf$f-2Z`?Kz#ea{oV{GE4C!_8uNP7*CLwoC&>M8f;`{bkK)a0H+0NXvpX!8%SB)%Rf zX(>v(wqpc>0SzFKoEeJm%?!!a$~N~|!qNclDl37dWhJn*tOS;pmB7-n5?ESR0!zzE zU};$iEG-A6;_ZW3Gz(oAdn7TI8f(<0lkr8|ED*7e2f-|TvpK&$89O_~*+Jk|_ZQVRM8nu0C8|AC7LJZD3Qp6SWRda%6Ct z(HSFq7?nQN;RAGZI9YyYh}~ZHh*W!`RV4#Ez++ zV~d>Idw?yDY25e6k?+fDoRMmCjQ*X*aV7&6nEK0SzMh>;&GJm-$BRMQcw1eWoouf1 zIaA%Zy#ax~G7cU+&BWN9zT4+Fxp%HE@S#~h00t7<< zSEPF~02LsjD}f?ZO4}n~qeGrN`*d+JOW?lAz5g+{5?EU9J%PDn^hP4}p95P}>5}!! zlVWtU-Q^&eJ%uuGyB_xRVM=BKI%~^*`9LB$%W_0OQVufgA+XOjN9d+tv+H=jt;fBu zg!*gpwzlb|H@3}1(uL11`=l&)USvf!%E<1r&9%FL-lmL(r^NfsH*v9vch&!mH*(+J q7SH-qVrf|kEG;X6rDY|swEPbX&G77N+6uP-0000WdJfTFg7hPF)c7O*Su25 z0000VbVXQnQ*U*0V`TtnbaZe!FE4aqZf9>TaB^>IWn*+MZ*phv;+72n00hHHL_t(& zf$f;fiyT!H#((El&rCWKGvY*pC|GcSKaEaPJ|}VhiUGk?&JGTefOMOBWA|E zY;M^A?$%ZWmTfBn%eEDPW!s?7puax&@VUYEq0;~u0)QZd9AY41CIER}k(y(yRcX|F zo9^zOd+43FUa9x>B9LtCKeqq)^T*xx{Sfe%CebOmwP0GTXb+6hn@kx0{>RZ~cP|2J z3P5sbyL*Gk?v?Lj6Rfe0MXFVw?(Ri*>qP)FL2_4Xnu2yQSVS3p#~QfqquTEftIZP1 zf`AqoJAYiSHz1}0m{}K*{(#EM<5X$k&!*)Tb`zIiK8vo{N#M^n-rZWedF^cg**|fz+k$KP{@52d)o ziHH!qAkO99YJ?zZl$DorcxE96MO|+TP6Fb+01RI~x#rf_yEiKL zi%Fx_Uq+pXTpDt+g22@sMqhsmE&&#l&_q@CRbQqHBUQV$Z}HvT1`~C{)cRkmtz3flY>wJRH`p4qthPu_F4^6I8C_YP@1t z{#K~wl*x?g@#2#Ihd_4m5`)blgK(j#Koi1X5orPe&1Ho5;5C;`R<#Yy9WB*mf_hsF zL@-e-{Re=J*#~h30dLp#KKb&#T2d6+pYBqmwd%qq86qB$%!JG#sR=0}nPK95 zV9p>BNHB944vG?&e^B%@S^ax`$#%~ZSm1kL+N9EH{fxA}Dr?q^mt{h@8yQE>K)~iA zKWWsZQSVEj{?kTXYkg(Ai{%sn$?we$NNPaq^;vy&f=xmN@D{Mh&-ZB;xVt1Y>%!A~ zKIM=IiRPTHYi)gQy)V`-F?EK~pz%I3YI;28{TPXujOMf$l>fMr7d= py-H-uwiSV8+ls)lZAD<&_8-KS@()9yja>i$002ovPDHLkV1gu!sK)>R literal 0 HcmV?d00001 diff --git a/icons/save.png b/icons/save.png new file mode 100644 index 0000000000000000000000000000000000000000..a47e0f0a2e558a40364bd8e6389334a7bc55f599 GIT binary patch literal 2820 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 literal 0 HcmV?d00001 diff --git a/icons/scheduleDownM.png b/icons/scheduleDownM.png new file mode 100644 index 0000000000000000000000000000000000000000..edb38310d340e99b8d25181966e81c28362ef214 GIT binary patch literal 2951 zcmV;23wZR2P) zD9GZ5D~MRcr7o4@POFxZQc)C-hzN=silQJ=x5NbmWK)3{qey^+B@m($l9@O6-v05H znU{r3DE749bKcCncYpVHfBXI2d7{(E$2I>u$S-{B*6hYi2w36jUrCn#4g!%#RlS2k z2p+$CBti&w?JZ~K3!gN|a8ynvd-hkb?%U$yDQCSnss~b%gLLW8ikZ)UNOi=bcbC>Q zJ0S@vHPvB@OD^h3Fle%ITQTdt-O0q!S)AG`jd^c;!EIOer&WtoK3VrYeY&;dk!M$N z_w^SsWBv!nSAj^leh+9F;qIAl(7$&_h7Rn(6EA*DdfEwSt@*jKnx1F2Wzd9Ky!GTC z>73DuIWK+4_~CttT4DB=9mYWO`+?o~q4)rUvpSRBJei}dcPubux z;u4gU96D4^zq2wJcuq&8RZYb&A*w2WLCPq*OZPJ>CzG?gw8a#X%ZHuAkHsZ4O)`0L zX&y809L+25eqQfd?$ua`l&+T_wF;elQX1VmwPVw^9UT6-k^$#-rF4Hehbls}Y|)Iu z9i?>Y(1ss(?c;)TyHQ+nfc*z6=-8nRp~`B6fQS`kVeV80UiLsk^5h@c_HuTk6bPO^ z;#V)DS6!0BmhC(Edi#!sNb@5pa9UO^+|OSTs`_C9=_um z&$_iLQ36%y-1DAts+EdeN}^O0DeW9k%0ej_8+WbRfF6cz70n%!#?rlWhJWF+yD;JM zq0U{+z)09g7zRjB0f};iSJEOHjUZ(hDJ_(W+8)sgtyDq_1Z>gZtgffA@%?A04o5se zlY#-1w;wnXyN0R3yS9393J8Iew$(k$D+2(bB_M3Y93_;BqO^4KDG>#uq4poVbKm9v!tpNEiYswP$&uOoX%-6w0&>pp_F+ah^C@a(W8HwFYZ96_7pl zPYvkYc%0g#KT0_QDifr=n`o^N!f@8tURWtVhW%YN=uZqy&z?R3b;ZZt}0{xnpu2Pve6z9 za8A4aT-)~+Qi7?zp2*)LHQWaohCx&+q>SR!4Ybw>Z6Gk5@YP;^*cHjL6=)!ly&QOM z^(+>wo$VW3zw^pUH8d=#NXcdKdjr#uux9A}SS1DwNVlWtUkYu%AiG>3}p^ zOFI{Y@Dy_Mz|DnNIpw-w>Yb%^$X^g}ccX7hH`J-&w!K?CA!8nJcib4>TUo%O#T&Wd z`Yg}}8ZZQyrr@R{q_k~wofEdxEq3n5)cdkb)SMr%f# zpA*{@-O}ku?s-DPux}*r5@xuwiycH!|HY?ANzFIXP$W z&|m+>;upqp;gAJbmUQ|YCrq@7q3rVjz7W!Jt%gKv=^1j?j3Ipf#gB5y(#`K%p_xy) z&%GQ-4m9PmUN?B|^mm`}t+H!Mm!x(A-G0je#$5Iy8#e9c(dmP@Yuft`FFTQiGEs(e zpz-Vvcpi{Ge&a9i$(dbRa`CXayFp(WKNfJ!rv>aQD`)A-&wVm!pCS%z>?dwjsfmFX zr!oDJ6}-B02EY1w2Cn)7osDhFAiT;E@N0Z&LR zs5}z(|97MPKVrB35?WssJG)t{INfU?(plRRgL}pzx*d7srV22EZ>24KHylc1Fi-pzE@a%JInRfpQUS2qk z?2G3U4o8nlACGxYk7V(y8?3ziqD59H_l>$}yz@Zli_a`ExB||!+#KDo!6f0uI|Oe$*-1!9&Ckj>vfw~M&;qd zbrSqsx{pZ7{+RH9Ta_Av#~!Szb~tk?v#^Ld2a3~E*-zH@^HnG z(N-w8t{%v*K+U9#$Ev*b%pP|~83YXzH%G0bB8i%$}->BL-*zI z!;fWZ!NRp`K>sBXeulfFrcaoNk(%loG}F^byX*?D6FnZ7J!=FD7OtUf+vZ$-WiRjf zupwQ@$v%zS?_9bM^e8Koo6v%u2U4;I(DAFygbSSpOh8h%ZjhAR=y*RGQc{8}eEw3d zzhMc>-Z+i3BSq@hpmuE x?=kXVpUh6b{=3!$u=V?$2llLgtxsd-{2T4iF8)OY4Rrtj002ovPDHLkV1gWWqPYM7 literal 0 HcmV?d00001 diff --git a/icons/scheduleNew.png b/icons/scheduleNew.png new file mode 100644 index 0000000000000000000000000000000000000000..568861024b60c5a9aa67e9769a385bf8d83d6f53 GIT binary patch literal 3021 zcmV;;3o`VHP)^^qy2(wE`?=WFMRi#ox6Q6ZiH7-)g)?YA)sC#y&~&nu(t>PS z&YUA0@Ftv3NHz)?rYzn-f+!@3BG=cH(Cg{r=*hF#Cz&y(8R+u|2?WD*cK2e<&7|#I zCsRuD35FsFf`Hr8N0~j3a~<9EczkSHzk+9e`X`Pxw6TKy!+koM<`Q zmb3tbq2lrS`Sad)@%Z`xFz1-K_2wB!q8M9Mb!dp%|9hwomsgTU@&W(>foLSk)Gw^& z?70hZZMV$6j@_?pjPV*LxzQl$JTQPmA2nS@9^mc$|HA9L^t>bt?zWMTsO@SPlLY`G z;pm9>RaNDcZGT0t)1jiGDlp*W!<~7+AAqEMVE#?lW6jMRp8&N#wipZ&*G{!?@Q@Ql z86t7u{i8^tL|k-=sf)WF7?Dgas=ao~_ywRszBQYBmz0y9rsHB)AIFY&1CX0-;(!rIz62}2QKpnX~S&Tt|%8@f4GPPnFdYzu!++3>c z4tDO_#lo3i8|IwqFlPl->EAM3n(!D(+oM3fH3x%U9*+QMIKG#S_iO~fWHM1*RLwgl z8~Ez|>+tm^CNn(2U2=C+_+|ZL%&4gttS2qNRP47GS*MU`%tQqQLBMLUQe9BZ^mP); z=B|hflf#b~mme+S!|7O%bRtVB?w$U%+Is-l)qIh@h(dODHZzK5@PAGJ%kCrF22N}J zWng6g_8I=LagtA3z}%nAo>x{@%M!+H%rf9J%PjRd5JsuCbf!=4pk~i6|-uFZeKKrXU++Tq@WkiSkM1I9jV& z@~f{C?$HwJ(Gqe?gnA?bZjrF>()CJS#)wW_`hvX%jj%!xa3BZ{t)R`z7PB!+W~|yg z3Q`KF$f;yT)l39I;GbuE@J1D~L=BRp;k*hq0W1~^Yo`AvJr&(JJxJOm_Mkv#3DN2iF&z&FbpsDu+->v(vag&FBA2|Di zbL(u6Sxk4obmy8suGvAlA)Ojq2H$(@D50n_*xBa~ z5C}!d5d~J%*pM{>dq3I3vwNOrVaiIRa_yMN1Ed;sarL+tTeh_p3D|jK+3bbCx$kvk zN#?cp&amt^@5PZ20>I zUb^E|(&c!c7!Q^{@`JXx!0fDdMS#2ZpV-&1>eUs5qhXfLDCB2%O^+KG3P(A2!OPhW z4{hf?oN~Hpb-HPBx@l?eA>s@2o!TPOWs&_K@8gNL9_Ph{TQE)_`2k#(iJkSX0PvN) zNB1^9^!hi6DpBsgaWc;=bj0;jf$rV_r_c9t`kb5Ab~mlh&~o%Jq{ZLQ_j-5>7yN2$5A>ahh+P-Dv&@d2u;;`N8|`ojQZ zX+`pkdfMCD`Tn*If)>{55AXEVyb9qKJ!O06= zqW%B8NIr?C-V@MtXuP}!QBzeiIsyHdQf4U!;L}kG2t^f|JAK&AW~4qXvN^;n>mMI0 z->c$kr_stXOBpb-1+FW|Bu#hu8XR+ZkY$-HF^lfLF5Lc}iQqaSt|-8^)?&~Inxe_M zC4-~}V9!cn+wxg7K0c4*>ld)1){aIPdcXFms}}&X(To_CXua6-S@BP}g~|)F3N<=O zhszVByDvnVPU1WBD|vKoDSE94K%P<0%S*1~p_@v0bjM*DPFxrio1dSLbVTC)mXF95 z3nqlHIopIz9!i9X1WXy&KF2#etf;l~>_P`tqaIaNdES#*+mL`hnYp)=^Wv5*6C&VJBy!>@ zW#*U#1OeK*+PMF<)qHvLm&4a&U(b$Je_>J0S9#%%%{;$o6I=hemH9vVJo}ICW56Bk zb~{?Xmez|ClLJOV!Yx#4DaRA=u=(vxy!4MPYA6zVHT9D@;+@NuE|tZhmrK(oUCY*G z+xXkjzwpSP9>!sHu;I3iOfHyAZi<;t-5(Q*1d%0Og6SqufNiZs1C+hne1PS@x|dFG z=K2lNjja6K8ireJA~E83V%u8F z&A=Ssd1t*V?sH4wti|^k(^8fTf-tJHS;XKrh{3d=poq%VdnbpUUT@^zrQ<>-#wl;+ P00000NkvXXu0mjf|BcD5 literal 0 HcmV?d00001 diff --git a/icons/scheduleOpen.png b/icons/scheduleOpen.png new file mode 100644 index 0000000000000000000000000000000000000000..af6d054d8c0cf09c354375f8a0c8b7f30e4d8505 GIT binary patch literal 2528 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 Z{{VFeWDsBeSk(Xk002ovPDHLkV1j)9sbK&B literal 0 HcmV?d00001 diff --git a/icons/scheduleSave.png b/icons/scheduleSave.png new file mode 100644 index 0000000000000000000000000000000000000000..ed502908c7c279422330d1747f84675bde5527fc GIT binary patch literal 2455 zcmV;I3263-P)4zGm*DA7*!Uc6VlX z9pW5$JUjn;XYTpm`#cjpq8FZ~iN%`uYc9PjNO;ku1qVc~*ihDIj1 z^1@ZLElx0c_&DuL7xC)bgM8!CHN5=aeW7Ei8U(Cb1f*k!9@}>8BGD4#rYp~7$)YAY z+ZVAg5o6in1idTU*|y_-)}7tS1#7z)7&^?*@aJfyNN2OmBs27#x02b}EbDtaX=`n% zIhL#;Jp5dBfX_*ft5Go-pZIly!<3mrp$jYt`9(v*>rjr@A zKK~Y(tc{e4_xguWPM*JQdxOd2Gn|;7=EO{fT;68?@F4&m|Hn8{p*b;~V$a71&^j<1 z0-$903WO7=!#q8kXW!7QcYR>=a8;ip6O#aZ{K=??O;4BFFFb!WPjCM>($0mB1MXyo zSttQ%=VDrg6F3$2e*Z@e^^F({_B&o zx8L6z3u_A{uprT*Z@=O4MFIgu7RGhS6rD48pS3YwJI0^^bg92Fra))zwtL_3_?!s< z2n0gFv8f~Nh7Yl4aKtP3D>|2Q^EH>$e)4Gw?z$3+MI(Ig+t-!=PvgFN;P=+}eV>08 zwIyT<`9#3@Aqj>eoOPatD6kzB}EkV#@Tk6Qvn03t%sB0d3IpB&SdUrr@Mh4$tr1%G)3OhsKiXv?V&Il29=={F}Wmkb#5{bKo@|y=xl_&*<`M>|@qT zM6FnL%@s8-Jus|Ri;53MYmSc{I{VQF?|mUZn|ja~^LoPsz%Z3Qin0~arY5d_dKe+V zvcM9!p9_bWBW4NV;U$bfEHyDE_HN&L;~NibzD5YK$r$ro(Zia1Aye^Ls^G&3!D}DJ zchv5iXz${ZJMR&jo_wJ>+SK%v5aQy72w)7BuZvV5b@c!$01N6Dh?SA?Ju{$RSKk%f z_`64%qD{@O2q6*xBGDrL*W4nS{eBA}SiGcTRojx*nADPEGe`OSu)|gVN@7{QWiCpi z4(8!=z{(_6A=}4qzBoNTuD$WLY?)9_^^H3pX9asem0Ox&8!!I$sFq@9=A|RFtEqr*m1+x`kDck$ml`IhHoC@ zl4ob?4Aw~S1_x>_tc1H{bUw?UF6zk3T;{75fFmtz+dXdk&Lp?qafBCN&f+*0wqxNq zRw)MR==6&ofzR|}$Bh+YE%aV@JHV|`0Nb`O#zHBGLIPJ z0$~E=WJ)uqi!*2fW;+10On^j9`D$okXggA1L5 zU%yflw5LP&kWerC=*AY!Dtcr)k@*a%V-JXQB zwoqE|*GGELN))71Am9iu20Q{j>D;k!gu8F?YRf6L&D-B%uxmp(0RzqL-N;;axl6#Y z&_;NUD_uA%KLOzpumtD=0kmXIyOf0Oqebsj&l6W@q;ovXCGWakJ2p z#W5lgK}UPDFAKR6@|!WB+!t?Opl}&qEvQo?vX5=M z8L7CH2r>g0T_6%Nn7^XxP*QaYq>of`-#f@mDg(R~1=#W039N`KBlp0o%vwV#=`{2f z+FO+%0u5JV<0Bx-`V~nX-mxXGrTtf9jETnM*4D?L8jJhCep!)-wW{~LYkODqEHFSi zpFvpf)o0)%VhZxAEPQ3oR>-6pGlh5%9;Rj{nAo`$Bb_Y((R^NgH^7JZ{SW_r@Xk#) zp9OI6;AiaIcxA%`{HERaTvb6CL?AqPT_PC8;BUT_1@VkAW)SA^c3SK3|5s?lit>W$ zEY;}lcKqpIIhoOc{W_odaq+ng6EIq%Gt>1uHekANuJz5%JEKVNeub%5{+P}k+G`sp zf0HrB`@3r>fp|PN^6(SSOMpx|WeKCtn)rEp-M{F}hb`{xnav(KcsH=s7?bk1{U27_ Vz@FTG1{(kX002ovPDHLkV1iNop349L literal 0 HcmV?d00001 diff --git a/icons/scheduleUp.png b/icons/scheduleUp.png new file mode 100644 index 0000000000000000000000000000000000000000..7d51072b5826c705f91eec2b45c8c63acba764fc GIT binary patch literal 2819 zcmV+e3;gtnP)2KYgCv2lB2Y&uVd53p9w*Y1^tfGna0oED)qi+ZHr# z6p3L-%F2U0*uN9Hu99^qkKG53GI4M(ZfqXS;&q?%Z|Y zW+o42^?RRHdoO3JD@23#BQBeTuDd3hU$=?j>qEH|T_~ncxAvSkT}Z)sKi4*GOiu0z z+O)cXBganh+itPs<)7j7x%0Gcbp!t5GK7FYu!6Tzr;srGuQl<>EIIUc-#Q7FItZ&%Gb;K80-$mE;8ZEwKTmOnV&%_9X%U>d0f}sse&#|+uy1>w|@ql?Pm+k-CQIt_L<_+ubfDUt7Ni2m}m9k6Xi>S%aDJ%BK_* zl(2ZgaQfXf?-t#c+%)JGq>W7fN|%GeZ;O z$TvAXc_u%S!5j03kvM7%rKLf)%`_!rC%#MO)`^i>Umu&Q`;s$*{?w0a6yT67 zDm}}RU9;JrpJh)KbdBlF*dCA5K=*lSB5#dUy9^Wv7(DXW3g*rp%qz1$sJyC-Ii_n`pXS3|fxt_*7M|Th%)s&I(lf#m`chPXG z)Eba7Z8O6XyK?4C39D9rQ*FP!S;u+(jomC;JhJJap-Vr|eaZ1be`-Z_{S{|5I&k8v zDmxrHxz8mjF9}pH?dn&<4I2+qSX9oCK^=Kw>ZY2svS`U33X96bw3PnsLCm{cU(Lym z)nWV2Zy2=Uxk}tT&j#Kf4@!&SXm%q$-ZF(@qt{Xr=J%JwV^6-%C;ytD@7{BCjP6U` z7WAj4S1ACT*%Va{bW6(?-2a1{X7&Mvj;$9a0b0o9oe$Jun)3qWG zP*NIXAvKBL4WGuDg;;rdbUhpZ{Chd0}bvug!?-5v8{Az5QpvC zZQ*$Qsf~;u(~H8wQkJjGsx^5BKOR2Ev(Ig1)$*iY+;Pu>t-3EcHt0|FyvTAbkks{2 ze34B!c+$F&0ODhMb65KzRgez_ujBcbl26}ofTE&uh7IXNpWnS%iJTA$LMR|?%R7@` znuNRJhKOxUbgo;p9gb)Y>AncfuNX5W3t<4$xFE4E4gNWrDN>C?>*G5h92{ zU>HH9G&p(6&*Ui?tXh`TIAOs2ExIqcUC^I;K?|SBUp8;T>@j!Rwif8ES|U`<`)Wlx z#a_s*9K4&ppTc9`F?wWIkKe1Rj;iXm03AiuEH`p3Anfr>q-h|8fe->sRZxV6VFr-W zWY1T}NzXXM!ug5UCyiZ|4)k|}xOnI1*uVEN>tP3w(sGmAdaU%gkq~Ogg=`C$ih(cr>Tu7J|2vLCm6rnQb^<9DK|JYmtloCoE&ep}XfKgO*sY(DY zoH#`w|8$7FHC>g`X1mxXtX@5&$}t`oxEe)KP*mND1tr`HjtkiV?4(zOm8qyOL5>Uh zQ#VvKw&t3z%3H&SpX_1o(5cn5)(#~Ftx*(#qS&#ZIF@h%+2UX-2EuUSLZV!frK%Mm zC8&)XSJ`36(7Sl_Z_`6DP!DwJZq;L|s@WnU!UU*xFVpgUp@3oCODHN-Q{p&KoE5d% zgo!9VpQll6){N-kBi%~0{t!q>Xy)y#q^glB4cAAGU_M2eQ+fRtOZQbZ1T1hgla#Jn+U^lCy7LnhPTwHRzTQO zl<@h8>eA(>v#rG5nk1p9t_a5pilSjz$UwO3fq^2l8vWlA5Qc*}N0~hB)ho`wpy)bF zfUru4kR>8)R}psY1Bx^-g^Ex@*{Ie6THSm-bDn?niVGM!b`v11;!RO3A&v+w!VcV^ zJ@d{2S2Oua0va`pB0jFo6&Ijus+Cpj$`c{1098~}MMo$q(ljw`pLf=V+CZtf%auXZ zc_6GjuP5sKQLVm+&=oR2Ot7rrJO{YX15QOOJ^zgws?1;T#bw96Dgt6|ZbDp_m+Xva zyGHoFjk5B9DNXE8`Bu3S3>peh?YA@0ti!-_@o{Z_{%@_dz`-Amo;ki}ZJoY&{1*pH V%M@aD%5wk!002ovPDHLkV1o1EXY~L8 literal 0 HcmV?d00001 diff --git a/icons/scheduleUpM.png b/icons/scheduleUpM.png new file mode 100644 index 0000000000000000000000000000000000000000..9749e81795ded254e6ac0a8005c892818d50e501 GIT binary patch literal 2869 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 TX=M7-00000NkvXXu0mjfvOG-( literal 0 HcmV?d00001 diff --git a/icons/screen.png b/icons/screen.png new file mode 100644 index 0000000000000000000000000000000000000000..a15df92e16d42047416f614aab4298d0ab66cee2 GIT binary patch literal 4358 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 literal 0 HcmV?d00001 diff --git a/icons/settings.png b/icons/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6aa69cb0f8257bec93ca1ffce08de5ee91ce45 GIT binary patch literal 3319 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 B@P_~Z literal 0 HcmV?d00001 diff --git a/icons/show.png b/icons/show.png new file mode 100644 index 0000000000000000000000000000000000000000..c8da5e1def8e88cb8c63c141dc9794a4103b8418 GIT binary patch literal 2992 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 literal 0 HcmV?d00001 diff --git a/icons/slideshow_new.png b/icons/slideshow_new.png new file mode 100644 index 0000000000000000000000000000000000000000..87038d6e52cb60c826e467fce06bb7b9ee055b14 GIT binary patch literal 14685 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 literal 0 HcmV?d00001 diff --git a/icons/softprojector.png b/icons/softprojector.png new file mode 100644 index 0000000000000000000000000000000000000000..03b6b7abaf270ebe05207e5dad6b68b61008aa6f GIT binary patch literal 17452 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ⅅGCc_~})HX>lCs9f8kN*}g=&h~0+5pUA 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%0Ak5F21Y8UyRTkfeaTBT>^V4ufst~R+2_$v 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 literal 0 HcmV?d00001 diff --git a/icons/solidColor.png b/icons/solidColor.png new file mode 100644 index 0000000000000000000000000000000000000000..c1e1d5ebe899e38396914f9e1c6c9328e67be02c GIT binary patch literal 216 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 KMNUMnLSTY6M<9Iw literal 0 HcmV?d00001 diff --git a/icons/song_new.png b/icons/song_new.png new file mode 100644 index 0000000000000000000000000000000000000000..eb75ef4455bf657ae3f4f358231076c18de2d335 GIT binary patch literal 3794 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 IM6N<$f>dEV6aWAK literal 0 HcmV?d00001 diff --git a/icons/song_tab.png b/icons/song_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..86da562e140af1f6b622af0a54c3369105f212bd GIT binary patch literal 3641 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 literal 0 HcmV?d00001 diff --git a/icons/splash.png b/icons/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..06e1dd75847e5be9f66d533a15e4db5da5109779 GIT binary patch literal 51816 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 IM6N<$f-CQ}sQ>@~ literal 0 HcmV?d00001 diff --git a/icons/stop.png b/icons/stop.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec0d1f2f118b9ec48c3ec56883c5b0ca7c0cc1f GIT binary patch literal 9424 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 MXIf7y6_FAD2dPgBB>(^b literal 0 HcmV?d00001 diff --git a/icons/toBottomOfScreen.png b/icons/toBottomOfScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..d7058b82f3add7578b924d206818d587370c838a GIT binary patch literal 563 zcmV-30?hr1P)V!al}SWFR7i>KmcL6J zQ4q&JZ||*Zu&@y9M6fW`p_QoMk4Eo`7*iN9Hdo{d2^J!1kpwIR2^?4$0)|_Qw26g~ zW@DOzv>|~M!OlOyHo8B)DNfc~A>A$kabRHHcZT`G%)EKeNTNuw07qXagyne!;}ns& zQ|<}=KLL{P0|`j=K~JyzKsq?S$l!hbgYpCE&4=?0J}@*QKah6b{mkH!+GAR;8UU>8 z0pNCZ17M6vu}=R#amT^B9#MFi`ivxuF|w}5;pacORAv9=JaKr%*{_zd01wMEl-#ad zk^^k)ou;-0*lM(LOAhe+$5)ahhDx)z+J`u9s?MX;Xe6J*_t~_>~#iTdGS_L)w(9yU~G07 zfH;ma+c1to0FqmH5=YnZVKzRFsI52Cvnl%9@)uqc-@+@4q6h#0002ovPDHLkV1icP B^W*>k literal 0 HcmV?d00001 diff --git a/icons/toTopOfScreen.png b/icons/toTopOfScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..361ca5727eccdf927d507f79e24cce88e349a858 GIT binary patch literal 561 zcmV-10?z%3P)V!alSxEDR7i>Kmc2_I zQ4qy{cfIQxEK&sQL`b2PJS)*a)W*D5_>m&Qi_I(Y3JDe>CPgAx2qHYNhzN?C!d5MW zG;3@g*os1mV3$83ZFE0Q3eD;Ul4=)092l5;W;h3ChT$4X6l#+20|`j|QTt>0f%Iwr zX9j=L(Ir2SR(F16@Xn_t`GK^wahAa)VFBtD1Auis0NmC#0E{syc02!1+;On3M-*P9 zIU@;UjI8Ui`Q=wGU0M6^f;hb7{9DslfS%rATHMxL$N}b8zNWDSc-Ls=Mh@`(^oS&h zp+Gu}oNULeU7GK1R!PA-i9Fba^AtH#mv4`EAk6 z$K5nGlK6Z`uJ_{Pc#kBB*;=Vy4S9CyK#tQwX<$4Tf%~;ZT%T)M*OMPewYhCs*Gs+p zYC(P=P1PG2{AF!fejts#Ud-UrZ`bv_QrEN5+RZfu=pU&95XVvG8pcrwK=K!!#L;zq zn5~Z^YIED^yO1sVV{gh7KZ6H>yB9D;e_MV7_)Oxw?{|^S00000NkvXXu0mjfzwPed literal 0 HcmV?d00001 diff --git a/icons/tranFade.png b/icons/tranFade.png new file mode 100644 index 0000000000000000000000000000000000000000..cde32542134fcc3bf8338cf9bdd36546414f1e65 GIT binary patch literal 1175 zcmV;I1Zew-P)V!c`AI}UR7i=nmP?Ej zRTPH5d+XM#U(bg9K3%6N6C$Tim&FrE%fPxYDI@Y2qWq zM~tFDf{G>zF$e*oGxRVsG(8Wdr>ncFtGcUP%veJ)t>A*Ysr#Rtd;WX=bMLt&qA21{ z4h0|{`Xa$1WQa6eG{Z%jZep$(9@1za4G+y+`5G%eE56HqF6R!-2-S&I0BJo#CY2?f z5Fu`G*o$2TniMfMG?PQy zj<9EN@Bbs%{cty76ymj9>VdC=eFD)!R{SJY*UNziL-xEsn%A5r82aH z%endA6YB=Dn{JO_-{^(}{`t}*r^hD~w!uOVMY}s;yHdM+Yl6G`Q{2BL8{<-?%Jh7d zGZR;0-IY}A**wNjZaDV4uHOMk}rUydm}_jq4C*QCbul))o?V`Ng2qSnvWf{Ce2 zOr`LeAplE$mA8L=BN3-#2D*|wv%7cI5DCUFhvdxy1*@CtqQX`w)XF`zO-a?i&TBs$ zVcJPb*pcALUF#|4jTm1lIn)}h7+2<-gyE{cQj&sI;H_QnGB)r;B34I<4j&jy;2+Oc zn5<1;w?gb@MAnxSr-v9=-$lkqkykl%U0~`tUfuCJ`dOdj<&OanQ4}Sb-NyA6rLXqj zG}<_g7InAH)dh!{Y6Zuy<236yevM|>z>6Fjtr`#Zj4;wOf)tR;C<1MPgU3cW{nCV3 zBhkzI2NEp+AYv>_b8)}^X_lkM%V0RnG)pMcLzzvK>0{e%QYqNEX_(PXJ8w`y zFjXrt=Uz(^AY>HvI`wYW#B#V}gV!c5lKWrR7i=nmP>3C zM;yj~`$`;pHwmeo*f=lS0qQhTC_)^HP#d*8%Yg$AfrOBH;fjRBflJRl^?-V)RB;B0 zOI3Pns|JK9NC*W%fCOUVAkqYfBz|nL*Y$D;j5A%EBuISHYUlgEzMYx>?yTavuFFS+ z4xoH?5z32exU#555zSK3EoJ%MtfE^gTC;-wmcR2qK0CK8uo^m}Vf+n2rk_8-RW;f> z+xaBiisFa#LW(k__s?K8M8Y8!UrhsG7zVA)Ep$b@=}q(yi5}(l*iEiI`LkxOx?1sI zTPp#-zpmfV8#uoEBwugc^I-zoM>Gca3hE8`^Sa8>Mv6pO8 zlPRwKGfcT$7QR+<1M!Z&^$Be0>%`Ej+vGTo7#HjU=@)4!z9$r0pTIy;PFN`bV40T0 z(=VT`U7$VKLNpQ-yjUz!sZ^GeRFznFoKRax_#aI@u5k&b4;3xy>{?vF9?Y>G@~j$*MWC5J;1{Jwx>8=1N*aj8v@?C+PHqmR>!K1!`P za7q|H4S!P;8@s{`?HrQg)0s(Tv;U&4Xjd_6u^QR4Oa54mj!p7^n5Ic0mLR#QAD>U& z&|m)e$rCRGj_uz}V}m9f(=+pA<`z8(^>F3-C4Rs2tH&;u=;R@JdG6esSX1H5{4Ce+ z|HX~eFq)}&{6b*YiOb$Yz6SF7JmXKtNzbJi9;xu3&k=|I^4lOo`PjcLZvaVd3Y*dk R&;|ei002ovPDHLkV1kRUyA%Kb literal 0 HcmV?d00001 diff --git a/icons/tranMoveDown.png b/icons/tranMoveDown.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac70b440bb1eb893092b106081b2945592aa98c GIT binary patch literal 723 zcmV;^0xbQBP)V!bHAzH4R7i=nmQ83A zK@`XTn-9|6WYKL)po!7aA{A?jMJbB)BA82iuvV*wiiD!#u_)M^2Yc}12M9$F589km zywn7GD2iZDhWZgy8rsI%N?T)M*Os{1X2*j#ak|-LZPNek{okAY&6_tY!x2IVHc>VJ z*z>>*0O)Kuf$N8dXfh#BVQe-+W8Nk}a#TaAs)bLihu7t!IRb(!FE1i8^OSnAvrB&f zMvA9D;#Txp;hkCR7-$>B>82n6fCGoi`>$ebHVh@F&^n9xW?8LiDsD#ykt1u=a|?B7 zlA4*i4FdpRRb7Fcl^L&wcUKP3>TZMNsAjxaa)ODA&VaWG%pf_=0^Z6)ush+e-G>V; z{Y?F5c^cm`i{=6C-Xj?8jutCnbobp2ombWo{j2-2I~bXItn-U@U`Er+lL&pdhbQsj zf_Vlo{`Ccdqg@3H3DKZxS*V(dY)*lysraF!v8<$vZh!%#ekGAwNd8X)CB+d!2-o_o zq96S$GSOMNAsflmko$WZaP!h`#%m9bl zCy&-)t7tDD(ATBkJpk|yE6#Ly%L6!hD^3MGG+xc*nEbipJIVv}1UwL(`Fk+*D1lFj z6&m|@ia6LJZ5*(ExWnN&JRF&0yi&t91njDJ;n3dvzy9r{jQ8=M2u0?hY58|TPr!pM zF5}y72v|SdPV!bEJ;K`R7i=nm0xU2 zQ5?rVy}e8StkrHSvv#_NMM<`GX~P)ffz(i5+W8YS3$pSeLE^!i@Zv!tAsz*Z2oGdL z7828^5n&;0NRTx1uaRt6HiGH#P`lk-yXD?HzRAr!zjMFme9k$)^UE~}Aq4+XGJq*` zQ}ckj{kt@K``SO{0OIimT6W%}=gE++)iqbGWKZM4X+83IBN_MW22|MQu&8p`v>s`^ zu_;o8+gYLuphe0KY!)+#sE^Z^(}pK|KQchihZF!35^aG*9stl0tC@c=m`__gsJz0@_=i1KQi)dOffbF zX0fEfZ3r@1GQjBf-(2m^(7v%+`H+m&@Zi}OU6ZAU-_SkKrNq1I_vHYYI}z+wv&y`s z)yshs{S1$ep;fOwzu;u=F%>`psI0KyELGo}Qk$9W>wUU*P)r4NFi}R6Jy9~i;ZrXG zD3MJZ*&9HTa#t+0(8c09HxK*u<)Q#^{M>7$V@0@}$kN$LoQ(T518lM#pJSe?ui%Kz zcD_}`TU)&a`I$;BzE#|g_bN|OKxZn$(AQr|?6AvhTW37k1%Mwvvs~;_S9Wp+$uV!Z07*qoM6N<$f<6;KasU7T literal 0 HcmV?d00001 diff --git a/icons/tranMoveRight.png b/icons/tranMoveRight.png new file mode 100644 index 0000000000000000000000000000000000000000..5f83b0b82e155e99301ce8b537be23bd176cb9a6 GIT binary patch literal 874 zcmV-w1C{)VP)V!b%t=H+R7i=nRc%O9 zVHAGuymQVun_j)*SD1s8rfC`aL$sifvSHeXB}G^kK|vt?3I9YO7=a;0AVh_@EXbnB z52z^0pddt2lk&5XQ}QGAx}0-!Z$F0byt|v+MV(*wob#OLIq%oG3?YQzKN<@FX^p(> zf-m)VWn)RV(JgQ-zX4Xq0tSBdqjmH#tjj{6jf$-DL^7^dZ2D7=#)tQyrhwJ6e;2HrY=oOB%}rve|w-@-*)G{}HKRo3Od5;#+` zQRFKC;OxsID0-R;n{$ySICV7ix|D#(HR>Q7Er^o}0Kj))81KejiIPd-`hWyV3*w;F zu)YNVAVDi$o>>?UNT8xPQ4&)CfJPaHa>IETxJ;V(Jk^Dvxo@(`Q2(0@OardS+3o763lpL6n-u!~HK{Og=1Iz?dHcK2k;f*PmuEKDFc#_&CuCi}eQu=u{D?&AWxd zO$TKOR1}LZM^oz<{bmRuB(0GLt5D)nb`6fDoTACe#R=?tk`4QcoyNRJMLZt@bH{E3 zDHs}?nO}y}Nf5)SJX_>+IZ)qKgB9YWKt41UDG`QsyDu+F6p;e}w;>oYoO{beXYku$ zh2S+wIko>$&M?5~1Jb*{)Gc-IaN$qAvim-Hv`QS>6Dx|D+Q%d~ z$varJJAF6teE5-Hf#Zeo2nqI-_Y4Z?9bAy$Snt5d`~Xb-x6v}#V!bb4f%&R7i=vR$WL_ zVHkeCvu|@db2&O}IX5L5Sg?zP_8r<4sptlo%wz zi1h;%LKIzum_}0Ru;r|%W;(abZS8cSo%ZdVxy;sc_q^|W-sk=K&c{bYQ52CyPyisM zUdHI{C_|OYEb+!O&vDfoU}CPcm!Pr6Ch<Z9+9AXgyjCZocEvHF?)7RX-5$@F8~|pc30bGj zNz0b~2mcace>HndvjGYKj^j;PO8@CUb?^(DEL(A8?TNI(2{D10_%}piVT5DTcr!5s z@90g0qoF?&5OiiZS8QHXg{PdYxX{;z>#sT${YxH^mg>+_eh#(veTshBZJLbn@H;$t z-#cFk2g<2IISN5*Lb=5Sj?C3ZKyY&XS={p7Se(F6a1iZJPb>OXF0-Sj<{@-+?s61# zCfJRu;hTKT#QpV%-iCa56nG#LO~sOSU^B3{uRr9I#Vk0YbkM7FvA6gj972g?8~EIZ zk(BXd6e!Ezg6^t&000gI8dVN7svMa4eDG8+#eMxAM9br2iaAKOpDjNDD;uz^IZJwU P00000NkvXXu0mjf*Oy(P literal 0 HcmV?d00001 diff --git a/icons/tranNone.png b/icons/tranNone.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a939a5fc715cac013d973b79466b0880435e05 GIT binary patch literal 744 zcmVP)V!bN=ZaPR7iEFNq49m7Zh4U9~LJg+WAl$)()dC+oaRxCV zb~u0E>9-8eUjKme*X?`G@a5YdIA33lkHK75fOrd%15jPGcnhkFzkdJAuy*eY6tOfM zNtW^d|Nkh3owOJS!^7>)49rZ7a7AxF{$lv^2emxp;$TKe!e77tWsq{+&G6|f!e>|u zy97U36vG)97#M{4*|53}8E|tlGemnyGfZFo5Jem%h!`0e7?S+47Y)P!Y>|!P0|ygf z1|=CTIRE*ZpA3_h-N$JlD+?n-Lxvgy6V%6s8vG2V+5!xxuYSO80k+8Pn12Vat8I;h z7+ftx;rz5L3&puN~^r&4WdML$?lg3xqm#@ghks6y&enE#23h4(*z&M@=PE$f&Aj!Z7hb?xI!A43f2sFNkzZNu%DS2PS~ZrJ-GPZ? z(LnIpP+tI;@KR6{tfg}kNOz~Z#M#T8Vj$I)F6Z_R*3xN5h!-l{REnMHKs7fqJeoA2 zNaIT_o%TI}wR8k9iJ&2LF>XbV_&~s+wvf1!Nj3nJWzDV~-v&~_WQXv#28gt%zXeLt zfBra^u5_l#8t-5&ofv{~)fzNSr=u7HmiT8*Hu@QUFhI1u<++wl%oA8k$42m4Se6Q0 zhzo>Zy<}J}tXJupLO~uqODS90Z?tr5FOEksBy##@8LK5-#N2Z4PW-9YgmL#Cs!8v~+r^Hm*#bmW~2G0;e_${ILk( zbPwm^VFr_7>XnVi7nqy*0YIHkGB>-#*!}mPfJD~K6anNWMlbN8yecsQD1iB&YgKNa zKAdvD&Mv*$a)@4Fx(b|iGt-siMr+jgjS4us1uQIUHS1>XZtG7uy#5vBf3LHY-`?ka zg8_2CN(Td0^1l002ovPDHLkV1gNwGQR)- literal 0 HcmV?d00001 diff --git a/icons/video.png b/icons/video.png new file mode 100644 index 0000000000000000000000000000000000000000..929fbc887d0bf03d0b7c1a43c2c007550309773b GIT binary patch literal 4945 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 literal 0 HcmV?d00001 diff --git a/icons/video_add.png b/icons/video_add.png new file mode 100644 index 0000000000000000000000000000000000000000..46be5908dca7bb065886d30367b1793041c7d782 GIT binary patch literal 6114 zcmY*dbyU0;=F@1UrEnuP+myx-tisluM5?%*0twyX?R)FAw?g@j3BiYL)#cD zkX!gKLvOWsb3ZeSBgfndL0kx=6d|B-0Hq{7h!Z0Y)>%xi0TT4MnTdVjDg>0`|0m4_ z-kt%k$(Ek}@3vF`Qu>=w|E*6amEBoP-w?0n{hDA;q?RTqE)Rce=A01OJt#^amI^1!ls(NeSK_W%^o%J49 z`~qB%UhS^t^kaaY64Dt*uCs`Nib0;Tgt) zjvK3rfWMN9{~sq*mt#en2-QIL!L)ZJLH+z5a$TRTQGy_NW_k@vbUU!PNQz#^Tep7v`Zj@VQguWJ(y4|gT4m*BA zaQfq(W&7!h^O%SRVf)U(jKi?uid^E<3%X&swW{K3N_@j6bLhi18CeB$(VXiA1!}zK zF)^oVL8IsR|J+ELZmSU*)o<(mjx2mDwH%mtHao6CxHtH7zDBLOyw#-Fl$GOlIBG@NF8rzdpbT5N@KZFhu& z9;A9(W#MQ1*8LYim>2tKZqP zdov!|9OQ=jh7nc4AY2wT=~54e_p*oOwZY8Bmj_0^sZ`+IKJRe1eT}s#8jB!(7D<=r z<(*c-2fX>KHp|DQFP}UZK0MV~u$P!v)Y|g; zit%#jjmzt{THcm!kK8P(X7b(rtG9Q{1aAf6;$h2^QrZRCCuU_WgJk3gmBgvnTb8GfaCA}E z+GAU?4KW;+FS_t?Ctx7Q_Yfp`FsjY;NS$l`;*{U4W@~4WPra4qrT1^Oxif9cc8q03 zNzj(P({5TlL(FB=Fr%d!i7dOn-bYB&qE7-M3wlId(g{eJ3uRK3O%7@^xveQR|2@$KSg&h2@BOmsZwNmC3t zCj9o4$P*wm{LJVjE$AD{s7_5Y3=$N|BhSgtC)(Y167;fgkFZQsmi>fS;3K$~!?9}Z zOU118TTMt8g`e`1EV$vecYb*uXJKXb$3D#dx^>yiE(rI~7Irefr%5l>fa+mmgIZWb z2j?Mu2q=G%*t@SK-TCU4*GQMbwdycK2aYPa*cc#je%^%0cH$5;mX0aqanjvWMzV)T zOp46>lnNub*M=Q3w8(yJ@exYTfbWQVmDA2fXZUn3wCV~3mP6kB;^Kj0W-)vHJalM7 zad!+}4tROh*S3t4kt7C+XR8_eE~OA?t4Ue%#scZr>oKLWPh}ub09&<*HZX5wlp_8~ z0C+YBKygn#Fj=nk+1W$C!QWVYlZGq%Q7AU=W?2^U0t1`a3-6Y&8>IA_X0cQ_V+RfW z*3y>0)gL=;!<#R`$C7oofzjq?1SU=wObC$Zlfv}}7#L9b{6IVUwpLwRP6> zM)|bL{6*Alb1`3LOaS$^_LlnV4_i;I`RlAq1i%2GVR#->4ZGxod8H3?98K1TNKvkwG}9Gx%^E)R$R0lzH+1tm5k$V+7c6}yn9U%$W(SR``h zBaQ;dpEsz|po1Fj_OPk{$*n&KxLm0VlEd^)&qTA_*zR{Tvft)FDSpfh_8mw?nMd^>^dXT-wG7f>_<#$#(_Zau;VtwS znWq>=%LyoI8xOcAU*ZS*q^SGY<*lPOv}5Um3F1)c7g+PSzUkVO2HVF>uCwthAKQ24-)PE@B!_caqiC^ zzepk5=t8nNRSwSe)V)3#39{=qEic7-xJU!z^8ziVuoTWh{#%AP%jGubc@tO}l^mDS zkahHl>Fl@Km*fuhX)J$nAr4jkmF`yOr4+n8Er7WzL&rE=2Fr{`;TzAsK2N6?Avmy= zmX#Py#)}J2GDa#O%+O|6e5xc0A8V^g$1JA+3*;vbPKlq>@%DeFm@xK)tQ8O@s1V+XLD4nfhrIV9Lm-5gKON{L1Z^HPdwv1%{{l@tet zJCF&>dXla}P|8W8o8Qjt)7D(V8q=>#zN=+v{sfYg!lsu`W6PCJzTG~Zl#;<#Ovl56 z_Rn8`BejanKB9CVe~j;zx}|QGtN83+YBrHXcuL^eCsYf#>xjAe379=_A-ZvmJxuyB zNkhiWP}UPl66lMMvH?D9ezOvl2jvW${5)MrlT?mU8_h!Cp#+LE+WIi~9nNBOy9|5o z4txg;82B%OV_ocWLx2-HTa2$1#(W$wP#k)7?(PX?W2|)A)ES?~R#JD`$~2OVFAo@6 zID*q?t-h{#88s?4RfST=$--0+6fEng%=RV@Ek{w0XUP=@2z0x!rr@XdcY-&b=}qzy z)$xZfrY-(S`W945jKeq4kK6w`<2v(8A>nLsVFNc62~N-Aq~Hq#?fy|dMONIv*Eipn z_V7VHi^Dtc(fcBCrgbtQ!T~I5x2<@OQcKg=vE*lao`;A$$}uu2YKHZQuUoxI+7^); zk4eC{5fan5)G71usOL20l0vTwOmhDTQ+0WngsqDOnabt*97bG69({+ZW6 zVnPTV%1<#+is%x32rJy1kL=z%=smZN2-0@DEj2GClJb9}%F7;e|A0@Et3KyF^}pGH z0}>p!cCf#b_TmISKBN)ie0pdA5of^d`Vg(18Rrbg(dhw%Z0LaPP|#3~FgJ z@w1+T5D)i#Ii#|kT&KZqULvT$rU!CXVC>(QL_8jYl0bws6_D!3a3N-uZ=s{K zQ1Y@sv%3`n4TNU_Md00Et*}usnTJP|^?MI98 zlmH8$+UZzqtGQn*47L0LYi_L!XcvDhAk*(p+U_5+k@}hZta&uSSLiQ9oypF~KAGNg zVurN6wD-B0mzsx$joM{_S&xA;a(?WiBJ~TSp5$~RXZ7ajH!e0R(JOuV%}WH2sx~eq z<}VT3+<`P-Rm?_f8Pv?)3q9)oXo>T`oDjH0ubUQ4rihJkXpl^tn+Dh?UxZ}OaLarb zb9AY&?2TpR@e2GaEbL-*-+n)Xwl9wqbvN~*p*D7dW0)lG>~JV&^|jo_yd5?D^2=WZ zGoOhwWN(#X=Z1(EXHQ2{Sy#*07J4D0^S3qMW=cb(`HLPU?^#3Jk7SDXc2DMn{mRW1 zu@AdwWi#u!vFVm@%`gF)SfjeGqx%MYVlD3+kDY}$uCDY1LQ1eb+66PBJo?@?bP0m( ztIWmwP2?TWfy?1%zSac06|4lR-XknL?&BMaRW0?YwSx(GUd`af6yyF3#iAFaw+j+F z=L-FP_SZWJJ)awA#ZQ^MC1w&K+dBSR|CATf&TReR-ZLuC;DidViDL;;MQp+^imaHD zXGIUT>1g}*r(v6(A4I!Os;h_}Gx4JOt#RKBFOk)H_>u=b+A!jcL+5ifY$a;;|%Grjf{>rM}ItZIUEr(`hM!@nv z*1-E_UOA5o3<)k|-G!-9XOVRMeix}||5Yt#BdH>eyjvRc7SU^i!uRxJ-P34nenS#( zd{cWYuiJ`{3+E3J6sw!7!BK$@gHj$0q}%JvDL5<}m8&H?M49v~MFsCe9xuH&WBlHF z0R}-UvqmCG%oS>=b139UK!xf=grzV*mlUc;b7(D?r^l?Hlv*S2$s8y}GXvKu8>sdh zeq2+a5?IZxh)UB*`c9-%V$G;Rpr5XnDrB3$*26ZLgcpmd>OKhf#~ryIjwl;q_+Q%9 zzaV7&s$iXj8lf5wE2wJIuqg}5F(BG2I5@^WLhtt0S%~tH%(c*PNrH%&1i7qr2l~@! z&KzEmlx~|Dfn{Z275Gnsxiq>4jPcrTR#A?JlR%;TnElEIvk1Xoze*|FJ>!m66t>B^ z{3!qP_mRZzqiiRrT_)UayLUpqAdPLiYd9>=CkUN8kg7jW!RwY^H)p%v7k@vL;v}lM zcYNx7jFB*WPIynC`do4xN|amtN5cz}EsgA`*nWiy&X6>sE5?hLFg>9XlODC*wKXx7 zQ(*l?Ap8&cV$R^X$rI9d!?5Vv1(+|V!L4C*kq(|hIj(X$y|p_GBVzFvty77~sgfDt zN<8R2zuUr0p2u3U*?Gtdu#lmrNG5ul{yH)|DF@2wf$SBR_fSY>diZjs?-4f}ELoT- ztn(WrxcP46ofi+%arM zx=QyO;cfH3w6n?BJNmrV+5gyloRsqH(FEF$PTom7y-66MsSg1HvbQpa@^JD=#es*& z1O3!r=7%mC${4XTiZcJ#CBTh~+adhkJuPbUfL0F#0IlwIiBhcRWQQNX*c$~}iH|*6 z97u4zAixaq3M=%%0AJuw}1Gg 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 literal 0 HcmV?d00001 diff --git a/imagegenerator.cpp b/imagegenerator.cpp new file mode 100644 index 0000000..1988260 --- /dev/null +++ b/imagegenerator.cpp @@ -0,0 +1,775 @@ +#include "imagegenerator.hpp" + + +ImageGenerator::ImageGenerator() +{ + m_type = 0; + m_shadow = m_blurShadow = false; + m_shadowOffset = 3; + m_blurRadius = 5; + m_screenSize = QSize(1280,960); +} + +void ImageGenerator::setScreenSize(QSize size) +{ + m_screenSize = size; +} + +QSize ImageGenerator::getScreenSize() +{ + return m_screenSize; +} + +int ImageGenerator::width() +{ + return m_screenSize.width(); +} + +int ImageGenerator::height() +{ + return m_screenSize.height(); +} + +QPixmap ImageGenerator::generateEmptyImage() +{ + QPixmap pmap(m_screenSize); + pmap.fill(QColor(0,0,0,0)); + return pmap; +} + +QPixmap ImageGenerator::generateColorImage(QColor &color) +{ + QPixmap pmap(m_screenSize); + pmap.fill(color); + return pmap; +} + +QPixmap ImageGenerator::generateBibleImage(Verse verse, BibleSettings &bSets) +{ + m_type = 1; + m_verse = verse; + m_bSets = bSets; + + + m_bSets.textFont.setPointSize(m_bSets.textFont.pointSize() * 3); + m_bSets.captionFont.setPointSize(m_bSets.captionFont.pointSize() * 3); + + // TODO:FIX + m_shadow = (m_bSets.effectsType == 1 || m_bSets.effectsType == 2); + m_blurShadow = (m_bSets.effectsType == 2); + + m_isTextPrepared = false; + return renderText(); +} + +QPixmap ImageGenerator::generateSongImage(Stanza stanza, SongSettings &sSets) +{ + m_type = 2; + m_stanza = stanza; + m_sSets = sSets; + m_sSets.textFont.setPointSize(m_sSets.textFont.pointSize() * 3); + m_sSets.endingFont.setPointSize(m_sSets.endingFont.pointSize() * 3); + m_sSets.infoFont.setPointSize(m_sSets.infoFont.pointSize() * 3); + + // TODO:FIX + m_shadow = (m_sSets.effectsType == 1 || m_sSets.effectsType == 2); + m_blurShadow = (m_sSets.effectsType == 2); + + m_isTextPrepared = false; + return renderText(); +} + +QPixmap ImageGenerator::generateAnnounceImage(AnnounceSlide announce, TextSettings &aSets) +{ + m_type = 3; + m_announce = announce; + m_aSets = aSets; + // TODO:FIX + m_shadow = (m_aSets.effectsType == 1 || m_aSets.effectsType == 2); + m_blurShadow = (m_aSets.effectsType == 2); + + m_isTextPrepared = false; + return renderText(); + +} + +QPixmap ImageGenerator::renderText() +{ + QPixmap textMap(m_screenSize), shadowMap(m_screenSize), outMap(m_screenSize); + //fill with transparent background + textMap.fill(QColor(0,0,0,0)); + shadowMap.fill(QColor(0,0,0,0)); + outMap.fill(QColor(0,0,0,0)); + + QPainter textPaint(&textMap), shadowPaint(&shadowMap), outPaint(&outMap); + //TODO: remove set paint for shadow and make it as an option in settings. + + // int shadowOffset(0); + + // Draw main text + switch (m_type) { + case 1: + // Draw Bible + drawBibleText(&textPaint,false); + if(m_shadow) + { + // prepare and draw bible shadow + //shadowOffset = (m_bdSets.tFont.pointSize() / 15); + drawBibleText(&shadowPaint,true); + } + break; + case 2: + // Braw Song + drawSongText(&textPaint,false); + if(m_shadow) + { + // prepare and draw song shadow + //shadowOffset = (m_sSets.textFont.pointSize() / 15); + drawSongText(&shadowPaint,true); + } + break; + case 3: + // Draw Announse + drawAnnounceText(&textPaint,false); + if(m_shadow) + { + // prepare and draw announcement shadow + //shadowOffset = (m_aSets.textFont.pointSize() / 15); + drawAnnounceText(&shadowPaint,true); + } + break; + default: + break; + } + + textPaint.end(); + shadowPaint.end(); + + + // Set the blured image to the produced text image: + if(m_blurShadow) // Blur the shadow: + { + QGraphicsBlurEffect* beff = new QGraphicsBlurEffect; + beff->setBlurRadius(m_blurRadius); + shadowMap = applyEffectToImage(shadowMap,beff); + } + + // draw shadow onto output pixmap + + if(m_shadow || m_blurShadow) + outPaint.drawPixmap(m_shadowOffset,m_shadowOffset,shadowMap); + + // draw text onto output pixmap + outPaint.drawPixmap(0,0,textMap); + outPaint.end(); + + return outMap; +} + +QRect ImageGenerator::boundRectOrDrawText(QPainter *painter, bool draw, int left, int top, int width, int height, int flags, QString text) +{ + // If draw is false, calculate the rectangle that the specified text would be + // drawn into if it was draw. If draw is true, draw as well. + // Output rect is returned. + + QRect out_rect; + if(draw) + painter->drawText(left, top, width, height, flags, text, &out_rect); + else + out_rect = painter->boundingRect(left, top, width, height, flags, text); + return out_rect; +} + +void ImageGenerator::drawBibleText(QPainter *painter, bool isShadow) +{ + // Margins: + int left = 30; + int top = 20; + + //int right = width - left; + int w = m_screenSize.width() - left - left; + int h = m_screenSize.height() - top - top; + + // set maximum screen size - For primary bibile only + int maxh = h * m_bSets.screenUse/100; // maximun screen height + int maxtop; // top of max screen + if(m_bSets.screenPosition == 0) + maxtop = top; + if(m_bSets.screenPosition == 1) + maxtop = top+h-maxh; + + // apply max screen use settings + h=maxh; + top=maxtop; + + // Keep decreasing the font size until the text fits into the allocated space: + + // Rects for storing the position of the text and caption drawing: + QRect trect1, crect1, trect2, crect2, trect3, crect3; + // Flags to be used for drawing verse text and caption: + int tflags = Qt::TextWordWrap; + tflags = Qt::TextWordWrap; + + if(m_bSets.textAlingmentV==0) + tflags += Qt::AlignTop; + else if(m_bSets.textAlingmentV==1) + tflags += Qt::AlignVCenter; + else if(m_bSets.textAlingmentV==2) + tflags += Qt::AlignBottom; + + if(m_bSets.textAlingmentH==0) + tflags += Qt::AlignLeft; + else if(m_bSets.textAlingmentH==1) + tflags += Qt::AlignHCenter; + else if(m_bSets.textAlingmentH==2) + tflags += Qt::AlignRight; + + int cflags = Qt::AlignTop ; + if(m_bSets.captionAlingment==0) + cflags += Qt::AlignLeft; + else if(m_bSets.captionAlingment==1) + cflags += Qt::AlignHCenter; + else if(m_bSets.captionAlingment==2) + cflags += Qt::AlignRight; + + bool exit = false; + if(!m_isTextPrepared) + { + m_bdSets.clear(); + while( !exit ) + { + if(m_verse.secondary_text.isEmpty() && m_verse.trinary_text.isEmpty()) + { + // Prepare primary version only, 2nd and 3rd do not exist + // Figure out how much space the drawing will take at the current font size: + drawBibleTextToRect(painter,trect1,crect1,m_verse.primary_text,m_verse.primary_caption, + tflags,cflags,top,left,w,h); + + // Make sure that all fits into the screen + int th = trect1.height()+crect1.height(); + exit = (th<=h); + } + else if(!m_verse.secondary_text.isEmpty() && m_verse.trinary_text.isEmpty()) + { + // Prepare primary and secondary versions, trinary does not exist + // Figure out how much space the drawing will take at the current font size for primary: + drawBibleTextToRect(painter,trect1,crect1,m_verse.primary_text,m_verse.primary_caption, + tflags,cflags,top,left,w,h/2); + + // set new top for secondary + int top2 = crect1.bottom(); + if(top2 current_size) + { + curCap_size--; + m_bSets.captionFont.setPointSize(curCap_size); + } + } + } + + m_isTextPrepared = true; + m_bdSets.ptRect = trect1; + m_bdSets.pcRect = crect1; + m_bdSets.stRect = trect2; + m_bdSets.scRect = crect2; + m_bdSets.ttRect = trect3; + m_bdSets.tcRect = crect3; + m_bdSets.tFont = m_bSets.textFont; + m_bdSets.cFont = m_bSets.captionFont; + } + + // Draw the bible text verse(s) at the final size: + + painter->setFont(m_bdSets.tFont); + if(isShadow) + painter->setPen(m_bSets.textShadowColor); + else + painter->setPen(m_bSets.textColor); + painter->drawText(m_bdSets.ptRect, tflags, m_verse.primary_text); + if(!m_verse.secondary_text.isNull()) + painter->drawText(m_bdSets.stRect, tflags, m_verse.secondary_text); + if(!m_verse.trinary_text.isNull()) + painter->drawText(m_bdSets.ttRect, tflags, m_verse.trinary_text); + + // Draw the verse caption(s) at the final size: + painter->setFont(m_bdSets.cFont); + if(isShadow) + painter->setPen(m_bSets.captionShadowColor); + else + painter->setPen(m_bSets.captionColor); + painter->drawText(m_bdSets.pcRect, cflags, m_verse.primary_caption); + if(!m_verse.secondary_text.isNull()) + painter->drawText(m_bdSets.scRect, cflags, m_verse.secondary_caption); + if(!m_verse.trinary_caption.isNull()) + painter->drawText(m_bdSets.tcRect, cflags, m_verse.trinary_caption); +} + +void ImageGenerator::drawBibleTextToRect(QPainter *painter, QRect& trect, QRect& crect, QString ttext, + QString ctext, int tflags, int cflags, int top, int left, + int width, int height) +{ + // prepare caption + painter->setFont(m_bSets.captionFont); + crect = painter->boundingRect(left, top, width, height, cflags, ctext); + + // prepare text + painter->setFont(m_bSets.textFont); + trect = painter->boundingRect(left, top, width, height-crect.height(), tflags, ttext); + + // reset capion location + int ch = crect.height(); + int th = trect.height(); + if(m_bSets.captionPosition == 0) + { + crect.setTop(trect.top()); + crect.setHeight(ch); + trect.setTop(crect.bottom()); + trect.setHeight(th); + } + else if(m_bSets.captionPosition == 1) + { + crect.setTop(trect.bottom()); + crect.setHeight(ch); + } +} + +void ImageGenerator::drawSongText(QPainter *painter, bool isShadow) +{ + // Draw the text of the current song verse to the specified painter; making + // sure that the output rect is narrower than and shorter than . + + QString main_text = m_stanza.stanza; + QString caption_str; + QString song_ending = " "; + + //QStringList lines_list = song_list.at(current_song_verse).split("\n"); + QString song_num_str = QString::number(m_stanza.number); + QString song_key_str = m_stanza.tune; + + // Check whether to display song numbers + if (m_sSets.showSongNumber) + song_num_str = song_num_str; + else + song_num_str = " "; + + // Check whether to display song key + if (m_sSets.showSongKey) + song_num_str = song_key_str + " " + song_num_str; + else + song_num_str = song_num_str; + + // Check wheter to display stanza tiles + if (m_sSets.showStanzaTitle) + caption_str = m_stanza.stanzaTitle; + else + caption_str = " "; + + // If No cation,number or tune, give the space to song text + if(!m_sSets.showSongNumber && !m_sSets.showSongKey && !m_sSets.showStanzaTitle) + { + song_num_str.clear(); + caption_str.clear(); + } + + // Prepare Song ending string + if(m_stanza.isLast) + { + // first check if to show ending + if(m_sSets.showSongEnding) + { + if(m_sSets.endingType == 0) + song_ending = "* * *"; + else if(m_sSets.endingType == 1) + song_ending = "- - -"; + else if(m_sSets.endingType == 2) + song_ending = QString::fromUtf8("° ° °"); + else if(m_sSets.endingType == 3) + song_ending = QString::fromUtf8("• • •"); + else if(m_sSets.endingType == 4) + song_ending = QString::fromUtf8("● ● ●"); + else if(m_sSets.endingType == 5) + song_ending = QString::fromUtf8("▪ ▪ ▪"); + else if(m_sSets.endingType == 6) + song_ending = QString::fromUtf8("■ ■ ■"); + else if(m_sSets.endingType == 7) + { + // First check if copyrigth info exist. If it does show it. + // If some exist, then show what exist. If nothing exist, then show '* * *' + // TODO: Fix translations + // if(!m_stanza.wordsBy.isEmpty() && !m_stanza.musicBy.isEmpty()) + // song_ending = QString(tr("Words by: %1, Music by: %2")).arg(m_stanza.wordsBy).arg(m_stanza.musicBy); + // else if(!m_stanza.wordsBy.isEmpty() && m_stanza.musicBy.isEmpty()) + // song_ending = QString(tr("Words by: %1")).arg(m_stanza.wordsBy); + // else if(m_stanza.wordsBy.isEmpty() && !m_stanza.musicBy.isEmpty()) + // song_ending = QString(tr("Music by: %1")).arg(m_stanza.musicBy); + // else if(m_stanza.wordsBy.isEmpty() && m_stanza.musicBy.isEmpty()) + song_ending = "* * *"; + } + } + } + + int width, height; + // if not to show song ending, return its space to main text + if(!m_sSets.showSongEnding) + song_ending.clear(); + + // Margins: + int left = 30; + int top = 20; + int w = m_screenSize.width() - left - left; + int h = m_screenSize.height() - top - top; + int maxh = h * m_sSets.screenUse/100; + int maxtop; // top of max screen + if(m_sSets.screenPosition == 0) + maxtop = top; + if(m_sSets.screenPosition == 1) + maxtop = top+h-maxh; + + height = maxh; + top = maxtop; + width = w; + + QRect caption_rect, num_rect, main_rect, ending_rect; + int main_flags(0); + + if(m_sSets.textAlingmentV==0) + main_flags += Qt::AlignTop; + else if(m_sSets.textAlingmentV==1) + main_flags += Qt::AlignVCenter; + else if(m_sSets.textAlingmentV==2) + main_flags += Qt::AlignBottom; + if(m_sSets.textAlingmentH==0) + main_flags += Qt::AlignLeft; + else if(m_sSets.textAlingmentH==1) + main_flags += Qt::AlignHCenter; + else if(m_sSets.textAlingmentH==2) + main_flags += Qt::AlignRight; + + QFont main_font = m_sSets.textFont; + + int caph, endh, mainh, mainw, totalh; + + if(!m_isTextPrepared) + { + m_sdSets.clear(); + + // Prepare Caption + painter->setFont(m_sSets.infoFont); + caption_rect = boundRectOrDrawText(painter, false, left, top, width, height, Qt::AlignLeft | Qt::AlignTop, caption_str); + caph = caption_rect.height(); + + // Prepare Ending + painter->setFont(m_sSets.endingFont); + ending_rect = boundRectOrDrawText(painter, false, left, top, width, height, Qt::AlignHCenter | Qt::AlignTop, song_ending); + + // Decrease songe ending font size so that it would fit in the screen width + while(ending_rect.width()> width) + { + m_sSets.endingFont.setPointSize(m_sSets.endingFont.pointSize()-1); + painter->setFont(m_sSets.endingFont); + ending_rect = boundRectOrDrawText(painter, false, left, top, width, height, Qt::AlignHCenter | Qt::AlignTop, song_ending); + } + endh = ending_rect.height(); + + // Prepare Main Text + painter->setFont(main_font); + main_rect = boundRectOrDrawText(painter, false, left, top, width, height, main_flags, main_text); + mainh = main_rect.height(); + mainw = main_rect.width(); + totalh = caph+endh+mainh; + + // Decrease song text to fit the screen + while(mainw > width || totalh > height) + { + main_font.setPointSize(main_font.pointSize() - 1); + painter->setFont(main_font); + main_rect = boundRectOrDrawText(painter, false, left, top, width, height, main_flags, main_text); + mainh = main_rect.height(); + mainw = main_rect.width(); + totalh = caph+endh+mainh; + } + + // Check if main font is less then 4/5 of original. if so, then song preparation again with text wrap + if(main_font.pointSize() <(m_sSets.textFont.pointSize()*4/5)) + { + main_flags += Qt::TextWordWrap; + main_font = m_sSets.textFont; + + // Prepare Main Text + painter->setFont(m_sSets.textFont); + main_rect = boundRectOrDrawText(painter, false, left, top, width, height, main_flags, main_text); + mainh = main_rect.height(); + mainw = main_rect.width(); + totalh = caph+endh+mainh; + + // Decrease song text to fit the screen + while(mainw > width || totalh > height) + { + main_font.setPointSize(main_font.pointSize() - 1); + painter->setFont(main_font); + main_rect = boundRectOrDrawText(painter, false, left, top, width, height, main_flags, main_text); + mainh = main_rect.height(); + mainw = main_rect.width(); + totalh = caph+endh+mainh; + } + } + m_sSets.textFont = main_font; + m_isTextPrepared = true; + m_sdSets.cRect = caption_rect; + m_sdSets.tRect = main_rect; + m_sdSets.eRect = ending_rect; + m_sdSets.tFlags = main_flags; + } + + // AT This piont, all sizes should be good. + // Set object location and DRAW + caption_rect = m_sdSets.cRect; + main_rect = m_sdSets.tRect; + ending_rect = m_sdSets.eRect; + caph = m_sdSets.cRect.height(); + endh = m_sdSets.eRect.height(); + main_flags = m_sdSets.tFlags; + mainh = height-caph-endh; + if(m_sSets.infoAling == 0 && m_sSets.endingPosition == 0) + { + painter->setFont(m_sSets.infoFont); + if(isShadow) + painter->setPen(m_sSets.infoShadowColor); + else + painter->setPen(m_sSets.infoColor); + caption_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignLeft | Qt::AlignTop, caption_str); + num_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignRight | Qt::AlignTop, song_num_str); + painter->setFont(m_sSets.textFont); + if(isShadow) + painter->setPen(m_sSets.textShadowColor); + else + painter->setPen(m_sSets.textColor); + main_rect = boundRectOrDrawText(painter, true, left, caption_rect.bottom(), width, mainh, main_flags, main_text); + painter->setFont(m_sSets.endingFont); + if(isShadow) + painter->setPen(m_sSets.endingShadowColor); + else + painter->setPen(m_sSets.endingColor); + ending_rect = boundRectOrDrawText(painter, true, left, main_rect.bottom(), width, height, Qt::AlignHCenter | Qt::AlignTop, song_ending); + } + else if(m_sSets.infoAling == 0 && m_sSets.endingPosition == 1) + { + painter->setFont(m_sSets.infoFont); + if(isShadow) + painter->setPen(m_sSets.infoShadowColor); + else + painter->setPen(m_sSets.infoColor); + caption_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignLeft | Qt::AlignTop, caption_str); + num_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignRight | Qt::AlignTop, song_num_str); + painter->setFont(m_sSets.endingFont); + if(isShadow) + painter->setPen(m_sSets.endingShadowColor); + else + painter->setPen(m_sSets.endingColor); + ending_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignHCenter | Qt::AlignBottom, song_ending); + painter->setFont(m_sSets.textFont); + if(isShadow) + painter->setPen(m_sSets.textShadowColor); + else + painter->setPen(m_sSets.textColor); + main_rect = boundRectOrDrawText(painter, true, left, caption_rect.bottom(), width, mainh, main_flags, main_text); + } + else if(m_sSets.infoAling == 1 && m_sSets.endingPosition == 0) + { + painter->setFont(m_sSets.textFont); + if(isShadow) + painter->setPen(m_sSets.textShadowColor); + else + painter->setPen(m_sSets.textColor); + main_rect = boundRectOrDrawText(painter, true, left, top, width, mainh, main_flags, main_text); + painter->setFont(m_sSets.infoFont); + if(isShadow) + painter->setPen(m_sSets.infoShadowColor); + else + painter->setPen(m_sSets.infoColor); + caption_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignLeft | Qt::AlignBottom, caption_str); + num_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignRight | Qt::AlignBottom, song_num_str); + painter->setFont(m_sSets.endingFont); + if(isShadow) + painter->setPen(m_sSets.endingShadowColor); + else + painter->setPen(m_sSets.endingColor); + ending_rect = boundRectOrDrawText(painter, true, left, main_rect.bottom(), width, height, Qt::AlignHCenter | Qt::AlignTop, song_ending); + } + else if(m_sSets.infoAling == 1 && m_sSets.endingPosition == 1) + { + endh = height-caph; + painter->setFont(m_sSets.textFont); + if(isShadow) + painter->setPen(m_sSets.textShadowColor); + else + painter->setPen(m_sSets.textColor); + main_rect = boundRectOrDrawText(painter, true, left, top, width, mainh, main_flags, main_text); + painter->setFont(m_sSets.infoFont); + if(isShadow) + painter->setPen(m_sSets.infoShadowColor); + else + painter->setPen(m_sSets.infoColor); + caption_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignLeft | Qt::AlignBottom, caption_str); + num_rect = boundRectOrDrawText(painter, true, left, top, width, height, Qt::AlignRight | Qt::AlignBottom, song_num_str); + painter->setFont(m_sSets.endingFont); + if(isShadow) + painter->setPen(m_sSets.endingShadowColor); + else + painter->setPen(m_sSets.endingColor); + ending_rect = boundRectOrDrawText(painter, true, left, top, width, endh, Qt::AlignHCenter | Qt::AlignBottom, song_ending); + } +} + +void ImageGenerator::drawAnnounceText(QPainter *painter, bool isShadow) +{ + // Margins: + int left = 30; + int top = 20; + int w = m_screenSize.width() - left - left; + int h = m_screenSize.height() - top - top; + + int flags = Qt::TextWordWrap; + if(m_aSets.textAlingmentV==0) + flags += Qt::AlignTop; + else if(m_aSets.textAlingmentV==1) + flags += Qt::AlignVCenter; + else if(m_aSets.textAlingmentV==2) + flags += Qt::AlignBottom; + if(m_aSets.textAlingmentH==0) + flags += Qt::AlignLeft; + else if(m_aSets.textAlingmentH==1) + flags += Qt::AlignHCenter; + else if(m_aSets.textAlingmentH==2) + flags += Qt::AlignRight; + + QFont font = m_aSets.textFont; + int orig_font_size = font.pointSize(); + + // Keep decreasing the font size until the text fits into the allocated space: + QRect rect; + + if(!m_isTextPrepared) + { + painter->setFont(font); + bool exit = false; + while( !exit ) + { + rect = painter->boundingRect(left, top, w, h, flags, m_announce.text); + exit = ( rect.width() <= w && rect.height() <= h ); + if( !exit ) + { + font.setPointSize( font.pointSize()-1 ); + painter->setFont(font); + } + } + + // Force wrapping of songs that have really wide lines: + // (Do not allow font to be shrinked less than a 4/5 of the desired font) + if( font.pointSize() < (orig_font_size*4/5) ) + { + font.setPointSize(orig_font_size); + painter->setFont(font); + flags = (flags | Qt::TextWordWrap); + exit = false; + while( !exit ) + { + rect = painter->boundingRect(left, top, w, h, flags, m_announce.text); + exit = ( rect.width() <= w && rect.height() <= h ); + if( !exit ) + { + font.setPointSize( font.pointSize()-1 ); + painter->setFont(font); + } + } + } + m_aSets.textFont = font; + m_adSets.tRect = rect; + m_isTextPrepared = true; + } + + painter->setFont(m_aSets.textFont); + if(isShadow) + painter->setPen(QColor(Qt::black)); + else + painter->setPen(m_aSets.textColor); + painter->drawText(m_adSets.tRect, flags, m_announce.text); +} + + +QPixmap ImageGenerator::applyEffectToImage(QPixmap src, QGraphicsEffect *effect) +{ + if(src.isNull()) return QPixmap(); //No need to do anything else! + if(!effect) return src; //No need to do anything else! + QGraphicsScene scene; + QGraphicsPixmapItem item; + item.setPixmap(src); + item.setGraphicsEffect(effect); + scene.addItem(&item); + QPixmap res(src.size()); + res.fill(Qt::transparent); + QPainter ptr(&res); + scene.render(&ptr); + return res; +} diff --git a/imagegenerator.hpp b/imagegenerator.hpp new file mode 100644 index 0000000..3e91c5e --- /dev/null +++ b/imagegenerator.hpp @@ -0,0 +1,62 @@ +#ifndef IMAGEGENERATOR_HPP +#define IMAGEGENERATOR_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class ImageGenerator +{ +public: + ImageGenerator(); + void setScreenSize(QSize size); + QSize getScreenSize(); + + QPixmap generateEmptyImage(); + QPixmap generateColorImage(QColor &color); + QPixmap generateBibleImage(Verse verse, BibleSettings &bSets); + QPixmap generateSongImage(Stanza stanza, SongSettings &sSets); + QPixmap generateAnnounceImage(AnnounceSlide announce, TextSettings &aSets); + + int width(); + int height(); + +private: + QSize m_screenSize; + bool m_shadow, m_blurShadow, m_isTextPrepared; + int m_type; // 0 = empty, 1 = bible, 2 = song, 3 = announce + int m_shadowOffset, m_blurRadius; + + Verse m_verse; + BibleSettings m_bSets; + BibleDisplaySettings m_bdSets; + + Stanza m_stanza; + SongSettings m_sSets; + SongDisplaySettings m_sdSets; + + AnnounceSlide m_announce; + TextSettings m_aSets; + AnnounceDisplaySettings m_adSets; + + + QPixmap renderText(); + + QRect boundRectOrDrawText(QPainter *painter, bool draw, int left, int top, int width, int height, int flags, QString text); + void drawBibleText(QPainter *painter, bool isShadow); + void drawBibleTextToRect(QPainter *painter, QRect& trect, QRect& crect, QString ttext, QString ctext, int tflags, int cflags, int top, int left, int width, int height); + void drawSongText(QPainter *painter, bool isShadow); + void drawAnnounceText(QPainter *painter, bool isShadow); +// void fastbluralpha(QImage &img, int radius); + QPixmap applyEffectToImage(QPixmap src, QGraphicsEffect *effect); + +}; + +#endif // IMAGEGENERATOR_HPP diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..fd1f732 --- /dev/null +++ b/main.cpp @@ -0,0 +1,240 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include +#include +#include +#include "softprojector.h" + +// Definitions for database versions 'dbVer' numbers +// x - Official release. ex: 2 - for SoftProjector 2 +// xxx - Official sub realeas. ex: 201 - for SoftProjector 2.01 +// 990xxx - Development release. ex: 990206 - for SoftProjector 2 Development Build 6 (2db6) +int const dbVer = 2; + +bool connect(QString database_file) +{ + database_file += "spData.sqlite"; + bool database_exists = ( QFile::exists(database_file) ); + + QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); + db.setDatabaseName(database_file); + if (!db.open()) + { + QMessageBox mb; + mb.setText("spData Error" + "Could not connect to the database spData.sqlite!\n\n" + "Following Errors:\n" + + db.lastError().databaseText() + "\n" + + db.lastError().driverText() +"\n" + + db.databaseName() + + "\n\nThis is a Fatal Error. Please make sure that all QtSql libraries are inlcuded." + "\nThe program will terminate"); + mb.setWindowTitle("Database Connection Error"); + mb.setIcon(QMessageBox::Critical); + mb.exec(); + return false; + } + else + { + // If no files exited, then database has been created now we need to fill it + if(!database_exists) + { + QSqlQuery sq; + sq.exec(QString("PRAGMA user_version = %1").arg(dbVer)); + sq.exec("CREATE TABLE 'Announcements' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , " + "'title' TEXT, 'text' TEXT, 'usePrivate' BOOL, 'useAuto' BOOL, 'loop' BOOL, 'slideTime' INTEGER, " + "'useBackground' BOOL, 'backgoundPath' TEXT, 'font' TEXT, 'color' TEXT, 'alignment' TEXT)"); + sq.exec("CREATE TABLE 'BibleBooks' ('bible_id' INTEGER, 'id' INTEGER, 'book_name' " + "TEXT, 'chapter_count' INTEGER DEFAULT 0)"); + sq.exec("CREATE TABLE 'BibleVerse' ('verse_id' TEXT, 'bible_id' TEXT, 'book' TEXT, " + "'chapter' INTEGER, 'verse' INTEGER, 'verse_text' TEXT)"); + sq.exec("CREATE TABLE 'BibleVersions' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + "'bible_name' TEXT, 'abbreviation' TEXT, 'information' TEXT, 'right_to_left' INTEGER DEFAULT 0)"); + sq.exec("CREATE TABLE 'Media' ('long_path' TEXT, 'short_path' TEXT)"); + sq.exec("CREATE TABLE 'Settings' ('type' TEXT, 'sets' TEXT)"); + sq.exec("CREATE TABLE 'SlideShows' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , 'name' TEXT, 'info' TEXT)"); + sq.exec("CREATE TABLE 'Slides' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , " + "'ss_id' INTEGER, 'p_order' INTEGER, 'name' TEXT, 'path' TEXT, " + "'pix' BLOB, 'pix_small' BLOB, 'pix_prev' BLOB)"); + sq.exec("CREATE TABLE 'Songbooks' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , 'name' TEXT, 'info' TEXT)"); + sq.exec("CREATE TABLE 'Songs' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , " + "'songbook_id' INTEGER, 'number' INTEGER, 'title' TEXT, 'category' INTEGER DEFAULT 0, " + "'tune' TEXT, 'words' TEXT, 'music' TEXT, 'song_text' TEXT, 'notes' TEXT, " + "'use_private' BOOL, 'alignment_v' INTEGER, 'alignment_h' INTEGER, 'color' INTEGER, 'font' TEXT, " + "'info_color' INTEGER, 'info_font' TEXT, 'ending_color' INTEGER, 'ending_font' TEXT, " + "'use_background' BOOL, 'background_name' TEXT, 'background' BLOB, 'count' INTEGER DEFAULT 0, 'date' TEXT)"); + sq.exec("CREATE TABLE 'ThemeAnnounce' ('theme_id' INTEGER, 'disp' INTEGER, 'use_shadow' BOOL, 'use_fading' BOOL, " + "'use_blur_shadow' BOOL, 'use_background' BOOL, 'background_name' TEXT, 'background' BLOB, 'text_font' TEXT, " + "'text_color' INTEGER, 'text_align_v' INTEGER, 'text_align_h' INTEGER, 'use_disp_2' BOOL)"); + sq.exec("CREATE TABLE 'ThemeBible' ('theme_id' INTEGER, 'disp' INTEGER, 'use_shadow' BOOL, 'use_fading' BOOL, " + "'use_blur_shadow' BOOL, 'use_background' BOOL, 'background_name' TEXT, 'background' BLOB, 'text_font' TEXT, " + "'text_color' INTEGER, 'text_align_v' INTEGER, 'text_align_h' INTEGER, 'caption_font' TEXT, " + "'caption_color' INTEGER, 'caption_align' INTEGER, 'caption_position' INTEGER, 'use_abbr' BOOL, " + "'screen_use' INTEGER, 'screen_position' INTEGER, 'use_disp_2' BOOL)"); + sq.exec("CREATE TABLE 'ThemePassive' ('theme_id' INTEGER, 'disp' INTEGER, 'use_background' BOOL, " + "'background_name' TEXT, 'background' BLOB, 'use_disp_2' BOOL)"); + sq.exec("CREATE TABLE 'ThemeSong' ('theme_id' INTEGER, 'disp' INTEGER, 'use_shadow' BOOL, 'use_fading' BOOL, " + "'use_blur_shadow' BOOL, 'show_stanza_title' BOOL, 'show_key' BOOL, 'show_number' BOOL, " + "'info_color' INTEGER, 'info_font' TEXT, 'info_align' INTEGER, 'show_song_ending' BOOL, " + "'ending_color' INTEGER, 'ending_font' TEXT, 'ending_type' INTEGER, 'ending_position' INTEGER, " + "'use_background' BOOL, 'background_name' TEXT, 'background' BLOB, 'text_font' TEXT, " + "'text_color' INTEGER, 'text_align_v' INTEGER, 'text_align_h' INTEGER, " + "'screen_use' INTEGER, 'screen_position' INTEGER, 'use_disp_2' BOOL)"); + //sq.exec("CREATE TABLE 'ThemeData' ('theme_id' INTEGER, 'type' TEXT, 'sets' TEXT)"); + sq.exec("CREATE TABLE 'Themes' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , 'name' TEXT, 'comment' TEXT)"); + } + return true; + } +} + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setApplicationName("SoftProjector"); + + QPixmap pixmap(":icons/icons/splash.png"); + QSplashScreen splash(pixmap); + splash.setMask(pixmap.mask()); + splash.show(); + a.processEvents(); + +// QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8")); + + // Look for the database in all the same places that the QSql module will look, + // and display a friendly error if it was not found: + QString database_dir; +#ifdef Q_WS_WIN + // If running on Windows, check if SoftProjector is Installed. + // If it is installed, then provide proper directory for database. + QDir d; + QString cur_app_path = a.applicationDirPath(); + // if(cur_app_path.contains(QString("C:%1Program Files").arg(d.separator()))) + if(cur_app_path.contains("C:/Program Files") || cur_app_path.contains("C:\\Program Files")) + { + // Check if it is on Windows Vista and Later or before Vista + bool is_vista = (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA); + if(is_vista) + { + d.cd(d.rootPath()); + if(d.cd("ProgramData")) + { + // Check if 'SoftProjector directory exists, if not, create one + if(d.cd("SoftProjector")) + database_dir = d.absolutePath() + d.separator(); + else + { + d.mkdir("SoftProjector"); + if(d.cd("SoftProjector")) + database_dir = d.absolutePath() + d.separator(); + else + database_dir = cur_app_path + d.separator(); + } + } + else if(d.cd("Public")) + { + // Check if 'SoftProjector directory exists, if not, create one + if(d.cd("SoftProjector")) + database_dir = d.absolutePath() + d.separator(); + else + { + d.mkdir("SoftProjector"); + if(d.cd("SoftProjector")) + database_dir = d.absolutePath() + d.separator(); + else + database_dir = cur_app_path + d.separator(); + } + } + else + database_dir = cur_app_path + d.separator(); + } + else + { + d.cd(d.homePath()); + d.cdUp(); + if(d.cd("All Users")) + { + if(d.cd("Application Data")) + { + // Check if 'SoftProjector directory exists, if not, create one + if(d.cd("SoftProjector")) + database_dir = d.absolutePath() + d.separator(); + else + { + d.mkdir("SoftProjector"); + if(d.cd("SoftProjector")) + database_dir = d.absolutePath() + d.separator(); + else + database_dir = cur_app_path + d.separator(); + } + } + else + database_dir = cur_app_path + d.separator(); + } + else + database_dir = cur_app_path + d.separator(); + } + } + else + database_dir = cur_app_path + QDir::separator(); +#else + database_dir = a.applicationDirPath() + QDir::separator(); +#endif + + // Try to connect to database + if( !connect(database_dir) ) + { + QMessageBox mb; + mb.setText("Failed to connect to database 'spData.sqlite'"); + mb.setWindowTitle("Database File Error"); + mb.setIcon(QMessageBox::Critical); + mb.exec(); + return 1; + } + // Connected to the database OK: + + // Make sure that database is of correct version + QSqlQuery sq; + sq.exec("PRAGMA user_version"); + sq.first(); + int dbVersion = sq.value(0).toInt(); + if(dbVer != dbVersion) + { + QString errortxt = QString("SoftProjector requires database vesion # %1\n" + "The database you are trying to open has vesion # %2\n" + "Please use database with current version\n" + "OR rename/remove all the database files\n" + "and let softProjector to create needed database file.\n" + "The program will terminate!" + ).arg(dbVer).arg(dbVersion); + QMessageBox mb; + mb.setText(errortxt); + mb.setWindowTitle("Incorrect Database Version"); + mb.setIcon(QMessageBox::Critical); + mb.exec(); + return 1; + } + // Database is of correct version + + SoftProjector w; + w.setAppDataDir(QDir(database_dir)); + w.show(); + splash.finish(&w); + return a.exec(); +} diff --git a/managedata.cpp b/managedata.cpp new file mode 100644 index 0000000..0b6a005 --- /dev/null +++ b/managedata.cpp @@ -0,0 +1,330 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "managedata.h" + +ManageData::ManageData() +{ +} + + +//*************************************** +//**** Bibles **** +//*************************************** +Bibles::Bibles() +{ +} + +//*************************************** +//**** BiblesModel **** +//*************************************** +BiblesModel::BiblesModel() +{ +} + +void BiblesModel::setBible(QList bibles) +{ + bible_list.clear(); + for (int i(0); i < bibles.size(); i++) + { + Bibles bible = bibles.at(i); + bible_list.append(bible); + } + emit layoutChanged(); +} + +void BiblesModel::addBible(Bibles bible) +{ + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + bible_list.append(bible); + endInsertRows(); +} + +Bibles BiblesModel::getBible(int row) +{ + return bible_list.at(row); +} + +int BiblesModel::rowCount(const QModelIndex &parent) const +{ + return bible_list.count(); +} + +int BiblesModel::columnCount(const QModelIndex &parent) const +{ + return 1; +} + +QVariant BiblesModel::data(const QModelIndex &index, int role) const +{ + if( index.isValid() && role == Qt::DisplayRole ) + { + Bibles bible = bible_list.at(index.row()); + if( index.column() == 0 ) + return QVariant(bible.title); + } + return QVariant(); +} + +QVariant BiblesModel::headerData(int section, + Qt::Orientation orientation, + int role) const +{ + if (role == Qt::DisplayRole && orientation == Qt::Horizontal ) + { + switch(section) { + case 0: + return QVariant(tr("Title")); + } + } + return QVariant(); +} + +bool BiblesModel::removeRows(int row, int count, const QModelIndex &parent) +{ + beginRemoveRows(parent, row, row+count-1); + // Need to remove starting from the end: + for(int i=row+count-1; i>=row; i--) + bible_list.removeAt(i); + endRemoveRows(); + return true; +} + + +//*************************************** +//**** Songbook **** +//*************************************** +Songbook::Songbook() +{ +} + +//*************************************** +//**** Songbooks Model **** +//*************************************** +SongbooksModel::SongbooksModel() +{ +} + +void SongbooksModel::setSongbook(QList songbooks) +{ + songbook_list.clear(); + for (int i(0); i < songbooks.size(); i++) + { + Songbook songbook = songbooks.at(i); + songbook_list.append(songbook); + } + emit layoutChanged(); +} + +void SongbooksModel::addSongbook(Songbook songbook) +{ + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + songbook_list.append(songbook); + endInsertRows(); +} + +Songbook SongbooksModel::getSongbook(int row) +{ + return songbook_list.at(row); +} + +int SongbooksModel::rowCount(const QModelIndex &parent) const +{ + return songbook_list.count(); +} + +int SongbooksModel::columnCount(const QModelIndex &parent) const +{ + return 2; +} + +QVariant SongbooksModel::data(const QModelIndex &index, int role) const +{ + if( index.isValid() && role == Qt::DisplayRole ) + { + Songbook songbook = songbook_list.at(index.row()); + if( index.column() == 0 ) + return QVariant(songbook.title); + else if( index.column() == 1 ) + return QVariant(songbook.info); + } + return QVariant(); +} + +QVariant SongbooksModel::headerData(int section, + Qt::Orientation orientation, + int role) const +{ + if (role == Qt::DisplayRole && orientation == Qt::Horizontal ) + { + switch(section) { + case 0: + return QVariant(tr("Title")); + case 1: + return QVariant(tr("Information")); + } + } + return QVariant(); +} + +bool SongbooksModel::removeRows(int row, int count, const QModelIndex &parent) +{ + beginRemoveRows(parent, row, row+count-1); + // Need to remove starting from the end: + for(int i=row+count-1; i>=row; i--) + songbook_list.removeAt(i); + endRemoveRows(); + return true; +} + +//***************************************/ +//**** Theme Model ****/ +//***************************************/ +ThemeModel::ThemeModel() +{ +} + +void ThemeModel::setThemes(QList themes) +{ + themeList.clear(); + themeList = themes; + emit layoutChanged(); +} + +void ThemeModel::addTheme(ThemeInfo theme) +{ + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + themeList.append(theme); + endInsertRows(); +} + +ThemeInfo ThemeModel::getTheme(int row) +{ + return themeList.at(row); +} + +int ThemeModel::rowCount(const QModelIndex &parent) const +{ + return themeList.count(); +} + +int ThemeModel::columnCount(const QModelIndex &parent) const +{ + return 2; +} + +QVariant ThemeModel::data(const QModelIndex &index, int role) const +{ + if( index.isValid() && role == Qt::DisplayRole ) + { + ThemeInfo theme = themeList.at(index.row()); + if( index.column() == 0 ) + return QVariant(theme.name); + else if( index.column() == 1 ) + return QVariant(theme.comments); + } + return QVariant(); +} + +QVariant ThemeModel::headerData(int section, + Qt::Orientation orientation, + int role) const +{ + if (role == Qt::DisplayRole && orientation == Qt::Horizontal ) + { + switch(section) { + case 0: + return QVariant(tr("Name")); + case 1: + return QVariant(tr("Comments")); + } + } + return QVariant(); +} + +bool ThemeModel::removeRows(int row, int count, const QModelIndex &parent) +{ + beginRemoveRows(parent, row, row+count-1); + // Need to remove starting from the end: + for(int i=row+count-1; i>=row; i--) + themeList.removeAt(i); + endRemoveRows(); + return true; +} + +//***************************************/ +//**** Database ****/ +//***************************************/ +Database::Database() +{ +} + +QList Database::getSongbooks() +{ + QList songbooki; + Songbook songbook; + QSqlQuery sq; + sq.exec("SELECT id, name, info FROM Songbooks"); + while (sq.next()) + { + songbook.songbookId = sq.value(0).toString(); + songbook.title = sq.value(1).toString(); + songbook.info = sq.value(2).toString(); + songbooki.append(songbook); + } + return songbooki; +} + +QList Database::getBibles() +{ + QList bibles; + Bibles bible; + QSqlQuery sq; + sq.exec("SELECT bible_name, id, abbreviation, information, right_to_left FROM BibleVersions"); + while (sq.next()) + { + bible.title = sq.value(0).toString(); + bible.bibleId = sq.value(1).toString(); + bible.abbr = sq.value(2).toString(); + bible.info = sq.value(3).toString(); + int r = sq.value(4).toInt(); + if (r==0) + bible.isRtoL = false; + else if (r==1) + bible.isRtoL = true; + bibles.append(bible); + } + return bibles; +} + +QList Database::getThemes() +{ + QList theme_list; + ThemeInfo theme; + QSqlQuery sq; + sq.exec("SELECT id, name, comment FROM Themes"); + while (sq.next()) + { + theme.themeId = sq.value(0).toInt(); + theme.name = sq.value(1).toString(); + theme.comments = sq.value(2).toString(); + theme_list.append(theme); + } + return theme_list; +} diff --git a/managedata.h b/managedata.h new file mode 100644 index 0000000..6f0db78 --- /dev/null +++ b/managedata.h @@ -0,0 +1,142 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#ifndef MANAGEDATA_H +#define MANAGEDATA_H + +#include +#include +#include "theme.h" + +class ManageData +{ +public: + ManageData(); +}; + +/////////////////////// +// Bibles Class +/////////////////////// +class Bibles +{ +public: + Bibles(); + QString bibleId; + QString title; + QString abbr; + QString info; + bool isRtoL; +}; + +/////////////////////// +// Bibles Model Class +/////////////////////// +class BiblesModel : public QAbstractTableModel +{ + Q_OBJECT + Q_DISABLE_COPY(BiblesModel) + +public: + BiblesModel(); + QList bible_list; + + void setBible(QList bibles); + void addBible(Bibles bible); + Bibles getBible(int row); + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); + +}; + +/////////////////////// +// Songbook Class +/////////////////////// +class Songbook +{ +public: + Songbook(); + QString songbookId; + QString title; + QString info; +}; + +/////////////////////// +// Songbooks Model Class +/////////////////////// +class SongbooksModel : public QAbstractTableModel +// Class for storing data for Songbook Table +{ + Q_OBJECT + Q_DISABLE_COPY(SongbooksModel) + +public: + SongbooksModel(); + QList songbook_list; + + void setSongbook(QList songbooks); + void addSongbook(Songbook songbook); + Songbook getSongbook(int row); + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); +}; + +//*************************************/ +//*** Theme Model Class ***************/ +//*************************************/ +class ThemeModel : public QAbstractTableModel +{ + Q_OBJECT + Q_DISABLE_COPY(ThemeModel) + +public: + ThemeModel(); + QList themeList; + + void setThemes(QList themes); + void addTheme(ThemeInfo theme); + ThemeInfo getTheme(int row); + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); +}; + +/////////////////////// +// Database Class +/////////////////////// +class Database +{ +public: + Database(); + QList getSongbooks(); + QList getBibles(); + QList getThemes(); +}; + +#endif // MANAGEDATA_H diff --git a/managedatadialog.cpp b/managedatadialog.cpp new file mode 100644 index 0000000..5663990 --- /dev/null +++ b/managedatadialog.cpp @@ -0,0 +1,2205 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "managedatadialog.h" +#include "ui_managedatadialog.h" + +Module::Module() +{ + +} + +ManageDataDialog::ManageDataDialog(QWidget *parent) : + QDialog(parent), ui(new Ui::ManageDataDialog) +{ + ui->setupUi(this); + + // Set tables + bible_model = new BiblesModel; + songbook_model = new SongbooksModel; + themeModel = new ThemeModel; + + // Set Bible Table + load_bibles(); + ui->bibleTableView->setSelectionMode(QAbstractItemView::SingleSelection); + ui->bibleTableView->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->bibleTableView->verticalHeader()->hide(); + ui->bibleTableView->setColumnWidth(0, 395); + + // Set Songbooks Table + load_songbooks(); + ui->songbookTableView->setSelectionMode(QAbstractItemView::SingleSelection); + ui->songbookTableView->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->songbookTableView->verticalHeader()->hide(); + ui->songbookTableView->setColumnWidth(0, 195); + ui->songbookTableView->setColumnWidth(1, 195); + + // Set Theme Table + loadThemes(); + ui->TableViewTheme->setSelectionMode(QAbstractItemView::SingleSelection); + ui->TableViewTheme->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->TableViewTheme->verticalHeader()->hide(); + ui->TableViewTheme->setColumnWidth(0, 195); + ui->TableViewTheme->setColumnWidth(1, 195); + + //Set reload cariers to false + reload_bible = false; + reload_songbook = false; + reloadThemes = false; + + // Progress Dialog + progressDia = new ModuleProgressDialog(this); + + // Temporary disable "Download & Import" until server will be figured out. +// ui->pushButtonDownBible->setEnabled(false); +// ui->pushButtonDownSong->setEnabled(false); +// ui->pushButtonDownTheme->setEnabled(false); +} + +ManageDataDialog::~ManageDataDialog() +{ + delete bible_model; + delete songbook_model; + delete themeModel; + delete progressDia; + delete ui; +} + +void ManageDataDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void ManageDataDialog::load_songbooks() +{ + Database db; + // Set Songbooks Table + songbook_list = db.getSongbooks(); + songbook_model->setSongbook(songbook_list); + ui->songbookTableView->setModel(songbook_model); + updateSongbookButtons(); +} + +void ManageDataDialog::load_bibles() +{ + Database db; + // Set Bible Table + bible_list = db.getBibles(); + bible_model->setBible(bible_list); + ui->bibleTableView->setModel(bible_model); + updateBibleButtons(); +} + +void ManageDataDialog::loadThemes() +{ + Database db; + // Set Songbooks Table + themeList = db.getThemes(); + themeModel->setThemes(themeList); + ui->TableViewTheme->setModel(themeModel); + updateThemeButtons(); +} + +void ManageDataDialog::updateBibleButtons() +{ + bool enable_edit; + bool enable_export; + bool enable_delete; + + if (ui->bibleTableView->hasFocus()) + { + enable_edit = true; + enable_export = true; + if (bible_model->rowCount()>=2) + enable_delete = true; + else + enable_delete = false; + } + else + { + enable_edit = false; + enable_export = false; + enable_delete = false; + } + + ui->edit_bible_pushButton->setEnabled(enable_edit); + ui->export_bible_pushButton->setEnabled(enable_export); + ui->delete_bible_pushButton->setEnabled(enable_delete); +} + +void ManageDataDialog::updateSongbookButtons() +{ + bool enable_edit; + bool enable_export; + bool enable_delete; + + if (ui->songbookTableView->hasFocus()) + { + enable_edit = true; + enable_export = true; + if (songbook_model->rowCount()>=2) + enable_delete = true; + else + enable_delete = false; + } + else + { + enable_edit = false; + enable_export = false; + enable_delete = false; + } + + ui->edit_songbook_pushButton->setEnabled(enable_edit); + ui->export_songbook_pushButton->setEnabled(enable_export); + ui->delete_songbook_pushButton->setEnabled(enable_delete); +} + +void ManageDataDialog::updateThemeButtons() +{ + bool enable_edit; + bool enable_export; + bool enable_delete; + bool enable_export_all; + + if (ui->TableViewTheme->hasFocus()) + { + enable_edit = true; + enable_export = true; + if (themeModel->rowCount()>=2) + enable_delete = true; + else + enable_delete = false; + } + else + { + enable_edit = false; + enable_export = false; + enable_delete = false; + } + if (themeModel->rowCount()>=1) + enable_export_all = true; + else + enable_export_all = false; + + ui->pushButtonThemeEdit->setEnabled(enable_edit); + ui->pushButtonThemeExport->setEnabled(enable_export); + ui->pushButtonThemeDelete->setEnabled(enable_delete); + ui->pushButtonThemeExportAll->setEnabled(enable_export_all); +} + +void ManageDataDialog::on_import_songbook_pushButton_clicked() +{ + QString file_path = QFileDialog::getOpenFileName(this, + tr("Select a songbook to import"), ".", + tr("SoftProjector songbook file ") + "(*.sps)"); + + importType = "local"; + // if file_path exits or "Open" is clicked, then import a Songbook + if( !file_path.isNull() ) + importSongbook(file_path); +} + +void ManageDataDialog::importSongbook(QString path) +{ + setWaitCursor(); + int row(0), max(0); + QFile file(path), file2(path), fileXml(path); + QString line, code, title, info, num; + QStringList split; + QSqlQuery sq, sq1; + SongDatabase sdb; + + // get max number for progress bar + if (file2.open(QIODevice::ReadOnly)) + { + while (!file2.atEnd()) + { + line = QString::fromUtf8(file2.readLine()); + if(line.startsWith("SQLite")) + break; + ++max; + } + } + file2.close(); + + // Start Importing + QProgressDialog progress(tr("Importing..."), tr("Cancel"), 0, max, this); + if(importType == "down") + { + progress.close(); + progressDia->setCurrentMax(max); + progressDia->setCurrentValue(row); + } + else + progress.setValue(row); + + if (file.open(QIODevice::ReadOnly)) + { + reload_songbook = true; + //Set Songbook Title and Information + line = QString::fromUtf8(file.readLine()); + if (line.startsWith("##")) // Files format before vertion 2.0 + { + // Set Songbook Title + line = QString::fromUtf8(file.readLine()); + line.remove("#"); + title = line.trimmed(); + + // Set Songbook Information + line = QString::fromUtf8(file.readLine()); + line.remove("#"); + info = line.trimmed(); + + // Convert songbook information from single line to multiple line + toMultiLine(info); + + // Create songbook + sdb.addSongbook(title, info.trimmed()); + + // Set Songbook Code + code = "0"; + sq.exec("SELECT seq FROM sqlite_sequence WHERE name = 'Songbooks'"); + while (sq.next()) + code = sq.value(0).toString(); + sq.clear(); + + // Import Songs + QSqlDatabase::database().transaction(); + sq.prepare("INSERT INTO Songs (songbook_id, number, title, category, tune, words, music, " + "song_text, font, background_name, notes)" + "VALUES (?,?,?,?,?,?,?,?,?,?,?)"); + while (!file.atEnd()) + { + if (progress.wasCanceled() && importType == "local") + break; + line = QString::fromUtf8(file.readLine()); + split = line.split("#$#"); + + num = split[0]; + + // Add song to Songs table + sq.addBindValue(code);//songbook id + sq.addBindValue(num);//number + sq.addBindValue(split[1]);//title + sq.addBindValue(split[2]);//cat + sq.addBindValue(split[3]);//tune + sq.addBindValue(split[4]);//words + sq.addBindValue(split[5]);//music + QString st = split[6]; + if(st.contains(QRegExp("@$|@%"))) + st = cleanSongLines(st); + sq.addBindValue(st);//song text + if (split.count() > 7) + { + sq.addBindValue(split[7]);//font + sq.addBindValue(split[9]);//background + if(split.count()>10) + { + QString note = split[10]; + toMultiLine(note); + sq.addBindValue(note);//notes + } + else + sq.addBindValue("");//notes + } + else + { + sq.addBindValue("");//font + sq.addBindValue("");//background + sq.addBindValue("");//notes + } + sq.exec(); + + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + } + QSqlDatabase::database().commit(); + } + else if(line.startsWith("setCurrentValue(row); + else + progress.setValue(row); + } + // Save songbook + sdb.addSongbook(xtitle,xinfo); + + // Set Songbook Code + code = "0"; + sq1.exec("SELECT seq FROM sqlite_sequence WHERE name = 'Songbooks'"); + sq1.first(); + code = sq1.value(0).toString(); + + xml.readNext(); + } + else if (xml.StartElement && xml.name() == "Song") + { + QString xnum,xtitle,xcat,xtune,xwords,xmusic,xtext,xnotes, + xuse,xalign,xcolor,xfont,xback,xcount,xdate; + // Read song data + xnum = xml.attributes().value("number").toString(); + xml.readNext(); + while(xml.tokenString() != "EndElement") + { + xml.readNext(); + if(xml.StartElement && xml.name() == "title") + { + xtitle = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "category") + { + xcat = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "tune") + { + xtune = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "words") + { + xwords = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "music") + { + xmusic = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "song_text") + { + xtext = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "notes") + { + xnotes = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "use_private") + { + xuse = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "alignment") + { + xalign = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "color") + { + xcolor = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "font") + { + xfont = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "background") + { + xback = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "count") + { + xcount = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "date") + { + xdate = xml.readElementText(); + xml.readNext(); + } + } + // Save song + sq.addBindValue(code); + sq.addBindValue(xnum); + sq.addBindValue(xtitle); + sq.addBindValue(xcat); + sq.addBindValue(xtune); + sq.addBindValue(xwords); + sq.addBindValue(xmusic); + if(xtext.contains(QRegExp("@$|@%"))) + xtext = cleanSongLines(xtext); + sq.addBindValue(xtext); + sq.addBindValue(xnotes); + sq.addBindValue(xuse); + if(xalign.contains(",")) + { + QStringList l = xalign.split(","); + sq.addBindValue(l.at(0)); + sq.addBindValue(l.at(1)); + } + else + { + sq.addBindValue(1); + sq.addBindValue(1); + } + sq.addBindValue(xcolor); + sq.addBindValue(xfont); + sq.addBindValue(xback); + sq.addBindValue(xcount); + sq.addBindValue(xdate); + sq.exec(); + + row += 16; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + xml.readNext(); + } + }// end while xml.tokenString() != "EndElement" && xml.name() != "spSongBook" + QSqlDatabase::database().commit(); + }// end correct version + } // end if xml name is spSongBook + } + } + else if(line.startsWith("SQLite")) // SQLITE database file + { + file.close(); + sq.clear(); + { + QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","sps"); + db.setDatabaseName(path); + if(db.open()) + { + QSqlQuery q(db); + q.exec("PRAGMA user_version"); + q.first(); + int spsVer = q.value(0).toInt(); + if(spsVer == 2) + { + max = row = 0; + q.exec("SELECT number FROM Songs"); + while(q.next()) + ++max; + if(importType == "down") + { + progressDia->setCurrentMax(max); + progress.close(); + } + else + { + progress.setMaximum(max); + progress.show(); + } + + QSqlDatabase::database().transaction(); + // Prepare and save songbook + q.exec("SELECT title, info from SongBook"); + q.first(); + sq.prepare("INSERT INTO Songbooks (name,info) VALUES(?,?)"); + sq.addBindValue(q.value(0)); + sq.addBindValue(q.value(1)); + sq.exec(); + sq.clear(); + sq.exec("SELECT seq FROM sqlite_sequence WHERE name = 'Songbooks'"); + sq.first(); + int sbookid = sq.value(0).toInt(); + + // Get and insert songs + q.exec("SELECT * FROM Songs"); + sq.prepare("INSERT INTO Songs (songbook_id,number,title,category,tune,words,music,song_text,notes," + "use_private,alignment_v,alignment_h,color,font,info_color,info_font,ending_color," + "ending_font,use_background,background_name,background,count,date) " + "VALUES(:id, :num, :ti, :ca, :tu, :wo, :mu, :st, :no, :up, :av, :ah, :tc, :tf, " + ":ic, :if, :ec, :ef, :ub, :bn, :b, :ct, :d)"); + while(q.next()) + { + sq.bindValue(":id",sbookid); + sq.bindValue(":num",q.record().value("number")); + sq.bindValue(":ti",q.record().value("title")); + sq.bindValue(":ca",q.record().value("category")); + sq.bindValue(":tu",q.record().value("tune")); + sq.bindValue(":wo",q.record().value("words")); + sq.bindValue(":mu",q.record().value("music")); + QString st = q.record().value("song_text").toString(); + if(st.contains(QRegExp("@$|@%"))) + st = cleanSongLines(st); + sq.bindValue(":st",st); + sq.bindValue(":no",q.record().value("notes")); + sq.bindValue(":up",q.record().value("use_private")); + sq.bindValue(":av",q.record().value("alignment_v")); + sq.bindValue(":ah",q.record().value("alignment_h")); + sq.bindValue(":tc",q.record().value("color")); + sq.bindValue(":tf",q.record().value("font")); + sq.bindValue(":ic",q.record().value("info_color")); + sq.bindValue(":if",q.record().value("info_font")); + sq.bindValue(":ec",q.record().value("ending_color")); + sq.bindValue(":ef",q.record().value("ending_font")); + sq.bindValue(":ub",q.record().value("use_background")); + sq.bindValue(":bn",q.record().value("background_name")); + sq.bindValue(":b",q.record().value("background")); + sq.bindValue(":ct",q.record().value("count")); + sq.bindValue(":d",q.record().value("date")); + sq.exec(); + + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + } + progress.close(); + + QSqlDatabase::database().commit(); + } + else if(spsVer > 2) + { + QString errorm = tr("The SongBook file you are opening, is of a later release and \n" + "is not supported by current version of SoftProjector.\n" + "You are trying to open SongBook version %1.\n" + "Please upgrade to latest version of SoftProjector and try again.").arg(spsVer); + if(importType == "down") + progressDia->appendText(errorm); + else + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Unsupported SongBook version.")); + mb.setText(errorm); + mb.setIcon(QMessageBox::Information); + mb.exec(); + } + } + else + { + QString errorm = tr("The SongBook file you are opening, is not supported \n" + "by current version of SoftProjector.\n"); + if(importType == "down") + progressDia->appendText(errorm); + else + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Unsupported SongBook version.")); + mb.setText(errorm); + mb.setIcon(QMessageBox::Information); + mb.exec(); + } + } + } + } + QSqlDatabase::removeDatabase("sps"); + } + else// too old file format. + { + //User friednly box for incorrect file version + QString errorm = tr("The SongBook file you are opening, is in very old format\n" + "and is no longer supported by current version of SoftProjector.\n" + "You may try to import it with version 1.07 and then export it, and import it again."); + if(importType == "down") + progressDia->appendText(errorm); + else + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Too old SongBook file format")); + mb.setText(errorm); + mb.setIcon(QMessageBox::Information); + mb.exec(); + } + } + } + + if(importType == "local") + load_songbooks(); + setArrowCursor(); + importModules(); +} + +void ManageDataDialog::on_export_songbook_pushButton_clicked() +{ + QString file_path = QFileDialog::getSaveFileName(this,tr("Save the songbook as:"), + ".",tr("SoftProjector songbook file (*.sps)")); + if(!file_path.isEmpty()) + { + if(!file_path.endsWith(".sps")) + file_path = file_path + ".sps"; + exportSongbook(file_path); + } +} + +void ManageDataDialog::exportSongbook(QString path) +{ + setWaitCursor(); + int row = ui->songbookTableView->currentIndex().row(); + QString songbook_id = songbook_model->getSongbook(row).songbookId; + QSqlQuery sq; + QString title; + + // First Delete file if one already exists + if(QFile::exists(path)) + { + if(!QFile::remove(path)) + { + QMessageBox mb(this); + mb.setText(tr("An error has ocured when overwriting existing file.\n" + "Please try again with different file name.")); + mb.setIcon(QMessageBox::Information); + mb.setStandardButtons(QMessageBox::Ok); + mb.exec(); + return; + } + } + + { + // Prepare SQLite songbook database file + QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","sps"); + db.setDatabaseName(path); + if(db.open()) + { + db.transaction(); + QSqlQuery q(db); + q.exec("PRAGMA user_version = 2"); + q.exec("CREATE TABLE 'SongBook' ('title' TEXT, 'info' TEXT)"); + q.exec("CREATE TABLE 'Songs' ('number' INTEGER, 'title' TEXT, 'category' INTEGER DEFAULT 0, " + "'tune' TEXT, 'words' TEXT, 'music' TEXT, 'song_text' TEXT, 'notes' TEXT, " + "'use_private' BOOL, 'alignment_v' INTEGER, 'alignment_h' INTEGER, 'color' INTEGER, 'font' TEXT, " + "'info_color' INTEGER, 'info_font' TEXT, 'ending_color' INTEGER, 'ending_font' TEXT, " + "'use_background' BOOL, 'background_name' TEXT, 'background' BLOB, 'count' INTEGER DEFAULT 0, 'date' TEXT)"); + + // Get/Write SongBook information + sq.exec("SELECT name, info FROM Songbooks WHERE id = " + songbook_id); + sq.first(); + + q.prepare("INSERT INTO SongBook (title,info) VALUES(?,?)"); + q.addBindValue(sq.value(0)); + q.addBindValue(sq.value(1)); + q.exec(); + q.clear(); + title = sq.value(0).toString(); + sq.clear(); + + // Write Songs + sq.exec("SELECT * FROM Songs WHERE songbook_id = " + songbook_id); + q.prepare("INSERT INTO Songs (number,title,category,tune,words,music,song_text,notes," + "use_private,alignment_v,alignment_h,color,font,info_color,info_font,ending_color,ending_font," + "use_background,background_name,background,count,date) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + while(sq.next()) + { + q.addBindValue(sq.record().value("number")); + q.addBindValue(sq.record().value("title")); + q.addBindValue(sq.record().value("category")); + q.addBindValue(sq.record().value("tune")); + q.addBindValue(sq.record().value("words")); + q.addBindValue(sq.record().value("music")); + q.addBindValue(sq.record().value("song_text")); + q.addBindValue(sq.record().value("notes")); + q.addBindValue(sq.record().value("use_private")); + q.addBindValue(sq.record().value("alignment_v")); + q.addBindValue(sq.record().value("alignment_h")); + q.addBindValue(sq.record().value("color")); + q.addBindValue(sq.record().value("font")); + q.addBindValue(sq.record().value("info_color")); + q.addBindValue(sq.record().value("info_font")); + q.addBindValue(sq.record().value("ending_color")); + q.addBindValue(sq.record().value("ending_font")); + q.addBindValue(sq.record().value("use_background")); + q.addBindValue(sq.record().value("background_name")); + q.addBindValue(sq.record().value("background")); + q.addBindValue(sq.record().value("count")); + q.addBindValue(sq.record().value("date")); + q.exec(); + } + db.commit(); + } + } + QSqlDatabase::removeDatabase("sps"); + + setArrowCursor(); + + QMessageBox mb(this); + mb.setWindowTitle(tr("Export complete")); + mb.setText(tr("The songbook \"") + title + tr("\"\nHas been saved to:\n ") + path); + mb.setIcon(QMessageBox::Information); + mb.exec(); +} + +void ManageDataDialog::on_delete_songbook_pushButton_clicked() +{ + int row = ui->songbookTableView->currentIndex().row(); + Songbook songbook = songbook_model->getSongbook(row); + QString name = songbook.title; + + QMessageBox ms(this); + ms.setWindowTitle(tr("Delete songbook?")); + ms.setText(tr("Are you sure that you want to delete: ")+ name); + ms.setInformativeText(tr("This action will permanentrly delete this songbook")); + ms.setIcon(QMessageBox::Question); + ms.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + ms.setDefaultButton(QMessageBox::Yes); + int ret = ms.exec(); + + switch (ret) { + case QMessageBox::Yes: + // Delete a songbook + deleteSongbook(songbook); + break; + case QMessageBox::No: + // Cancel was clicked + break; + default: + // should never be reached + break; + } +} + +void ManageDataDialog::deleteSongbook(Songbook songbook) +{ + setWaitCursor(); + reload_songbook = true; + QSqlQuery sq; + QString id = songbook.songbookId.trimmed(); + + // Delete from Songbook Table + sq.exec("DELETE FROM Songbooks WHERE id = '" + id + "'"); + sq.clear(); + + // Delete from Songs Table + sq.exec("DELETE FROM Songs WHERE songbook_id = '" + id +"'"); + + load_songbooks(); + updateSongbookButtons(); + setArrowCursor(); +} + +void ManageDataDialog::on_ok_pushButton_clicked() +{ + close(); +} + +void ManageDataDialog::on_import_bible_pushButton_clicked() +{ + QString file_path = QFileDialog::getOpenFileName(this, + tr("Select Bible file to import"), + ".",tr("SoftProjector Bible file ") + "(*.spb)"); + + importType = "local"; + // if file_path exits or "Open" is clicked, then import Bible + if( !file_path.isNull() ) + importBible(file_path); +} + +void ManageDataDialog::importBible(QString path) +{ + setWaitCursor(); + QFile file; + file.setFileName(path); + QString version; + QString line , title, abbr, info, rtol, id; + QStringList split; + QSqlQuery sq; + int row(0); + + if (file.open(QIODevice::ReadOnly)) + { + line = QString::fromUtf8(file.readLine()); // read version + // check file format and version + if (!line.startsWith("##spData")) // Old bible format verison + { + QString errorm = tr("The Bible format you are importing is of an usupported file version.\n" + "Your current SoftProjector version does not support this format."); + if(importType == "down") + progressDia->appendText(errorm); + else + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Unsupported Bible file format")); + mb.setText(errorm); + mb.setIcon(QMessageBox::Critical); + mb.exec(); + } + file.close(); + return; + } + else if (line.startsWith("##spData")) //New bible format version + { + split = line.split("\t"); + version = split.at(1); + if (version.trimmed() != "1") // Version 1 + { + QString errorm = tr("The Bible format you are importing is of an new version.\n" + "Your current SoftProjector does not support this format.\n" + "Please upgrade SoftProjector to latest version."); + if(importType == "down") + progressDia->appendText(errorm); + else + { + QMessageBox mb(this); + mb.setWindowTitle(tr("New Bible file format")); + mb.setText(errorm); + mb.setIcon(QMessageBox::Critical); + mb.exec(); + } + file.close(); + return; + } + } + else + { + file.close(); + return; + } + + line = QString::fromUtf8(file.readLine()); // read title + split = line.split("\t"); + title = split.at(1); + line = QString::fromUtf8(file.readLine()); // read abbreviation + split = line.split("\t"); + abbr = split.at(1); + line = QString::fromUtf8(file.readLine()); // read info + split = line.split("\t"); + info = split.at(1); + // Convert bible information from single line to multiple line + QStringList info_list = info.split("@%"); + info.clear(); + for(int i(0); isetCurrentMax(31200); + progressDia->setCurrentValue(row); + } + else + progress.setValue(row); + + // add Bible Name and information + QSqlDatabase::database().transaction(); + sq.prepare("INSERT INTO BibleVersions (bible_name, abbreviation, information, right_to_left) VALUES (?,?,?,?)"); + sq.addBindValue(title.trimmed()); + sq.addBindValue(abbr.trimmed()); + sq.addBindValue(info.trimmed()); + sq.addBindValue(rtol.trimmed()); + sq.exec(); + QSqlDatabase::database().commit(); + sq.clear(); + + // get Bible id of newly added Bible + sq.exec("SELECT seq FROM sqlite_sequence WHERE name = 'BibleVersions'"); + sq.first() ; + id = sq.value(0).toString(); + sq.clear(); + + // If this bible is the first bible, reload bibles + if (id.trimmed() == "1") + reload_bible = true; + + // add Bible book names + line = QString::fromUtf8(file.readLine()); + QSqlDatabase::database().transaction(); + sq.prepare("INSERT INTO BibleBooks (bible_id, id, book_name, chapter_count) VALUES (?,?,?,?)"); + while (!line.startsWith("---")) + { + QString bk_id, bk_name, ch_count; + split = line.split("\t"); + bk_id = split.at(0); + bk_name = split.at(1); + ch_count = split.at(2); + + sq.addBindValue(id); + sq.addBindValue(bk_id.trimmed()); + sq.addBindValue(bk_name.trimmed()); + sq.addBindValue(ch_count.trimmed()); + sq.exec(); + + line = QString::fromUtf8(file.readLine()); + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + } + QSqlDatabase::database().commit(); + sq.clear(); + + // add bible verses + QSqlDatabase::database().transaction(); + sq.prepare("INSERT INTO BibleVerse (verse_id, bible_id, book, chapter, verse, verse_text)" + "VALUES (?,?,?,?,?,?)"); + while (!file.atEnd()) + { + if (progress.wasCanceled() && importType == "local") + break; + + line = QString::fromUtf8(file.readLine()); + split = line.split("\t"); + sq.addBindValue(split.at(0)); + sq.addBindValue(id); + sq.addBindValue(split.at(1)); + sq.addBindValue(split.at(2)); + sq.addBindValue(split.at(3)); + sq.addBindValue(split.at(4)); + sq.exec(); + + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + } + QSqlDatabase::database().commit(); + + file.close(); + } + + if(importType == "local") + load_bibles(); + setArrowCursor(); + importModules(); +} + +void ManageDataDialog::on_export_bible_pushButton_clicked() +{ + int row = ui->bibleTableView->currentIndex().row(); + Bibles bible = bible_model->getBible(row); + + QString file_path = QFileDialog::getSaveFileName(this,tr("Save exported Bible as:"), + clean(bible.title), + tr("SoftProjector Bible file ") + "(*.spb)"); + if(!file_path.isEmpty()) + { + if(!file_path.endsWith(".spb")) + file_path = file_path + ".spb"; + exportBible(file_path,bible); + } +} + +void ManageDataDialog::exportBible(QString path, Bibles bible) +{ + setWaitCursor(); + QProgressDialog progress(tr("Exporting..."), tr("Cancel"), 0, 31000, this); + int p(1); + progress.setValue(p); + + QSqlQuery sq; + QString id = bible.bibleId; + QString to_file = "##spDataVersion:\t1\n"; // SoftProjector bible file version number is 1 as of 2/26/2011 + + QString title, abbr, info, rtol; + + // get Bible version information + sq.exec("SELECT bible_name, abbreviation, information, right_to_left FROM BibleVersions WHERE id = " + id ); + sq.first(); + title = sq.value(0).toString().trimmed(); + abbr = sq.value(1).toString().trimmed(); + info = sq.value(2).toString().trimmed(); + rtol = sq.value(3).toString().trimmed(); + sq.clear(); + + // Convert bible information from multiline to single line + QStringList info_list = info.split("\n"); + info = info_list[0]; + qDebug()<< QString::number(info_list.size()); + for(int i(1); ibibleTableView->currentIndex().row(); + Bibles bible = bible_model->getBible(row); + QString name = bible.title; + + QMessageBox ms(this); + ms.setWindowTitle(tr("Delete Bible?")); + ms.setText(tr("Are you sure that you want to delete: ")+ name); + ms.setInformativeText(tr("This action will permanentrly delete this Bible")); + ms.setIcon(QMessageBox::Question); + ms.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + ms.setDefaultButton(QMessageBox::Yes); + int ret = ms.exec(); + + switch (ret) { + case QMessageBox::Yes: + // Delete a Bible + deleteBible(bible); + break; + case QMessageBox::No: + // Cancel was clicked + break; + default: + // should never be reached + break; + } +} + +void ManageDataDialog::deleteBible(Bibles bible) +{ + setWaitCursor(); + reload_bible = true; + QSqlQuery sq; + QString id = bible.bibleId.trimmed(); + + // Delete from BibleBooks Table + sq.exec("DELETE FROM BibleBooks WHERE bible_id = '" + id + "'"); + sq.clear(); + + // Delete form BibleVerse Table + sq.exec("DELETE FROM BibleVerse WHERE bible_id = '" + id +"'"); + sq.clear(); + + // Delete from BibleVersions Table + sq.clear(); + sq.exec("DELETE FROM BibleVersions WHERE id = '" + id +"'"); + + load_bibles(); + setArrowCursor(); +} + +void ManageDataDialog::on_edit_songbook_pushButton_clicked() +{ + int row = ui->songbookTableView->currentIndex().row(); + Songbook songbook = songbook_model->getSongbook(row); + QSqlTableModel sq; + QSqlRecord sr; + + AddSongbookDialog songbook_dialog; + songbook_dialog.setWindowTitle(tr("Edit Songbook")); + songbook_dialog.setSongbook(songbook.title,songbook.info); + int ret = songbook_dialog.exec(); + switch(ret) + { + case AddSongbookDialog::Accepted: + reload_songbook = true; + sq.setTable("Songbooks"); + sq.setFilter("id = " + songbook.songbookId); + sq.select(); + sr = sq.record(0); + sr.setValue(1,songbook_dialog.title.trimmed()); + sr.setValue(2,songbook_dialog.info.trimmed()); + sq.setRecord(0,sr); + sq.submitAll(); + break; + case AddSongbookDialog::Rejected: + break; + } + + load_songbooks(); +} + +void ManageDataDialog::on_edit_bible_pushButton_clicked() +{ + int row = ui->bibleTableView->currentIndex().row(); + Bibles bible = bible_model->getBible(row); + QSqlTableModel sq; + QSqlRecord sr; + int r(0); + + BibleInformationDialog bible_info; + bible_info.setBibleIformation(bible.title,bible.abbr,bible.info,bible.isRtoL); + + int ret = bible_info.exec(); + switch(ret) + { + case BibleInformationDialog::Accepted: + sq.setTable("BibleVersions"); + sq.setFilter("id = " + bible.bibleId.trimmed()); + sq.select(); + sr = sq.record(0); + sr.setValue(1,bible_info.title.trimmed()); + sr.setValue(2,bible_info.abbr.trimmed()); + sr.setValue(3,bible_info.info.trimmed()); + if(!bible_info.isRtoL) + r = 0; + else if (bible_info.isRtoL) + r = 1; + sr.setValue(4,r); + sq.setRecord(0,sr); + sq.submitAll(); + break; + case BibleInformationDialog::Rejected: + break; + } + + load_bibles(); +} + +void ManageDataDialog::on_bibleTableView_clicked(QModelIndex index) +{ + updateBibleButtons(); +} + +void ManageDataDialog::on_songbookTableView_clicked(QModelIndex index) +{ + updateSongbookButtons(); +} + +void ManageDataDialog::setArrowCursor() +{ + this->setCursor(Qt::ArrowCursor); + emit setMainArrowCursor(); +} + +void ManageDataDialog::setWaitCursor() +{ + this->setCursor(Qt::WaitCursor); + emit setMainWaitCursor(); +} + +QString ManageDataDialog::getVerseId(QString book, QString chapter, QString verse) +{ + QString id; + id = "B" + get3(book.toInt()) + "C" + get3(chapter.toInt()) + "V" + get3(verse.toInt()); + return id; +} + +QString ManageDataDialog::get3(int i) +{ + QString st; + if (i>=100) + { + st = st.number(i); + } + else if (i>=10) + { + st = "0" + st.number(i); + } + else + { + st = "00" + st.number(i); + } + return st; +} + +void ManageDataDialog::toMultiLine(QString &mline) +{ + QStringList line_list = mline.split("@%"); + mline.clear(); + for(int i(0); isetCurrentMax(max); + else + { + progress.setMaximum(max); + progress.setLabelText(tr("Importing Themes...")); + progress.show(); + } + QSqlDatabase::database().transaction(); + // Get Themes + q.exec("SELECT id, name, comment FROM Themes"); + while(q.next()) + { + sq.prepare("INSERT INTO Themes (name,comment) VALUES(?,?)"); + int spitidFrom = q.value(0).toInt(); + sq.addBindValue(q.value(1)); + sq.addBindValue(q.value(2)); + sq.exec(); + sq.clear(); + sq.exec("SELECT seq FROM sqlite_sequence WHERE name = 'Themes'"); + sq.first(); + int sptidTo = sq.value(0).toInt(); + sq.clear(); + + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + + // Import Announce Theme + q2.exec(QString("SELECT * FROM ThemeAnnounce WHERE theme_id = %1").arg(spitidFrom)); + transferThemeAnnounce(q2,sq,sptidTo); + + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + + // Import Bible Theme + q2.exec(QString("SELECT * FROM ThemeBible WHERE theme_id = %1").arg(spitidFrom)); + transferThemeBible(q2,sq,sptidTo); + + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + + // Import Passive Theme + q2.exec(QString("SELECT * FROM ThemePassive WHERE theme_id = %1").arg(spitidFrom)); + transferThemePassive(q2,sq,sptidTo); + + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + + // Import Songs Theme + q2.exec(QString("SELECT * FROM ThemeSong WHERE theme_id = %1").arg(spitidFrom)); + transferThemeSong(q2,sq,sptidTo); + + ++row; + if(importType == "down") + progressDia->setCurrentValue(row); + else + progress.setValue(row); + } + QSqlDatabase::database().commit(); + } + else if(sptVer > 2) + { + QString errorm = tr("The Theme file you are opening, is of a later release and \n" + "is not supported by current version of SoftProjector.\n" + "You are trying to open Theme version %1.\n" + "Please upgrade to latest version of SoftProjector and try again.").arg(sptVer); + if(importType == "down") + progressDia->appendText(errorm); + else + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Unsupported Theme version.")); + mb.setText(errorm); + mb.setIcon(QMessageBox::Information); + mb.exec(); + } + } + else + { + QString errorm = tr("The Theme file you are opening, is not supported \n" + "by current version of SoftProjector.\n"); + if(importType == "down") + progressDia->appendText(errorm); + else + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Unsupported Theme version.")); + mb.setText(errorm); + mb.setIcon(QMessageBox::Information); + mb.exec(); + } + } + setArrowCursor(); + progress.close(); + } + } + QSqlDatabase::removeDatabase("spt"); + + loadThemes(); + importModules(); +} + +void ManageDataDialog::on_pushButtonThemeEdit_clicked() +{ + int row = ui->TableViewTheme->currentIndex().row(); + ThemeInfo theme = themeModel->getTheme(row); + QSqlQuery sq; + + AddSongbookDialog theme_dia; + theme_dia.setWindowTitle(tr("Edit Theme")); + theme_dia.setWindowText(tr("Theme Name:"),tr("Comments:")); + theme_dia.setSongbook(theme.name,theme.comments); + int ret = theme_dia.exec(); + switch(ret) + { + case AddSongbookDialog::Accepted: + reloadThemes = true; + sq.prepare("UPDATE Themes SET name = ?, comment = ? WHERE id = ?"); + sq.addBindValue(theme_dia.title); + sq.addBindValue(theme_dia.info); + sq.addBindValue(theme.themeId); + sq.exec(); + loadThemes(); + break; + case AddSongbookDialog::Rejected: + break; + } +} + +void ManageDataDialog::on_pushButtonThemeExport_clicked() +{ + int row = ui->TableViewTheme->currentIndex().row(); + ThemeInfo tmInfo = themeModel->getTheme(row); + + QString file_path = QFileDialog::getSaveFileName(this,tr("Export Theme as:"), + clean(tmInfo.name), + tr("SoftProjector Theme file ") + "(*.spt)"); + if(!file_path.isEmpty()) + { + if(!file_path.endsWith(".spt")) + file_path = file_path + ".spt"; + exportTheme(file_path,false); + } +} + +void ManageDataDialog::on_pushButtonThemeExportAll_clicked() +{ + QString file_path = QFileDialog::getSaveFileName(this,tr("Export all theme as:"), + ".", tr("softProjector Theme file ") + "(*.spt)"); + if(!file_path.isEmpty()) + { + if(!file_path.endsWith(".spt")) + file_path = file_path + ".spt"; + exportTheme(file_path,true); + } +} + +void ManageDataDialog::exportTheme(QString path, bool all) +{ + // Delete Existing File + bool db_exist = QFile::exists(path); + if(db_exist) + { + if(!QFile::remove(path)) + { + QMessageBox mb(this); + mb.setText(tr("An error has ocured when overwriting existing file.\n" + "Please try again with different file name.")); + mb.setIcon(QMessageBox::Information); + mb.setStandardButtons(QMessageBox::Ok); + mb.exec(); + return; + } + } + + setWaitCursor(); + QProgressDialog progress; + progress.setMaximum(5); + progress.setLabelText(tr("Exporting Themes...")); + progress.setValue(0); + progress.show(); + + // Create new Theme DB + { + QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","spt"); + db.setDatabaseName(path); + if(db.open()) + { + db.transaction(); + QSqlQuery sqf; + QSqlQuery sqt(db); + sqt.exec("PRAGMA user_version = 2"); + sqt.exec("CREATE TABLE 'ThemeAnnounce' ('theme_id' INTEGER, 'disp' INTEGER, 'use_shadow' BOOL, " + "'use_fading' BOOL, 'use_blur_shadow' BOOL, 'use_background' BOOL, 'background_name' TEXT, " + "'background' BLOB, 'text_font' TEXT, 'text_color' INTEGER, 'text_align_v' INTEGER, " + "'text_align_h' INTEGER, 'use_disp_2' BOOL)"); + sqt.exec("CREATE TABLE 'ThemeBible' ('theme_id' INTEGER, 'disp' INTEGER, 'use_shadow' BOOL, " + "'use_fading' BOOL, 'use_blur_shadow' BOOL, 'use_background' BOOL, 'background_name' TEXT, " + "'background' BLOB, 'text_font' TEXT, 'text_color' INTEGER, 'text_align_v' INTEGER, " + "'text_align_h' INTEGER, 'caption_font' TEXT, 'caption_color' INTEGER, 'caption_align' INTEGER, " + "'caption_position' INTEGER, 'use_abbr' BOOL, 'screen_use' INTEGER, 'screen_position' INTEGER, " + "'use_disp_2' BOOL)"); + sqt.exec("CREATE TABLE 'ThemePassive' ('theme_id' INTEGER, 'disp' INTEGER, 'use_background' BOOL, " + "'background_name' TEXT, 'background' BLOB, 'use_disp_2' BOOL)"); + sqt.exec("CREATE TABLE 'ThemeSong' ('theme_id' INTEGER, 'disp' INTEGER, 'use_shadow' BOOL, 'use_fading' BOOL, " + "'use_blur_shadow' BOOL, 'show_stanza_title' BOOL, 'show_key' BOOL, 'show_number' BOOL, " + "'info_color' INTEGER, 'info_font' TEXT, 'info_align' INTEGER, 'show_song_ending' BOOL, " + "'ending_color' INTEGER, 'ending_font' TEXT, 'ending_type' INTEGER, 'ending_position' INTEGER, " + "'use_background' BOOL, 'background_name' TEXT, 'background' BLOB, 'text_font' TEXT, " + "'text_color' INTEGER, 'text_align_v' INTEGER, 'text_align_h' INTEGER, " + "'screen_use' INTEGER, 'screen_position' INTEGER, 'use_disp_2' BOOL)"); + sqt.exec("CREATE TABLE 'Themes' ('id' INTEGER , 'name' TEXT, 'comment' TEXT)"); + + if(all) + { + // Export Theme + sqf.exec("SELECT * FROM Themes"); + transferTheme(sqf,sqt); + progress.setValue(1); + + // Export Announce Theme + sqf.exec("SELECT * FROM ThemeAnnounce"); + transferThemeAnnounce(sqf,sqt,-1); + progress.setValue(2); + + // Export Bible Theme + sqf.exec("SELECT * FROM ThemeBible"); + transferThemeBible(sqf,sqt,-1); + progress.setValue(3); + + // Export Passive Theme + sqf.exec("SELECT * FROM ThemePassive"); + transferThemePassive(sqf,sqt,-1); + progress.setValue(4); + + // Export Songs Theme + sqf.exec("SELECT * FROM ThemeSong"); + transferThemeSong(sqf,sqt,-1); + progress.setValue(5); + } + else + { + int row = ui->TableViewTheme->currentIndex().row(); + ThemeInfo tmInfo = themeModel->getTheme(row); + + // Export Theme + sqf.exec(QString("SELECT * FROM Themes WHERE id = %1").arg(tmInfo.themeId)); + transferTheme(sqf,sqt); + progress.setValue(1); + + // Export Announce Theme + sqf.exec(QString("SELECT * FROM ThemeAnnounce WHERE theme_id = %1").arg(tmInfo.themeId)); + transferThemeAnnounce(sqf,sqt,-1); + progress.setValue(2); + + // Export Bible Theme + sqf.exec(QString("SELECT * FROM ThemeBible WHERE theme_id = %1").arg(tmInfo.themeId)); + transferThemeBible(sqf,sqt,-1); + progress.setValue(3); + + // Export Passive Theme + sqf.exec(QString("SELECT * FROM ThemePassive WHERE theme_id = %1").arg(tmInfo.themeId)); + transferThemePassive(sqf,sqt,-1); + progress.setValue(4); + + // Export Songs Theme + sqf.exec(QString("SELECT * FROM ThemeSong WHERE theme_id = %1").arg(tmInfo.themeId)); + transferThemeSong(sqf,sqt,-1); + progress.setValue(5); + } + db.commit(); + } + } + QSqlDatabase::removeDatabase("spt"); + setArrowCursor(); +} + +void ManageDataDialog::transferTheme(QSqlQuery &sqf, QSqlQuery &sqt) +{ + sqt.prepare("INSERT INTO Themes (id, name, comment) VALUES(:id, :na, :co)"); + + while(sqf.next()) + { + sqt.bindValue(":id",sqf.record().value("id")); + sqt.bindValue(":na",sqf.record().value("name")); + sqt.bindValue(":co",sqf.record().value("comment")); + sqt.exec(); + } +} + +void ManageDataDialog::transferThemeAnnounce(QSqlQuery &sqf, QSqlQuery &sqt, int tmId) +{ + sqt.prepare("INSERT INTO ThemeAnnounce (theme_id, disp, use_shadow, use_fading, use_blur_shadow, use_background, " + "background_name, background, text_font, text_color, text_align_v, text_align_h, use_disp_2) " + "VALUES(:id, :di, :us, :uf, :uu, :ub, :bn, :ba, :tf, :tc, :av, :ah, :ud)"); + + while(sqf.next()) + { + if(tmId > 0) + sqt.bindValue(":id",tmId); + else + sqt.bindValue(":id",sqf.record().value("theme_id")); + sqt.bindValue(":di",sqf.record().value("disp")); + sqt.bindValue(":us",sqf.record().value("use_shadow")); + sqt.bindValue(":uf",sqf.record().value("use_fading")); + sqt.bindValue(":uu",sqf.record().value("use_blur_shadow")); + sqt.bindValue(":ub",sqf.record().value("use_background")); + sqt.bindValue(":bn",sqf.record().value("background_name")); + sqt.bindValue(":ba",sqf.record().value("background")); + sqt.bindValue(":tf",sqf.record().value("text_font")); + sqt.bindValue(":tc",sqf.record().value("text_color")); + sqt.bindValue(":av",sqf.record().value("text_align_v")); + sqt.bindValue(":ah",sqf.record().value("text_align_h")); + sqt.bindValue(":ud",sqf.record().value("use_disp_2")); + sqt.exec(); + } +} + +void ManageDataDialog::transferThemeBible(QSqlQuery &sqf, QSqlQuery &sqt, int tmId) +{ + sqt.prepare("INSERT INTO ThemeBible (theme_id, disp, use_shadow, use_fading, use_blur_shadow, use_background, " + "background_name, background, text_font, text_color, text_align_v, text_align_h, caption_font, " + "caption_color, caption_align, caption_position, use_abbr, screen_use, screen_position, use_disp_2) " + "VALUES(:id, :di, :us, :uf, :uu, :ub, :bn, :ba, :tf, :tc, :av, :ah, :cf, :cc, :ca, :cp, " + ":ua, :su, :sp, :ud)"); + + while(sqf.next()) + { + if(tmId > 0) + sqt.bindValue(":id",tmId); + else + sqt.bindValue(":id",sqf.record().value("theme_id")); + sqt.bindValue(":di",sqf.record().value("disp")); + sqt.bindValue(":us",sqf.record().value("use_shadow")); + sqt.bindValue(":uf",sqf.record().value("use_fading")); + sqt.bindValue(":uu",sqf.record().value("use_blur_shadow")); + sqt.bindValue(":ub",sqf.record().value("use_background")); + sqt.bindValue(":bn",sqf.record().value("background_name")); + sqt.bindValue(":ba",sqf.record().value("background")); + sqt.bindValue(":tf",sqf.record().value("text_font")); + sqt.bindValue(":tc",sqf.record().value("text_color")); + sqt.bindValue(":av",sqf.record().value("text_align_v")); + sqt.bindValue(":ah",sqf.record().value("text_align_h")); + sqt.bindValue(":cf",sqf.record().value("caption_font")); + sqt.bindValue(":cc",sqf.record().value("caption_color")); + sqt.bindValue(":ca",sqf.record().value("caption_align")); + sqt.bindValue(":cp",sqf.record().value("caption_position")); + sqt.bindValue(":ua",sqf.record().value("use_abbr")); + sqt.bindValue(":su",sqf.record().value("screen_use")); + sqt.bindValue(":sp",sqf.record().value("screen_position")); + sqt.bindValue(":ud",sqf.record().value("use_disp_2")); + sqt.exec(); + } +} + +void ManageDataDialog::transferThemePassive(QSqlQuery &sqf, QSqlQuery &sqt, int tmId) +{ + sqt.prepare("INSERT INTO ThemePassive (theme_id, disp, use_background, background_name, background, use_disp_2) " + "VALUES(:id, :di, :ub, :bn, :ba, :ud)"); + + while(sqf.next()) + { + if(tmId > 0) + sqt.bindValue(":id",tmId); + else + sqt.bindValue(":id",sqf.record().value("theme_id")); + sqt.bindValue(":di",sqf.record().value("disp")); + sqt.bindValue(":ub",sqf.record().value("use_background")); + sqt.bindValue(":bn",sqf.record().value("background_name")); + sqt.bindValue(":ba",sqf.record().value("background")); + sqt.bindValue(":ud",sqf.record().value("use_disp_2")); + sqt.exec(); + } +} + +void ManageDataDialog::transferThemeSong(QSqlQuery &sqf, QSqlQuery &sqt, int tmId) +{ + sqt.prepare("INSERT INTO ThemeSong (theme_id, disp, use_shadow, use_fading, use_blur_shadow, show_stanza_title, " + "show_key, show_number, info_color, info_font, info_align, show_song_ending, ending_color, ending_font, " + "ending_type, ending_position, use_background, background_name, background, text_font, text_color, " + "text_align_v, text_align_h, screen_use, screen_position, use_disp_2) " + "VALUES(:id, :di, :us, :uf, :uu, :ss, :sk, :sn, :ic, :if, :ia, :se, :ec, :ef, :et, :ep, " + ":ub, :bn, :ba, :tf, :tc, :av, :ah, :su, :sp, :ud)"); + + while(sqf.next()) + { + if(tmId > 0) + sqt.bindValue(":id",tmId); + else + sqt.bindValue(":id",sqf.record().value("theme_id")); + sqt.bindValue(":di",sqf.record().value("disp")); + sqt.bindValue(":us",sqf.record().value("use_shadow")); + sqt.bindValue(":uf",sqf.record().value("use_fading")); + sqt.bindValue(":uu",sqf.record().value("use_blur_shadow")); + sqt.bindValue(":ss",sqf.record().value("show_stanza_title")); + sqt.bindValue(":sk",sqf.record().value("show_key")); + sqt.bindValue(":sn",sqf.record().value("show_number")); + sqt.bindValue(":ic",sqf.record().value("info_color")); + sqt.bindValue(":if",sqf.record().value("info_font")); + sqt.bindValue(":ia",sqf.record().value("info_align")); + sqt.bindValue(":se",sqf.record().value("show_song_ending")); + sqt.bindValue(":ec",sqf.record().value("ending_color")); + sqt.bindValue(":ef",sqf.record().value("ending_font")); + sqt.bindValue(":et",sqf.record().value("ending_type")); + sqt.bindValue(":ep",sqf.record().value("ending_position")); + sqt.bindValue(":ub",sqf.record().value("use_background")); + sqt.bindValue(":bn",sqf.record().value("background_name")); + sqt.bindValue(":ba",sqf.record().value("background")); + sqt.bindValue(":tf",sqf.record().value("text_font")); + sqt.bindValue(":tc",sqf.record().value("text_color")); + sqt.bindValue(":av",sqf.record().value("text_align_v")); + sqt.bindValue(":ah",sqf.record().value("text_align_h")); + sqt.bindValue(":su",sqf.record().value("screen_use")); + sqt.bindValue(":sp",sqf.record().value("screen_position")); + sqt.bindValue(":ud",sqf.record().value("use_disp_2")); + sqt.exec(); + } +} + +void ManageDataDialog::on_pushButtonThemeDelete_clicked() +{ + int row = ui->TableViewTheme->currentIndex().row(); + ThemeInfo tm = themeModel->getTheme(row); + QString name = tm.name; + + QMessageBox ms(this); + ms.setWindowTitle(tr("Delete Theme?")); + ms.setText(tr("Are you sure that you want to delete theme: ")+ name); + ms.setInformativeText(tr("This action will permanentrly delete this theme")); + ms.setIcon(QMessageBox::Question); + ms.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + ms.setDefaultButton(QMessageBox::Yes); + int ret = ms.exec(); + + switch (ret) { + case QMessageBox::Yes: + // Delete a songbook + deleteTheme(tm); + break; + case QMessageBox::No: + // Cancel was clicked + break; + default: + // should never be reached + break; + } +} + +void ManageDataDialog::deleteTheme(ThemeInfo tme) +{ + setWaitCursor(); + QSqlQuery sq; + int id = tme.themeId; + reloadThemes = true; + + // Delete from Themes Table + sq.exec("DELETE FROM Themes WHERE id = " + QString::number(id)); + sq.clear(); + + // Delete from ThemeData Table + sq.exec("DELETE FROM ThemePassive WHERE theme_id = " + QString::number(id)); + sq.exec("DELETE FROM ThemeBible WHERE theme_id = " + QString::number(id)); + sq.exec("DELETE FROM ThemeSong WHERE theme_id = " + QString::number(id)); + sq.exec("DELETE FROM ThemeAnnounce WHERE theme_id = " + QString::number(id)); + + loadThemes(); + updateThemeButtons(); + setArrowCursor(); +} + +void ManageDataDialog::on_TableViewTheme_clicked(const QModelIndex &index) +{ + updateThemeButtons(); +} + +void ManageDataDialog::on_pushButtonDownBible_clicked() +{ + downType = "bible"; + importType = "down"; + downloadModList(QUrl("http://softprojector.org/bibles/bible.xml")); +} + +void ManageDataDialog::on_pushButtonDownSong_clicked() +{ + downType = "song"; + importType = "down"; + downloadModList(QUrl("http://softprojector.org/songbooks/songbooks.xml")); +} + +void ManageDataDialog::on_pushButtonDownTheme_clicked() +{ + downType = "theme"; + importType = "down"; + downloadModList(QUrl("http://softprojector.org/themes/themes.xml")); +} + +void ManageDataDialog::downloadModList(QUrl url) +{ + QString filename = getSaveFileName(url); + outFile.setFileName(filename); + if(!outFile.open(QIODevice::WriteOnly)) + { + //Fixme: need error message + QMessageBox mb(this); + mb.setWindowTitle(tr("Error opening module list.")); + mb.setIcon(QMessageBox::Critical); + mb.setText(tr("Failed to open mod list")); + mb.exec(); + currentDownload->deleteLater(); + return; + } + + QNetworkRequest request(url); + currentDownload = downManager.get(request); + connect(currentDownload,SIGNAL(finished()),this,SLOT(downloadModListCompleted())); + connect(currentDownload,SIGNAL(readyRead()),this,SLOT(saveModFile())); +} + +void ManageDataDialog::downloadNextMod() +{ + if(downQueue.empty()) + { + progressDia->setSpeed(""); + importModules(); + return; + } + Module mod; + mod = downQueue.dequeue(); + progressDia->appendText(tr("\nDownloading: %1\nFrom: %2").arg(mod.name).arg(mod.link.toString())); + progressDia->setCurrentMax(mod.size); + progressDia->setCurrentValue(0); + QString filename = getSaveFileName(mod.link); + outFile.setFileName(filename); + if(!outFile.open(QIODevice::WriteOnly)) + { + progressDia->appendText(tr("Error opening save file %1 for download %2\nError: %3") + .arg(filename).arg(mod.name).arg(outFile.errorString())); + downloadNextMod(); + return; + } + + QNetworkRequest request(mod.link); + currentDownload = downManager.get(request); + connect(currentDownload,SIGNAL(downloadProgress(qint64,qint64)),this,SLOT(dowloadProgress(qint64,qint64))); + connect(currentDownload,SIGNAL(finished()),this,SLOT(downloadCompleted())); + connect(currentDownload,SIGNAL(readyRead()),this,SLOT(saveModFile())); + downTime.start(); +} + +QString ManageDataDialog::getSaveFileName(QUrl url) +{ + QString path = url.path(); + QString basename = QFileInfo(path).fileName(); + + if (basename.isEmpty()) + basename = "download"; + + QDir dir = dataDir; + if(downType == "bible") + { + if(!dir.cd("BibleModules")) + { + if(dir.mkdir("BibleModules")) + dir.cd("BibleModules"); + } + path = dir.absolutePath() + dir.separator() + basename; + } + else if(downType == "song") + { + if(!dir.cd("SongModules")) + { + if(dir.mkdir("SongModules")) + dir.cd("SongModules"); + } + path = dir.absolutePath() + dir.separator() + basename; + } + else if(downType == "theme") + { + if(!dir.cd("ThemeModules")) + { + if(dir.mkdir("ThemeModules")) + dir.cd("ThemeModules"); + } + path = dir.absolutePath() + dir.separator() + basename; + } + else + path = dir.absolutePath() + dir.separator() + basename; + + if (QFile::exists(path)) + { + // File already exist, overwrite it + if(!QFile::remove(path)) + { + QRegExp rx("(.sps|.spb|.spt|.xml)"); + rx.indexIn(basename); + basename = basename.remove(rx); + + int i(1); + while(QFile::exists(QString("%1%2%3_%4%5").arg(dir.absolutePath()).arg(dir.separator()) + .arg(basename).arg(i).arg(rx.cap(1)))) + ++i; + + path = QString("%1%2%3_%4%5").arg(dir.absolutePath()).arg(dir.separator()) + .arg(basename).arg(i).arg(rx.cap(1)); + } + } + + return path; +} + +void ManageDataDialog::saveModFile() +{ + outFile.write(currentDownload->readAll()); +} + +void ManageDataDialog::downloadModListCompleted() +{ + outFile.close(); + + if(currentDownload->error()) + { + QMessageBox mb(this); + mb.setWindowTitle(tr("Error downloading module list.")); + mb.setIcon(QMessageBox::Critical); + mb.setText(currentDownload->errorString()); + mb.exec(); + currentDownload->deleteLater(); + return; + } + + currentDownload->deleteLater(); + + QStringList modlist; + modlist = getModList(outFile.fileName()); + if(modlist.count()<=0) + return; + + ModuleDownloadDialog modDia(this); + if(downType == "bible") + modDia.setWindowTitle(tr("Bible Module Download")); + else if(downType == "song") + modDia.setWindowTitle(tr("Songbook Module Download")); + else if(downType == "theme") + modDia.setWindowTitle(tr("Theme Module Download")); + + modDia.setList(modlist); + int ret = modDia.exec(); + QList mods; + switch (ret) + { + case ModuleDownloadDialog::Accepted: + mods = modDia.getSelected(); + if(mods.count()<=0) + break; + foreach(const int &modrow, mods) + downQueue.enqueue(moduleList.at(modrow)); + progressDia->clearAll(); + progressDia->setTotalMax((mods.count()*2) +1); + progressDia->show(); + downloadNextMod(); + break; + case ModuleDownloadDialog::Rejected: + break; + } +} + +void ManageDataDialog::downloadCompleted() +{ + outFile.close(); + + if(currentDownload->error()) + progressDia->appendText(tr("Download Error: %1").arg(currentDownload->errorString())); + else + { + modQueue.enqueue(outFile.fileName()); + progressDia->appendText(tr("Saved to: %1").arg(outFile.fileName())); + progressDia->increaseTotal(); + } + currentDownload->deleteLater(); + downloadNextMod(); +} + +void ManageDataDialog::dowloadProgress(qint64 recBytes, qint64 totBytes) +{ + progressDia->setCurrentValue(recBytes); + + // calculate the download speed + double speed = recBytes * 1000.0 / downTime.elapsed(); + QString unit; + if (speed < 1024) + unit = "bytes/sec"; + else if (speed < 1024*1024) + { + speed /= 1024; + unit = "kB/s"; + } + else + { + speed /= 1024*1024; + unit = "MB/s"; + } + + progressDia->setSpeed(QString("%1 %2").arg(speed, 3, 'f', 1).arg(unit)); +} + +QStringList ManageDataDialog::getModList(QString filepath) +{ + moduleList.clear(); + QStringList modList; + QString name,link; + int size(0); + QFile file(filepath); + Module mod; + if(file.open(QIODevice::ReadOnly)) + { + QXmlStreamReader xml(&file); + while(!xml.atEnd()) + { + xml.readNext(); + if(xml.StartElement && xml.name() == "Modules") + { + xml.readNext(); + while(xml.tokenString() != "EndElement" && xml.name() != "Modules") + { + xml.readNext(); + if(xml.StartElement && xml.name() == "Module") + { + xml.readNext(); + while(xml.tokenString() != "EndElement") + { + // qDebug()<<"loop2"; + xml.readNext(); + if(xml.StartElement && xml.name() == "name") + { + name = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "link") + { + link = xml.readElementText(); + xml.readNext(); + } + else if(xml.StartElement && xml.name() == "size") + { + size = xml.readElementText().toInt(); + xml.readNext(); + } + } + + mod.name = name; + mod.link = QUrl(link); + mod.size = size; + moduleList.append(mod); + modList.append(name); + xml.readNext(); + } + } + xml.readNext(); + } + } + } + return modList; +} + +void ManageDataDialog::importNextModule() +{ + if(modQueue.isEmpty()) + { + progressDia->enableCloseButton(true); + progressDia->setToMax(); + if(downType == "bible") + load_bibles(); + else if(downType == "song") + load_songbooks(); + else if(downType == "theme") + loadThemes(); + return; + } + + QString filePath = modQueue.dequeue(); + progressDia->appendText(tr("\nImporting: %1").arg(filePath)); + if(downType == "bible") + importBible(filePath); + else if(downType == "song") + importSongbook(filePath); + else if(downType == "theme") + importTheme(filePath); +} + +void ManageDataDialog::importModules() +{ + if(importType == "down") + { + progressDia->increaseTotal(); + importNextModule(); + } +} + +QString ManageDataDialog::cleanSongLines(QString songText) +{ + QString text, text2, verselist; + QStringList split, editlist; + int i(0),j(0),k(0); + + editlist = songText.split("@$");// split the text into verses seperated by @$ + + while (i . +// +***************************************************************************/ + +#ifndef MANAGEDATADIALOG_H +#define MANAGEDATADIALOG_H + +#include +#include +#include +#include + +#include "managedata.h" +#include "song.h" +#include "addsongbookdialog.h" +#include "bibleinformationdialog.h" +#include "theme.h" +#include "moduledownloaddialog.h" +#include "moduleprogressdialog.h" + +namespace Ui { +class ManageDataDialog; +} + +class Module +{ +public: + Module(); + QString name; + QUrl link; + int size; +}; + +class ManageDataDialog : public QDialog { + Q_OBJECT + Q_DISABLE_COPY(ManageDataDialog) +public: + explicit ManageDataDialog(QWidget *parent = 0); + virtual ~ManageDataDialog(); + bool reload_bible; + bool reload_songbook; + bool reloadThemes; + +public slots: + void load_songbooks(); + void loadThemes(); + void setDataDir(QDir &d){dataDir = d;} + +protected: + virtual void changeEvent(QEvent *e); + +signals: + void setMainWaitCursor(); + void setMainArrowCursor(); + +private: + QList bible_list; + QList songbook_list; + QList themeList; + BiblesModel *bible_model; + SongbooksModel *songbook_model; + ThemeModel *themeModel; + QNetworkAccessManager downManager; + QNetworkReply *modDownload; + QNetworkReply *currentDownload; + QQueue downQueue; + QQueue modQueue; + QString downType; + QString importType; + QDir dataDir; + QFile outFile; + QList moduleList; + ModuleProgressDialog *progressDia; + QTime downTime; + Ui::ManageDataDialog *ui; + +private slots: + QString get3(int i); + QString getVerseId(QString book, QString chapter, QString verse); + void setWaitCursor(); + void setArrowCursor(); + void on_songbookTableView_clicked(QModelIndex index); + void on_bibleTableView_clicked(QModelIndex index); + void updateBibleButtons(); + void updateSongbookButtons(); + void updateThemeButtons(); + void on_edit_bible_pushButton_clicked(); + void on_edit_songbook_pushButton_clicked(); + void on_delete_bible_pushButton_clicked(); + void on_export_bible_pushButton_clicked(); + void on_import_bible_pushButton_clicked(); + void on_ok_pushButton_clicked(); + void on_delete_songbook_pushButton_clicked(); + void on_export_songbook_pushButton_clicked(); + void on_import_songbook_pushButton_clicked(); + void deleteBible(Bibles bilbe); + void importBible(QString path); + void exportBible(QString path, Bibles bible); + void deleteSongbook(Songbook songbook); + void importSongbook(QString path); + void exportSongbook(QString path); + void load_bibles(); + void toMultiLine(QString& mline); + void toSingleLine(QString& sline); + void on_pushButtonThemeNew_clicked(); + void on_pushButtonThemeImport_clicked(); + void on_pushButtonThemeEdit_clicked(); + void on_pushButtonThemeExport_clicked(); + void on_pushButtonThemeDelete_clicked(); + void on_TableViewTheme_clicked(const QModelIndex &index); + void deleteTheme(ThemeInfo tme); + void on_pushButtonThemeExportAll_clicked(); + void exportTheme(QString path, bool all); + void transferTheme(QSqlQuery &sqf,QSqlQuery &sqt); + void transferThemeAnnounce(QSqlQuery &sqf,QSqlQuery &sqt,int tmId); + void transferThemeBible(QSqlQuery &sqf,QSqlQuery &sqt,int tmId); + void transferThemePassive(QSqlQuery &sqf,QSqlQuery &sqt,int tmId); + void transferThemeSong(QSqlQuery &sqf,QSqlQuery &sqt,int tmId); + void importTheme(QString path); + void on_pushButtonDownBible_clicked(); + void on_pushButtonDownSong_clicked(); + void on_pushButtonDownTheme_clicked(); + + void downloadModList(QUrl url); + void downloadNextMod(); + QString getSaveFileName(QUrl url); + void saveModFile(); + void downloadModListCompleted(); + void downloadCompleted(); + void dowloadProgress(qint64 recBytes,qint64 totBytes); + QStringList getModList(QString filepath); + void importNextModule(); + void importModules(); + QString cleanSongLines(QString songText); +}; + +#endif // MANAGEDATADIALOG_H diff --git a/managedatadialog.ui b/managedatadialog.ui new file mode 100644 index 0000000..2b930c9 --- /dev/null +++ b/managedatadialog.ui @@ -0,0 +1,403 @@ + + + ManageDataDialog + + + + 0 + 0 + 657 + 404 + + + + Manage Database + + + + :/icons/icons/database.png:/icons/icons/database.png + + + true + + + + + + Qt::Horizontal + + + + 216 + 20 + + + + + + + + Close Manage Database Dialog + + + Close + + + Ctrl+Q + + + + + + + 0 + + + + + :/icons/icons/book.png:/icons/icons/book.png + + + Bibles + + + + + + true + + + false + + + + + + + + + true + + + Download +&& Import... + + + + + + + Import a new Bible into your database + + + &Import... + + + Ctrl+I + + + false + + + + + + + Edit Bible title of currently selected Bible. + + + &Edit... + + + Ctrl+E + + + + + + + Export currently selected Bible to share with others. + + + E&xport... + + + Ctrl+X + + + + + + + Delete a Bible that you will no longer want to use in this program. + + + &Delete... + + + Ctrl+D + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + :/icons/icons/song_tab.png:/icons/icons/song_tab.png + + + Songbooks + + + + + + true + + + + + + + + + Download +&& Import... + + + + + + + Import a new Songbook into database. + + + &Import... + + + Ctrl+I + + + + + + + Edit the title and information about the Songbook. + + + &Edit... + + + Ctrl+E + + + + + + + Export currently selected Songbook to be able to share with others and for backup. + + + E&xport... + + + Ctrl+X + + + + + + + Delete currently selected Songbook from database. + + + &Delete... + + + Ctrl+D + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + Themes + + + + + + true + + + + + + + + + Download +&& Import... + + + + + + + Import a new Songbook into database. + + + &Import... + + + Ctrl+I + + + + + + + Import a new Songbook into database. + + + &New... + + + Ctrl+I + + + + + + + Edit the title and information about the Songbook. + + + &Edit... + + + Ctrl+E + + + + + + + Export currently selected Songbook to be able to share with others and for backup. + + + E&xport... + + + Ctrl+X + + + + + + + Export currently selected Songbook to be able to share with others and for backup. + + + Export All... + + + Ctrl+X + + + + + + + Delete currently selected Songbook from database. + + + &Delete... + + + Ctrl+D + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + tabWidget + bibleTableView + pushButtonDownBible + import_bible_pushButton + edit_bible_pushButton + export_bible_pushButton + delete_bible_pushButton + ok_pushButton + songbookTableView + pushButtonDownSong + import_songbook_pushButton + edit_songbook_pushButton + export_songbook_pushButton + delete_songbook_pushButton + TableViewTheme + pushButtonDownTheme + pushButtonThemeImport + pushButtonThemeNew + pushButtonThemeEdit + pushButtonThemeExport + pushButtonThemeExportAll + pushButtonThemeDelete + + + + + + diff --git a/mediawidget.cpp b/mediawidget.cpp new file mode 100644 index 0000000..4c8b76b --- /dev/null +++ b/mediawidget.cpp @@ -0,0 +1,464 @@ +/*************************************************************************** +// +// softProjector - an open source media projection software +// Copyright (C) 2014 Vladislav Kobzar, Matvey Adzhigirey and Ilya Spivakov +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +***************************************************************************/ + +#include "mediawidget.h" +#include "ui_mediawidget.h" + +MediaWidget::MediaWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::MediaWidget)//, +// m_AudioOutput(Phonon::VideoCategory) +{ + ui->setupUi(this); + videoWidget = new VideoPlayerWidget(this); + +// ui->verticalLayoutMedia->addWidget(videoWidget); +// videoWidget->setVisible(false); + ui->pushButtonGoLive->setEnabled(false); + + playIcon = QIcon(":icons/icons/play.png"); + pauseIcon = QIcon(":icons/icons/pause.png"); + + ui->pushButtonPlayPause->setIcon(playIcon); + ui->comboBoxAspectRatio->setEnabled(false); + +// timeSlider = new Phonon::SeekSlider(this); +// timeSlider->setMediaObject(&mediaPlayer); +// volumeSlider = new Phonon::VolumeSlider(&m_AudioOutput); + + QPalette palette; + palette.setBrush(QPalette::WindowText, Qt::white); + + ui->labelInfo->setStyleSheet("border-image:url(:icons/icons/playerScreen.png)"); + ui->labelInfo->setPalette(palette); + ui->labelInfo->setText(tr("