Skip to content

Mobile and Embedded

The forum for developing everything embedded: Linux, WinCE, Symbian, MeeGo... you name it.
14.2k Topics 62.7k Posts
  • Qt Cross Raspi - How to add support for libinput and fontconfig?

    Solved
    2
    0 Votes
    2 Posts
    1k Views
    R
    The option -force-pkg-config solved my problem. First I've needed to unset PKG_CONFIG_PATH, as described in this page. Then just ran: ./configure -release -opengl es2 -device linux-rasp-pi3-g++ \ -device-option CROSS_COMPILE=~/qt-cross-raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- \ -sysroot ~/qt-cross-raspi/sysroot -opensource -confirm-license -make libs \ -prefix /usr/local/qt5 -extprefix ~/qt-cross-raspi/qt5raspi \ -hostprefix ~/qt-cross-raspi/qt5 -v -no-use-gold-linker -force-pkg-config And configure.summary now shows fontconfig and libinput enabled: Build options: Qt Gui: ... FreeType ............................... yes Using system FreeType ................ yes ... Fontconfig ............................. yes Features used by QPA backends: ... libinput ............................... yes ...
  • Unable to pair Bluetooth (within app): incorrect PIN or passkey

    Unsolved
    5
    0 Votes
    5 Posts
    1k Views
    ahsan737A
    @sgaist these permissions are showing up and granted by the system. (I am using Meizu X8) * Turn on Bluetooth: Allow * Access Location: Allow * Read List of Installed apps: Allow * Use phone storage: Allow
  • Error deploying to Android

    2
    0 Votes
    2 Posts
    278 Views
    SGaistS
    Hi and welcome to devnet, This question appeared several times already on this forum, please use the search feature.
  • Qt Purchasing on iOS for auto-renewable subscriptions

    Solved
    4
    0 Votes
    4 Posts
    968 Views
    B
    The Felgo plugin is working only if used Felgo from begin, but if you using something Qt native or original there might be a troubles because Felgo require in main function a lot of specialised and developed by Felgo team: QApplication app(argc, argv); FelgoApplication felgo; // Use platform-specific fonts instead of Felgo's default font felgo.setPreservePlatformFonts(true); QQmlApplicationEngine engine; felgo.initialize(&engine); // Set an optional license key from project file // This does not work if using Felgo Live, only for Felgo Cloud Builds and local builds felgo.setLicenseKey(PRODUCT_LICENSE_KEY); // use this during development // for PUBLISHING, use the entry point below felgo.setMainQmlFileName(QStringLiteral("qml/Main.qml")); // use this instead of the above call to avoid deployment of the qml files and compile them into the binary with qt's resource system qrc // this is the preferred deployment option for publishing games to the app stores, because then your qml files and js files are protected // to avoid deployment of your qml files and images, also comment the DEPLOYMENTFOLDERS command in the .pro file // also see the .pro file for more details // felgo.setMainQmlFileName(QStringLiteral("qrc:/qml/Main.qml")); engine.load(QUrl(felgo.mainQmlFileName())); // to start your project as Live Client, comment (remove) the lines "felgo.setMainQmlFileName ..." & "engine.load ...", // and uncomment the line below //FelgoLiveClient client (&engine); return app.exec(); If you using already written on pure QT there are huge chance to get conflict. Beside all of it another point Felgo reassigning the Qml Application main component on their own that is beside by version of pure Qt. Just tried to implement theirs plugin for subscription and got failed because of conflict to my own components and application architecture. Another 5 cents ... After opening in Felgo version of Qt Creator original *.pro.user file rewritten and do not working on original Qt Creator. Need to reconfigure project from scratch.
  • Are local variables in static member functions thread safe?

    Solved
    7
    0 Votes
    7 Posts
    2k Views
    K
    @powernow said in Are local variables in static member functions thread safe?: @aha_1980 "Many Qt classes are reentrant, but they are not made thread-safe", so if I not use shared data (reentrant) in static member functions it works. The main point is that threads also for static member functions uses their own stack. Thxs! That is the Qt definition you can rely on https://doc.qt.io/qt-5/threads-reentrancy.html
  • IMX6 QtWebEngine black surfaces

    10
    0 Votes
    10 Posts
    7k Views
    Q
    @ian_009 said in IMX6 QtWebEngine black surfaces: A Qt Quick application has no such issues for me. Give the example quicknanobrowser a try for example.. also meet the same problem, imx6q with Yocto4.9.11 Qt5.8. is some one tried success in a Widgets application?
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    28 Views
    No one has replied
  • QML Window.with in android

    Solved
    2
    0 Votes
    2 Posts
    411 Views
    J.HilkJ
    hi @msauer75 Screen should help you import QtQuick.Window 2.13 ... ... Component.onCompleted:{ console.log(Screen.desktopAvailableHeight, Screen.desktopAvailableWidth, Screen.devicePixelRatio, Screen.pixelDensity) } Reference: https://doc.qt.io/qt-5/qml-qtquick-window-screen.html
  • Can not compile android package

    Unsolved
    6
    0 Votes
    6 Posts
    513 Views
    A
    The main pro file was # ----------------------------------------------------------- # Studio/Lite Project File # ----------------------------------------------------------- message("Creating Inspire makefile...") # Bring in settings common to all Inspire projects include( $(ASDIR)/src/common.pri ) include( $(ASDIR)/3rdparty.pri) QT += multimedia xml network svg opengl ubuntu1404 | ubuntu1604: { CONFIG += qdbus } TEMPLATE = app TARGET=Inspire CONFIG += mobility MOBILITY = CONFIG += c++11 PHONON_LIB_PATH=$(ASDIR)/3rdparty/phonon COPYFILES_PATH=$(ASDIR)/src/studio/ #PORT QT4 TO QT5 win32:{ QT += axcontainer webenginewidgets } linux:!mac{ !android{ QT += x11extras }else{ QT += printsupport } } mac|unix { CONFIG(debug, debug|release) { POST_TARGETDEPS += $(ASDIR)/debug/libascore_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libascoregui_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libasgraphlib_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libmkvectorfill_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libasexcel_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libxlslib_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libasspellchecker_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libasgroups_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libastransitionlib_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libasquestionmaster_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libashandwriting_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libaslrsgui_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libpwidgets_debug.a POST_TARGETDEPS += $(ASDIR)/debug/libadditional_debug.a } CONFIG(release, debug|release) { POST_TARGETDEPS += $(ASDIR)/release/libascore.a POST_TARGETDEPS += $(ASDIR)/release/libascoregui.a POST_TARGETDEPS += $(ASDIR)/release/libasgraphlib.a POST_TARGETDEPS += $(ASDIR)/release/libmkvectorfill.a POST_TARGETDEPS += $(ASDIR)/release/libasexcel.a POST_TARGETDEPS += $(ASDIR)/release/libxlslib.a POST_TARGETDEPS += $(ASDIR)/release/libasspellchecker.a POST_TARGETDEPS += $(ASDIR)/release/libasgroups.a POST_TARGETDEPS += $(ASDIR)/release/libastransitionlib.a POST_TARGETDEPS += $(ASDIR)/release/libasquestionmaster.a POST_TARGETDEPS += $(ASDIR)/release/libashandwriting.a POST_TARGETDEPS += $(ASDIR)/release/libaslrsgui.a POST_TARGETDEPS += $(ASDIR)/release/libpwidgets.a POST_TARGETDEPS += $(ASDIR)/release/libadditional.a } } INCLUDEPATH += . \ $(ASDIR)/src \ $(ASDIR)/src/core \ $(ASDIR)/src/coregui \ $(ASDIR)/inc \ $(QTDIR)/src/3rdparty/zlib \ $${APPFRAMEWORK_DIR}/include DEPENDPATH += . RESOURCES = main.qrc win32: { RC_FILE = studio.rc HEADERS += qtlockedfile_win.cpp LIBS += -L$${ACTIVSYSTEM_DIR}/lib -L$(ASDIR)/3rdparty/libs -L$(ASDIR)/3rdparty/libs/win -LC:/WinDDK/7600.16385.1/lib/wxp/i386 -ldsound -lXpdfRasterizer user32.lib Shell32.lib winspool.lib advapi32.lib Secur32.lib LIBS += -L$(ASDIR)/3rdparty/libs/win -lnanomsg } else:mac { CONFIG += app_bundle LIBS += /usr/lib/libz.1.dylib ICON=inspire.icns HEADERS += qtlockedfile_unix.cpp LIBS += -L$(ASDIR)/3rdparty/libs -framework CoreAudio -framework Quartz -framework QuartzCore -framework OpenGL -framework ApplicationServices -framework CoreFoundation -framework SystemConfiguration -framework Cocoa -framework CoreGraphics -framework Foundation } else:linux:!android { CONFIG += x11 LIBS += -L$${ACTIVSYSTEM_DIR}/lib -L$(ASDIR)/3rdparty/libs -L$(ASDIR)/3rdparty/libs/linux -L/usr/lib/i386-linux-gnu -L/lib/i386-linux-gnu HEADERS += qtlockedfile_unix.cpp QMAKE_LFLAGS_RPATH = -Wl,-rpath=./,-rpath, # I don't get the point of these; a) WHY burn in the rpath of the build dir, what has that got to do with runtime, RPATH_LINK might be it??? # QMAKE_RPATH += -Wl,-rpath=$(ASDIR)/3rdparty/libs/linux,-rpath, # What lives here? # QMAKE_LFLAGS += -W1,-rpath=/usr/local/lib/promethean # QMAKE_LFLAGS += -Wl,-rpath=/usr/local/lib # Common on! # QMAKE_LFLAGS += -Wl,-rpath=$${APPFRAMEWORK_DIR}/bin/debug -Wl,-rpath=$${APPFRAMEWORK_DIR}/bin/release } ## CONFIG DEBUG ## CONFIG(debug, debug|release) { DESTDIR = $(ASDIR)/debug MOC_DIR = debug/moc OBJECTS_DIR = debug/obj UI_DIR = debug/ui linux:!android{ LIBS += -L$(ASDIR)/debug LIBS += -lascommon_debug -lascore_debug -lasprint_debug -lequations_debug -lascoregui_debug -lasgraphlib_debug -lmkvectorfill_debug -lasexcel_debug -lxlslib_debug -laslocale_debug -lasspellchecker_debug -lasgroups_debug -laslrsgui_debug -lastransitionlib_debug -lasquestionmaster_debug -lashandwriting_debug -ladditional_debug -lpwidgets_debug -lasatlasobjects_debug LIBS += -L$${APPFRAMEWORK_DIR}/linux/x64/debug/lib -latlascommsd -lqtatlascommsd -lappcontrollerd LIBS += -lpromessaging_debug -ljsoncpp_debug LIBS += -L$$PHONON_LIB_PATH/linux/x64/release/lib -lphonon4qt5 -lphonon4qt5experimental LIBS += -L$${CLASSFLOWCLIENT_DIR}/linux/x64/debug/lib -lclassflowclient LIBS += -L$${ACTIVSYSTEM_DIR}/linux/x64/debug/lib -lactivsystemd # LIBS+=-L/home/yumingqi/work/phonon4qt5/lib -lphonon4qt5 -lphonon4qt5experimental } else:mac { LIBS += -L$(ASDIR)/debug -lascommon_debug -lascore_debug -lasprint_debug -lequations_debug -lascoregui_debug -lasgraphlib_debug -lmkvectorfill_debug LIBS += -lasexcel_debug -lxlslib_debug -laslocale_debug -lasspellchecker_debug -lasgroups_debug -laslrsgui_debug -lastransitionlib_debug LIBS += -lasquestionmaster_debug -lashandwriting_debug -ladditional_debug -lpwidgets_debug -lasatlasobjects_debug LIBS += -lpromessaging_debug -ljsoncpp_debug LIBS += -L$(ASDIR)/3rdparty/libs/mac/x64 -lnanomsg.5.1.0 LIBS += -L$${PHONON_LIB_PATH}/mac -lphonon4qt5 -lphonon4qt5experimental LIBS += -L$${CLASSFLOWCLIENT_DIR}/mac/debug -lclassflowclient LIBS += -L$${APPFRAMEWORK_DIR}/mac/debug -latlascommsd -lqtatlascommsd -lappcontrollerd LIBS += -L$${ACTIVSYSTEM_DIR}/mac/debug -lactivsystemd2 #-framework Breakpad } else:win32{ # Windows ;) LIBS += -L$(ASDIR)/debug LIBS += -lascommond -lascored -lasprintd -lequationsd -lascoreguid -lasgraphlibd -lmkvectorfilld -lasexceld -lxlslibd -laslocaled -lasspellcheckerd -lasgroupsd -laslrsguid -lastransitionlibd -lasquestionmasterd -lashandwritingd -ladditionald -lpwidgetsd -lasatlasobjectsd LIBS += -ljsoncppd -lpromessagingd LIBS += -L$${APPFRAMEWORK_DIR}/win/x86/debug/lib -lappcontrollerd1 LIBS += -L$$PHONON_LIB_PATH/win/x86/debug/lib -lphonon4qt5 -lphonon4qt5experimental -lphononwidgets LIBS += -L$${CLASSFLOWCLIENT_DIR}/win/x86/debug/lib -lclassflowclient LIBS += -L$${ACTIVSYSTEM_DIR}/win/x86/debug/lib -lactivsystemd2 }else:linux:android{ LIBS += -L$(ASDIR)/debug -lascommon_debug -lascore_debug -lasprint_debug -lequations_debug -lascoregui_debug -lasgraphlib_debug -lmkvectorfill_debug -lasexcel_debug -lxlslib_debug -laslocale_debug -lasspellchecker_debug -lasgroups_debug -laslrsgui_debug -lastransitionlib_debug -lasquestionmaster_debug -lashandwriting_debug -ladditional_debug -lpwidgets_debug -lasatlasobjects_debug LIBS += -L$${APPFRAMEWORK_DIR}/android/x64/debug/lib -latlascommsd -lqtatlascommsd -lappcontrollerd LIBS += -lpromessaging_debug -ljsoncpp_debug LIBS += -L$$PHONON_LIB_PATH/android/x64/debug/lib -lphonon4qt5 -lphonon4qt5experimental LIBS += -L$${CLASSFLOWCLIENT_DIR}/android/x64/debug/lib -lclassflowclient LIBS += -L$${ACTIVSYSTEM_DIR}/android/x64/debug/lib -lactivsystemd } win32:{ } else:mac { } else:linux:!android{ # Linux only ubuntu1404 | ubuntu1604: { LIBS += -lasound -lXpdfRasterizer -lXmu -lscreenrec -ldl -lz LIBS += -lgstreamer-1.0 -lglib-2.0 -lgobject-2.0 LIBS += `pkg-config --libs gstreamer-video-1.0` LIBS += $(ASDIR)/3rdparty/libs/linux/libnng.so.1.1.0 } else { LIBS += -lasound -lXpdfRasterizer -lXmu -lscreenrec } } #LIBS += -L$(ASDIR)/debug -lactivsystemd2 TARGET = $$member(TARGET, 0)d win32: { QMAKE_PRE_LINK += $${COPYFILES_PATH}copyfiles_pre debug& QMAKE_POST_LINK+= $${COPYFILES_PATH}/copyfiles debug } else:mac { QMAKE_INFO_PLIST = studiod.plist QMAKE_PRE_LINK = $${COPYFILES_PATH}/copyfiles_pre debug mac QMAKE_POST_LINK = $${COPYFILES_PATH}/postlink.mac.sh debug x64 } else:linux:!android{ LIBS += -L$${APPFRAMEWORK_DIR}/lib/debug -lappcontrollerd ubuntu1404 | ubuntu1604 { QMAKE_POST_LINK = $${COPYFILES_PATH}/copyfiles debug linux postubuntu1204 } else { QMAKE_POST_LINK = $${COPYFILES_PATH}/postlink.linux_desktop.sh debug } QMAKE_PRE_LINK = $${COPYFILES_PATH}/copyfiles_pre debug linux } } ## CONFIG RELEASE ## CONFIG(release, debug|release) { DESTDIR = $(ASDIR)/release MOC_DIR = release/moc OBJECTS_DIR = release/obj UI_DIR = release/ui LIBS += -L$(ASDIR)/release LIBS += -lascommon -lascore -lasprint -lequations -lascoregui -lasgraphlib -lmkvectorfill -lasexcel -lxlslib -laslocale -lasspellchecker -lasgroups -laslrsgui -lastransitionlib -lasquestionmaster -lashandwriting -ladditional -lpwidgets -lasatlasobjects LIBS += -lpromessaging -ljsoncpp linux: { LIBS += -L$${APPFRAMEWORK_DIR}/linux/x64/release/lib -latlascomms -lqtatlascomms -lappcontroller LIBS += -L$$PHONON_LIB_PATH/linux/x64/release/lib -lphonon4qt5 -lphonon4qt5experimental LIBS += -L$${CLASSFLOWCLIENT_DIR}/linux/x64/release/lib -lclassflowclient LIBS += -L$${ACTIVSYSTEM_DIR}/linux/x64/release/lib -lactivsystem } else:mac{ LIBS += -L$(ASDIR)/3rdparty/libs/mac/x64 -lnanomsg.5.1.0 LIBS += -L$${PHONON_LIB_PATH}/mac -lphonon4qt5 -lphonon4qt5experimental LIBS += -L$${CLASSFLOWCLIENT_DIR}/mac/release -lclassflowclient LIBS += -L$${APPFRAMEWORK_DIR}/mac/release -latlascomms -lqtatlascomms -lappcontroller LIBS += -L$${ACTIVSYSTEM_DIR}/mac/release -lactivsystem2 } else:win32{ LIBS += -L$${CLASSFLOWCLIENT_DIR}/win/x86/release/lib -lclassflowclient LIBS += -L$${APPFRAMEWORK_DIR}/win/x86/release/lib -lappcontroller1 LIBS += -L$$PHONON_LIB_PATH/win/x86/release/lib -lphonon4qt5 -lphonon4qt5experimental -lphononwidgets LIBS += -L$${ACTIVSYSTEM_DIR}/win/x86/release/lib -lactivsystem2 }else:linux:android{ LIBS += -L$(ASDIR)/release LIBS += -lascommon -lascore -lasprint -lequations -lascoregui -lasgraphlib -lmkvectorfill \ -lasexcel -lxlslib -laslocale -lasspellchecker -lasgroups -laslrsgui -lastransitionlib \ -lasquestionmaster -lashandwriting -ladditional -lpwidgets -lasatlasobjects LIBS += -L$${APPFRAMEWORK_DIR}/android/x64/release/lib -latlascomms -lqtatlascomms -lappcontroller LIBS += -lpromessaging -ljsoncpp LIBS += -L$$PHONON_LIB_PATH/android/x64/release/lib -lphonon4qt5 -lphonon4qt5experimental LIBS += -L$${CLASSFLOWCLIENT_DIR}/android/x64/release/lib -lclassflowclient LIBS += -L$${ACTIVSYSTEM_DIR}/android/x64/release/lib -lactivsystem } win32:{ } else:mac { } else:linux:!android { # Linux only ubuntu1404 | ubuntu1604: { LIBS += -lasound -lXpdfRasterizer -lXmu -lscreenrec -ldl -lz LIBS += -lgstreamer-1.0 -lglib-2.0 -lgobject-2.0 LIBS += `pkg-config --libs gstreamer-video-1.0` LIBS += $(ASDIR)/3rdparty/libs/linux/libnng.so.1.1.0 } else { LIBS += -lasound -lXmu -ldl -lz # LIBS += -L$$(ASDIR)/3rdparty/libs/linux -lXpdfRasterizer LIBS += -L$$(ASDIR)/3rdparty/ScreenRecorder/linux/x64/debug/lib -lscreenrec } } !win32:DEFINES += QT_NO_DEBUG_OUTPUT win32:{ QMAKE_POST_LINK = $${COPYFILES_PATH}/copyfiles release QMAKE_PRE_LINK = $${COPYFILES_PATH}/copyfiles_pre release QMAKE_CFLAGS_RELEASE += /Zi QMAKE_CXXFLAGS_RELEASE += /Zi QMAKE_LFLAGS_RELEASE += /DEBUG /OPT:REF /OPT:ICF } else:mac { QMAKE_INFO_PLIST=studio.plist QMAKE_PRE_LINK = $${COPYFILES_PATH}/copyfiles_pre release mac QMAKE_POST_LINK = $${COPYFILES_PATH}/postlink.mac.sh release x64 }else:linux:!android{ ubuntu1404 | ubuntu1604 { QMAKE_POST_LINK = $${COPYFILES_PATH}/postlink.linux_desktop.sh release postubuntu1204 } else { QMAKE_POST_LINK = $${COPYFILES_PATH}/postlink.linux_desktop.sh release } QMAKE_PRE_LINK = $${COPYFILES_PATH}/copyfiles_pre release linux } } #Source file(s) SOURCES += ./main.cpp \ ./asstudiowrapper.cpp \ ./qtsingleapplication.cpp \ ./qtlocalpeer.cpp \ ./qtlockedfile.cpp # QApplication HEADERS += ./qtsingleapplication.h \ ./qtlocalpeer.h \ ./qtlockedfile.h \ ./asstudiowrapper.h [Edit: added missing coding tags SGaist]
  • 0 Votes
    4 Posts
    529 Views
    SGaistS
    Didn re-run qmake after that adding that line ?
  • QString and Android String are not comparable??

    Solved
    6
    1 Votes
    6 Posts
    942 Views
    G
    if( accountName.equals( line ) ) This works. Hmmm... No wonder I hate Java.
  • Could not create shader pogram when cross-compiling for Raspbery Pi 3.

    Unsolved
    6
    0 Votes
    6 Posts
    1k Views
    J
    I just had the same problem. I was using https://wiki.qt.io/RaspberryPi2EGLFS for instructions on how to do the cross-compiling. It turns out that I had forgotten to do: step 13, update the ld config on the Raspberry Pi so that it could find the libraries, and step 14, Fix the EGL/GLES libraries. One thing I had done differently is that I did update the qmake.conf file to use the Broadcom drivers as recommended at https://bugreports.qt.io/browse/QTBUG-62216. The qmake.conf file that I modified was for linux-rasp-pi-g++ I was building Qt 5.12.3 for a Raspberry Pi 3B running Raspbian Buster. Once I completed these two steps, my application runs without problems.
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    25 Views
    No one has replied
  • moc cpp generation fails with "No relevant classes found. No output generated."

    Solved
    13
    0 Votes
    13 Posts
    7k Views
    SGaistS
    Thanks for sharing your additional findings !
  • Text file in android

    Unsolved
    8
    0 Votes
    8 Posts
    864 Views
    SGaistS
    As I already wrote in a previous answer, check whether the folder exists and if not create it. The value returned returned by QStandardPaths are correct, but it doesn't mean that they already exist. It would make no sense to "pre-create" all possible folders if they are never used.
  • Open files with application by extension (*.extension) on Android/iOS. How?

    Unsolved
    4
    0 Votes
    4 Posts
    571 Views
    SGaistS
    That article looks interesting ! Thanks for sharing it.
  • Building Qt for BeagleBone working Debian 9.5

    Unsolved
    17
    0 Votes
    17 Posts
    4k Views
    C
    Hi, kind of late but I solve it https://comarius.blogspot.com/2019/08/qt-512-on-beaglebone-with-full-egl-no-x.html
  • QOpenGLShader::link: LinkShaders: Too many instructions.

    Unsolved
    6
    0 Votes
    6 Posts
    872 Views
    A
    @eddy I'm using what som provider offers (toradex) and Qt comes in this version. Maybe it's a good solution use the latest LTS QT, i think is 5.12.. but by now we don't have time to switch to.. Thanks!
  • Qt vs Native for mobile. What is advantage and disadvantage?

    Unsolved
    1
    0 Votes
    1 Posts
    220 Views
    No one has replied
  • QCamera

    Unsolved
    4
    0 Votes
    4 Posts
    573 Views
    T
    Thankyou @jsulm @Eddy , I will try both examples and see whether they work.