<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body>
    <p>Thank you, Loren!  Merry Christmas!</p>
    <p>So, my experience with a Fedora box:</p>
    <p>Cloning the repository and following your instructions to compile...</p>
    <p>I first needed to install cmake...  That was obvious, but then was failing to find "module ECM."</p>
    <p>Doing some searching around, I found that ECM = extra cmake modules, and sure enough there was fedora package by that name, which got me past that one.</p>
    <p>I then needed to learn about all the qt and "KF5" packages I aneeded to install.  These seemed to do the trick but I was still getting this error even when passing  -DTTS_ENABLED=OFF:</p>
    <p>CMake Warning at CMakeLists.txt:30 (find_package):
  Found package configuration file:

    /usr/lib64/cmake/Qt5/Qt5Config.cmake

  but it set Qt5_FOUND to FALSE so package "Qt5" is considered to be NOT
  FOUND.  Reason given by package:

  Failed to find Qt5 component "TextToSpeech" config file at
  "/usr/lib64/cmake/Qt5TextToSpeech/Qt5TextToSpeechConfig.cmake"

So, anyway, I figured I would just install the tts package.  This package seemed to do the trick: qt5-qtspeech-devel</p>
    <p>At this point, I could run from the 'build' subfolder, cmake -DTTS_ENABLED=OFF ..</p>
    <p>Here is the final dependency install command which worked for me on a Fedora 33 box:</p>
    <p>dnf install cmake extra-cmake-modules qt5-qtbase-devel kf5-ki18n-devel kf5-kxmlgui-devel qt5-qtspeech-devel
</p>
    <p>On to cmake --build .</p>
    <p>This failed for me because it did not add link libraries for any of the SWORD dependencies.</p>
    <p>I then added this patch to the CMakefile.txt which uses pkg-config to get SWORD dependencies:</p>
    <p>-------------------------------
</p>
    <p>diff --git a/CMakeLists.txt b/CMakeLists.txt
index bb246fa..0d8efac 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,6 +18,8 @@ include(FeatureSummary)
 
 option(TTS_ENABLED "Compile with text-to-speech support" ON)
 
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(SWORD REQUIRED IMPORTED_TARGET sword)
 find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Gui Widgets LinguistTools)
 find_package(sword REQUIRED)
 find_package(KF5 ${KF5_DEP_VERSION}
@@ -60,6 +62,7 @@ target_link_libraries(totalreqall
        KF5::CoreAddons
        KF5::XmlGui
        KF5::I18n
+       PkgConfig::SWORD
 )
 
 if(TTS_ENABLED)
</p>
    <p>----------------------------
</p>
    <p>I then had a totalreqall/build/bin/totalreqall binary!  Wooohoooo!</p>
    <p>So, running the app, I received:</p>
    <p>"Choose what to memorize," I picked "Bible verse".</p>
    <p>I then chose John 3:16-21 KJV, which showed the text correctly in the memo box.</p>
    <p>Then when I pressed "Memorize verse," I received:</p>
    <p>ASSERT failure in QList<T>::operator[]: "index out of range", file /usr/include/qt5/QtCore/qlist.h, line 579
Aborted (core dumped)
</p>
    <p>Having a brief look, this patch keeps split[j + 1] inbounds.</p>
    <p>------------------------------------</p>
    <p>diff --git a/src/MemorizeWidget.cpp b/src/MemorizeWidget.cpp
index 542560a..60fef5a 100644
--- a/src/MemorizeWidget.cpp
+++ b/src/MemorizeWidget.cpp
@@ -234,7 +234,7 @@ MemorizeWidget::MemorizeWidget(QString memorizeContent, QWidget *parent)
                         QString sep = "\n";
                         QStringList split = m_content.at(i).split(sep);
                         m_content.removeAt(i);
-                        for (int j = 0; j < split.size(); ++j)
+                        for (int j = 0; j < split.size() - 1; ++j)
                         {
                             if (split[j].size() < settings->chunkSize() && QString(split[j] + split[j + 1]).size() < settings->chunkSize())
                             {</p>
    <p>----------------------------------</p>
    <p>Now when I press "Memorize verse," it doesn't, but doesn't show any text in the next screen.</p>
    <p>I then changed to a single verse: John 3:16-16.  When I now press "Memorize verse," I get the text of the verse greyed out on the next screen, but I didn't know what to do.  I read in the README on your github that I am suppose to type the first letter of each word... but nothing I type does anything.</p>
    <p>I am excited for your work!  I hope this gives some helpful feedback!</p>
    <p>Blessings in your work,</p>
    <p>Troy</p>
    <p>
</p>
    <p>
</p>
    <div class="moz-cite-prefix">On 12/26/20 5:00 PM, Loren Burkholder
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:BL0PR12MB2401FDFBDEF06A59EF37999EC7DA0@BL0PR12MB2401.namprd12.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="qrichtext" content="1">
      <style type="text/css">p, li { white-space: pre-wrap; }</style>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">As a (belated) Christmas gift, I'd like to present to all of you my app that I build using Sword: TotalReqall (<a href="https://invent.kde.org/utilities/totalreqall" moz-do-not-send="true"><span style=" text-decoration: underline; color:#315bef;">https://invent.kde.org/utilities/totalreqall</span></a>). It's a general-purpose app for memorizing chunks of data (which can be anything from the Bible to a poem to the manpage for clang). It uses Sword for accessing Bible verses in various translations, which is a huge step up from the original method of accessing a text file of the KJV. I've been working on a TTS feature as well. Items can be saved for later access. They are saved in a human-readable JSON file. Soon, I intend to add support for importing and exporting saved items.</p>
      <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">TotalReqall is built with Qt, but it's also built with the KDE frameworks since it is becoming an official KDE app. (The back story on this: I was reading an article about KDE and was inspired to merge my app into KDE, since I am a KDE user.)</p>
      <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Building TotalReqall requires Qt 5 (6 has not been tested), KDE Frameworks, and Sword.</p>
      <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Questions, comments, and contributions are welcome.</p>
      <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Loren</p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
    </blockquote>
  </body>
</html>