Esempio n. 1
0
/**
  * Emits get to load the selected module.
  */
void ModuleDockWidget::loadModuleData(QModelIndex index, Actions::OpenLinkModifiers mod)
{
    const int moduleID = index.data(Qt::UserRole + 1).toInt();
    if(m_dontLoad == false && moduleID >= 0) {

        Module *m = m_moduleManager->getModule(moduleID);
        //const OBVCore::ModuleType type = m->moduleType();
        const OBVCore::ModuleClass cl = m->moduleClass();
        if(cl == OBVCore::DictionaryModuleClass) {
            m_actions->get("dict:/" + QString::number(moduleID), mod);
        } else if(cl == OBVCore::WebPageClass) {
            m_actions->get("webpage:/" + QString::number(moduleID), mod);
        } else if(cl == OBVCore::BibleModuleClass) {
            myDebug() << "bible";
            m_moduleID = moduleID;
            VerseUrl url;
            VerseUrlRange range;
            range.setModule(moduleID);
            range.setBook(VerseUrlRange::LoadFirstBook);
            range.setChapter(VerseUrlRange::LoadFirstChapter);
            range.setWholeChapter();
            url.addRange(range);
            m_actions->get(url, mod);
        }
    }
}
Esempio n. 2
0
bool VerseUrl::fromStringUrl(QString url)
{
    m_ranges.clear();

    //verse:/moduleID,bookID,chapterID,verseID-verseID,otherStuf=otherValue
    if(!url.startsWith(ModuleTools::verseScheme)) {
        m_isValid = false;
        return false;
    }
    url.remove(0, ModuleTools::verseScheme.size()); // remove verse:/
    QStringList urls = url.split("|");
    foreach(const QString nUrl, urls) {
        VerseUrlRange range;
        const QStringList params = nUrl.split(",");
        for(int i = 0; i < params.size(); ++i) {
            QString p = params.at(i);
            QString p2;
            if(i == 0) {//Bible
                if(p == "current") {
                    range.setModule(VerseUrlRange::LoadCurrentModule);
                } else if(p.startsWith("uid=")) {
                    range.setModule(p.remove(0, 4));
                } else {
                    range.setModule(p.toInt());
                }
            } else if(i == 1) {//Book
                if(p == "current") {
                    range.setBook(VerseUrlRange::LoadCurrentBook);
                } else if(p == "first") {
                    range.setBook(VerseUrlRange::LoadFirstBook);
                } else if(p == "last") {
                    range.setBook(VerseUrlRange::LoadLastBook);
                } else if(p == "none") {
                    range.setBook(VerseUrlRange::LoadNoBook);
                } else {
                    range.setBook(p.toInt());
                }

            } else if(i == 2) {

                if(p == "current") {
                    range.setChapter(VerseUrlRange::LoadCurrentChapter);
                } else if(p == "first") {
                    range.setChapter(VerseUrlRange::LoadFirstChapter);
                } else if(p == "last") {
                    range.setChapter(VerseUrlRange::LoadLastChapter);
                } else if(p == "last") {
                    range.setChapter(VerseUrlRange::LoadLastChapter);
                } else if(p == "none") {
                    range.setChapter(VerseUrlRange::LoadNoChapter);
                }else {
                    range.setChapter(p.toInt());
                }
            } else if(i == 3) {
                if(p.contains("-")) {
                    QStringList tmp = p.split("-");
                    p = tmp.first();
                    p2 = tmp.last();
                }
                if(p == "current") {
                    range.setStartVerse(VerseUrlRange::LoadCurrentVerse);
                } else if(p == "first") {
                    range.setStartVerse(VerseUrlRange::LoadFirstVerse);
                } else if(p == "last") {
                    range.setStartVerse(VerseUrlRange::LoadLastVerse);
                } else if(p == "last") {
                    range.setStartVerse(VerseUrlRange::LoadNoVerse);
                }  else {
                    range.setStartVerse(p.toInt());
                }

                if(p2 == "current") {
                    range.setEndVerse(VerseUrlRange::LoadCurrentVerse);
                } else if(p2 == "first") {
                    range.setEndVerse(VerseUrlRange::LoadFirstVerse);
                } else if(p2 == "last") {
                    range.setEndVerse(VerseUrlRange::LoadLastVerse);
                } else if(p2 == "last") {
                    range.setEndVerse(VerseUrlRange::LoadNoVerse);
                } else if(!p2.isEmpty()) {
                    range.setEndVerse(p2.toInt());
                }
            } else {
                if(p.contains("=")) {
                    const QStringList s = p.split("=");
                    const QString key = s.first();
                    const QString value = s.last();
                    if(key == "active") {
                        range.setActiveVerse(value.toInt());
                    } else {
                        m_params.insert(key, value);
                    }
                } else {
                    m_params.insert(p, "true");
                }
            }
        }
        m_ranges.append(range);
    }