spellchecker.pro Example File

webenginewidgets/spellchecker/spellchecker.pro

  QT_FOR_CONFIG += webengine

  TEMPLATE = app
  TARGET = spellchecker
  QT += webenginewidgets
  CONFIG += c++11

  qtConfig(webengine-native-spellchecker) {
      error("Spellcheck example can not be built when using native OS dictionaries.")
  }

  HEADERS += \
      webview.h

  SOURCES += \
      main.cpp \
      webview.cpp

  RESOURCES += \
      data/spellchecker.qrc

  DISTFILES += \
      dict/en/README.txt \
      dict/en/en-US.dic \
      dict/en/en-US.aff \
      dict/de/README.txt \
      dict/de/de-DE.dic \
      dict/de/de-DE.aff

  target.path = $$[QT_INSTALL_EXAMPLES]/webenginewidgets/spellchecker
  INSTALLS += target

  qtPrepareTool(CONVERT_TOOL, qwebengine_convert_dict)

  debug_and_release {
      CONFIG(debug, debug|release): DICTIONARIES_DIR = debug/qtwebengine_dictionaries
      else: DICTIONARIES_DIR = release/qtwebengine_dictionaries
  } else {
      DICTIONARIES_DIR = qtwebengine_dictionaries
  }

  dict_base_paths = en/en-US de/de-DE
  for (base_path, dict_base_paths) {
      dict.files += $$PWD/dict/$${base_path}.dic
  }

  dictoolbuild.input = dict.files
  dictoolbuild.output = $${DICTIONARIES_DIR}/${QMAKE_FILE_BASE}.bdic
  dictoolbuild.depends = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.aff
  dictoolbuild.commands = $${CONVERT_TOOL} ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
  dictoolbuild.name = Build ${QMAKE_FILE_IN_BASE}
  dictoolbuild.CONFIG = no_link target_predeps
  QMAKE_EXTRA_COMPILERS += dictoolbuild

  # When the example is compiled as a bundle, WebEngine expects to find the dictionaries in
  # bundle.app/Contents/Resources/qtwebengine_dictionaries
  macos:app_bundle {
      for (base_path, dict_base_paths) {
          base_path_splitted = $$split(base_path, /)
          base_name = $$last(base_path_splitted)
          binary_dict_files.files += $${DICTIONARIES_DIR}/$${base_name}.bdic
      }
      binary_dict_files.path = Contents/Resources/$$DICTIONARIES_DIR
      QMAKE_BUNDLE_DATA += binary_dict_files
  }