diff --git a/source-linux/application.qrc b/source-linux/application.qrc deleted file mode 100644 index ad823aa..0000000 --- a/source-linux/application.qrc +++ /dev/null @@ -1,262 +0,0 @@ - - - qtquickcontrols2.conf - qml/friendiqa.qml - qml/newsqml/NewsStack.qml - qml/newsqml/NewsTab.qml - qml/newsqml/Newsitem.qml - qml/newsqml/MessageSend.qml - qml/newsqml/Conversation.qml - qml/newsqml/FriendicaActivities.qml - qml/newsqml/Hashtag.qml - qml/newsqml/NewsImage.qml - qml/newsqml/NewsVideo.qml - qml/newsqml/ContactPage.qml - qml/newsqml/NewsVideoLarge.qml - qml/newsqml/SmileyDialog.qml - qml/contactqml/FriendsTab.qml - qml/contactqml/GroupComponent.qml - qml/contactqml/ProfileComponent.qml - qml/contactqml/Contactlist.qml - qml/photoqml/PhotoComponent.qml - qml/photoqml/PhotogroupComponent.qml - qml/photoqml/PhotoTab.qml - qml/photoqml/ImageUploadDialog.qml - qml/genericqml/ImagePicker.qml - qml/genericqml/ImagePickerLinux.qml - qml/genericqml/Search.qml - qml/genericqml/IntentReceiver.qml - qml/genericqml/MButton.qml - qml/genericqml/LinuxSync.qml - qml/genericqml/BlueButton.qml - qml/genericqml/ContactComponent.qml - qml/genericqml/PermissionDialog.qml - qml/calendarqml/CalendarTab.qml - qml/calendarqml/CalendarDay.qml - qml/calendarqml/EventList.qml - qml/configqml/AccountPage.qml - qml/configqml/SyncConfig.qml - qml/configqml/SyncComponent.qml - qml/configqml/InfoBox.qml - qml/configqml/ConfigPage.qml - qml/configqml/OSSettingsAndroid.qml - qml/configqml/OSSettingsLinux.qml - js/image.js - js/photoworker.js - js/service.js - js/news.js - js/newsworker.js - js/helper.js - js/smiley.js - translations/friendiqa-it.ts - translations/friendiqa-it.qm - translations/friendiqa-de.qm - translations/friendiqa-de.ts - translations/friendiqa-es.qm - translations/friendiqa-es.ts - images/defaultcontact.jpg - images/fontawesome-webfont.ttf - images/folder-blue.png - images/smileys/animals/bee.gif - images/smileys/animals/bigspider.gif - images/smileys/animals/bunny.gif - images/smileys/animals/bunnyflowers.gif - images/smileys/animals/cat.gif - images/smileys/animals/chick.gif - images/smileys/animals/cow.gif - images/smileys/animals/crab.gif - images/smileys/animals/dog.gif - images/smileys/animals/dolphin.gif - images/smileys/animals/dragonfly.gif - images/smileys/animals/elephant.gif - images/smileys/animals/fish.gif - images/smileys/animals/frog.gif - images/smileys/animals/giraffe.gif - images/smileys/animals/hamster.gif - images/smileys/animals/horse.gif - images/smileys/animals/ladybird.gif - images/smileys/animals/monkey.gif - images/smileys/animals/parrot.gif - images/smileys/animals/pig.gif - images/smileys/animals/sheep.gif - images/smileys/animals/snail.gif - images/smileys/animals/tux.gif - images/smileys/babies/baby.gif - images/smileys/babies/babycot.gif - images/smileys/babies/pregnant.gif - images/smileys/babies/stork.gif - images/smileys/confused/confused.gif - images/smileys/confused/dazed.gif - images/smileys/confused/shrug.gif - images/smileys/confused/stupid.gif - images/smileys/cool/affro.gif - images/smileys/cool/cool.gif - images/smileys/devilangel/angel.gif - images/smileys/devilangel/blondedevil.gif - images/smileys/devilangel/catdevil.gif - images/smileys/devilangel/cherub.gif - images/smileys/devilangel/daseesaw.gif - images/smileys/devilangel/devil.gif - images/smileys/devilangel/graveside.gif - images/smileys/devilangel/saint.gif - images/smileys/devilangel/turnevil.gif - images/smileys/disgust/fartblush.gif - images/smileys/disgust/fartinbed.gif - images/smileys/disgust/toilet.gif - images/smileys/disgust/vomit.gif - images/smileys/drink/tea.gif - images/smileys/drool/drool.gif - images/smileys/fantasy/alienmonster.gif - images/smileys/fantasy/barbarian.gif - images/smileys/fantasy/dinosaur.gif - images/smileys/fantasy/dragon.gif - images/smileys/fantasy/dragonwhelp.gif - images/smileys/fantasy/ghost.gif - images/smileys/fantasy/mummy.gif - images/smileys/fight/2guns.gif - images/smileys/fight/acid.gif - images/smileys/fight/alienfight.gif - images/smileys/fight/alpha.png - images/smileys/fight/army.gif - images/smileys/fight/arrowhead.gif - images/smileys/fight/bfg.gif - images/smileys/fight/bowman.gif - images/smileys/fight/chainsaw.gif - images/smileys/fight/crossbow.gif - images/smileys/fight/crusader.gif - images/smileys/fight/dead.gif - images/smileys/fight/gangs.gif - images/smileys/fight/hammersplat.gif - images/smileys/fight/lasergun.gif - images/smileys/fight/machinegun.gif - images/smileys/fight/marine.gif - images/smileys/fight/sabre.gif - images/smileys/fight/samurai.gif - images/smileys/fight/tank.gif - images/smileys/fight/viking.gif - images/smileys/food/apple.gif - images/smileys/food/banana.gif - images/smileys/food/birthdaycake.gif - images/smileys/food/broccoli.gif - images/smileys/food/cake.gif - images/smileys/food/carrot.gif - images/smileys/food/cooking.gif - images/smileys/food/fryegg.gif - images/smileys/food/popcorn.gif - images/smileys/food/tomato.gif - images/smileys/happy/cloud9.gif - images/smileys/happy/tearsofjoy.gif - images/smileys/laugh/hahaha.gif - images/smileys/laugh/loltv.gif - images/smileys/laugh/rofl.gif - images/smileys/love/iloveyou.gif - images/smileys/love/inlove.gif - images/smileys/love/love.gif - images/smileys/love/lovebear.gif - images/smileys/love/lovebed.gif - images/smileys/love/loveheart.gif - images/smileys/music/dj.gif - images/smileys/music/drums.gif - images/smileys/music/elvis.gif - images/smileys/music/guitar.gif - images/smileys/music/trumpet.gif - images/smileys/music/violin.gif - images/smileys/oldcore/beard.png - images/smileys/oldcore/headbang.gif - images/smileys/oldcore/laughing.gif - images/smileys/oldcore/shaka.gif - images/smileys/oldcore/surprised.gif - images/smileys/oldcore/whitebeard.png - images/smileys/respect/bow.gif - images/smileys/respect/bravo.gif - images/smileys/respect/hailking.gif - images/smileys/respect/number1.gif - images/smileys/sad/crying.png - images/smileys/sad/prisoner.gif - images/smileys/sad/sigh.gif - images/smileys/smoking/smoking.gif - images/smileys/sport/archery.gif - images/smileys/sport/basketball.gif - images/smileys/sport/bowling.gif - images/smileys/sport/cycling.gif - images/smileys/sport/darts.gif - images/smileys/sport/fencing.gif - images/smileys/sport/football.gif - images/smileys/sport/golf.gif - images/smileys/sport/horseriding.gif - images/smileys/sport/juggling.gif - images/smileys/sport/skipping.gif - images/smileys/sport/snooker.gif - images/smileys/sport/surfing.gif - images/smileys/sport/tennis.gif - images/smileys/tired/countsheep.gif - images/smileys/tired/hammock.gif - images/smileys/tired/pillow.gif - images/smileys/tired/yawn.gif - images/smileys/core/beer_mug.gif - images/smileys/core/coffee.gif - images/smileys/core/dislike.gif - images/smileys/core/friendica-16.png - images/smileys/core/like.gif - images/smileys/core/rm-16.png - images/smileys/core/smiley-bangheaddesk.gif - images/smileys/core/smiley-brokenheart.gif - images/smileys/core/smiley-cool.gif - images/smileys/core/smiley-cry.gif - images/smileys/core/smiley-embarassed.gif - images/smileys/core/smiley-facepalm.gif - images/smileys/core/smiley-foot-in-mouth.gif - images/smileys/core/smiley-heart.gif - images/smileys/core/smiley-kiss.gif - images/smileys/core/smiley-laughing.gif - images/smileys/core/smiley-Oo.gif - images/smileys/core/smiley-smile.gif - images/smileys/core/smiley-surprised.gif - images/smileys/core/smiley-thumbsup.gif - images/smileys/core/smiley-tongue-out.gif - images/smileys/core/smiley-undecided.gif - images/smileys/core/smiley-wink.gif - images/smileys/core/smiley-frown.gif - images/smileys/adult/bong.gif - images/smileys/adult/drunk.gif - images/smileys/adult/finger.gif - images/smileys/adult/sperm.gif - images/smileys/adult/tits.gif - images/addImage.png - common/filesystem.cpp - common/filesystem.h - common/friendiqa.cpp - common/uploadableimage.cpp - common/uploadableimage.h - common/xhr.cpp - common/xhr.h - qml/newsqml/MoreComments.qml - qml/newsqml/NewsPhotolist.qml - qml/genericqml/DrawerAccountComponent.qml - qml/configqml/LeftDrawerScrollview.qml - qml/genericqml/LeftDrawerLinux.qml - qml/genericqml/LeftDrawerAndroid.qml - qml/genericqml/DrawerAccountComponentContacts.qml - qml/contactqml/ProfileTab.qml - qml/contactqml/FriendsListTab.qml - qml/contactqml/GroupsListTab.qml - qml/calendarqml/EventListItem.qml - translations/friendiqa-hu.qm - translations/friendiqa-hu.ts - images/Friendiqa.png - images/Friendica_monochrome.png - qml/configqml/ConfigAppearancePage.qml - qml/configqml/ConfigStartPage.qml - qml/contactqml/ContactsSearchPage.qml - images/Friendiqa.ico - qml/calendarqml/EventCreate.qml - qml/newsqml/BlockUser.qml - qml/newsqml/ReportUser.qml - qml/newsqml/MessageImageUploadDialog.qml - qml/configqml/AcceptRules.qml - translations/friendiqa-nl.qm - translations/friendiqa-nl.ts - qml/genericqml/SearchDialog.qml - qml/newsqml/NewsTabbutton.qml - - diff --git a/source-linux/friendiqa.pro b/source-linux/friendiqa.pro deleted file mode 100644 index a9313c9..0000000 --- a/source-linux/friendiqa.pro +++ /dev/null @@ -1,65 +0,0 @@ -# NOTICE: -# -# Application name defined in TARGET has a corresponding QML filename. -# If name defined in TARGET is changed, the following needs to be done -# to match new name: -# - corresponding QML filename must be changed -# - desktop icon filename must be changed -# - desktop filename must be changed -# - icon definition filename in desktop file must be changed -# - translation filenames have to be changed - -# The name of your application -TEMPLATE = app -TARGET = friendiqa -CONFIG += release -QT += qml quick gui widgets sql webview dbus webengine - -SOURCES += common/friendiqa.cpp \ - common/uploadableimage.cpp \ - common/xhr.cpp \ - common/filesystem.cpp \ - common/remoteauthasyncimageprovider.cpp \ - common/updatenews.cpp \ - common/alarmlinux.cpp - -RESOURCES = application.qrc - -OTHER_FILES += qml/friendiqa.qml \ - translations/*.ts \ - qml/*.qml - qml/newsqml/*.qml - qml/contactqml/*.qml - qml/photoqml/*.qml - qml/configqml/*.qml - js/*.js - -TRANSLATIONS += translations/friendiqa-de.ts \ - translations/friendiqa-es.ts \ - translations/friendiqa-it.ts -HEADERS += \ - common/uploadableimage.h \ - common/xhr.h \ - common/filesystem.h \ - common/remoteauthasyncimageprovider.h \ - common/updatenews.h \ - common/alarm.h - -DISTFILES += \ - qml/calendarqml/*.qml \ - translations/*.ts \ - translations/*.qm \ - qml/*.qml \ - qml/newsqml/*.qml \ - qml/contactqml/*.qml \ - qml/photoqml/*.qml \ - qml/configqml/*.qml \ - js/*.js \ - - -target.path=/usr/bin -desktop.path = /usr/share/applications -desktop.files = images/de.ma-nic.Friendiqa.desktop -icon.path = /usr/share/icons/hicolor/scalable/apps -icon.files = images/Friendiqa.svg -INSTALLS+=target desktop icon diff --git a/source-linux/images/addImage.png b/source-linux/images/addImage.png deleted file mode 100644 index 988f9f1..0000000 Binary files a/source-linux/images/addImage.png and /dev/null differ diff --git a/source-linux/images/fontawesome-webfont.ttf b/source-linux/images/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2..0000000 Binary files a/source-linux/images/fontawesome-webfont.ttf and /dev/null differ diff --git a/source-linux/images/smileys/adult/bong.gif b/source-linux/images/smileys/adult/bong.gif deleted file mode 100644 index 4b67122..0000000 Binary files a/source-linux/images/smileys/adult/bong.gif and /dev/null differ diff --git a/source-linux/images/smileys/adult/drunk.gif b/source-linux/images/smileys/adult/drunk.gif deleted file mode 100644 index 4a1c064..0000000 Binary files a/source-linux/images/smileys/adult/drunk.gif and /dev/null differ diff --git a/source-linux/images/smileys/adult/finger.gif b/source-linux/images/smileys/adult/finger.gif deleted file mode 100644 index d45dcb8..0000000 Binary files a/source-linux/images/smileys/adult/finger.gif and /dev/null differ diff --git a/source-linux/images/smileys/adult/sperm.gif b/source-linux/images/smileys/adult/sperm.gif deleted file mode 100644 index 6ba9219..0000000 Binary files a/source-linux/images/smileys/adult/sperm.gif and /dev/null differ diff --git a/source-linux/images/smileys/adult/tits.gif b/source-linux/images/smileys/adult/tits.gif deleted file mode 100644 index 4c1658c..0000000 Binary files a/source-linux/images/smileys/adult/tits.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/bee.gif b/source-linux/images/smileys/animals/bee.gif deleted file mode 100644 index 206c2e3..0000000 Binary files a/source-linux/images/smileys/animals/bee.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/bigspider.gif b/source-linux/images/smileys/animals/bigspider.gif deleted file mode 100644 index bc43deb..0000000 Binary files a/source-linux/images/smileys/animals/bigspider.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/bunny.gif b/source-linux/images/smileys/animals/bunny.gif deleted file mode 100644 index 402b2b3..0000000 Binary files a/source-linux/images/smileys/animals/bunny.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/bunnyflowers.gif b/source-linux/images/smileys/animals/bunnyflowers.gif deleted file mode 100644 index 6d665e2..0000000 Binary files a/source-linux/images/smileys/animals/bunnyflowers.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/cat.gif b/source-linux/images/smileys/animals/cat.gif deleted file mode 100644 index a612c47..0000000 Binary files a/source-linux/images/smileys/animals/cat.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/chick.gif b/source-linux/images/smileys/animals/chick.gif deleted file mode 100644 index 6bcddcd..0000000 Binary files a/source-linux/images/smileys/animals/chick.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/cow.gif b/source-linux/images/smileys/animals/cow.gif deleted file mode 100644 index 3f94cfa..0000000 Binary files a/source-linux/images/smileys/animals/cow.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/crab.gif b/source-linux/images/smileys/animals/crab.gif deleted file mode 100644 index db5b8ce..0000000 Binary files a/source-linux/images/smileys/animals/crab.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/dog.gif b/source-linux/images/smileys/animals/dog.gif deleted file mode 100644 index 7b28477..0000000 Binary files a/source-linux/images/smileys/animals/dog.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/dolphin.gif b/source-linux/images/smileys/animals/dolphin.gif deleted file mode 100644 index 672ebd7..0000000 Binary files a/source-linux/images/smileys/animals/dolphin.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/dragonfly.gif b/source-linux/images/smileys/animals/dragonfly.gif deleted file mode 100644 index 566e95c..0000000 Binary files a/source-linux/images/smileys/animals/dragonfly.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/elephant.gif b/source-linux/images/smileys/animals/elephant.gif deleted file mode 100644 index 4311e97..0000000 Binary files a/source-linux/images/smileys/animals/elephant.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/fish.gif b/source-linux/images/smileys/animals/fish.gif deleted file mode 100644 index 3a7a584..0000000 Binary files a/source-linux/images/smileys/animals/fish.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/frog.gif b/source-linux/images/smileys/animals/frog.gif deleted file mode 100644 index 85e4b56..0000000 Binary files a/source-linux/images/smileys/animals/frog.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/giraffe.gif b/source-linux/images/smileys/animals/giraffe.gif deleted file mode 100644 index 4c95ea4..0000000 Binary files a/source-linux/images/smileys/animals/giraffe.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/hamster.gif b/source-linux/images/smileys/animals/hamster.gif deleted file mode 100644 index 96c7323..0000000 Binary files a/source-linux/images/smileys/animals/hamster.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/horse.gif b/source-linux/images/smileys/animals/horse.gif deleted file mode 100644 index 9103abf..0000000 Binary files a/source-linux/images/smileys/animals/horse.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/ladybird.gif b/source-linux/images/smileys/animals/ladybird.gif deleted file mode 100644 index 69444a9..0000000 Binary files a/source-linux/images/smileys/animals/ladybird.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/monkey.gif b/source-linux/images/smileys/animals/monkey.gif deleted file mode 100644 index b9b338d..0000000 Binary files a/source-linux/images/smileys/animals/monkey.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/parrot.gif b/source-linux/images/smileys/animals/parrot.gif deleted file mode 100644 index ae6faf6..0000000 Binary files a/source-linux/images/smileys/animals/parrot.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/pig.gif b/source-linux/images/smileys/animals/pig.gif deleted file mode 100644 index bdc68e8..0000000 Binary files a/source-linux/images/smileys/animals/pig.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/sheep.gif b/source-linux/images/smileys/animals/sheep.gif deleted file mode 100644 index 8fafc11..0000000 Binary files a/source-linux/images/smileys/animals/sheep.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/snail.gif b/source-linux/images/smileys/animals/snail.gif deleted file mode 100644 index 3bdb44c..0000000 Binary files a/source-linux/images/smileys/animals/snail.gif and /dev/null differ diff --git a/source-linux/images/smileys/animals/tux.gif b/source-linux/images/smileys/animals/tux.gif deleted file mode 100644 index 08e006e..0000000 Binary files a/source-linux/images/smileys/animals/tux.gif and /dev/null differ diff --git a/source-linux/images/smileys/babies/baby.gif b/source-linux/images/smileys/babies/baby.gif deleted file mode 100644 index d105afb..0000000 Binary files a/source-linux/images/smileys/babies/baby.gif and /dev/null differ diff --git a/source-linux/images/smileys/babies/babycot.gif b/source-linux/images/smileys/babies/babycot.gif deleted file mode 100644 index 750f6df..0000000 Binary files a/source-linux/images/smileys/babies/babycot.gif and /dev/null differ diff --git a/source-linux/images/smileys/babies/pregnant.gif b/source-linux/images/smileys/babies/pregnant.gif deleted file mode 100644 index d97f476..0000000 Binary files a/source-linux/images/smileys/babies/pregnant.gif and /dev/null differ diff --git a/source-linux/images/smileys/babies/stork.gif b/source-linux/images/smileys/babies/stork.gif deleted file mode 100644 index de2371d..0000000 Binary files a/source-linux/images/smileys/babies/stork.gif and /dev/null differ diff --git a/source-linux/images/smileys/confused/confused.gif b/source-linux/images/smileys/confused/confused.gif deleted file mode 100644 index 8f1b79a..0000000 Binary files a/source-linux/images/smileys/confused/confused.gif and /dev/null differ diff --git a/source-linux/images/smileys/confused/dazed.gif b/source-linux/images/smileys/confused/dazed.gif deleted file mode 100644 index f5e7ec2..0000000 Binary files a/source-linux/images/smileys/confused/dazed.gif and /dev/null differ diff --git a/source-linux/images/smileys/confused/shrug.gif b/source-linux/images/smileys/confused/shrug.gif deleted file mode 100644 index 31ce007..0000000 Binary files a/source-linux/images/smileys/confused/shrug.gif and /dev/null differ diff --git a/source-linux/images/smileys/confused/stupid.gif b/source-linux/images/smileys/confused/stupid.gif deleted file mode 100644 index c17170a..0000000 Binary files a/source-linux/images/smileys/confused/stupid.gif and /dev/null differ diff --git a/source-linux/images/smileys/cool/affro.gif b/source-linux/images/smileys/cool/affro.gif deleted file mode 100644 index f06166b..0000000 Binary files a/source-linux/images/smileys/cool/affro.gif and /dev/null differ diff --git a/source-linux/images/smileys/cool/cool.gif b/source-linux/images/smileys/cool/cool.gif deleted file mode 100644 index 05ba9f1..0000000 Binary files a/source-linux/images/smileys/cool/cool.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/beer_mug.gif b/source-linux/images/smileys/core/beer_mug.gif deleted file mode 100644 index 9a3e051..0000000 Binary files a/source-linux/images/smileys/core/beer_mug.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/coffee.gif b/source-linux/images/smileys/core/coffee.gif deleted file mode 100644 index 7e20371..0000000 Binary files a/source-linux/images/smileys/core/coffee.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/dislike.gif b/source-linux/images/smileys/core/dislike.gif deleted file mode 100644 index 7777942..0000000 Binary files a/source-linux/images/smileys/core/dislike.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/friendica-16.png b/source-linux/images/smileys/core/friendica-16.png deleted file mode 100644 index 745b7ac..0000000 Binary files a/source-linux/images/smileys/core/friendica-16.png and /dev/null differ diff --git a/source-linux/images/smileys/core/like.gif b/source-linux/images/smileys/core/like.gif deleted file mode 100644 index f71d032..0000000 Binary files a/source-linux/images/smileys/core/like.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/rm-16.png b/source-linux/images/smileys/core/rm-16.png deleted file mode 100644 index 9361ef2..0000000 Binary files a/source-linux/images/smileys/core/rm-16.png and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-Oo.gif b/source-linux/images/smileys/core/smiley-Oo.gif deleted file mode 100644 index a15d974..0000000 Binary files a/source-linux/images/smileys/core/smiley-Oo.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-bangheaddesk.gif b/source-linux/images/smileys/core/smiley-bangheaddesk.gif deleted file mode 100644 index 91ccb8b..0000000 Binary files a/source-linux/images/smileys/core/smiley-bangheaddesk.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-brokenheart.gif b/source-linux/images/smileys/core/smiley-brokenheart.gif deleted file mode 100644 index 971b57f..0000000 Binary files a/source-linux/images/smileys/core/smiley-brokenheart.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-cool.gif b/source-linux/images/smileys/core/smiley-cool.gif deleted file mode 100644 index cee1c1a..0000000 Binary files a/source-linux/images/smileys/core/smiley-cool.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-cry.gif b/source-linux/images/smileys/core/smiley-cry.gif deleted file mode 100644 index 06e6ca2..0000000 Binary files a/source-linux/images/smileys/core/smiley-cry.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-embarassed.gif b/source-linux/images/smileys/core/smiley-embarassed.gif deleted file mode 100644 index adc12e7..0000000 Binary files a/source-linux/images/smileys/core/smiley-embarassed.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-facepalm.gif b/source-linux/images/smileys/core/smiley-facepalm.gif deleted file mode 100644 index 7243703..0000000 Binary files a/source-linux/images/smileys/core/smiley-facepalm.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-foot-in-mouth.gif b/source-linux/images/smileys/core/smiley-foot-in-mouth.gif deleted file mode 100644 index b444e57..0000000 Binary files a/source-linux/images/smileys/core/smiley-foot-in-mouth.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-frown.gif b/source-linux/images/smileys/core/smiley-frown.gif deleted file mode 100644 index 9ff1985..0000000 Binary files a/source-linux/images/smileys/core/smiley-frown.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-heart.gif b/source-linux/images/smileys/core/smiley-heart.gif deleted file mode 100644 index 6a11e70..0000000 Binary files a/source-linux/images/smileys/core/smiley-heart.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-kiss.gif b/source-linux/images/smileys/core/smiley-kiss.gif deleted file mode 100644 index cc35661..0000000 Binary files a/source-linux/images/smileys/core/smiley-kiss.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-laughing.gif b/source-linux/images/smileys/core/smiley-laughing.gif deleted file mode 100644 index 1bf29de..0000000 Binary files a/source-linux/images/smileys/core/smiley-laughing.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-smile.gif b/source-linux/images/smileys/core/smiley-smile.gif deleted file mode 100644 index b9bff40..0000000 Binary files a/source-linux/images/smileys/core/smiley-smile.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-surprised.gif b/source-linux/images/smileys/core/smiley-surprised.gif deleted file mode 100644 index b074653..0000000 Binary files a/source-linux/images/smileys/core/smiley-surprised.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-thumbsup.gif b/source-linux/images/smileys/core/smiley-thumbsup.gif deleted file mode 100644 index 1bc6b12..0000000 Binary files a/source-linux/images/smileys/core/smiley-thumbsup.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-tongue-out.gif b/source-linux/images/smileys/core/smiley-tongue-out.gif deleted file mode 100644 index 48867dc..0000000 Binary files a/source-linux/images/smileys/core/smiley-tongue-out.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-undecided.gif b/source-linux/images/smileys/core/smiley-undecided.gif deleted file mode 100644 index 2802979..0000000 Binary files a/source-linux/images/smileys/core/smiley-undecided.gif and /dev/null differ diff --git a/source-linux/images/smileys/core/smiley-wink.gif b/source-linux/images/smileys/core/smiley-wink.gif deleted file mode 100644 index e1cefb0..0000000 Binary files a/source-linux/images/smileys/core/smiley-wink.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/angel.gif b/source-linux/images/smileys/devilangel/angel.gif deleted file mode 100644 index 8e58541..0000000 Binary files a/source-linux/images/smileys/devilangel/angel.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/blondedevil.gif b/source-linux/images/smileys/devilangel/blondedevil.gif deleted file mode 100644 index 09e7e68..0000000 Binary files a/source-linux/images/smileys/devilangel/blondedevil.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/catdevil.gif b/source-linux/images/smileys/devilangel/catdevil.gif deleted file mode 100644 index 269d719..0000000 Binary files a/source-linux/images/smileys/devilangel/catdevil.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/cherub.gif b/source-linux/images/smileys/devilangel/cherub.gif deleted file mode 100644 index 40872e0..0000000 Binary files a/source-linux/images/smileys/devilangel/cherub.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/daseesaw.gif b/source-linux/images/smileys/devilangel/daseesaw.gif deleted file mode 100644 index 1c04b2e..0000000 Binary files a/source-linux/images/smileys/devilangel/daseesaw.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/devil.gif b/source-linux/images/smileys/devilangel/devil.gif deleted file mode 100644 index 2b56797..0000000 Binary files a/source-linux/images/smileys/devilangel/devil.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/graveside.gif b/source-linux/images/smileys/devilangel/graveside.gif deleted file mode 100644 index 0e90935..0000000 Binary files a/source-linux/images/smileys/devilangel/graveside.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/saint.gif b/source-linux/images/smileys/devilangel/saint.gif deleted file mode 100644 index 52c22c4..0000000 Binary files a/source-linux/images/smileys/devilangel/saint.gif and /dev/null differ diff --git a/source-linux/images/smileys/devilangel/turnevil.gif b/source-linux/images/smileys/devilangel/turnevil.gif deleted file mode 100644 index 1490c0f..0000000 Binary files a/source-linux/images/smileys/devilangel/turnevil.gif and /dev/null differ diff --git a/source-linux/images/smileys/disgust/fartblush.gif b/source-linux/images/smileys/disgust/fartblush.gif deleted file mode 100644 index 4160a1f..0000000 Binary files a/source-linux/images/smileys/disgust/fartblush.gif and /dev/null differ diff --git a/source-linux/images/smileys/disgust/fartinbed.gif b/source-linux/images/smileys/disgust/fartinbed.gif deleted file mode 100644 index 5553649..0000000 Binary files a/source-linux/images/smileys/disgust/fartinbed.gif and /dev/null differ diff --git a/source-linux/images/smileys/disgust/toilet.gif b/source-linux/images/smileys/disgust/toilet.gif deleted file mode 100644 index 092d7ca..0000000 Binary files a/source-linux/images/smileys/disgust/toilet.gif and /dev/null differ diff --git a/source-linux/images/smileys/disgust/vomit.gif b/source-linux/images/smileys/disgust/vomit.gif deleted file mode 100644 index 6e7e727..0000000 Binary files a/source-linux/images/smileys/disgust/vomit.gif and /dev/null differ diff --git a/source-linux/images/smileys/drink/tea.gif b/source-linux/images/smileys/drink/tea.gif deleted file mode 100644 index 474b989..0000000 Binary files a/source-linux/images/smileys/drink/tea.gif and /dev/null differ diff --git a/source-linux/images/smileys/drool/drool.gif b/source-linux/images/smileys/drool/drool.gif deleted file mode 100644 index 4093df6..0000000 Binary files a/source-linux/images/smileys/drool/drool.gif and /dev/null differ diff --git a/source-linux/images/smileys/fantasy/alienmonster.gif b/source-linux/images/smileys/fantasy/alienmonster.gif deleted file mode 100644 index e0ca7f6..0000000 Binary files a/source-linux/images/smileys/fantasy/alienmonster.gif and /dev/null differ diff --git a/source-linux/images/smileys/fantasy/barbarian.gif b/source-linux/images/smileys/fantasy/barbarian.gif deleted file mode 100644 index de8a068..0000000 Binary files a/source-linux/images/smileys/fantasy/barbarian.gif and /dev/null differ diff --git a/source-linux/images/smileys/fantasy/dinosaur.gif b/source-linux/images/smileys/fantasy/dinosaur.gif deleted file mode 100644 index e8c625c..0000000 Binary files a/source-linux/images/smileys/fantasy/dinosaur.gif and /dev/null differ diff --git a/source-linux/images/smileys/fantasy/dragon.gif b/source-linux/images/smileys/fantasy/dragon.gif deleted file mode 100644 index fd28fbf..0000000 Binary files a/source-linux/images/smileys/fantasy/dragon.gif and /dev/null differ diff --git a/source-linux/images/smileys/fantasy/dragonwhelp.gif b/source-linux/images/smileys/fantasy/dragonwhelp.gif deleted file mode 100644 index dbc4555..0000000 Binary files a/source-linux/images/smileys/fantasy/dragonwhelp.gif and /dev/null differ diff --git a/source-linux/images/smileys/fantasy/ghost.gif b/source-linux/images/smileys/fantasy/ghost.gif deleted file mode 100644 index 4c5d85d..0000000 Binary files a/source-linux/images/smileys/fantasy/ghost.gif and /dev/null differ diff --git a/source-linux/images/smileys/fantasy/mummy.gif b/source-linux/images/smileys/fantasy/mummy.gif deleted file mode 100644 index 50e1dfb..0000000 Binary files a/source-linux/images/smileys/fantasy/mummy.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/2guns.gif b/source-linux/images/smileys/fight/2guns.gif deleted file mode 100644 index 9e1b663..0000000 Binary files a/source-linux/images/smileys/fight/2guns.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/acid.gif b/source-linux/images/smileys/fight/acid.gif deleted file mode 100644 index fa55f67..0000000 Binary files a/source-linux/images/smileys/fight/acid.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/alienfight.gif b/source-linux/images/smileys/fight/alienfight.gif deleted file mode 100644 index 9d5e879..0000000 Binary files a/source-linux/images/smileys/fight/alienfight.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/alpha.png b/source-linux/images/smileys/fight/alpha.png deleted file mode 100644 index 09e3f23..0000000 Binary files a/source-linux/images/smileys/fight/alpha.png and /dev/null differ diff --git a/source-linux/images/smileys/fight/army.gif b/source-linux/images/smileys/fight/army.gif deleted file mode 100644 index 7506700..0000000 Binary files a/source-linux/images/smileys/fight/army.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/arrowhead.gif b/source-linux/images/smileys/fight/arrowhead.gif deleted file mode 100644 index f4572c4..0000000 Binary files a/source-linux/images/smileys/fight/arrowhead.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/bfg.gif b/source-linux/images/smileys/fight/bfg.gif deleted file mode 100644 index c2ba9d0..0000000 Binary files a/source-linux/images/smileys/fight/bfg.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/bowman.gif b/source-linux/images/smileys/fight/bowman.gif deleted file mode 100644 index 2f1f8f0..0000000 Binary files a/source-linux/images/smileys/fight/bowman.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/chainsaw.gif b/source-linux/images/smileys/fight/chainsaw.gif deleted file mode 100644 index 71f757c..0000000 Binary files a/source-linux/images/smileys/fight/chainsaw.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/crossbow.gif b/source-linux/images/smileys/fight/crossbow.gif deleted file mode 100644 index 20874f3..0000000 Binary files a/source-linux/images/smileys/fight/crossbow.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/crusader.gif b/source-linux/images/smileys/fight/crusader.gif deleted file mode 100644 index 95848ae..0000000 Binary files a/source-linux/images/smileys/fight/crusader.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/dead.gif b/source-linux/images/smileys/fight/dead.gif deleted file mode 100644 index 31adaba..0000000 Binary files a/source-linux/images/smileys/fight/dead.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/gangs.gif b/source-linux/images/smileys/fight/gangs.gif deleted file mode 100644 index 2c655b1..0000000 Binary files a/source-linux/images/smileys/fight/gangs.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/hammersplat.gif b/source-linux/images/smileys/fight/hammersplat.gif deleted file mode 100644 index 95bd540..0000000 Binary files a/source-linux/images/smileys/fight/hammersplat.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/lasergun.gif b/source-linux/images/smileys/fight/lasergun.gif deleted file mode 100644 index f3f82cb..0000000 Binary files a/source-linux/images/smileys/fight/lasergun.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/machinegun.gif b/source-linux/images/smileys/fight/machinegun.gif deleted file mode 100644 index 1cff5cc..0000000 Binary files a/source-linux/images/smileys/fight/machinegun.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/marine.gif b/source-linux/images/smileys/fight/marine.gif deleted file mode 100644 index 88fd2e0..0000000 Binary files a/source-linux/images/smileys/fight/marine.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/sabre.gif b/source-linux/images/smileys/fight/sabre.gif deleted file mode 100644 index e623968..0000000 Binary files a/source-linux/images/smileys/fight/sabre.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/samurai.gif b/source-linux/images/smileys/fight/samurai.gif deleted file mode 100644 index 8b24385..0000000 Binary files a/source-linux/images/smileys/fight/samurai.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/tank.gif b/source-linux/images/smileys/fight/tank.gif deleted file mode 100644 index f1d969d..0000000 Binary files a/source-linux/images/smileys/fight/tank.gif and /dev/null differ diff --git a/source-linux/images/smileys/fight/viking.gif b/source-linux/images/smileys/fight/viking.gif deleted file mode 100644 index 4908edd..0000000 Binary files a/source-linux/images/smileys/fight/viking.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/apple.gif b/source-linux/images/smileys/food/apple.gif deleted file mode 100644 index 969d4ca..0000000 Binary files a/source-linux/images/smileys/food/apple.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/banana.gif b/source-linux/images/smileys/food/banana.gif deleted file mode 100644 index d990d19..0000000 Binary files a/source-linux/images/smileys/food/banana.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/birthdaycake.gif b/source-linux/images/smileys/food/birthdaycake.gif deleted file mode 100644 index 30ebceb..0000000 Binary files a/source-linux/images/smileys/food/birthdaycake.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/broccoli.gif b/source-linux/images/smileys/food/broccoli.gif deleted file mode 100644 index f379889..0000000 Binary files a/source-linux/images/smileys/food/broccoli.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/cake.gif b/source-linux/images/smileys/food/cake.gif deleted file mode 100644 index 22d0ebd..0000000 Binary files a/source-linux/images/smileys/food/cake.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/carrot.gif b/source-linux/images/smileys/food/carrot.gif deleted file mode 100644 index 387b94c..0000000 Binary files a/source-linux/images/smileys/food/carrot.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/cooking.gif b/source-linux/images/smileys/food/cooking.gif deleted file mode 100644 index e62fea0..0000000 Binary files a/source-linux/images/smileys/food/cooking.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/fryegg.gif b/source-linux/images/smileys/food/fryegg.gif deleted file mode 100644 index bd1b4ff..0000000 Binary files a/source-linux/images/smileys/food/fryegg.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/popcorn.gif b/source-linux/images/smileys/food/popcorn.gif deleted file mode 100644 index b0ea697..0000000 Binary files a/source-linux/images/smileys/food/popcorn.gif and /dev/null differ diff --git a/source-linux/images/smileys/food/tomato.gif b/source-linux/images/smileys/food/tomato.gif deleted file mode 100644 index 0e3dadd..0000000 Binary files a/source-linux/images/smileys/food/tomato.gif and /dev/null differ diff --git a/source-linux/images/smileys/happy/cloud9.gif b/source-linux/images/smileys/happy/cloud9.gif deleted file mode 100644 index 801c1a3..0000000 Binary files a/source-linux/images/smileys/happy/cloud9.gif and /dev/null differ diff --git a/source-linux/images/smileys/happy/tearsofjoy.gif b/source-linux/images/smileys/happy/tearsofjoy.gif deleted file mode 100644 index 5de3117..0000000 Binary files a/source-linux/images/smileys/happy/tearsofjoy.gif and /dev/null differ diff --git a/source-linux/images/smileys/laugh/hahaha.gif b/source-linux/images/smileys/laugh/hahaha.gif deleted file mode 100644 index 37aa92a..0000000 Binary files a/source-linux/images/smileys/laugh/hahaha.gif and /dev/null differ diff --git a/source-linux/images/smileys/laugh/loltv.gif b/source-linux/images/smileys/laugh/loltv.gif deleted file mode 100644 index 3de6f77..0000000 Binary files a/source-linux/images/smileys/laugh/loltv.gif and /dev/null differ diff --git a/source-linux/images/smileys/laugh/rofl.gif b/source-linux/images/smileys/laugh/rofl.gif deleted file mode 100644 index a3bb03d..0000000 Binary files a/source-linux/images/smileys/laugh/rofl.gif and /dev/null differ diff --git a/source-linux/images/smileys/love/iloveyou.gif b/source-linux/images/smileys/love/iloveyou.gif deleted file mode 100644 index 7007515..0000000 Binary files a/source-linux/images/smileys/love/iloveyou.gif and /dev/null differ diff --git a/source-linux/images/smileys/love/inlove.gif b/source-linux/images/smileys/love/inlove.gif deleted file mode 100644 index 30357af..0000000 Binary files a/source-linux/images/smileys/love/inlove.gif and /dev/null differ diff --git a/source-linux/images/smileys/love/love.gif b/source-linux/images/smileys/love/love.gif deleted file mode 100644 index d8f0d5b..0000000 Binary files a/source-linux/images/smileys/love/love.gif and /dev/null differ diff --git a/source-linux/images/smileys/love/lovebear.gif b/source-linux/images/smileys/love/lovebear.gif deleted file mode 100644 index d13fd18..0000000 Binary files a/source-linux/images/smileys/love/lovebear.gif and /dev/null differ diff --git a/source-linux/images/smileys/love/lovebed.gif b/source-linux/images/smileys/love/lovebed.gif deleted file mode 100644 index c5783e0..0000000 Binary files a/source-linux/images/smileys/love/lovebed.gif and /dev/null differ diff --git a/source-linux/images/smileys/love/loveheart.gif b/source-linux/images/smileys/love/loveheart.gif deleted file mode 100644 index 541220a..0000000 Binary files a/source-linux/images/smileys/love/loveheart.gif and /dev/null differ diff --git a/source-linux/images/smileys/music/dj.gif b/source-linux/images/smileys/music/dj.gif deleted file mode 100644 index 66bc075..0000000 Binary files a/source-linux/images/smileys/music/dj.gif and /dev/null differ diff --git a/source-linux/images/smileys/music/drums.gif b/source-linux/images/smileys/music/drums.gif deleted file mode 100644 index 27215f4..0000000 Binary files a/source-linux/images/smileys/music/drums.gif and /dev/null differ diff --git a/source-linux/images/smileys/music/elvis.gif b/source-linux/images/smileys/music/elvis.gif deleted file mode 100644 index ebcdccc..0000000 Binary files a/source-linux/images/smileys/music/elvis.gif and /dev/null differ diff --git a/source-linux/images/smileys/music/guitar.gif b/source-linux/images/smileys/music/guitar.gif deleted file mode 100644 index 11eccdd..0000000 Binary files a/source-linux/images/smileys/music/guitar.gif and /dev/null differ diff --git a/source-linux/images/smileys/music/trumpet.gif b/source-linux/images/smileys/music/trumpet.gif deleted file mode 100644 index 4595ccc..0000000 Binary files a/source-linux/images/smileys/music/trumpet.gif and /dev/null differ diff --git a/source-linux/images/smileys/music/violin.gif b/source-linux/images/smileys/music/violin.gif deleted file mode 100644 index 53592d6..0000000 Binary files a/source-linux/images/smileys/music/violin.gif and /dev/null differ diff --git a/source-linux/images/smileys/oldcore/beard.png b/source-linux/images/smileys/oldcore/beard.png deleted file mode 100644 index 5d4b284..0000000 Binary files a/source-linux/images/smileys/oldcore/beard.png and /dev/null differ diff --git a/source-linux/images/smileys/oldcore/headbang.gif b/source-linux/images/smileys/oldcore/headbang.gif deleted file mode 100644 index 91ccb8b..0000000 Binary files a/source-linux/images/smileys/oldcore/headbang.gif and /dev/null differ diff --git a/source-linux/images/smileys/oldcore/laughing.gif b/source-linux/images/smileys/oldcore/laughing.gif deleted file mode 100644 index 1bf29de..0000000 Binary files a/source-linux/images/smileys/oldcore/laughing.gif and /dev/null differ diff --git a/source-linux/images/smileys/oldcore/shaka.gif b/source-linux/images/smileys/oldcore/shaka.gif deleted file mode 100644 index e5d7b70..0000000 Binary files a/source-linux/images/smileys/oldcore/shaka.gif and /dev/null differ diff --git a/source-linux/images/smileys/oldcore/surprised.gif b/source-linux/images/smileys/oldcore/surprised.gif deleted file mode 100644 index b074653..0000000 Binary files a/source-linux/images/smileys/oldcore/surprised.gif and /dev/null differ diff --git a/source-linux/images/smileys/oldcore/whitebeard.png b/source-linux/images/smileys/oldcore/whitebeard.png deleted file mode 100644 index 2a1fccb..0000000 Binary files a/source-linux/images/smileys/oldcore/whitebeard.png and /dev/null differ diff --git a/source-linux/images/smileys/respect/bow.gif b/source-linux/images/smileys/respect/bow.gif deleted file mode 100644 index ecc6484..0000000 Binary files a/source-linux/images/smileys/respect/bow.gif and /dev/null differ diff --git a/source-linux/images/smileys/respect/bravo.gif b/source-linux/images/smileys/respect/bravo.gif deleted file mode 100644 index 34f72ab..0000000 Binary files a/source-linux/images/smileys/respect/bravo.gif and /dev/null differ diff --git a/source-linux/images/smileys/respect/hailking.gif b/source-linux/images/smileys/respect/hailking.gif deleted file mode 100644 index 07551e5..0000000 Binary files a/source-linux/images/smileys/respect/hailking.gif and /dev/null differ diff --git a/source-linux/images/smileys/respect/number1.gif b/source-linux/images/smileys/respect/number1.gif deleted file mode 100644 index ab5c410..0000000 Binary files a/source-linux/images/smileys/respect/number1.gif and /dev/null differ diff --git a/source-linux/images/smileys/sad/crying.png b/source-linux/images/smileys/sad/crying.png deleted file mode 100644 index 62b9646..0000000 Binary files a/source-linux/images/smileys/sad/crying.png and /dev/null differ diff --git a/source-linux/images/smileys/sad/prisoner.gif b/source-linux/images/smileys/sad/prisoner.gif deleted file mode 100644 index f2c3181..0000000 Binary files a/source-linux/images/smileys/sad/prisoner.gif and /dev/null differ diff --git a/source-linux/images/smileys/sad/sigh.gif b/source-linux/images/smileys/sad/sigh.gif deleted file mode 100644 index 6860226..0000000 Binary files a/source-linux/images/smileys/sad/sigh.gif and /dev/null differ diff --git a/source-linux/images/smileys/smoking/smoking.gif b/source-linux/images/smileys/smoking/smoking.gif deleted file mode 100644 index 77720b1..0000000 Binary files a/source-linux/images/smileys/smoking/smoking.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/archery.gif b/source-linux/images/smileys/sport/archery.gif deleted file mode 100644 index 8b4b9f6..0000000 Binary files a/source-linux/images/smileys/sport/archery.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/basketball.gif b/source-linux/images/smileys/sport/basketball.gif deleted file mode 100644 index e9ad4b5..0000000 Binary files a/source-linux/images/smileys/sport/basketball.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/bowling.gif b/source-linux/images/smileys/sport/bowling.gif deleted file mode 100644 index 0f8300c..0000000 Binary files a/source-linux/images/smileys/sport/bowling.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/cycling.gif b/source-linux/images/smileys/sport/cycling.gif deleted file mode 100644 index 332081e..0000000 Binary files a/source-linux/images/smileys/sport/cycling.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/darts.gif b/source-linux/images/smileys/sport/darts.gif deleted file mode 100644 index 09fb6ea..0000000 Binary files a/source-linux/images/smileys/sport/darts.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/fencing.gif b/source-linux/images/smileys/sport/fencing.gif deleted file mode 100644 index a4ec5cd..0000000 Binary files a/source-linux/images/smileys/sport/fencing.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/football.gif b/source-linux/images/smileys/sport/football.gif deleted file mode 100644 index c9fa6c5..0000000 Binary files a/source-linux/images/smileys/sport/football.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/golf.gif b/source-linux/images/smileys/sport/golf.gif deleted file mode 100644 index 179fc52..0000000 Binary files a/source-linux/images/smileys/sport/golf.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/horseriding.gif b/source-linux/images/smileys/sport/horseriding.gif deleted file mode 100644 index 13ca450..0000000 Binary files a/source-linux/images/smileys/sport/horseriding.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/juggling.gif b/source-linux/images/smileys/sport/juggling.gif deleted file mode 100644 index 1a2eb60..0000000 Binary files a/source-linux/images/smileys/sport/juggling.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/skipping.gif b/source-linux/images/smileys/sport/skipping.gif deleted file mode 100644 index f63270b..0000000 Binary files a/source-linux/images/smileys/sport/skipping.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/snooker.gif b/source-linux/images/smileys/sport/snooker.gif deleted file mode 100644 index fa2e6a8..0000000 Binary files a/source-linux/images/smileys/sport/snooker.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/surfing.gif b/source-linux/images/smileys/sport/surfing.gif deleted file mode 100644 index b75d74b..0000000 Binary files a/source-linux/images/smileys/sport/surfing.gif and /dev/null differ diff --git a/source-linux/images/smileys/sport/tennis.gif b/source-linux/images/smileys/sport/tennis.gif deleted file mode 100644 index 36e47bf..0000000 Binary files a/source-linux/images/smileys/sport/tennis.gif and /dev/null differ diff --git a/source-linux/images/smileys/tired/countsheep.gif b/source-linux/images/smileys/tired/countsheep.gif deleted file mode 100644 index 815b090..0000000 Binary files a/source-linux/images/smileys/tired/countsheep.gif and /dev/null differ diff --git a/source-linux/images/smileys/tired/hammock.gif b/source-linux/images/smileys/tired/hammock.gif deleted file mode 100644 index 8639dd3..0000000 Binary files a/source-linux/images/smileys/tired/hammock.gif and /dev/null differ diff --git a/source-linux/images/smileys/tired/pillow.gif b/source-linux/images/smileys/tired/pillow.gif deleted file mode 100644 index 367f65e..0000000 Binary files a/source-linux/images/smileys/tired/pillow.gif and /dev/null differ diff --git a/source-linux/images/smileys/tired/yawn.gif b/source-linux/images/smileys/tired/yawn.gif deleted file mode 100644 index d451480..0000000 Binary files a/source-linux/images/smileys/tired/yawn.gif and /dev/null differ diff --git a/source-linux/qml/configqml/SyncConfig.qml b/source-linux/qml/configqml/SyncConfig.qml deleted file mode 100644 index 7e0378d..0000000 --- a/source-linux/qml/configqml/SyncConfig.qml +++ /dev/null @@ -1,116 +0,0 @@ -// This file is part of Friendiqa -// https://git.friendi.ca/lubuwest/Friendiqa -// Copyright (C) 2020 Marco R. -// -// 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, either version 3 of the License, or -// (at your option) any later version. -// -// In addition, as a special exception, the copyright holders give -// permission to link the code of portions of this program with the -// OpenSSL library under certain conditions as described in each -// individual source file, and distribute linked combinations including -// the two. -// -// You must obey the GNU General Public License in all respects for all -// of the code used other than OpenSSL. If you modify file(s) with this -// exception, you may extend this exception to your version of the -// file(s), but you are not obligated to do so. If you do not wish to do -// so, delete this exception statement from your version. If you delete -// this exception statement from all source files in the program, then -// also delete it here. -// -// 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 . - -import QtQuick 2.11 -import QtQuick.Controls 2.12 -import "qrc:/qml/configqml" -import "qrc:/qml/genericqml" -import "qrc:/js/service.js" as Service - -Page{ - //color:"white" - width:root.width - height: root.height - - //height:root.height - Label { - text: qsTr("Sync Interval (0=None)") - font.pointSize: osSettings.bigFontSize - //visible: false - x: root.fontFactor*osSettings.bigFontSize; y: root.fontFactor*osSettings.bigFontSize; //width:35*mm;wrapMode: Text.Wrap - } - - Slider{ id: messageIntervalSlider - x:8*root.fontFactor*osSettings.bigFontSize; y: 4*root.fontFactor*osSettings.bigFontSize; - width: root.width-10*root.fontFactor*osSettings.bigFontSize; - height:2*root.fontFactor*osSettings.bigFontSize - value: globaloptions.hasOwnProperty("syncinterval")?globaloptions.syncinterval:0 - from: 0;to:120; stepSize: 15 - } - Rectangle{ - x: root.fontFactor*osSettings.bigFontSize; y:4*root.fontFactor*osSettings.bigFontSize; - width: 4*root.fontFactor*osSettings.bigFontSize; height: 2*root.fontFactor*osSettings.bigFontSize; - color: osSettings.dialogColor - radius: 0.5*mm - TextEdit{ - id: messageIntervalField - anchors.fill: parent - font.pointSize: osSettings.bigFontSize - verticalAlignment:TextEdit.AlignRight - color: osSettings.primaryTextColor - text:messageIntervalSlider.value - focus: true - selectByMouse: true - onTextChanged: { - Service.updateglobaloptions(root.db,"syncinterval",text); - if(osSettings.osType=="Android"){ - alarm.setAlarm(text); - } else if(osSettings.osType=="Linux" && text !=0){ - root.updateSyncinterval(parseInt(text)) - } - } - } - } - Label{x: 6*root.fontFactor*osSettings.bigFontSize; y: 4*root.fontFactor*osSettings.bigFontSize; - width: 2*root.fontFactor*osSettings.bigFontSize; height: 1.5*root.fontFactor*osSettings.bigFontSize; - font.pointSize: osSettings.bigFontSize - text:qsTr("Min.") - } - - ScrollView{ - width: root.width - height: root.height - 10*root.fontFactor*osSettings.bigFontSize; - y:7*root.fontFactor*osSettings.bigFontSize - clip:true - Column{ - width: parent.width - spacing:mm - SyncComponent{adapter:"Timeline"} - SyncComponent{adapter:"Replies"} - SyncComponent{ adapter:"DirectMessages"} - SyncComponent{ adapter:"Notifications"} - SyncComponent{ adapter: "Events"} - SyncComponent{adapter: "FriendRequests"} - } - } - -// MButton{ -// id:closeButton -// anchors.top: parent.top -// anchors.topMargin: osSettings.bigFontSize -// anchors.right: parent.right -// anchors.rightMargin: 1*mm -// width: 2*root.fontFactor*osSettings.bigFontSize; -// text: "\uf057" -// font.pointSize: osSettings.bigFontSize -// onClicked:{rootstackView.pop()} -// } -} diff --git a/source-linux/qml/genericqml/DrawerAccountComponent.qml b/source-linux/qml/genericqml/DrawerAccountComponent.qml deleted file mode 100644 index 3833bd2..0000000 --- a/source-linux/qml/genericqml/DrawerAccountComponent.qml +++ /dev/null @@ -1,256 +0,0 @@ -// This file is part of Friendiqa -// https://git.friendi.ca/lubuwest/Friendiqa -// Copyright (C) 2020 Marco R. -// -// 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, either version 3 of the License, or -// (at your option) any later version. -// -// In addition, as a special exception, the copyright holders give -// permission to link the code of portions of this program with the -// OpenSSL library under certain conditions as described in each -// individual source file, and distribute linked combinations including -// the two. -// -// You must obey the GNU General Public License in all respects for all -// of the code used other than OpenSSL. If you modify file(s) with this -// exception, you may extend this exception to your version of the -// file(s), but you are not obligated to do so. If you do not wish to do -// so, delete this exception statement from your version. If you delete -// this exception statement from all source files in the program, then -// also delete it here. -// -// 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 . - -import QtQuick 2.15 -import QtQuick.Controls 6.3 -import "qrc:/qml/genericqml" -import "qrc:/qml/newsqml" - -Item { - id: drawerAccountComponent - width: accountList.width - height: 17*root.fontFactor*osSettings.bigFontSize - function changeNews(typeRequest){ - newsSwipeview.stacktype=typeRequest; - if (newstabitem.newstypes.indexOf(typeRequest)<0){ - var component = Qt.createComponent("qrc:/qml/newsqml/NewsStack.qml"); - var newscomp = component.createObject(newsSwipeview,{"expectScreenUpdate":true}); - newsSwipeview.addItem(newscomp); - newstabitem.newstypes.push(typeRequest); - newsSwipeview.currentIndex=newsSwipeview.count; - addToolbutton(typeRequest) - newstabbar.currentIndex=newsSwipeview.count - }else{ - newsSwipeview.currentIndex=newstabitem.newstypes.indexOf(typeRequest); - newstabbar.currentIndex=newstabitem.newstypes.indexOf(typeRequest); - } - } - - - Label{ - y:0.5*root.fontFactor*osSettings.bigFontSize - width:parent.width - height: 1.5*osSettings.bigFontSize*root.fontFactor - verticalAlignment:Text.AlignBottom - font.pointSize: osSettings.bigFontSize - text: account.username - } - - Label{ - y:2*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - text: "\uf021 " + qsTr("Refresh") - MouseArea{ - anchors.fill:parent - onClicked: { - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - newstypeSignal("") -// updatenews.setDatabase(); -// updatenews.login(); -// updatenews.startsync(); - } - } - } - - Label{ - y:3.5*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="Home" && newstab.newstabstatus=="Timeline" - text: "\uf1da " + qsTr("Timeline") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - changeNews("Home"); - currentnewstabstatus="Timeline"; - newstypeSignal("timeline") - } - } - } - - Label{ - y:5*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="Home" && newstab.newstabstatus=="Conversations" - text: "\uf086 " + qsTr("Conversations") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - changeNews("Home"); - currentnewstabstatus="Conversations"; - newstypeSignal("conversation") - } - } - } - - Label{ - y:6.5*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="Replies" - text: "\uf0ec " + qsTr("Replies") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - changeNews("Replies"); - //urrentnewstabstatus="Replies"; - newstypeSignal("replies") - } - } - } - - Label{ - y:8*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="DirectMessages" - text: "\uf0e0 " + qsTr("Direct Messages") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - changeNews("DirectMessages") - //currentnewstabstatus="DirectMessages"; - } - } - } - - Label{ - y:9.5*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="Favorites" - text: "\uf005 " + qsTr("Favorites") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - changeNews("Favorites") - //currentnewstabstatus="Favorites"; - newstypeSignal("favorites") - } - } - } - - Label{ - y:11*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="Public Timeline" - text: "\uf0ac " + qsTr("Public Timeline") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - changeNews("Public Timeline") - currentnewstabstatus="Public Timeline"; - newstypeSignal("publictimeline") - } - } - } - - Label{ - y:12.5*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="Groupnews" - text: "\uf0c0 " + qsTr("Group news") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - changeNews("Group News") - newstypeSignal("groupnews") - } - } - } - - Label{ - y:14*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="Search" - text: "\uf002 " + qsTr("Search") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} -// newsSwipeview.currentIndex=0; -// currentnewstabstatus="Search"; -// newstypeSignal("search") - var component = Qt.createComponent("qrc:/qml/genericqml/SearchDialog.qml"); - var searchItem = component.createObject(newstab,{"selfdestroying":true}); - searchItem.open() - } - } - } - - Label{ - y:15.5*root.fontFactor*osSettings.bigFontSize - width:parent.width - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - font.bold: account.username==login.username && newsSwipeview.stacktype=="Notifications" - text: "\uf0f3 " + qsTr("Notifications") - MouseArea{ - anchors.fill:parent - onClicked:{ - login=account; - if(!wideScreen){leftDrawerAndroid.close()} - changeNews("Notifications") - newstypeSignal("notifications") - } - } - } -} diff --git a/source-linux/CMakeLists.txt b/src/CMakeLists.txt similarity index 83% rename from source-linux/CMakeLists.txt rename to src/CMakeLists.txt index 6a79957..d4bde6d 100644 --- a/source-linux/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -13,7 +13,7 @@ if(CMAKE_VERSION VERSION_LESS "3.7.0") set(CMAKE_INCLUDE_CURRENT_DIR ON) endif() -find_package(Qt6 REQUIRED COMPONENTS Core Widgets Quick QuickControls2 Sql DBus NetworkAuth REQUIRED) +find_package(Qt6 REQUIRED COMPONENTS Core Widgets Quick QuickControls2 Sql DBus NetworkAuth Multimedia REQUIRED) qt_standard_project_setup() @@ -45,7 +45,9 @@ target_link_libraries(friendiqa PRIVATE Qt6::QuickControls2) target_link_libraries(friendiqa PRIVATE Qt6::Sql) target_link_libraries(friendiqa PRIVATE Qt6::DBus) target_link_libraries(friendiqa PRIVATE Qt6::NetworkAuth) +target_link_libraries(friendiqa PRIVATE Qt6::Multimedia) +#target_link_libraries(friendiqa PRIVATE Qt6::Svg) install(TARGETS friendiqa DESTINATION ${CMAKE_INSTALL_BINDIR}) -install(FILES images/de.manic.Friendiqa.desktop DESTINATION share/applications) -install(FILES images/de.manic.Friendiqa.svg DESTINATION share/icons/hicolor/scalable/apps) +install(FILES assets/de.manic.Friendiqa.desktop DESTINATION share/applications) +install(FILES assets/de.manic.Friendiqa.svg DESTINATION share/icons/hicolor/scalable/apps) diff --git a/src/application.qrc b/src/application.qrc new file mode 100644 index 0000000..a087343 --- /dev/null +++ b/src/application.qrc @@ -0,0 +1,141 @@ + + + qtquickcontrols2.conf + qml/friendiqa.qml + qml/newsqml/NewsStack.qml + qml/newsqml/NewsTab.qml + qml/newsqml/Newsitem.qml + qml/newsqml/MessageSend.qml + qml/newsqml/Conversation.qml + qml/newsqml/FriendicaActivities.qml + qml/newsqml/Hashtag.qml + qml/newsqml/NewsImage.qml + qml/newsqml/NewsVideo.qml + qml/newsqml/ContactPage.qml + qml/newsqml/NewsVideoLarge.qml + qml/newsqml/SmileyDialog.qml + qml/contactqml/FriendsTab.qml + qml/contactqml/GroupComponent.qml + qml/contactqml/ProfileComponent.qml + qml/contactqml/Contactlist.qml + qml/photoqml/PhotoComponent.qml + qml/photoqml/PhotogroupComponent.qml + qml/photoqml/PhotoTab.qml + qml/photoqml/ImageUploadDialog.qml + qml/genericqml/ImagePicker.qml + qml/genericqml/ImagePickerLinux.qml + qml/genericqml/IntentReceiver.qml + qml/genericqml/MButton.qml + qml/genericqml/LinuxSync.qml + qml/genericqml/BlueButton.qml + qml/genericqml/ContactComponent.qml + qml/genericqml/PermissionDialog.qml + qml/calendarqml/CalendarTab.qml + qml/calendarqml/CalendarDay.qml + qml/calendarqml/EventList.qml + qml/configqml/AccountPage.qml + qml/configqml/SyncConfig.qml + qml/configqml/SyncComponent.qml + qml/configqml/InfoBox.qml + qml/configqml/ConfigPage.qml + qml/configqml/OSSettingsAndroid.qml + qml/configqml/OSSettingsLinux.qml + js/image.js + js/photoworker.js + js/service.js + js/news.js + js/newsworker.js + js/helper.js + js/smiley.js + translations/friendiqa-it.ts + translations/friendiqa-it.qm + translations/friendiqa-de.qm + translations/friendiqa-de.ts + translations/friendiqa-es.qm + translations/friendiqa-es.ts + assets/defaultcontact.jpg + assets/folder-blue.png + common/filesystem.cpp + common/filesystem.h + common/friendiqa.cpp + common/uploadableimage.cpp + common/uploadableimage.h + common/xhr.cpp + common/xhr.h + qml/newsqml/MoreComments.qml + qml/newsqml/NewsPhotolist.qml + qml/genericqml/DrawerAccountComponent.qml + qml/configqml/LeftDrawerScrollview.qml + qml/genericqml/LeftDrawerLinux.qml + qml/genericqml/LeftDrawerAndroid.qml + qml/genericqml/DrawerAccountComponentContacts.qml + qml/contactqml/ProfileTab.qml + qml/contactqml/FriendsListTab.qml + qml/contactqml/GroupsListTab.qml + qml/calendarqml/EventListItem.qml + translations/friendiqa-hu.qm + translations/friendiqa-hu.ts + assets/Friendiqa.png + assets/Friendica_monochrome.png + qml/configqml/ConfigAppearancePage.qml + qml/configqml/ConfigStartPage.qml + qml/contactqml/ContactsSearchPage.qml + assets/Friendiqa.ico + qml/calendarqml/EventCreate.qml + qml/newsqml/BlockUser.qml + qml/newsqml/ReportUser.qml + qml/newsqml/MessageImageUploadDialog.qml + qml/configqml/AcceptRules.qml + translations/friendiqa-nl.qm + translations/friendiqa-nl.ts + qml/newsqml/NewsTabbutton.qml + qml/genericqml/RootStack.qml + assets/icons/bars.svg + assets/icons/bell.svg + assets/icons/calendar.svg + assets/icons/caret-down.svg + assets/icons/check.svg + assets/icons/envelope.svg + assets/icons/exchange.svg + assets/icons/globe.svg + assets/icons/home.svg + assets/icons/list.svg + assets/icons/pencil.svg + assets/icons/picture-o.svg + assets/icons/refresh.svg + assets/icons/search.svg + assets/icons/star.svg + assets/icons/times-circle.svg + assets/icons/trash.svg + assets/icons/users.svg + assets/icons/comments.svg + assets/icons/history.svg + assets/icons/sign-out.svg + assets/icons/address-card.svg + assets/icons/star-o.svg + assets/icons/cogs.svg + assets/icons/paper-plane-o.svg + assets/icons/font.svg + assets/icons/hashtag.svg + assets/icons/code.svg + assets/icons/italic.svg + assets/icons/bold.svg + assets/icons/smile-o.svg + assets/icons/frown-o.svg + assets/icons/chevron-down.svg + assets/icons/chevron-up.svg + assets/icons/user-plus.svg + assets/icons/filter.svg + assets/icons/plus.svg + assets/icons/cloud-upload.svg + assets/icons/cloud-download.svg + assets/icons/repeat.svg + assets/icons/times.svg + assets/icons/play.svg + assets/icons/angle-right.svg + assets/icons/angle-left.svg + assets/icons/floppy-o.svg + assets/icons/unlock.svg + assets/icons/lock.svg + + diff --git a/source-linux/images/Friendica_monochrome.png b/src/assets/Friendica_monochrome.png similarity index 100% rename from source-linux/images/Friendica_monochrome.png rename to src/assets/Friendica_monochrome.png diff --git a/source-linux/images/Friendiqa.ico b/src/assets/Friendiqa.ico similarity index 100% rename from source-linux/images/Friendiqa.ico rename to src/assets/Friendiqa.ico diff --git a/source-linux/images/Friendiqa.png b/src/assets/Friendiqa.png similarity index 100% rename from source-linux/images/Friendiqa.png rename to src/assets/Friendiqa.png diff --git a/source-linux/images/de.manic.Friendiqa.desktop b/src/assets/de.manic.Friendiqa.desktop similarity index 100% rename from source-linux/images/de.manic.Friendiqa.desktop rename to src/assets/de.manic.Friendiqa.desktop diff --git a/source-linux/images/de.manic.Friendiqa.svg b/src/assets/de.manic.Friendiqa.svg similarity index 100% rename from source-linux/images/de.manic.Friendiqa.svg rename to src/assets/de.manic.Friendiqa.svg diff --git a/src/assets/de.manic.friendiqa.metainfo.xml b/src/assets/de.manic.friendiqa.metainfo.xml new file mode 100644 index 0000000..9890464 --- /dev/null +++ b/src/assets/de.manic.friendiqa.metainfo.xml @@ -0,0 +1,35 @@ + + + de.manic.friendiqa + + Friendiqa + Qt client for the social network Friendica + + FSFAP + GPL-3.0-or-later + + + pointing + keyboard + touch + + + +

+ Qt based client for the Friendica Social Network. Tabs for news (incl. Direct Messages), friends, photos and events. +

+
+ + de.manic.Friendiqa.desktop + + + https://friendiqa.ma-nic.de/ScreenshotsDesktop/Screenshot_Desktop_Timeline_small.png + + + https://friendiqa.ma-nic.de/Screenshots/PhotoTab.jpg + + + https://friendiqa.ma-nic.de/Screenshots/EventsTab.jpg + + +
diff --git a/source-linux/images/defaultcontact.jpg b/src/assets/defaultcontact.jpg similarity index 100% rename from source-linux/images/defaultcontact.jpg rename to src/assets/defaultcontact.jpg diff --git a/source-linux/images/folder-blue.png b/src/assets/folder-blue.png similarity index 100% rename from source-linux/images/folder-blue.png rename to src/assets/folder-blue.png diff --git a/source-linux/images/friendica-tray-black.svg b/src/assets/friendica-tray-black.svg similarity index 100% rename from source-linux/images/friendica-tray-black.svg rename to src/assets/friendica-tray-black.svg diff --git a/source-linux/images/friendica-tray-white.svg b/src/assets/friendica-tray-white.svg similarity index 100% rename from source-linux/images/friendica-tray-white.svg rename to src/assets/friendica-tray-white.svg diff --git a/src/assets/friendiqa-sync.service b/src/assets/friendiqa-sync.service new file mode 100644 index 0000000..c736814 --- /dev/null +++ b/src/assets/friendiqa-sync.service @@ -0,0 +1,7 @@ +[Unit] +Description=Run friendiqa background sync + +[Service] +Type=oneshot +ExecStart=/usr/bin/friendiqa -service + diff --git a/src/assets/friendiqa-sync.timer b/src/assets/friendiqa-sync.timer new file mode 100644 index 0000000..c189795 --- /dev/null +++ b/src/assets/friendiqa-sync.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Run background sync for Friendiqa periodically + +[Timer] +Unit=friendiqa-sync.service +OnBootSec=10min +OnUnitActiveSec=15min + +[Install] +WantedBy=timers.target diff --git a/src/assets/icons/address-card.svg b/src/assets/icons/address-card.svg new file mode 100644 index 0000000..dad3d3f --- /dev/null +++ b/src/assets/icons/address-card.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/angle-left.svg b/src/assets/icons/angle-left.svg new file mode 100644 index 0000000..a52814a --- /dev/null +++ b/src/assets/icons/angle-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/angle-right.svg b/src/assets/icons/angle-right.svg new file mode 100644 index 0000000..c19bd1a --- /dev/null +++ b/src/assets/icons/angle-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/bars.svg b/src/assets/icons/bars.svg new file mode 100644 index 0000000..e3a1572 --- /dev/null +++ b/src/assets/icons/bars.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/bell.svg b/src/assets/icons/bell.svg new file mode 100644 index 0000000..15114e5 --- /dev/null +++ b/src/assets/icons/bell.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/bold.svg b/src/assets/icons/bold.svg new file mode 100644 index 0000000..126b570 --- /dev/null +++ b/src/assets/icons/bold.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/calendar.svg b/src/assets/icons/calendar.svg new file mode 100644 index 0000000..1a57475 --- /dev/null +++ b/src/assets/icons/calendar.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/caret-down.svg b/src/assets/icons/caret-down.svg new file mode 100644 index 0000000..2fe29d6 --- /dev/null +++ b/src/assets/icons/caret-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/check.svg b/src/assets/icons/check.svg new file mode 100644 index 0000000..b9e3741 --- /dev/null +++ b/src/assets/icons/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/chevron-down.svg b/src/assets/icons/chevron-down.svg new file mode 100644 index 0000000..4ec5754 --- /dev/null +++ b/src/assets/icons/chevron-down.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/chevron-up.svg b/src/assets/icons/chevron-up.svg new file mode 100644 index 0000000..55b33d5 --- /dev/null +++ b/src/assets/icons/chevron-up.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/cloud-download.svg b/src/assets/icons/cloud-download.svg new file mode 100644 index 0000000..85f82ed --- /dev/null +++ b/src/assets/icons/cloud-download.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/cloud-upload.svg b/src/assets/icons/cloud-upload.svg new file mode 100644 index 0000000..ad5d266 --- /dev/null +++ b/src/assets/icons/cloud-upload.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/code.svg b/src/assets/icons/code.svg new file mode 100644 index 0000000..fa9d97c --- /dev/null +++ b/src/assets/icons/code.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/cogs.svg b/src/assets/icons/cogs.svg new file mode 100644 index 0000000..6ab59a3 --- /dev/null +++ b/src/assets/icons/cogs.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/comments.svg b/src/assets/icons/comments.svg new file mode 100644 index 0000000..1a001cd --- /dev/null +++ b/src/assets/icons/comments.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/ellipsis-v.svg b/src/assets/icons/ellipsis-v.svg new file mode 100644 index 0000000..0453758 --- /dev/null +++ b/src/assets/icons/ellipsis-v.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/envelope.svg b/src/assets/icons/envelope.svg new file mode 100644 index 0000000..9fc9706 --- /dev/null +++ b/src/assets/icons/envelope.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/exchange.svg b/src/assets/icons/exchange.svg new file mode 100644 index 0000000..26e717d --- /dev/null +++ b/src/assets/icons/exchange.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/filter.svg b/src/assets/icons/filter.svg new file mode 100644 index 0000000..545b4ae --- /dev/null +++ b/src/assets/icons/filter.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/floppy-o.svg b/src/assets/icons/floppy-o.svg new file mode 100644 index 0000000..728301b --- /dev/null +++ b/src/assets/icons/floppy-o.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/font.svg b/src/assets/icons/font.svg new file mode 100644 index 0000000..20ada19 --- /dev/null +++ b/src/assets/icons/font.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/frown-o.svg b/src/assets/icons/frown-o.svg new file mode 100644 index 0000000..4928c07 --- /dev/null +++ b/src/assets/icons/frown-o.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/globe.svg b/src/assets/icons/globe.svg new file mode 100644 index 0000000..5ddc3ab --- /dev/null +++ b/src/assets/icons/globe.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/hashtag.svg b/src/assets/icons/hashtag.svg new file mode 100644 index 0000000..2093029 --- /dev/null +++ b/src/assets/icons/hashtag.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/history.svg b/src/assets/icons/history.svg new file mode 100644 index 0000000..9fd8721 --- /dev/null +++ b/src/assets/icons/history.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/home.svg b/src/assets/icons/home.svg new file mode 100644 index 0000000..f9e993d --- /dev/null +++ b/src/assets/icons/home.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/italic.svg b/src/assets/icons/italic.svg new file mode 100644 index 0000000..bd6cf05 --- /dev/null +++ b/src/assets/icons/italic.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/list.svg b/src/assets/icons/list.svg new file mode 100644 index 0000000..0687a3d --- /dev/null +++ b/src/assets/icons/list.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/lock.svg b/src/assets/icons/lock.svg new file mode 100644 index 0000000..aa9a167 --- /dev/null +++ b/src/assets/icons/lock.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/paper-plane-o.svg b/src/assets/icons/paper-plane-o.svg new file mode 100644 index 0000000..dc8d6ef --- /dev/null +++ b/src/assets/icons/paper-plane-o.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/pencil.svg b/src/assets/icons/pencil.svg new file mode 100644 index 0000000..4138ff2 --- /dev/null +++ b/src/assets/icons/pencil.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/picture-o.svg b/src/assets/icons/picture-o.svg new file mode 100644 index 0000000..d287f37 --- /dev/null +++ b/src/assets/icons/picture-o.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/play.svg b/src/assets/icons/play.svg new file mode 100644 index 0000000..ab80037 --- /dev/null +++ b/src/assets/icons/play.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/plus.svg b/src/assets/icons/plus.svg new file mode 100644 index 0000000..deb2ca6 --- /dev/null +++ b/src/assets/icons/plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/refresh.svg b/src/assets/icons/refresh.svg new file mode 100644 index 0000000..e0548d5 --- /dev/null +++ b/src/assets/icons/refresh.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/repeat.svg b/src/assets/icons/repeat.svg new file mode 100644 index 0000000..f3ecc41 --- /dev/null +++ b/src/assets/icons/repeat.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/reply.svg b/src/assets/icons/reply.svg new file mode 100644 index 0000000..ac016c0 --- /dev/null +++ b/src/assets/icons/reply.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/search.svg b/src/assets/icons/search.svg new file mode 100644 index 0000000..35bb21b --- /dev/null +++ b/src/assets/icons/search.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/sign-out.svg b/src/assets/icons/sign-out.svg new file mode 100644 index 0000000..3e7d480 --- /dev/null +++ b/src/assets/icons/sign-out.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/smile-o.svg b/src/assets/icons/smile-o.svg new file mode 100644 index 0000000..6d4f680 --- /dev/null +++ b/src/assets/icons/smile-o.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/star-o.svg b/src/assets/icons/star-o.svg new file mode 100644 index 0000000..4152261 --- /dev/null +++ b/src/assets/icons/star-o.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/star.svg b/src/assets/icons/star.svg new file mode 100644 index 0000000..710cb95 --- /dev/null +++ b/src/assets/icons/star.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/times-circle.svg b/src/assets/icons/times-circle.svg new file mode 100644 index 0000000..d6787c1 --- /dev/null +++ b/src/assets/icons/times-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/times.svg b/src/assets/icons/times.svg new file mode 100644 index 0000000..d02a36e --- /dev/null +++ b/src/assets/icons/times.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/trash.svg b/src/assets/icons/trash.svg new file mode 100644 index 0000000..8cb6ed0 --- /dev/null +++ b/src/assets/icons/trash.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/unlock.svg b/src/assets/icons/unlock.svg new file mode 100644 index 0000000..9cb4435 --- /dev/null +++ b/src/assets/icons/unlock.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/user-plus.svg b/src/assets/icons/user-plus.svg new file mode 100644 index 0000000..2575cf4 --- /dev/null +++ b/src/assets/icons/user-plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/users.svg b/src/assets/icons/users.svg new file mode 100644 index 0000000..96ceb0b --- /dev/null +++ b/src/assets/icons/users.svg @@ -0,0 +1,3 @@ + + + diff --git a/source-linux/common/alarm.h b/src/common/alarm.h similarity index 100% rename from source-linux/common/alarm.h rename to src/common/alarm.h diff --git a/source-linux/common/alarmandroid.cpp b/src/common/alarmandroid.cpp similarity index 100% rename from source-linux/common/alarmandroid.cpp rename to src/common/alarmandroid.cpp diff --git a/source-linux/common/alarmlinux.cpp b/src/common/alarmlinux.cpp similarity index 78% rename from source-linux/common/alarmlinux.cpp rename to src/common/alarmlinux.cpp index 5841543..b7b0846 100644 --- a/source-linux/common/alarmlinux.cpp +++ b/src/common/alarmlinux.cpp @@ -33,7 +33,7 @@ #include #include #include - +#include ALARM *ALARM::instance() { @@ -45,9 +45,19 @@ ALARM::ALARM(QObject *parent) : QObject(parent){} void ALARM::setAlarm(int interval) { - //qDebug() << interval; - QVariantMap message; - message["value"] = interval; + //QVariantMap message; + //message["value"] = interval; + if (interval==0){ + QProcess processDisable; + int intDisable = processDisable.execute("systemctl", QStringList() <<"--user"<<"disable"<<"--now"<<"friendiqa-sync.timer"); + qDebug() << " intEnable "<login(); updatenews->setSyncAll(true); updatenews->startsync(); - - //app.connect (updatenews,SIGNAL(quitapp()),&app,SLOT(quit())); + app.connect (updatenews,SIGNAL(quitapp()),&app,SLOT(quit())); //QtAndroid::androidService().callMethod("stopSelf"); - //return app.exec(); + return app.exec(); } else{ - //QtWebEngine::initialize(); - QGuiApplication::setApplicationName("Friendiqa"); - QGuiApplication::setOrganizationName("Friendiqa"); - QApplication app(argc, argv); QQmlApplicationEngine view; //view.setResizeMode(QQuickView::SizeRootObjectToView); - app.setWindowIcon(QIcon(":/images/Friendiqa.ico")); + app.setWindowIcon(QIcon(":/assets/Friendiqa.ico")); QTranslator qtTranslator; - qtTranslator.load("friendiqa-" + QLocale::system().name(),":/translations"); - app.installTranslator(&qtTranslator); + if(qtTranslator.load("friendiqa-" + QLocale::system().name(),":/translations")) + {app.installTranslator(&qtTranslator);} // RemoteAuthAsyncImageProvider *imageProvider = new RemoteAuthAsyncImageProvider; // view.addImageProvider("remoteauthimage",imageProvider); // view.rootContext()->setContextProperty("remoteauth", imageProvider); @@ -117,8 +116,8 @@ int main(int argc, char *argv[]) { qmlRegisterType("io.qt.examples.texteditor", 1, 0, "DocumentHandler"); qmlRegisterType("QSystemTrayIcon", 1, 0, "QSystemTrayIcon"); qRegisterMetaType("ActivationReason"); - view.rootContext()->setContextProperty("iconTrayBlack", QIcon(QPixmap(":/images/friendica-tray-black.svg"))); - view.rootContext()->setContextProperty("iconTrayWhite", QIcon(QPixmap(":/images/friendica-tray-white.svg"))); + view.rootContext()->setContextProperty("iconTrayBlack", QIcon(QPixmap(":/assets/friendica-tray-black.svg"))); + view.rootContext()->setContextProperty("iconTrayWhite", QIcon(QPixmap(":/assets/friendica-tray-white.svg"))); view.rootContext()->setContextProperty("iconTrayAvailable", QSystemTrayIcon::isSystemTrayAvailable()); if(updatenews->getStyle() != 0){ diff --git a/source-linux/common/oauth.cpp b/src/common/oauth.cpp similarity index 100% rename from source-linux/common/oauth.cpp rename to src/common/oauth.cpp diff --git a/source-linux/common/oauth.h b/src/common/oauth.h similarity index 100% rename from source-linux/common/oauth.h rename to src/common/oauth.h diff --git a/source-linux/common/remoteauthasyncimageprovider.cpp b/src/common/remoteauthasyncimageprovider.cpp similarity index 100% rename from source-linux/common/remoteauthasyncimageprovider.cpp rename to src/common/remoteauthasyncimageprovider.cpp diff --git a/source-linux/common/remoteauthasyncimageprovider.h b/src/common/remoteauthasyncimageprovider.h similarity index 100% rename from source-linux/common/remoteauthasyncimageprovider.h rename to src/common/remoteauthasyncimageprovider.h diff --git a/source-linux/common/updatenews.cpp b/src/common/updatenews.cpp similarity index 94% rename from source-linux/common/updatenews.cpp rename to src/common/updatenews.cpp index 8dae238..c894cd2 100644 --- a/source-linux/common/updatenews.cpp +++ b/src/common/updatenews.cpp @@ -91,10 +91,12 @@ void UPDATENEWS::setDatabase() int UPDATENEWS::getStyle() { - QSqlQuery syncquery("SELECT * FROM globaloptions",m_db); - while (syncquery.next()){ - if (syncquery.value(0).toString()=="view_darkmode"){ - return syncquery.value(1).toInt(); + if (m_db.open()){ + QSqlQuery syncquery("SELECT * FROM globaloptions",m_db); + while (syncquery.next()){ + if (syncquery.value(0).toString()=="view_darkmode"){ + return syncquery.value(1).toInt(); + } } } return 0; @@ -111,28 +113,28 @@ QJsonArray UPDATENEWS::getAccounts(QString filtername, QString filtervalue){ filterstring=" WHERE " + filtername + " = " + filtervalue; } else{ - filterstring=" WHERE " + filtername + " = '" + filtervalue +"'"; + filterstring=" WHERE " + filtername + " = '" + filtervalue +"'"; } } QSqlQuery query("SELECT * FROM config" + filterstring + " ORDER BY isActive ASC, username ASC",m_db); QJsonArray accountlist; while(query.next()){ { - QJsonObject accountData; - accountData.insert("server",query.value(0).toString()); - accountData.insert("username",query.value(1).toString()); - accountData.insert("password",query.value(2).toString()); - accountData.insert("imagestore",query.value(3).toString()); - accountData.insert("isActive",query.value(7).toString()); - QJsonArray m_permissions=query.value(7).toJsonArray(); - accountData.insert("permissions",m_permissions); - accountData.insert("token",QString(QByteArray::fromBase64(query.value(10).toByteArray()))); - QJsonDocument m_client; - if(query.value(12).toByteArray()!=""){ - m_client=QJsonDocument::fromJson(QByteArray::fromBase64(query.value(12).toByteArray())); - } - accountData.insert("client",m_client.object()); - accountlist.append(accountData); + QJsonObject accountData; + accountData.insert("server",query.value(0).toString()); + accountData.insert("username",query.value(1).toString()); + accountData.insert("password",query.value(2).toString()); + accountData.insert("imagestore",query.value(3).toString()); + accountData.insert("isActive",query.value(7).toString()); + QJsonArray m_permissions=query.value(7).toJsonArray(); + accountData.insert("permissions",m_permissions); + accountData.insert("token",QString(QByteArray::fromBase64(query.value(10).toByteArray()))); + QJsonDocument m_client; + if(query.value(12).toByteArray()!=""){ + m_client=QJsonDocument::fromJson(QByteArray::fromBase64(query.value(12).toByteArray())); + } + accountData.insert("client",m_client.object()); + accountlist.append(accountData); } } query.clear(); @@ -178,39 +180,39 @@ void UPDATENEWS::login() void UPDATENEWS::startsync() { - if (syncindex i(params); while(i.hasNext()) { i.next(); - qDebug() << "value" << i.value(); + //qDebug() << i.key() << "value" << i.value(); query.addQueryItem(i.key(), i.value()); } QUrl requrl(m_url+m_api); @@ -356,11 +356,13 @@ void XHR::onReplySuccess() { qDebug() << "!"; QHashIterator i(params); - while(i.hasNext()) { - i.next(); - qDebug() << i.key()<< " " << i.value(); - } - emit this->success(buffer, m_api); + // while(i.hasNext()) { + // i.next(); + // //qDebug() << i.key()<< " " << i.value(); + // } + //emit this->success(buffer, m_api); + emit success(buffer, m_api); + //emit this->error(m_downloadtype,m_url,m_api,1); buffer.clear(); // reply->deleteLater(); } diff --git a/source-linux/common/xhr.h b/src/common/xhr.h similarity index 100% rename from source-linux/common/xhr.h rename to src/common/xhr.h diff --git a/source-linux/js/friendworker.js b/src/js/friendworker.js similarity index 100% rename from source-linux/js/friendworker.js rename to src/js/friendworker.js diff --git a/source-linux/js/helper.js b/src/js/helper.js similarity index 99% rename from source-linux/js/helper.js rename to src/js/helper.js index e8fea06..2f030c1 100644 --- a/source-linux/js/helper.js +++ b/src/js/helper.js @@ -180,7 +180,7 @@ function updateData(database,table, username, key, value, callback,filter,filter function showMessage(header,message,rootwindow){//print(message); var cleanmessage=message.replace(/"/g,"-"); if(cleanmessage.length>200){cleanmessage=cleanmessage.slice(0,200)+'...'} - var messageString='import QtQuick 2.0; import QtQuick.Controls 2.15; Dialog{ visible: true; title:"'+header+'";standardButtons: Dialog.Ok;anchors.centerIn: parent;Label{text:" '+cleanmessage+'"}}'; + var messageString='import QtQuick 6.3; import QtQuick.Controls 2.15; Dialog{ visible: true; title:"'+header+'";standardButtons: Dialog.Ok;anchors.centerIn: parent;Label{text:" '+cleanmessage+'"}}'; var messageObject=Qt.createQmlObject(messageString,rootwindow,"messageOutput"); } diff --git a/source-linux/js/image.js b/src/js/image.js similarity index 100% rename from source-linux/js/image.js rename to src/js/image.js diff --git a/source-linux/js/news.js b/src/js/news.js similarity index 100% rename from source-linux/js/news.js rename to src/js/news.js diff --git a/source-linux/js/newsworker.js b/src/js/newsworker.js similarity index 100% rename from source-linux/js/newsworker.js rename to src/js/newsworker.js diff --git a/source-linux/js/photoworker.js b/src/js/photoworker.js similarity index 100% rename from source-linux/js/photoworker.js rename to src/js/photoworker.js diff --git a/source-linux/js/service.js b/src/js/service.js similarity index 97% rename from source-linux/js/service.js rename to src/js/service.js index daf7fac..a9b40d0 100644 --- a/source-linux/js/service.js +++ b/src/js/service.js @@ -312,7 +312,7 @@ function updateContactInDB(login,database,isFriend,contact){// for newstab and f } function processNews(api,data){ - try{var newslist=JSON.parse(data)} catch(e){print("processnews "+e+ " api "+ api + " data "+data);newsBusy.running=false;}; + try{var newslist=JSON.parse(data)} catch(e){print("processnews "+e+ " api "+ api + " data "+data)}; if (api=="/api/users/show"){ var usermessages=[]; usermessages.push(newslist.status); @@ -427,7 +427,7 @@ function processNews(api,data){ } } - if ((newstab.newstabstatus=="Conversations")&&!(api=="/api/conversation/show"|| api=="/api/direct_messages/conversation")){ + if ((root.globaloptions.hasOwnProperty("newsViewType") && (root.globaloptions.newsViewType=="Conversations"))&&!(api=="/api/conversation/show"|| api=="/api/direct_messages/conversation")){ //enrich chatlist with old entries for (var count in chatlist){ chatlist[count].currentconversation.reverse(); @@ -464,7 +464,7 @@ function processNews(api,data){ if (api=="/api/conversation/show"|| api=="/api/direct_messages/conversation"){ newslist.reverse(); - newstab.conversation=newslist + root.conversation=newslist } else if (api=="/api/statuses/user_timeline" || api=="/api/users/show"){ root.contactposts=newslist @@ -476,8 +476,10 @@ function processNews(api,data){ showNews(newslist);root.news=newslist }; - var newstabarray=["Conversations","Favorites","Timeline","DirectMessage","Replies"]; - if (newstabarray.indexOf(newstab.newstabstatus)>-1){contacttimer.start()} + //var newstabarray=["Conversations","Favorites","Timeline","DirectMessage","Replies"]; + //if (newstabarray.indexOf(newstab.newstabstatus)>-1){ + contacttimer.start() + //} } } @@ -546,10 +548,10 @@ function showGroups(){ Helperjs.readData(db,"groups",login.username,function(groups){ var groupitems=""; for (var i=0;i. -import QtQuick 2.11 -//import QtQuick.Controls 2.4 +import QtQuick 6.3 Item { id: calendarDay diff --git a/source-linux/qml/calendarqml/CalendarTab.qml b/src/qml/calendarqml/CalendarTab.qml similarity index 90% rename from source-linux/qml/calendarqml/CalendarTab.qml rename to src/qml/calendarqml/CalendarTab.qml index b19f11f..7daa5a1 100644 --- a/source-linux/qml/calendarqml/CalendarTab.qml +++ b/src/qml/calendarqml/CalendarTab.qml @@ -29,7 +29,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.15 +import QtQuick 6.3 import QtQuick.Controls 6.3 //import Qt.labs.calendar 1.0 @@ -98,13 +98,17 @@ Rectangle { running: false } - BlueButton{ + ToolButton{ z:2 + id:menuButton + anchors.right: parent.right + anchors.top: parent.top + //anchors.topMargin: friendsbar.height visible: !wideScreen - fontColor: "grey" - border.color: "transparent" - text: "\uf0c9" - font.pointSize: osSettings.bigFontSize + icon.name: "application-menu" + icon.source: "qrc:/assets/icons/bars.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize onClicked:{ leftDrawerAndroid.visible?leftDrawerAndroid.close():leftDrawerAndroid.open()} } @@ -127,8 +131,12 @@ Rectangle { anchors.topMargin: 0.5*mm anchors.right:calendartabstatusButton.left anchors.rightMargin:mm - //width: 2*root.fontFactor*osSettings.bigFontSize; - text:"\uf021" + display: AbstractButton.IconOnly + text: qsTr("refresh")//"\uf021" + icon.name: "view-refresh-symbolic" + icon.source: "qrc:/assets/icons/refresh.svg" + // background: Rectangle{color: osSettings.dialogColor; + // radius: 0.5*mm} onClicked: { calBusy.running=true; updatenews.setDatabase(); @@ -169,7 +177,12 @@ Rectangle { anchors.right:updateEvents.left anchors.rightMargin:mm width: 2*root.fontFactor*osSettings.bigFontSize; - text:"+" + display: AbstractButton.IconOnly + text: qsTr("add") + icon.name: "list-add" + icon.source: "qrc:/assets/icons/plus.svg" + // background: Rectangle{color: osSettings.dialogColor; + // radius: 0.5*mm} onClicked: { rootstackView.push("qrc:/qml/calendarqml/EventCreate.qml") } @@ -193,7 +206,7 @@ Rectangle { anchors.top: parent.top anchors.topMargin: 0.5*mm anchors.right: parent.right - anchors.rightMargin:2*mm + anchors.rightMargin:menuButton.width + mm width: Math.max(6*root.fontFactor*osSettings.bigFontSize,implicitWidth) text: calendartab.calendartabstatus=="Events"?qsTr("Events"):calendartabstatus Menu { @@ -229,10 +242,9 @@ Rectangle { delegate: Item{ width:Math.min(23*root.fontFactor*osSettings.bigFontSize,calendarView.width) - height: parent.height + height: calendarView.height Text{ font.bold: true - //Layout.fillWidth: true width: parent.width-root.fontFactor*osSettings.bigFontSize horizontalAlignment:Text.AlignHCenter color: osSettings.primaryTextColor @@ -242,7 +254,6 @@ Rectangle { Text{y:1.5*root.fontFactor*osSettings.bigFontSize width: parent.width-osSettings.bigFontSize text: Qt.locale().standaloneMonthName(model.month) - //Layout.fillWidth: true color: osSettings.primaryTextColor horizontalAlignment:Text.AlignHCenter font.pointSize: osSettings.systemFontSize @@ -250,7 +261,6 @@ Rectangle { DayOfWeekRow{y:3*root.fontFactor*osSettings.bigFontSize width: parent.width-root.fontFactor*osSettings.bigFontSize locale: monthgrid.locale - //Layout.fillWidth: true font.pointSize: osSettings.systemFontSize } diff --git a/source-linux/qml/calendarqml/EventCreate.qml b/src/qml/calendarqml/EventCreate.qml similarity index 75% rename from source-linux/qml/calendarqml/EventCreate.qml rename to src/qml/calendarqml/EventCreate.qml index 0c40c6a..8cb2b5e 100644 --- a/source-linux/qml/calendarqml/EventCreate.qml +++ b/src/qml/calendarqml/EventCreate.qml @@ -29,9 +29,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 -import QtQuick.Controls 1.4 as Oldcontrols +import QtQuick 6.3 +import QtQuick.Controls 6.3 +//import QtQuick.Controls 1.4 as Oldcontrols import "qrc:/js/service.js" as Service import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -41,7 +41,7 @@ Flickable{ id:eventCreateBox property date startDate: new Date() property var eventInformation: ({}) - anchors.fill: parent + //anchors.fill: parent contentWidth: eventRect.width; contentHeight: eventRect.height function formatText(count, modelData) { @@ -51,18 +51,23 @@ Flickable{ boundsBehavior:Flickable.StopAtBounds ScrollBar.vertical: ScrollBar { } + Rectangle{ id: eventRect width: root.width height: textColumn.height + 6*root.fontFactor*osSettings.bigFontSize color: osSettings.backgroundColor + MButton{ id:closeButton anchors.top: parent.top anchors.topMargin: 1*mm anchors.right: parent.right anchors.rightMargin: 1*mm - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked:{rootstackView.pop()} } @@ -89,7 +94,7 @@ Flickable{ horizontalAlignment: TextInput.AlignRight text: dateDay+"-"+dateMonth+"-"+startDate.getFullYear() inputMask: "99-99-9999" - validator: RegExpValidator{regExp: /^([0-2\s]?[0-9\s]|3[0-1\s])-(0[0-9\s]|1[0-2\s])-([0-9\s][0-9\s][0-9\s][0-9\s])$ / } + validator: RegularExpressionValidator{regularExpression: /^([0-2\s]?[0-9\s]|3[0-1\s])-(0[0-9\s]|1[0-2\s])-([0-9\s][0-9\s][0-9\s][0-9\s])$ / } font.bold: true } @@ -99,7 +104,10 @@ Flickable{ y: root.fontFactor*osSettings.bigFontSize width: 2*root.fontFactor*osSettings.bigFontSize height: 2*root.fontFactor*osSettings.bigFontSize - text:"\uf0d7" + text: qsTr("Start date") + display: AbstractButton.IconOnly + icon.name: "expand" + icon.source: "qrc:/assets/icons/caret-down.svg" onClicked:{ cal.visible=true; cal.curSelection="start" @@ -116,7 +124,7 @@ Flickable{ inputMask: "99:99" text: "00:00" horizontalAlignment: TextInput.AlignRight - validator: RegExpValidator{regExp: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s])$ / } + validator: RegularExpressionValidator{regularExpression: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s])$ / } font.bold: true } @@ -126,7 +134,10 @@ Flickable{ y: root.fontFactor*osSettings.bigFontSize width: 2*root.fontFactor*osSettings.bigFontSize height: 2*root.fontFactor*osSettings.bigFontSize - text:"\uf0d7" + text: qsTr("Start time") + display: AbstractButton.IconOnly + icon.name: "expand" + icon.source: "qrc:/assets/icons/caret-down.svg" onClicked:{ onClicked: {timeTumbler.visible=true;timeTumbler.curSelection="start"} } @@ -150,7 +161,7 @@ Flickable{ font.pointSize: osSettings.systemFontSize horizontalAlignment: TextInput.AlignRight inputMask: "99-99-9999" - validator: RegExpValidator{regExp: /^([0-2\s]?[0-9\s]|3[0-1\s])-(0[0-9\s]|1[0-2\s])-([0-9\s][0-9\s][0-9\s][0-9\s])$ / } + validator: RegularExpressionValidator{regularExpression: /^([0-2\s]?[0-9\s]|3[0-1\s])-(0[0-9\s]|1[0-2\s])-([0-9\s][0-9\s][0-9\s][0-9\s])$ / } enabled: false font.bold: true } @@ -162,7 +173,10 @@ Flickable{ width: 2*root.fontFactor*osSettings.bigFontSize height: 2*root.fontFactor*osSettings.bigFontSize enabled: false - text:"\uf0d7" + text: qsTr("End date") + display: AbstractButton.IconOnly + icon.name: "expand" + icon.source: "qrc:/assets/icons/caret-down.svg" onClicked:{ cal.visible=true; cal.curSelection="end" @@ -179,7 +193,7 @@ Flickable{ enabled: false horizontalAlignment: TextInput.AlignRight inputMask: "99:99" - validator: RegExpValidator{regExp: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s])$ / } + validator: RegularExpressionValidator{regularExpression: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s])$ / } font.bold: true } @@ -190,7 +204,10 @@ Flickable{ width: 2*root.fontFactor*osSettings.bigFontSize height: 2*root.fontFactor*osSettings.bigFontSize enabled: false - text:"\uf0d7" + text: qsTr("End time") + display: AbstractButton.IconOnly + icon.name: "expand" + icon.source: "qrc:/assets/icons/caret-down.svg" onClicked:{ onClicked: {timeTumbler.visible=true;timeTumbler.curSelection="end"} } @@ -201,21 +218,72 @@ Flickable{ x: 4*root.fontFactor*osSettings.bigFontSize y: 6*root.fontFactor*osSettings.bigFontSize width: parent.width-7*root.fontFactor*osSettings.bigFontSize - Oldcontrols.Calendar{ - id:cal - property string curSelection: "start" - width: 12*root.fontFactor*osSettings.bigFontSize - height: 15*root.fontFactor*osSettings.bigFontSize + + ListView{ + id: cal visible: false - selectedDate: new Date() - onClicked: { - if (curSelection=="start"){ - textStartDate.text=Qt.formatDate(cal.selectedDate, "dd-MM-yyyy"); - }else{ - textEndDate.text=Qt.formatDate(cal.selectedDate, "dd-MM-yyyy"); - } - cal.visible=false + width: textColumn.width //12*root.fontFactor*osSettings.bigFontSize + height: 15*root.fontFactor*osSettings.bigFontSize + clip: true + snapMode: ListView.SnapOneItem + orientation: ListView.Horizontal + highlightRangeMode: ListView.StrictlyEnforceRange + property string curSelection: "start" + + model: CalendarModel {id:calendarModel + from: new Date() + to: new Date(new Date().valueOf()+93312000000) } + delegate: + Item{ + width:Math.min(23*root.fontFactor*osSettings.bigFontSize,cal.width) + height: parent.height + Text{ + font.bold: true + width: parent.width-root.fontFactor*osSettings.bigFontSize + horizontalAlignment:Text.AlignHCenter + color: osSettings.primaryTextColor + text: model.year + font.pointSize: osSettings.systemFontSize + } + Text{y:1.5*root.fontFactor*osSettings.bigFontSize + width: parent.width-osSettings.bigFontSize + text: Qt.locale().standaloneMonthName(model.month) + color: osSettings.primaryTextColor + horizontalAlignment:Text.AlignHCenter + font.pointSize: osSettings.systemFontSize + } + DayOfWeekRow{y:3*root.fontFactor*osSettings.bigFontSize + width: parent.width-root.fontFactor*osSettings.bigFontSize + locale: monthgrid.locale + font.pointSize: osSettings.systemFontSize + } + + MonthGrid {y:5*root.fontFactor*osSettings.bigFontSize + id: monthgrid + height: parent.height-5*root.fontFactor*osSettings.bigFontSize + width: parent.width-root.fontFactor*osSettings.bigFontSize + month: model.month + year: model.year + locale: Qt.locale() + delegate: Button{ + width: root.fontFactor*osSettings.bigFontSize*3 + height: root.fontFactor*osSettings.bigFontSize*2 + enabled: model.month==monthgrid.month + text: model.day + font.underline: model.today + font.pointSize: 1.2*osSettings.systemFontSize + highlighted: model.today + onClicked:{if (cal.curSelection=="start"){ + textStartDate.text=Qt.formatDate(model.date, "dd-MM-yyyy"); + }else{ + textEndDate.text=Qt.formatDate(model.date, "dd-MM-yyyy"); + } + cal.visible=false}} + } + } + ScrollIndicator.horizontal: ScrollIndicator { } + Component.onCompleted: positionViewAtBeginning() } Frame { @@ -244,8 +312,10 @@ Flickable{ height: 2*root.fontFactor*osSettings.bigFontSize anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - - text:"\uf00c" + text: qsTr("Accept time") + display: AbstractButton.IconOnly + icon.name: "checkbox" + icon.source: "qrc:/assets/icons/check.svg" onClicked:{ if (timeTumbler.curSelection=="start"){ textStartTime.text=formatText(24,hoursTumbler.currentIndex)+":"+formatText(60,minutesTumbler.currentIndex); @@ -328,8 +398,8 @@ Flickable{ BusyIndicator{ id: eventCreateBusy - anchors.horizontalCenter: eventCreateBox.horizontalCenter - anchors.top:eventCreateBox.top + anchors.horizontalCenter: eventRect.horizontalCenter + anchors.top: eventRect.top anchors.topMargin: 2*root.fontFactor*osSettings.bigFontSize width:3*root.fontFactor*osSettings.bigFontSize height: 3*root.fontFactor*osSettings.bigFontSize @@ -339,6 +409,7 @@ Flickable{ MButton{ id:createEventButton text: qsTr("Create event") + width:textColumn.width onClicked:{ let startdatetext=textStartDate.getText(0,textStartDate.length); let startdate=new Date(startdatetext.substring(6,10)+"-"+startdatetext.substring(3,5)+"-"+startdatetext.substring(0,2)+"T"+textStartTime.text) diff --git a/source-linux/qml/calendarqml/EventList.qml b/src/qml/calendarqml/EventList.qml similarity index 91% rename from source-linux/qml/calendarqml/EventList.qml rename to src/qml/calendarqml/EventList.qml index aa17a10..5e9c865 100644 --- a/source-linux/qml/calendarqml/EventList.qml +++ b/src/qml/calendarqml/EventList.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/service.js" as Service import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -50,7 +50,10 @@ Rectangle{ anchors.right: parent.right anchors.rightMargin: 1*mm width: 2*root.fontFactor*osSettings.bigFontSize; - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked:{rootstackView.pop()} } @@ -61,7 +64,9 @@ Rectangle{ anchors.right:closeButton.left anchors.rightMargin:mm width: 2*root.fontFactor*osSettings.bigFontSize; - text:"+" + display: AbstractButton.IconOnly + icon.name: "list-add" + icon.source: "qrc:/assets/icons/plus.svg" onClicked: { rootstackView.push("qrc:/qml/calendarqml/EventCreate.qml",{"startDate": new Date(dayint*86400000)}) } diff --git a/source-linux/qml/calendarqml/EventListItem.qml b/src/qml/calendarqml/EventListItem.qml similarity index 92% rename from source-linux/qml/calendarqml/EventListItem.qml rename to src/qml/calendarqml/EventListItem.qml index 4db3d2d..0c602bf 100644 --- a/source-linux/qml/calendarqml/EventListItem.qml +++ b/src/qml/calendarqml/EventListItem.qml @@ -29,8 +29,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 +import QtQml 6.3 import "qrc:/js/service.js" as Service import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -53,7 +54,7 @@ Rectangle{ y:1 width: 7*mm height: 7*mm - onStatusChanged: if (profileImage.status == Image.Error) {source="qrc:/images/defaultcontact.jpg"} + onStatusChanged: if (profileImage.status == Image.Error) {source="qrc:/assets/defaultcontact.jpg"} } Text { id:eventNameText @@ -91,24 +92,23 @@ Rectangle{ anchors.right:parent.right anchors.rightMargin:mm width: 2*root.fontFactor*osSettings.bigFontSize; - text:"\uf1f8" + icon.name: "user-trash-symbolic" + icon.source: "qrc:/assets/icons/trash.svg" + // background: Rectangle{color: osSettings.dialogColor; + // radius: 0.5*mm} onClicked: { deleteDialog.eventid=event.id deleteDialog.open() } } - onClicked:{ + onClicked:{print (JSON.stringify(event)) if (status==""){ rootstackView.push("qrc:/qml/calendarqml/EventList.qml",{"dayint": event.startday, "events":[event]}); } else {rootstackView.pop()} } } - - - - Connections{ target: xhr function onSuccess(text,api){ diff --git a/source-linux/qml/configqml/AcceptRules.qml b/src/qml/configqml/AcceptRules.qml similarity index 98% rename from source-linux/qml/configqml/AcceptRules.qml rename to src/qml/configqml/AcceptRules.qml index ef96842..68e4107 100644 --- a/source-linux/qml/configqml/AcceptRules.qml +++ b/src/qml/configqml/AcceptRules.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.15 +import QtQuick 6.3 +import QtQuick.Controls 6.3 Dialog { id: rulesDialog diff --git a/source-linux/qml/configqml/AccountPage.qml b/src/qml/configqml/AccountPage.qml similarity index 97% rename from source-linux/qml/configqml/AccountPage.qml rename to src/qml/configqml/AccountPage.qml index 886d1f3..ec150f6 100644 --- a/source-linux/qml/configqml/AccountPage.qml +++ b/src/qml/configqml/AccountPage.qml @@ -33,7 +33,7 @@ import QtQuick 6.3 import QtCore 6.3 import QtQuick.Dialogs 6.3 import QtQuick.Controls 6.3 -import QtQuick.Layouts 1.12 +import QtQuick.Layouts import QtQml.Models 6.3 import "qrc:/js/service.js" as Service import "qrc:/js/helper.js" as Helperjs @@ -90,7 +90,7 @@ Page{ login=userconfig; news=[]; contactlist=[]; - rootstack.currentIndex=0; + if(rootstackView.depth>1){rootstackSignal(0)} newstypeSignal("refresh"); },"isActive",0); Helperjs.showMessage(qsTr("Success"),qsTr("Name")+": "+credentials.display_name+"\nScreen Name: "+credentials.username,root) @@ -142,7 +142,7 @@ Page{ else if (obj.token!=''){accountPage.state='oauth'} },'username','"+ accountPage.users[i].username+"')}}" } - var menuString="import QtQuick.Controls 2.15;import 'qrc:/js/service.js' as Service;"+ + var menuString="import QtQuick.Controls 6.3;import 'qrc:/js/service.js' as Service;"+ " Menu {width:8*root.fontFactor*osSettings.bigFontSize;"+useritems+"}"; var userlistObject=Qt.createQmlObject(menuString,accountPage,"usermenuOutput") userlistObject.popup() } @@ -212,8 +212,10 @@ Page{ } } MButton { - text: "\uf150" - font.family: fontAwesome.name + text: qsTr("Method") + display: AbstractButton.IconOnly + icon.name: "expand" + icon.source: "qrc:/assets/icons/caret-down.svg" font.pointSize: osSettings.bigFontSize Menu { id:authMethodMenu @@ -236,7 +238,10 @@ Page{ MButton{ id:closeButton visible: users.length>0 - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" font.pointSize: osSettings.bigFontSize onClicked:{rootstackView.pop()} } @@ -265,7 +270,7 @@ Page{ } } } - FontLoader{id: fontAwesome; source: "qrc:/images/fontawesome-webfont.ttf"} + //FontLoader{id: fontAwesome; source: "qrc:/assets/fontawesome-webfont.ttf"} MButton{ id:serverSearchButton width: 3*root.fontFactor*osSettings.bigFontSize; height: 2.5*root.fontFactor*osSettings.bigFontSize @@ -551,7 +556,7 @@ Page{ login=userconfig; news=[]; contactlist=[]; - rootstack.currentIndex=0; + rootstackSignal(0); newstypeSignal("refresh"); },"isActive",0); Helperjs.showMessage(qsTr("Success"),"Screen Name: "+users[0].username,root) diff --git a/source-linux/qml/configqml/ConfigAppearancePage.qml b/src/qml/configqml/ConfigAppearancePage.qml similarity index 99% rename from source-linux/qml/configqml/ConfigAppearancePage.qml rename to src/qml/configqml/ConfigAppearancePage.qml index a758a2f..9525972 100644 --- a/source-linux/qml/configqml/ConfigAppearancePage.qml +++ b/src/qml/configqml/ConfigAppearancePage.qml @@ -29,9 +29,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 +import QtQuick 6.3 //import QtQuick.Dialogs 1.2 -import QtQuick.Controls 2.12 +import QtQuick.Controls 6.3 import "qrc:/js/service.js" as Service import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/configqml" @@ -184,7 +184,7 @@ Page{ } Column{ - //visible: osSettings.osType=="Android" + visible: osSettings.osType=="Android" x: root.fontFactor*osSettings.bigFontSize y: 26*root.fontFactor*osSettings.bigFontSize Label{ diff --git a/source-linux/qml/configqml/ConfigPage.qml b/src/qml/configqml/ConfigPage.qml similarity index 94% rename from source-linux/qml/configqml/ConfigPage.qml rename to src/qml/configqml/ConfigPage.qml index 7b762fb..5c8cbf0 100644 --- a/source-linux/qml/configqml/ConfigPage.qml +++ b/src/qml/configqml/ConfigPage.qml @@ -29,10 +29,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -//import QtQuick.Dialogs 1.2 -import QtQuick.Layouts 1.11 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Layouts +import QtQuick.Controls 6.3 import "qrc:/js/service.js" as Service import "qrc:/qml/configqml" import "qrc:/qml/genericqml" @@ -84,7 +83,6 @@ Page{ StackLayout{ id:configTabView - //anchors.fill: parent width: wideScreen&&rootstackView.depth<2?parent.width-leftDrawer.width-mm:parent.width-mm//newstabitem.width/3*2:newstabitem.width x: leftDrawer.width y: configbar.height @@ -117,13 +115,14 @@ Page{ } MButton{ id:closeButton - // height: 2*root.fontFactor*osSettings.bigFontSize - //width: 2*root.fontFactor*osSettings.bigFontSize; anchors.top: parent.top anchors.topMargin:2*root.fontFactor*osSettings.bigFontSize anchors.right: parent.right anchors.rightMargin: 1*mm - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" font.pointSize: osSettings.bigFontSize onClicked:{rootstackView.pop()} } diff --git a/source-linux/qml/configqml/ConfigStartPage.qml b/src/qml/configqml/ConfigStartPage.qml similarity index 98% rename from source-linux/qml/configqml/ConfigStartPage.qml rename to src/qml/configqml/ConfigStartPage.qml index ac56145..123b786 100644 --- a/source-linux/qml/configqml/ConfigStartPage.qml +++ b/src/qml/configqml/ConfigStartPage.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 Page{ //anchors.fill: parent diff --git a/source-linux/qml/configqml/InfoBox.qml b/src/qml/configqml/InfoBox.qml similarity index 92% rename from source-linux/qml/configqml/InfoBox.qml rename to src/qml/configqml/InfoBox.qml index 010b346..354b74b 100644 --- a/source-linux/qml/configqml/InfoBox.qml +++ b/src/qml/configqml/InfoBox.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/genericqml" Page{ @@ -48,7 +48,7 @@ Page{ "Privacy Policy: http://git.friendi.ca/lubuwest/Friendiqa/src/branch/master/PrivacyPolicy.md
"+ "Code by Marco
"+ "Qt Framework www.qt.io
"+ - "Icons by FontAwesome
"+ + "Icons by Fork Awesome
"+ "AndroidNative by Ben Lau
"+ "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" onLinkActivated:{ @@ -60,8 +60,10 @@ Page{ anchors.topMargin: root.fontFactor*osSettings.bigFontSize anchors.right: parent.right anchors.rightMargin: 1*mm - text: "\uf057" - font.pointSize: osSettings.bigFontSize + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked:{rootstackView.pop()} } } diff --git a/source-linux/qml/configqml/LeftDrawerScrollview.qml b/src/qml/configqml/LeftDrawerScrollview.qml similarity index 61% rename from source-linux/qml/configqml/LeftDrawerScrollview.qml rename to src/qml/configqml/LeftDrawerScrollview.qml index cd635d2..708df04 100644 --- a/source-linux/qml/configqml/LeftDrawerScrollview.qml +++ b/src/qml/configqml/LeftDrawerScrollview.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/genericqml" import "qrc:/js/service.js" as Service @@ -42,72 +42,8 @@ ScrollView{ contentHeight: leftDrawerColumn.height property string currentnewstabstatus:root.globaloptions.hasOwnProperty("newsViewType")?root.globaloptions.newsViewType:"Conversations"; - Column{ - id:leftDrawerColumn - x:mm - y:0.5*root.fontFactor*osSettings.bigFontSize - width:parent.width-2*mm - height: 4*root.fontFactor*osSettings.bigFontSize - spacing: 0.7*root.fontFactor*osSettings.bigFontSize - Label{ - width:implicitWidth - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - text: "\uf085 "+ qsTr("Settings") - MouseArea{ - anchors.fill:parent - onClicked:{rootstackView.push("qrc:qml/configqml/ConfigPage.qml"); - if(!wideScreen){leftDrawerAndroid.close()} - } - } - } - - Label{y: 2*root.fontFactor*osSettings.bigFontSize - width:implicitWidth - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - text: "\uf2bb " + qsTr("Accounts") - MouseArea{ - anchors.fill:parent - onClicked:{rootstackView.push("qrc:qml/configqml/AccountPage.qml"); - if(!wideScreen){leftDrawerAndroid.close()} - } - } - } - - Label{y: 4*root.fontFactor*osSettings.bigFontSize - width:implicitWidth - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - text: "\uf08b " +qsTr("Quit") - MouseArea{ - anchors.fill:parent - onClicked:{ - Service.cleanNews(root.db,function(){ - Service.cleanHashtags(root.db,function(){ - Service.cleanContacts(root.login,root.db,function(){ - Qt.quit()}) - })}) - } - } - } - ListModel{id:accountModel} - Component{id:accountLoader - Loader{ - source: bar.currentIndex==0?"qrc:/qml/genericqml/DrawerAccountComponent.qml":"qrc:/qml/genericqml/DrawerAccountComponentContacts.qml" - } - } - ListView{ - id:accountList - y: 6.5*root.fontFactor*osSettings.bigFontSize - width:parent.width - height: contentHeight - model: accountModel - delegate: accountLoader - } - } - - Component.onCompleted:{ + function initialize(){ + accountModel.clear(); Service.readAllLogins(db,function(accounts){ if (accounts.length>0 && bar.currentIndex==0){ leftDrawerColumn.height=6.5*root.fontFactor*osSettings.bigFontSize+accounts.length*17*root.fontFactor*osSettings.bigFontSize @@ -120,5 +56,86 @@ ScrollView{ accountModel.append({"account":accounts[account]}) } } - })} + }) + } + + Column{ + id:leftDrawerColumn + x:mm + y:0.5*root.fontFactor*osSettings.bigFontSize + width:leftDrawerScrollviewId.width-2*mm + height: 4*root.fontFactor*osSettings.bigFontSize + spacing: 0.7*root.fontFactor*osSettings.bigFontSize + + ToolButton{ + font.pointSize: osSettings.systemFontSize + text: qsTr("Settings") + icon.name: "settings-configure" + icon.source: "qrc:/assets/icons/cogs.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize +// background: Rectangle{color: osSettings.dialogColor; +// radius: 0.5*mm} + onClicked:{ + rootstackView.push("qrc:qml/configqml/ConfigPage.qml"); + if(!wideScreen){leftDrawerAndroid.close()} + } + } + ToolButton{ + y:2*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + text: qsTr("Accounts") + icon.name: "addressbook-details" + icon.source: "qrc:/assets/icons/address-card.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize +// background: Rectangle{color: osSettings.dialogColor; +// radius: 0.5*mm} + onClicked:{ + rootstackView.push("qrc:qml/configqml/AccountPage.qml"); + if(!wideScreen){leftDrawerAndroid.close()} + } + } + ToolButton{ + y:4*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + text: qsTr("Quit") + icon.name: "system-log-out" + icon.source: "qrc:/assets/icons/sign-out.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize +// background: Rectangle{color: osSettings.dialogColor; +// radius: 0.5*mm} + onClicked:{ + Service.cleanNews(root.db,function(){ + Service.cleanHashtags(root.db,function(){ + Service.cleanContacts(root.login,root.db,function(){ + Qt.quit()}) + })}) + } + } + ListModel{id:accountModel} + Component{id:accountLoader + Loader{ + source: bar.currentIndex==0?"qrc:/qml/genericqml/DrawerAccountComponent.qml":"qrc:/qml/genericqml/DrawerAccountComponentContacts.qml" + } + } + ListView{ + id:accountList + y: 6.5*root.fontFactor*osSettings.bigFontSize + width:leftDrawerColumn.width + height: contentHeight + model: accountModel + delegate: accountLoader + } + } + + Connections{ + target: root + function onLoginChanged(){ + initialize() + } + } + + Component.onCompleted:{initialize()} } diff --git a/source-linux/qml/configqml/OSSettingsAndroid.qml b/src/qml/configqml/OSSettingsAndroid.qml similarity index 98% rename from source-linux/qml/configqml/OSSettingsAndroid.qml rename to src/qml/configqml/OSSettingsAndroid.qml index 8777672..0f2cb34 100644 --- a/source-linux/qml/configqml/OSSettingsAndroid.qml +++ b/src/qml/configqml/OSSettingsAndroid.qml @@ -30,8 +30,8 @@ // along with this program. If not, see . import QtQuick.Window 2.0 -import QtQuick 2.0 -import QtQuick.Controls.Material 2.12 +import QtQuick 6.3 +import QtQuick.Controls.Material 6.3 QtObject{ property int appWidth: Screen.desktopAvailableWidth diff --git a/source-linux/qml/configqml/OSSettingsLinux.qml b/src/qml/configqml/OSSettingsLinux.qml similarity index 82% rename from source-linux/qml/configqml/OSSettingsLinux.qml rename to src/qml/configqml/OSSettingsLinux.qml index 1c1a8ea..4b4a624 100644 --- a/source-linux/qml/configqml/OSSettingsLinux.qml +++ b/src/qml/configqml/OSSettingsLinux.qml @@ -33,7 +33,8 @@ import QtQuick.Window 2.0 import QtQuick 6.3 import QtQuick.Controls 6.3 -QtObject{ +//QtObject{ +Item{ property real appWidth: Screen.desktopAvailableWidth/4*3 property real appHeight: Screen.desktopAvailableHeight/4*3 property int backKey: Qt.Key_Escape @@ -42,15 +43,15 @@ QtObject{ property int bigFontSize: systemFontSize*1.5 //property string attachImageDir:filesystem.homePath+"/Pictures/" property string imagePickQml: "ImagePickerLinux" - //SystemPalette { id: sysPalette; colorGroup: SystemPalette.Active } - //property SystemPalette name: value - property color backgroundColor: palette.window - property color backgroundDimColor: palette.button - property color primaryTextColor: palette.windowText - property color secondaryTextColor: palette.buttonText - property color dialogColor: palette.base - property color accentColor: palette.highlightedText - property color buttonColor: palette.button + SystemPalette { id: myPalette; colorGroup: SystemPalette.Active } + property color backgroundColor: myPalette.window + property color backgroundDimColor: myPalette.button + property color primaryTextColor: myPalette.windowText + property color secondaryTextColor: myPalette.buttonText + property color dialogColor: myPalette.base + property color accentColor: myPalette.highlight + property color buttonColor: myPalette.button + property color buttonText: myPalette.buttonText function setTheme(theme){ if (theme=="system"){ diff --git a/source-linux/qml/configqml/SyncComponent.qml b/src/qml/configqml/SyncComponent.qml similarity index 98% rename from source-linux/qml/configqml/SyncComponent.qml rename to src/qml/configqml/SyncComponent.qml index 388d72e..f58fa14 100644 --- a/source-linux/qml/configqml/SyncComponent.qml +++ b/src/qml/configqml/SyncComponent.qml @@ -30,8 +30,8 @@ // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/configqml" import "qrc:/js/service.js" as Service diff --git a/source-linux/qml/genericqml/SearchDialog.qml b/src/qml/configqml/SyncConfig.qml similarity index 54% rename from source-linux/qml/genericqml/SearchDialog.qml rename to src/qml/configqml/SyncConfig.qml index 8a57e30..d23542f 100644 --- a/source-linux/qml/genericqml/SearchDialog.qml +++ b/src/qml/configqml/SyncConfig.qml @@ -1,5 +1,5 @@ // This file is part of Friendiqa -// https://github.com/lubuwest/Friendiqa +// https://git.friendi.ca/lubuwest/Friendiqa // Copyright (C) 2020 Marco R. // // This program is free software: you can redistribute it and/or modify @@ -29,50 +29,47 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.7 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 +import "qrc:/qml/configqml" import "qrc:/qml/genericqml" +import "qrc:/js/service.js" as Service -Dialog { - id: searchDialog -// width: 0.5*parent.width -// height: 0.5*parent.height - anchors.centerIn: parent - title: qsTr("Search") - standardButtons: Dialog.Ok | Dialog.Abort - modal: true - onAccepted: { +Page{ + width:root.width + height: root.height - } - onRejected: {close()} - property bool selfdestroying:true -/* anchors.left: parent.left - anchors.leftMargin:mm - anchors.top:parent.top - anchors.topMargin: 0.5*mm - width:parent.width-2*mm - height: 4*mm *///Math.max( searchText.contentHeight,5*mm) - - TextInput { - id: searchText - color: osSettings.primaryTextColor - focus: true + Switch{ + x:root.fontFactor*osSettings.bigFontSize; + y: root.fontFactor*osSettings.bigFontSize; font.pointSize: osSettings.bigFontSize - wrapMode: Text.Wrap - anchors.fill: parent - selectByMouse: true - cursorVisible: false - onAccepted:{ - if (displayText!=""){ - var component = Qt.createComponent("qrc:/qml/newsqml/NewsStack.qml"); - var newscomp = component.createObject(newsSwipeview,{"expectScreenUpdate":true}); - newsSwipeview.addItem(newscomp); - newsSwipeview.currentIndex=newsSwipeview.count; - currentnewstabstatus="Public Timeline"; - newscomp.search(displayText) - }; - if(selfdestroying){close()} + checked: globaloptions.hasOwnProperty("syncinterval")?(globaloptions.syncinterval>0):0 + text: qsTr("Backgound Sync") + onToggled: { + if(checked){ + alarm.setAlarm(15); + Service.updateglobaloptions(root.db,"syncinterval",15); + } else { + alarm.setAlarm(0); + Service.updateglobaloptions(root.db,"syncinterval",0); + } + } + } + + ScrollView{ + width: root.width + height: root.height - 10*root.fontFactor*osSettings.bigFontSize; + y:4*root.fontFactor*osSettings.bigFontSize + clip:true + Column{ + width: parent.width + spacing:mm + SyncComponent{adapter:"Timeline"} + SyncComponent{adapter:"Replies"} + SyncComponent{ adapter:"DirectMessages"} + SyncComponent{ adapter:"Notifications"} + SyncComponent{ adapter: "Events"} + SyncComponent{adapter: "FriendRequests"} } } - Component.onCompleted: searchText.forceActiveFocus() } diff --git a/source-linux/qml/contactqml/Contactlist.qml b/src/qml/contactqml/Contactlist.qml similarity index 94% rename from source-linux/qml/contactqml/Contactlist.qml rename to src/qml/contactqml/Contactlist.qml index 576d990..8c0b2cb 100644 --- a/source-linux/qml/contactqml/Contactlist.qml +++ b/src/qml/contactqml/Contactlist.qml @@ -30,8 +30,8 @@ // along with this program. If not, see . // List of people -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -74,7 +74,7 @@ Rectangle { width: 5*mm height:5*mm source:(contact.profile_image!="")? "file://"+contact.profile_image : contact.profile_image_url - onStatusChanged: if (contactImage.status == Image.Error) {source="qrc:/images/defaultcontact.jpg"} + onStatusChanged: if (contactImage.status == Image.Error) {source="qrc:/assets/defaultcontact.jpg"} } Text{ font.pointSize: osSettings.bigFontSize @@ -116,8 +116,10 @@ Rectangle { anchors.topMargin: 1*mm anchors.right: parent.right anchors.rightMargin: 1*mm - //color:"white" - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked: { groupModelAppend(contacts,function(){ contactlistRectangle.destroy() diff --git a/source-linux/qml/contactqml/ContactsSearchPage.qml b/src/qml/contactqml/ContactsSearchPage.qml similarity index 83% rename from source-linux/qml/contactqml/ContactsSearchPage.qml rename to src/qml/contactqml/ContactsSearchPage.qml index 85dce63..74657c9 100644 --- a/source-linux/qml/contactqml/ContactsSearchPage.qml +++ b/src/qml/contactqml/ContactsSearchPage.qml @@ -29,9 +29,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 -import QtQuick.Layouts 1.11 +import QtQuick 6.3 +import QtQuick.Controls 6.3 +import QtQuick.Layouts import QtQuick.LocalStorage 2.0 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/service.js" as Service @@ -39,9 +39,9 @@ import "qrc:/js/news.js" as Newsjs import "qrc:/qml/contactqml" import "qrc:/qml/genericqml" -Page{ +Item{ id: contactsSearchPage - + //background: Rectangle{color: osSettings.dialogColor; radius: 0.5*mm} function search(term){ contactSearchBusy.running=true; @@ -103,26 +103,43 @@ Page{ anchors.right: parent.right anchors.rightMargin: 1*mm width: 2*root.fontFactor*osSettings.bigFontSize; - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked: { rootstackView.pop() } } - - Search{ + TextField{ + id:searchBox y:0.5*root.fontFactor*osSettings.bigFontSize; x:1.5*root.fontFactor*osSettings.systemFontSize; - width:root.width-(7*root.fontFactor*osSettings.systemFontSize+mm); - height: 2.5*root.fontFactor*osSettings.systemFontSize; - color:osSettings.dialogColor - selfdestroying:false + width: parent.width-root.fontFactor*osSettings.bigFontSize*7 + height: root.fontFactor*osSettings.bigFontSize*2 + font.pointSize: osSettings.bigFontSize + Component.onCompleted: {searchBox.forceActiveFocus()} + onAccepted: searchButton.onClicked() + } + + MButton { + id: searchButton + anchors.top: parent.top + anchors.topMargin: 0.5*root.fontFactor*osSettings.bigFontSize + anchors.left: searchBox.right + anchors.leftMargin: 0.5*root.fontFactor*osSettings.bigFontSize + icon.name: "search" + icon.source: "qrc:/assets/icons/search.svg" + text: qsTr("Close") + display: AbstractButton.IconOnly + onClicked: {search(searchBox.text);} } BusyIndicator{ id: contactSearchBusy anchors.centerIn:parent - width:10*mm - height: 10*mm + width: 2*root.fontFactor*osSettings.bigFontSize + height: 2*root.fontFactor*osSettings.bigFontSize running: false } diff --git a/source-linux/qml/contactqml/FriendsListTab.qml b/src/qml/contactqml/FriendsListTab.qml similarity index 73% rename from source-linux/qml/contactqml/FriendsListTab.qml rename to src/qml/contactqml/FriendsListTab.qml index b7be66c..ace40ad 100644 --- a/source-linux/qml/contactqml/FriendsListTab.qml +++ b/src/qml/contactqml/FriendsListTab.qml @@ -29,9 +29,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 -import QtQuick.Layouts 1.11 +import QtQuick 6.3 +import QtQuick.Controls 6.3 +import QtQuick.Layouts import QtQuick.LocalStorage 2.0 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/news.js" as Newsjs @@ -50,7 +50,7 @@ Item{ Helperjs.readData(db,"friendshiprequests",username,function(friendrequestsobject){ for (var i=0;i1){ + friendsobject[i].screen_name=friendsobject[i].screen_name+"+"+friendsobject[i].cid } - }); - Newsjs.listFriends(login,db,function(friendsobject){ - for (var i=0;i1){ - friendsobject[i].screen_name=friendsobject[i].screen_name+"+"+friendsobject[i].cid - } - friendsModel.append({"contact":friendsobject[i],"contactType":qsTr("Friends")}); - } - },(searchText.text==""?searchText.preeditText:searchText.text)); + friendsModel.append({"contact":friendsobject[i],"contactType":qsTr("Friends")}); + } + },(searchText.text==""?searchText.preeditText:searchText.text)); } function showContacts(contact){ @@ -81,9 +81,9 @@ Item{ if(Helperjs.getCount(db,login,"contacts","screen_name",contactsobject[j].screen_name)>1){ contactsobject[j].screen_name=contactsobject[j].screen_name+"+"+contactsobject[j].cid } - friendsModel.append({"contact":contactsobject[j]}); - } - },searchText.text,-1); + friendsModel.append({"contact":contactsobject[j]}); + } + },searchText.text,-1); } function showBlocked(contact){ @@ -94,9 +94,9 @@ Item{ if(Helperjs.getCount(db,login,"contacts","screen_name",contactsobject[j].screen_name)>1){ contactsobject[j].screen_name=contactsobject[j].screen_name+"+"+contactsobject[j].cid } - friendsModel.append({"contact":contactsobject[j]}); - } - }); + friendsModel.append({"contact":contactsobject[j]}); + } + }); } Connections{ @@ -105,7 +105,7 @@ Item{ if(type=="contactlist"){ friendsGridTab.currentContact=i+1; if(friendsGridTab.currentContact==root.newContacts.length){ - friendsGridTab.showFriends(root.login.username) + friendsGridTab.showFriends(root.login.username) } } } @@ -113,10 +113,15 @@ Item{ MButton { id: updateFriendsButton - text: "\uf021" + height: friendsCombo.height + text: qsTr("refresh") + display: AbstractButton.IconOnly + icon.name: "view-refresh-symbolic" + icon.source: "qrc:/assets/icons/refresh.svg" anchors.top: parent.top anchors.topMargin: mm - anchors.right: parent.right + anchors.left: friendsCombo.right + anchors.leftMargin: root.fontFactor*osSettings.systemFontSize onClicked: { try {friendsModel.clear()} catch(e){print(e)}; Helperjs.deleteData(root.db,"friendshiprequests",root.login.username,function(){}); @@ -126,8 +131,8 @@ Item{ updatenews.friendrequests(); //root.contactLoadType="friends"; Newsjs.requestFriends(root.login,db,root,function(nc){ - root.newContacts=nc - root.onNewContactsChanged(nc); + root.newContacts=nc + root.onNewContactsChanged(nc); }) } } @@ -137,38 +142,14 @@ Item{ width: friendsView.width height: 2*mm x: mm - y: updateFriendsButton.height+mm + y: 3.5*root.fontFactor*osSettings.bigFontSize visible: (friendsGridTab.currentContact!=(root.newContacts.length))?true:false value: friendsGridTab.currentContact/root.newContacts.length } - Rectangle { - id:searchComponent - x: mm; y:mm - color: osSettings.backgroundColor - radius:0.5*mm - width: 10*root.fontFactor*osSettings.bigFontSize - height: 2*root.fontFactor*osSettings.bigFontSize - TextField { - id: searchText - color: osSettings.primaryTextColor - focus: true - font.family: fontAwesome.name - font.pointSize: osSettings.systemFontSize - wrapMode: Text.Wrap - anchors.fill:parent - selectByMouse: true - cursorVisible: false - placeholderText: "\uf0b0" - onTextChanged: {showFriends(root.login.username)}//if (text.length>0) - onPreeditTextChanged: {{showFriends(root.login.username)}}//if (preeditText.length>0) - } - } - ComboBox{ id: friendsCombo - anchors.left: searchComponent.right - anchors.leftMargin: root.fontFactor*osSettings.bigFontSize + x: mm y: mm width: 6*root.fontFactor*osSettings.bigFontSize height: 1.5*root.fontFactor*osSettings.bigFontSize @@ -178,15 +159,43 @@ Item{ if (currentIndex === 0) { showFriends(root.login.username); } else - if (currentIndex===1){ - showContacts() - } else if (currentIndex===2){ - showBlocked() - } + if (currentIndex===1){ + showContacts() + } else if (currentIndex===2){ + showBlocked() + } } Component.onCompleted: {root.contactRefreshSignal.connect(onCurrentIndexChanged)} } + Rectangle { + id:searchComponent + anchors.top: friendsCombo.bottom + anchors.topMargin: mm + x: mm + //color: osSettings.backgroundColor + radius:0.5*mm + width: 10*root.fontFactor*osSettings.bigFontSize + height: 2*root.fontFactor*osSettings.bigFontSize + TextField { + id: searchText + //color: osSettings.primaryTextColor + focus: true + font.pointSize: osSettings.systemFontSize + wrapMode: Text.Wrap + anchors.fill:parent + selectByMouse: true + cursorVisible: false + onTextChanged: {showFriends(root.login.username)}//if (text.length>0) + onPreeditTextChanged: {{showFriends(root.login.username)}}//if (preeditText.length>0) + Image{ + source: "qrc:/assets/icons/filter.svg" + width: root.fontFactor*osSettings.bigFontSize + height: root.fontFactor*osSettings.bigFontSize + visible: searchText.text=="" + } + } + } Component { id: sectionHeading @@ -203,26 +212,17 @@ Item{ } } } - //GridView { - Component { id:headerComponent - Rectangle{ - color: osSettings.dialogColor + ToolButton{ + height: 2*root.fontFactor*osSettings.bigFontSize width:friendsView.width - height:6*mm - Text{ - color: osSettings.primaryTextColor - font.family: fontAwesome.name - font.pointSize: osSettings.bigFontSize - anchors.centerIn: parent - text:"\uf234" - } - MouseArea{ - anchors.fill:parent - onClicked:{ - rootstackView.push("qrc:/qml/contactqml/ContactsSearchPage.qml") - } + icon.name:"list-add-user" + icon.source: "qrc:/assets/icons/user-plus.svg" + icon.width: 2*root.fontFactor*osSettings.bigFontSize + icon.height: 2*root.fontFactor*osSettings.bigFontSize + onClicked:{ + rootstackView.push("qrc:/qml/contactqml/ContactsSearchPage.qml") } } } @@ -230,15 +230,12 @@ Item{ ListView{ id: friendsView x:mm - y:updateFriendsButton.height+2*mm + y: 3.5*root.fontFactor*osSettings.bigFontSize+3*mm width:friendsGridTab.width-2*mm height:friendsGridTab.height-(updateFriendsButton.height+10*mm) clip: true spacing: 2 - function processContactSelection(contactobject){showContactdetails(contactobject)} - //add: Transition { - // NumberAnimation { properties: "x,y"; from: 300; duration: 1000 } - // } + function processContactSelection(contactobject){showContactdetails(contactobject)} model: friendsModel delegate: ContactComponent { } header:headerComponent diff --git a/source-linux/qml/contactqml/FriendsTab.qml b/src/qml/contactqml/FriendsTab.qml similarity index 87% rename from source-linux/qml/contactqml/FriendsTab.qml rename to src/qml/contactqml/FriendsTab.qml index d163c73..ba45217 100644 --- a/source-linux/qml/contactqml/FriendsTab.qml +++ b/src/qml/contactqml/FriendsTab.qml @@ -29,9 +29,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 -import QtQuick.Layouts 1.11 +import QtQuick 6.3 +import QtQuick.Controls 6.3 +import QtQuick.Layouts import QtQuick.LocalStorage 2.0 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/news.js" as Newsjs @@ -44,18 +44,20 @@ Rectangle { color: osSettings.backgroundColor function showContactdetails(contact){ - // rootstack.currentIndex=0; - // bar.currentIndex=0; root.contactdetailsSignal(contact) } - BlueButton{ + ToolButton{ + id:menuButton z:2 + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: friendsbar.height visible: !wideScreen - fontColor: "grey" - border.color: "transparent" - text: "\uf0c9" - font.pointSize: osSettings.bigFontSize + icon.name: "application-menu" + icon.source: "qrc:/assets/icons/bars.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize onClicked:{ leftDrawerAndroid.visible?leftDrawerAndroid.close():leftDrawerAndroid.open()} } @@ -71,17 +73,17 @@ Rectangle { TabButton { text: qsTr("Me") font.pointSize: osSettings.systemFontSize - height: 1.7*root.fontFactor*osSettings.bigFontSize//7*mm + height: 1.7*root.fontFactor*osSettings.bigFontSize } TabButton { text: qsTr("Friends") font.pointSize: osSettings.systemFontSize - height: 1.7*root.fontFactor*osSettings.bigFontSize//7*mm + height: 1.7*root.fontFactor*osSettings.bigFontSize } TabButton { text: qsTr("Groups") font.pointSize: osSettings.systemFontSize - height: 1.7*root.fontFactor*osSettings.bigFontSize//7*mm + height: 1.7*root.fontFactor*osSettings.bigFontSize } } @@ -98,7 +100,6 @@ Rectangle { StackLayout{ id:friendsTabView - //anchors.fill: parent width: wideScreen&&rootstackView.depth<2?parent.width-leftDrawer.width-mm:parent.width-mm//newstabitem.width/3*2:newstabitem.width x: leftDrawer.width y: friendsbar.visible?friendsbar.height:0 diff --git a/source-linux/qml/contactqml/GroupComponent.qml b/src/qml/contactqml/GroupComponent.qml similarity index 93% rename from source-linux/qml/contactqml/GroupComponent.qml rename to src/qml/contactqml/GroupComponent.qml index 99d4e81..5988610 100644 --- a/source-linux/qml/contactqml/GroupComponent.qml +++ b/src/qml/contactqml/GroupComponent.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/news.js" as Newsjs import "qrc:/qml/genericqml" @@ -81,7 +81,10 @@ Item { anchors.right: parent.right anchors.margins: mm anchors.top: parent.top - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" font.pointSize: osSettings.bigFontSize onClicked:{groupComponent.state=""; if (group.new){groupsModel.remove(index)} @@ -90,7 +93,10 @@ Item { MButton{ id:infobutton - text:"?" + text: qsTr("Members") + display: AbstractButton.IconOnly + icon.name: "usermenu-down" + icon.source: "qrc:/assets/icons/times-circle.svg" font.pointSize: osSettings.bigFontSize anchors.right: parent.right anchors.rightMargin: mm diff --git a/source-linux/qml/contactqml/GroupsListTab.qml b/src/qml/contactqml/GroupsListTab.qml similarity index 58% rename from source-linux/qml/contactqml/GroupsListTab.qml rename to src/qml/contactqml/GroupsListTab.qml index 66478f2..9767d68 100644 --- a/source-linux/qml/contactqml/GroupsListTab.qml +++ b/src/qml/contactqml/GroupsListTab.qml @@ -29,9 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 -//import QtQuick.Layouts 1.11 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import QtQuick.LocalStorage 2.0 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/news.js" as Newsjs @@ -45,12 +44,12 @@ Item{ function showGroups(username){ try {groupsModel.clear()} catch(e){print(e)}; Helperjs.readData(db, "groups",root.login.username,function(groupsobject){ - for (var j=0;j. -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/genericqml" import "qrc:/js/service.js" as Service @@ -117,7 +117,11 @@ Rectangle { anchors.top: parent.top anchors.topMargin: mm anchors.right: parent.right - text: "\uf021" + anchors.rightMargin: menuButton.width + text: qsTr("refresh") + display: AbstractButton.IconOnly + icon.name: "view-refresh-symbolic" + icon.source: "qrc:/assets/icons/refresh.svg" font.pointSize: osSettings.bigFontSize onClicked: { Service.requestProfile(root.login,root.db,root,function(nc){ @@ -150,40 +154,48 @@ Rectangle { width: 15*mm height:15*mm source: "file://"+profile.friendica_owner.profile_image - onStatusChanged: if (photoImage.status == Image.Error) {source="qrc:/images/defaultcontact.jpg"} + onStatusChanged: if (photoImage.status == Image.Error) {source="qrc:/assets/defaultcontact.jpg"} MouseArea{ anchors.fill: parent onClicked:{ imagePicking=true; - var imagePicker = Qt.createQmlObject('import QtQuick 2.0; import "qrc:/qml/genericqml";'+ + var imagePicker = Qt.createQmlObject('import QtQuick 6.3; import "qrc:/qml/genericqml";'+ osSettings.imagePickQml+'{multiple: false;onReady: {photoImage.source=imageUrl;'+ '}}',profileTab,"imagePicker"); imagePicker.pickImage() } } } - Rectangle{ - id:phototextRectangle - color:"black" - z:3 - opacity: 0.5 - width:6*mm - height: phototext.contentHeight - anchors.top: photoImage.top - anchors.right: photoImage.right - } - Text { - id:phototext +// Rectangle{ +// id:phototextRectangle +// color:"black" +// z:3 +// opacity: 0.5 +// width:6*mm +// height: phototext.contentHeight +// anchors.top: photoImage.top +// anchors.right: photoImage.right +// } +// Text { +// id:phototext +// z:4 +// font.family: fontAwesome.name +// text: "\uf040" +// width:5*mm +// anchors.top: photoImage.top +// anchors.right:photoImage.right +// color: "white" +// font.pointSize: 1.2*osSettings.bigFontSize +// } + Image{ z:4 - font.family: fontAwesome.name - text: "\uf040" - width:5*mm + source: "qrc:/assets/icons/pencil.svg" + width: root.fontFactor*osSettings.systemFontSize + height: root.fontFactor*osSettings.systemFontSize anchors.top: photoImage.top anchors.right:photoImage.right - color: "white" - font.pointSize: 1.2*osSettings.bigFontSize - } + } MButton{ id:updatebutton width: 8*root.fontFactor*osSettings.bigFontSize diff --git a/source-linux/qml/contactqml/ProfileTab.qml b/src/qml/contactqml/ProfileTab.qml similarity index 94% rename from source-linux/qml/contactqml/ProfileTab.qml rename to src/qml/contactqml/ProfileTab.qml index e13cbf9..b16d7b5 100644 --- a/source-linux/qml/contactqml/ProfileTab.qml +++ b/src/qml/contactqml/ProfileTab.qml @@ -29,11 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 -//import QtQuick.Controls.Styles 1.4 -//import QtQuick.Layouts 1.11 -//import QtQuick.LocalStorage 2.0 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/news.js" as Newsjs import "qrc:/js/service.js" as Service diff --git a/source-linux/qml/friendiqa.qml b/src/qml/friendiqa.qml similarity index 61% rename from source-linux/qml/friendiqa.qml rename to src/qml/friendiqa.qml index 8dc4ca3..13cee29 100644 --- a/source-linux/qml/friendiqa.qml +++ b/src/qml/friendiqa.qml @@ -29,12 +29,11 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.5 +import QtQuick 6.3 import QtQuick.LocalStorage 2.0 import QtQuick.Window 2.0 -import QtQuick.Controls 2.4 - -import QtQuick.Layouts 1.11 +import QtQuick.Controls 6.3 +import QtQuick.Layouts import QSystemTrayIcon 1.0 import "qrc:/js/news.js" as Newsjs import "qrc:/js/service.js" as Service @@ -53,8 +52,10 @@ ApplicationWindow{ property var login: Service.readActiveConfig(db) property real fontFactor: root.font.pixelSize/root.font.pointSize property var contactlist: [] + property var conversation: [] property real mm: osSettings.osType=="Android"?Screen.pixelDensity:Screen.pixelDensity*1.5 property bool wideScreen : width>height + signal rootstackSignal(int pageindex) signal fotoSignal(var username, var friend) signal directmessageSignal(var friend) signal newsSignal(var news) @@ -75,19 +76,22 @@ ApplicationWindow{ property var contactposts:[] property bool imagePicking: false + SystemPalette { id: myPalette; colorGroup: SystemPalette.Active } + property color backgroundColor: myPalette.window + function onLoginChanged(login){ if(login=="" || login==null){rootstackView.push("qrc:/qml/configqml/AccountPage.qml")} - else{ -// if (login.newsViewType!="" || login.newsViewType!=null){ -// newstab.newstabstatus=login.newsViewType;} + else{if(rootstackView.depth<1){rootstackView.push("qrc:/qml/genericqml/RootStack.qml")} + // if (login.newsViewType!="" || login.newsViewType!=null){ + // newstab.newstabstatus=login.newsViewType;} Newsjs.getCurrentContacts(login,db,function(contacts){ contactlist=contacts}) } } function onNewContactsChanged(newContacts){ if(newContacts.length>0){// download contact images and update db - var contacturls=[]; - var contactnames=[]; + var contacturls=[]; + var contactnames=[]; for (var link in newContacts){//print("new contact " +newContacts[link].screen_name); contacturls.push(newContacts[link].profile_image_url); contactnames.push(newContacts[link].screen_name); @@ -133,50 +137,47 @@ ApplicationWindow{ } } - FontLoader{id: fontAwesome; source: "qrc:/images/fontawesome-webfont.ttf"} - onClosing: { - if (rootstack.currentIndex==0){ - newstab.active=true; - if (newstab.newstabstatus!=globaloptions.newsViewType){ - newstab.newstabstatus=globaloptions.newsViewType; - if(globaloptions.newsViewType=="Timeline"){Newsjs.newsfromdb(db,login.username,0,function(dbnews){ - newsSignal(dbnews) - })} - else{ - Newsjs.chatsfromdb(db,login.username,0,[],function(dbnews){ - newsSignal(dbnews) - })} - close.accepted=false; - } + if (rootstackView.depth>1){ + rootstackView.pop(); + close.accepted=false + } + else if (bar.currentIndex==0){ + //newstab.active=true; + // if (newstab.newstabstatus!=globaloptions.newsViewType){ + // newstab.newstabstatus=globaloptions.newsViewType; + // if(globaloptions.newsViewType=="Timeline"){Newsjs.newsfromdb(db,login.username,0,function(dbnews){ + // newsSignal(dbnews) + // })} + // else{ + // Newsjs.chatsfromdb(db,login.username,0,[],function(dbnews){ + // newsSignal(dbnews) + // })} + // close.accepted=false; + // } - else if (newstab.conversation.length>0){ - newstab.conversation=[]; - close.accepted=false - } - else if (root.depth>1){ - root.pop(); - close.accepted=false - } - else{ - Service.cleanNews(root.db,function(){ - Service.cleanHashtags(root.db,function(){ - Service.cleanContacts(root.login,root.db,function(){ - if (osSettings.osType=="Android" || !iconTrayAvailable){ - Qt.quit() - } - else{ - systemTray.show(); - systemTray.showMessage("",qsTr("Background Sync\n Rightclick or Middleclick to Quit"),"",5000) - root.hide() - } - }) - })}) - close.accepted=true - } - } - else if (rootstack.currentIndex==2){fotoSignal(login.username,"backButton");close.accepted=false} - else {rootstack.currentIndex=0;close.accepted=false} + // if (newstab.conversation.length>0){ + // newstab.conversation=[]; + // close.accepted=false + // } + + Service.cleanNews(root.db,function(){ + Service.cleanHashtags(root.db,function(){ + Service.cleanContacts(root.login,root.db,function(){ + if (osSettings.osType=="Android" || !iconTrayAvailable){ + Qt.quit() + } + else{ + systemTray.show(); + systemTray.showMessage("",qsTr("Background Sync\n Rightclick or Middleclick to Quit"),"",5000) + root.hide() + } + }) + })}) + close.accepted=true + } + //else if (bar.currentIndex==2){fotoSignal(login.username,"backButton");close.accepted=false} + else {rootstackSignal(0);bar.currentIndex=0;close.accepted=false} } Rectangle{ @@ -198,47 +199,71 @@ ApplicationWindow{ id: bar Layout.fillWidth: true onCurrentIndexChanged: { - rootstack.currentIndex=bar.currentIndex; + rootstackSignal(bar.currentIndex); try{while(rootstackView.depth>1){rootstackView.pop()}}catch(e){} } TabButton { - font.family: fontAwesome.name - text: "\uf03a" - background:Rectangle{ - anchors.fill: parent - color: osSettings.backgroundDimColor - } + width: bar.width/4 + icon.name: "format-list-unordered" + text: qsTr("Posts") + display: AbstractButton.IconOnly + icon.source: "qrc:/assets/icons/list.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + // background:Rectangle{ + // anchors.fill: parent + // color: osSettings.backgroundDimColor + // } + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Posts") onDoubleClicked: {newstypeSignal("refresh")} } TabButton { - font.family: fontAwesome.name - text: "\uf0c0" - background:Rectangle{ - anchors.fill: parent - color: osSettings.backgroundDimColor - } + width: bar.width/4 + icon.name: "group" + text: qsTr("Contacts") + display: AbstractButton.IconOnly + icon.source: "qrc:/assets/icons/users.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + // background:Rectangle{ + // anchors.fill: parent + // color: osSettings.backgroundDimColor + // } + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Contacts") } TabButton { - font.family: fontAwesome.name - text: "\uf03e" - background:Rectangle{ - anchors.fill: parent - color: osSettings.backgroundDimColor - } + width: bar.width/4 + icon.name: "viewimage" + text: qsTr("Images") + display: AbstractButton.IconOnly + icon.source: "qrc:/assets/icons/picture-o.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + // background:Rectangle{ + // anchors.fill: parent + // color: osSettings.backgroundDimColor + // } + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Photos") } TabButton { - font.family: fontAwesome.name - text: "\uf073" - background:Rectangle{ - anchors.fill: parent - color: osSettings.backgroundDimColor - } + width: bar.width/4 + icon.name: "view-calendar" + text: qsTr("Calendar") + display: AbstractButton.IconOnly + icon.source: "qrc:/assets/icons/calendar.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + // background:Rectangle{ + // anchors.fill: parent + // color: osSettings.backgroundDimColor + // } + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Calendar") } @@ -251,34 +276,6 @@ ApplicationWindow{ //anchors.fill: parent width:root.width height: root.height-roottoolbar.contentHeight - initialItem: StackLayout{ - id:rootstack - width:rootstackView.width - height: rootstackView.height - currentIndex:bar.currentIndex - - Loader{ - id: newstab - property string newstabstatus - property var conversation:[] - - source:(rootstack.currentIndex==0)? "qrc:/qml/newsqml/NewsTab.qml":"" - } - Loader{ - id: friendstab - source: (rootstack.currentIndex==1)?"qrc:/qml/contactqml/FriendsTab.qml":"" - } - Loader{ - id: fotostab - property string phototabstatus:"Images" - source: (rootstack.currentIndex==2)?"qrc:/qml/photoqml/PhotoTab.qml":"" - } - Loader{ - id: calendartab - property string calendartabstatus:"Events" - source: (rootstack.currentIndex==3)?"qrc:/qml/calendarqml/CalendarTab.qml":"" - } - } } QSystemTrayIcon { @@ -310,7 +307,7 @@ ApplicationWindow{ else {osSettings.setTheme("system")} if(!filesystem.Visibility){ systemTray.icon = iconTray; -// systemTray.toolTip = qsTr("Click to open Friendiqa"); + // systemTray.toolTip = qsTr("Click to open Friendiqa"); systemTray.visible=true systemTray.show(); } @@ -319,9 +316,9 @@ ApplicationWindow{ var component = Qt.createComponent("qrc:/qml/genericqml/IntentReceiver.qml"); var IntentReceiverQml = component.createObject(root); } - else if (osSettings.osType=="Linux"){ - var component = Qt.createComponent("qrc:/qml/genericqml/LinuxSync.qml"); - var LinuxSyncQml = component.createObject(root); - } + // else if (osSettings.osType=="Linux"){ + // var component = Qt.createComponent("qrc:/qml/genericqml/LinuxSync.qml"); + // var LinuxSyncQml = component.createObject(root); + // } } } diff --git a/source-linux/qml/genericqml/BlueButton.qml b/src/qml/genericqml/BlueButton.qml similarity index 97% rename from source-linux/qml/genericqml/BlueButton.qml rename to src/qml/genericqml/BlueButton.qml index 2375717..adbe394 100644 --- a/source-linux/qml/genericqml/BlueButton.qml +++ b/src/qml/genericqml/BlueButton.qml @@ -29,7 +29,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 +import QtQuick 6.3 Rectangle{ id: blueButton width: Math.max(mainText.width+2*mm,5*mm) @@ -51,7 +51,7 @@ Rectangle{ anchors.centerIn: parent width: contentWidth height: contentHeight - font.family:fontAwesome.name + //font.family:fontAwesome.name font.pointSize: osSettings.bigFontSize text: "" elide: Text.ElideNone diff --git a/source-linux/qml/genericqml/ContactComponent.qml b/src/qml/genericqml/ContactComponent.qml similarity index 97% rename from source-linux/qml/genericqml/ContactComponent.qml rename to src/qml/genericqml/ContactComponent.qml index 2342ef5..52a983c 100644 --- a/source-linux/qml/genericqml/ContactComponent.qml +++ b/src/qml/genericqml/ContactComponent.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/genericqml" Item { @@ -54,7 +54,7 @@ Item { width: 4*root.fontFactor*osSettings.systemFontSize height:4*root.fontFactor*osSettings.systemFontSize source:((contact.profile_image!="") && (typeof(contact.profile_image)=="string"))? "file://"+contact.profile_image : contact.profile_image_url - onStatusChanged: {if (photoImage.status == Image.Error) {source="qrc:/images/defaultcontact.jpg"}} + onStatusChanged: {if (photoImage.status == Image.Error) {source="qrc:/assets/defaultcontact.jpg"}} } Flow{ diff --git a/src/qml/genericqml/DrawerAccountComponent.qml b/src/qml/genericqml/DrawerAccountComponent.qml new file mode 100644 index 0000000..bfa7aa7 --- /dev/null +++ b/src/qml/genericqml/DrawerAccountComponent.qml @@ -0,0 +1,242 @@ +// This file is part of Friendiqa +// https://git.friendi.ca/lubuwest/Friendiqa +// Copyright (C) 2020 Marco R. +// +// 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, either version 3 of the License, or +// (at your option) any later version. +// +// In addition, as a special exception, the copyright holders give +// permission to link the code of portions of this program with the +// OpenSSL library under certain conditions as described in each +// individual source file, and distribute linked combinations including +// the two. +// +// You must obey the GNU General Public License in all respects for all +// of the code used other than OpenSSL. If you modify file(s) with this +// exception, you may extend this exception to your version of the +// file(s), but you are not obligated to do so. If you do not wish to do +// so, delete this exception statement from your version. If you delete +// this exception statement from all source files in the program, then +// also delete it here. +// +// 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 . + +import QtQuick 6.3 +import QtQuick.Controls 6.3 +import "qrc:/qml/genericqml" +import "qrc:/qml/newsqml" + +Item { + id: drawerAccountComponent + width: accountList.width + height: 17*root.fontFactor*osSettings.bigFontSize + function changeNews(typeRequest){ + newsSwipeview.stacktype=typeRequest; + if (newstabitem.newstypes.indexOf(typeRequest)<0){ + newsSwipeview.currentIndex=0; + newstabbar.currentIndex=0; +// let component =Qt.createQmlObject('import QtQuick 6.3; Loader{source:(newsSwipeview.currentIndex=='+(newsSwipeview.count)+')? "qrc:/qml/newsqml/NewsStack.qml":"qrc:/qml/newsqml/NewsStack.qml"}',newsSwipeview,"NewsstackLoader") +// newsSwipeview.addItem(component); +// newstabitem.newstypes.push(typeRequest); +// addToolbutton(typeRequest); +// newstabbar.currentIndex=newsSwipeview.count-1; + }else{ + newsSwipeview.currentIndex=newstabitem.newstypes.indexOf(typeRequest); + newstabbar.currentIndex=newstabitem.newstypes.indexOf(typeRequest); + } + } + + + Label{ + y:0.5*root.fontFactor*osSettings.bigFontSize + width:parent.width + height: 1.5*osSettings.bigFontSize*root.fontFactor + color: osSettings.primaryTextColor + verticalAlignment:Text.AlignBottom + font.pointSize: osSettings.bigFontSize + text: account.username + } + + ToolButton{ + y:2*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + text: qsTr("Refresh") + icon.name: "view-refresh" + icon.source: "qrc:/assets/icons/refresh.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + newstypeSignal("") + } + } + + ToolButton{ + y:3.5*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="Home" && newstab.newstabstatus=="Timeline" + text: qsTr("Timeline") + icon.name: "chronometer" + icon.source: "qrc:/assets/icons/history.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + changeNews("Home"); + currentnewstabstatus="Timeline"; + newstypeSignal("timeline") + } + } + + ToolButton{ + y: 5*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="Home" && newstab.newstabstatus=="Conversations" + text: qsTr("Conversations") + icon.name: "view-conversation-balloon" + icon.source: "qrc:/assets/icons/comments.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + changeNews("Home"); + currentnewstabstatus="Conversations"; + newstypeSignal("conversation") + } + } + + ToolButton{ + y:6.5*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="Replies" + text: qsTr("Replies") + icon.name: "mail-reply-all" + icon.source: "qrc:/assets/icons/exchange.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + changeNews("Replies"); + //currentnewstabstatus="Replies"; + newstypeSignal("replies") + } + } + + ToolButton{ + y: 8*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="DirectMessages" + text: qsTr("Direct Messages") + icon.name: "mail-message" + icon.source: "qrc:/assets/icons/envelope.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + changeNews("DirectMessages") + } + } + + ToolButton{ + y: 9.5*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="Favorites" + text: qsTr("Favorites") + icon.name: "starred-symbolic" + icon.source: "qrc:/assets/icons/star.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + changeNews("Favorites") + newstypeSignal("favorites") + } + } + + ToolButton{ + y: 11*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="Public Timeline" + text: qsTr("Public Timeline") + icon.name: "globe" + icon.source: "qrc:/assets/icons/globe.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + changeNews("Public Timeline") + currentnewstabstatus="Public Timeline"; + newstypeSignal("publictimeline") + } + } + + ToolButton{ + y: 12.5*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="Groupnews" + text: qsTr("Group news") + icon.name: "group" + icon.source: "qrc:/assets/icons/users.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + newsSwipeview.currentIndex=0; + currentnewstabstatus="Groupnews"; + changeNews("Group News") + newstypeSignal("groupnews") + } + } + + ToolButton{ + y: 14*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="Search" + text: qsTr("Search") + icon.name: "search" + icon.source: "qrc:/assets/icons/search.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + newsSwipeview.currentIndex=0; + currentnewstabstatus="Search"; + newstypeSignal("search") + changeNews("Search"); + } + } + + ToolButton{ + y: 15.5*root.fontFactor*osSettings.bigFontSize + font.pointSize: osSettings.systemFontSize + font.bold: account.username==login.username && newsSwipeview.stacktype=="Notifications" + text: qsTr("Notifications") + icon.name: "notifications" + icon.source: "qrc:/assets/icons/bell.svg" + icon.height: root.fontFactor*osSettings.systemFontSize + icon.width: root.fontFactor*osSettings.systemFontSize + onClicked:{ + login=account; + if(!wideScreen){leftDrawerAndroid.close()} + changeNews("Notifications") + newstypeSignal("notifications") + } + } +} diff --git a/source-linux/qml/genericqml/DrawerAccountComponentContacts.qml b/src/qml/genericqml/DrawerAccountComponentContacts.qml similarity index 98% rename from source-linux/qml/genericqml/DrawerAccountComponentContacts.qml rename to src/qml/genericqml/DrawerAccountComponentContacts.qml index 3f8018c..82f7dfe 100644 --- a/source-linux/qml/genericqml/DrawerAccountComponentContacts.qml +++ b/src/qml/genericqml/DrawerAccountComponentContacts.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/genericqml" Item { diff --git a/source-linux/qml/genericqml/ImagePicker.qml b/src/qml/genericqml/ImagePicker.qml similarity index 98% rename from source-linux/qml/genericqml/ImagePicker.qml rename to src/qml/genericqml/ImagePicker.qml index f408c82..2ac69a2 100644 --- a/source-linux/qml/genericqml/ImagePicker.qml +++ b/src/qml/genericqml/ImagePicker.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick 6.3 import AndroidNative 1.0 Item { diff --git a/source-linux/qml/genericqml/ImagePickerLinux.qml b/src/qml/genericqml/ImagePickerLinux.qml similarity index 99% rename from source-linux/qml/genericqml/ImagePickerLinux.qml rename to src/qml/genericqml/ImagePickerLinux.qml index 5bbf6e8..e15dbde 100644 --- a/source-linux/qml/genericqml/ImagePickerLinux.qml +++ b/src/qml/genericqml/ImagePickerLinux.qml @@ -29,10 +29,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.12 +import QtQuick 6.3 +import QtCore 6.3 import QtQuick.Controls 6.3 import QtQuick.Dialogs 6.3 -import Qt.labs.folderlistmodel 2.12 import "qrc:/js/service.js" as Service import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" diff --git a/source-linux/qml/genericqml/IntentReceiver.qml b/src/qml/genericqml/IntentReceiver.qml similarity index 98% rename from source-linux/qml/genericqml/IntentReceiver.qml rename to src/qml/genericqml/IntentReceiver.qml index 02465bd..7cad83a 100644 --- a/source-linux/qml/genericqml/IntentReceiver.qml +++ b/src/qml/genericqml/IntentReceiver.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick 6.3 import AndroidNative 1.0 Item { diff --git a/source-linux/qml/genericqml/LeftDrawerAndroid.qml b/src/qml/genericqml/LeftDrawerAndroid.qml similarity index 94% rename from source-linux/qml/genericqml/LeftDrawerAndroid.qml rename to src/qml/genericqml/LeftDrawerAndroid.qml index 5545836..8387fc1 100644 --- a/source-linux/qml/genericqml/LeftDrawerAndroid.qml +++ b/src/qml/genericqml/LeftDrawerAndroid.qml @@ -29,13 +29,14 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/configqml" Drawer{ id: leftDrawer width: root.fontFactor*osSettings.systemFontSize*13 height: root.height + background: Rectangle{color: osSettings.backgroundColor} LeftDrawerScrollview{} } diff --git a/source-linux/qml/genericqml/LeftDrawerLinux.qml b/src/qml/genericqml/LeftDrawerLinux.qml similarity index 90% rename from source-linux/qml/genericqml/LeftDrawerLinux.qml rename to src/qml/genericqml/LeftDrawerLinux.qml index cf6917b..73f9267 100644 --- a/source-linux/qml/genericqml/LeftDrawerLinux.qml +++ b/src/qml/genericqml/LeftDrawerLinux.qml @@ -29,15 +29,11 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/configqml" Rectangle{ -// id: leftDrawer -// width: osSettings.systemFontSize*30 -// height: root.height-bar.height - //y: bar.height signal opened() color: osSettings.backgroundColor @@ -52,5 +48,4 @@ Rectangle{ anchors.right: leftDrawer.right color: osSettings.dialogColor } - //Component.onCompleted: {opened();} } diff --git a/source-linux/qml/genericqml/LinuxSync.qml b/src/qml/genericqml/LinuxSync.qml similarity index 97% rename from source-linux/qml/genericqml/LinuxSync.qml rename to src/qml/genericqml/LinuxSync.qml index d90c03d..dde0210 100644 --- a/source-linux/qml/genericqml/LinuxSync.qml +++ b/src/qml/genericqml/LinuxSync.qml @@ -1,5 +1,4 @@ -import QtQuick 2.4 - +import QtQuick 6.3 Item { Timer{ diff --git a/source-linux/qml/genericqml/MButton.qml b/src/qml/genericqml/MButton.qml similarity index 83% rename from source-linux/qml/genericqml/MButton.qml rename to src/qml/genericqml/MButton.qml index c4e4e7b..b2c8cea 100644 --- a/source-linux/qml/genericqml/MButton.qml +++ b/src/qml/genericqml/MButton.qml @@ -28,18 +28,21 @@ // // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.9 +import QtQuick 6.3 import QtQuick.Controls 6.3 Button{ id: mButton - property alias color: bg.color + //property alias color: bg.color width: Math.max(implicitContentWidth+2*mm,3*root.fontFactor*osSettings.bigFontSize) //radius: mm - height: 2.5*root.fontFactor*osSettings.bigFontSize + height: 2*root.fontFactor*osSettings.bigFontSize //color: Material.foreground - font.family: fontAwesome.name + //font.family: fontAwesome.name font.pointSize: osSettings.bigFontSize //highlighted:true - background: Rectangle{id:bg;color: osSettings.dialogColor; - radius: 0.5*mm} + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + + // background: Rectangle{id:bg;color: osSettings.dialogColor; + // radius: 0.5*mm} } diff --git a/source-linux/qml/genericqml/PermissionDialog.qml b/src/qml/genericqml/PermissionDialog.qml similarity index 93% rename from source-linux/qml/genericqml/PermissionDialog.qml rename to src/qml/genericqml/PermissionDialog.qml index cf0ad98..fecef74 100644 --- a/source-linux/qml/genericqml/PermissionDialog.qml +++ b/src/qml/genericqml/PermissionDialog.qml @@ -29,7 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/service.js" as Service import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -57,8 +58,8 @@ Rectangle{ contact_deny.push(contactModel.get(j).contact.cid) } if ((contact_allow.length==0)&&(contact_deny.length==0)&&(group_allow.length==0)&&(group_deny.length==0)) - {permButton.text="\uf09c"} - else{permButton.text="\uf023"} + {permButton.icon.name="lock"; permButton.icon.source=icon.source= "qrc:/assets/icons/lock.svg"} + else{permButton.icon.name="unlock" ; permButton.icon.source=icon.source= "qrc:/assets/icons/unlock.svg"} } } @@ -186,7 +187,10 @@ Rectangle{ x:0.5*mm anchors.bottom: parent.bottom anchors.bottomMargin:1 - text:"\uf0c7" + text:qsTr("save") + display: AbstractButton.IconOnly + icon.name: "document-save" + icon.source: "qrc:/assets/icons/floppy-o.svg" onClicked:{ updatePerms(); var perms=[]; @@ -198,7 +202,10 @@ Rectangle{ x:contactView.width+2*mm anchors.bottom: parent.bottom anchors.bottomMargin:1 - text:"\u2713" + text:qsTr("apply") + display: AbstractButton.IconOnly + icon.name: "checkmark" + icon.source: "qrc:/assets/icons/check.svg" onClicked:{ updatePerms(); permissionDialog.visible=false; diff --git a/source-linux/qml/genericqml/Search.qml b/src/qml/genericqml/RootStack.qml similarity index 62% rename from source-linux/qml/genericqml/Search.qml rename to src/qml/genericqml/RootStack.qml index 5fc13d6..ee15add 100644 --- a/source-linux/qml/genericqml/Search.qml +++ b/src/qml/genericqml/RootStack.qml @@ -28,36 +28,36 @@ // // You should have received a copy of the GNU General Public License // along with this program. If not, see . +import QtQuick 6.3 +import QtQuick.Controls 6.3 +import QtQuick.Layouts -import QtQuick 2.7 -import QtQuick.Controls 2.12 -import "qrc:/qml/genericqml" +StackLayout{ + id:rootstack + width:rootstackView.width + height: rootstackView.height + currentIndex:bar.currentIndex -Rectangle { - id:searchComponent - color: osSettings.backgroundColor - radius:0.5*mm - property bool selfdestroying:false -/* anchors.left: parent.left - anchors.leftMargin:mm - anchors.top:parent.top - anchors.topMargin: 0.5*mm - width:parent.width-2*mm - height: 4*mm *///Math.max( searchText.contentHeight,5*mm) + function indexchange(pageindex){currentIndex=pageindex} - TextInput { - id: searchText - color: osSettings.primaryTextColor - focus: true - font.pointSize: osSettings.bigFontSize - wrapMode: Text.Wrap - anchors.fill: parent - selectByMouse: true - cursorVisible: false - onAccepted:{ - if (displayText!=""){search(displayText)}; - if(selfdestroying){searchComponent.destroy()} - } + Loader{ + id: newstab + property string newstabstatus + source:(rootstack.currentIndex==0)? "qrc:/qml/newsqml/NewsTab.qml":"" } - Component.onCompleted: searchText.forceActiveFocus() + Loader{ + id: friendstab + source: (rootstack.currentIndex==1)?"qrc:/qml/contactqml/FriendsTab.qml":"" + } + Loader{ + id: fotostab + property string phototabstatus:"Images" + source: (rootstack.currentIndex==2)?"qrc:/qml/photoqml/PhotoTab.qml":"" + } + Loader{ + id: calendartab + property string calendartabstatus:"Events" + source: (rootstack.currentIndex==3)?"qrc:/qml/calendarqml/CalendarTab.qml":"" + } + Component.onCompleted: {root.rootstackSignal.connect(indexchange);} } diff --git a/source-linux/qml/newsqml/BlockUser.qml b/src/qml/newsqml/BlockUser.qml similarity index 97% rename from source-linux/qml/newsqml/BlockUser.qml rename to src/qml/newsqml/BlockUser.qml index e3acfac..e559207 100644 --- a/source-linux/qml/newsqml/BlockUser.qml +++ b/src/qml/newsqml/BlockUser.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.15 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/helper.js" as Helperjs Dialog { diff --git a/source-linux/qml/newsqml/ContactPage.qml b/src/qml/newsqml/ContactPage.qml similarity index 91% rename from source-linux/qml/newsqml/ContactPage.qml rename to src/qml/newsqml/ContactPage.qml index 3151d8d..c993729 100644 --- a/source-linux/qml/newsqml/ContactPage.qml +++ b/src/qml/newsqml/ContactPage.qml @@ -30,8 +30,8 @@ // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/news.js" as Newsjs import "qrc:/js/service.js" as Service @@ -147,7 +147,7 @@ Page { width: Math.min(15*root.fontFactor*osSettings.bigFontSize,contactView.width/2) //contactView.width/2 height:width source:(contact.profile_image!="")? "file://"+contact.profile_image : contact.profile_image_url - onStatusChanged: if (profileImage.status == Image.Error) {source="qrc:/images/defaultcontact.jpg"} + onStatusChanged: if (profileImage.status == Image.Error) {source="qrc:/assets/defaultcontact.jpg"} Connections{ target:contactList function onProfileimagesourceChanged(){profileImage.source=profileimagesource} @@ -158,54 +158,57 @@ Page { anchors.right: parent.right anchors.rightMargin: mm width: contactView.width - (profileImage.width+3*mm) - height: (contact.hasOwnProperty("acct"))?21*mm:15*mm//profileImage.height + height: (contact.hasOwnProperty("acct"))?21*mm:15*mm y: mm spacing:4 - MButton{ - id:photobutton - height: 6*mm - width: 8*mm - text: "\uf03e" - visible:(contact.network=="dfrn") - onClicked:{ - rootstack.currentIndex=2; - bar.currentIndex=2; - fotostab.phototabstatus="Contact"; + // MButton{ + // id:photobutton + // height: 6*mm + // width: 8*mm + // text: qsTr("Photos") + // visible:(contact.network=="dfrn") + // onClicked:{ + // rootstackSignal(2); + // bar.currentIndex=2; + // fotostab.phototabstatus="Contact"; - //fotostab.active=true; - fotoSignal(root.login,contact) ; - rootstackView.pop(); - } - } + // //fotostab.active=true; + // fotoSignal(root.login,contact) ; + // rootstackView.pop(); + // } + // } MButton{ id:dmbutton height: 6*mm width: 8*mm visible: (contact.following=="true") - text: "\uf040" + text: qsTr("Direct Message") + display: AbstractButton.IconOnly + icon.name: "mail-message" + icon.source: "qrc:/assets/icons/envelope.svg" onClicked:{ - rootstack.currentIndex=0; + rootstackSignal(0); newsSwipeview.currentIndex=2; directmessageSignal(contact) } } - MButton{ - id:eventbutton - visible:(contact.network=="dfrn") - height: 6*mm - width: 8*mm - text:"\uf073" - onClicked:{ - rootstack.currentIndex=3; - bar.currentIndex=3; - calendartab.calendartabstatus="Friend" - eventSignal(contact); - rootstackView.pop() - } - } + // MButton{ + // id:eventbutton + // visible:(contact.network=="dfrn") + // height: 6*mm + // width: 8*mm + // text:qsTr("Events") + // onClicked:{ + // rootstackSignal(3); + // bar.currentIndex=3; + // calendartab.calendartabstatus="Friend" + // eventSignal(contact); + // rootstackView.pop() + // } + // } MButton{ id:approvebutton visible:(contact.hasOwnProperty("acct")&&!contact.searchContact) @@ -390,7 +393,10 @@ Page { anchors.right: parent.right anchors.rightMargin: 1*mm width: 2*root.fontFactor*osSettings.bigFontSize; - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked: { rootstackView.pop() } diff --git a/source-linux/qml/newsqml/Conversation.qml b/src/qml/newsqml/Conversation.qml similarity index 93% rename from source-linux/qml/newsqml/Conversation.qml rename to src/qml/newsqml/Conversation.qml index 5104c4c..645298b 100644 --- a/source-linux/qml/newsqml/Conversation.qml +++ b/src/qml/newsqml/Conversation.qml @@ -30,19 +30,14 @@ // along with this program. If not, see . // ConversationView with button -import QtQuick 2.0 -import QtQuick.Controls 2.12 -//import "qrc:/js/helper.js" as Helperjs +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/genericqml" import "qrc:/qml/newsqml" Page { id:conversationList property var news:[] -// color: "white" - //function backRequested(){pageStack.pop()} -// width:root.width -// height: root.height-7*mm function getDateDiffString (seconds){ var timestring=""; @@ -122,16 +117,17 @@ Page { } Connections{ - target:newstab + target: root function onConversationChanged(){ - if(newstab.conversation.length==0){ - rootstackView.pop() - } else { conversationBusy.running=false; + // if(root.conversation.length==0){ + // rootstackView.pop() + // } else { + conversationBusy.running=false; conversationModel.clear(); var currentTime= new Date(); - var msg = {'currentTime': currentTime, 'model': conversationModel,'news':newstab.conversation, 'method':'conversation', 'options':globaloptions}; + var msg = {'currentTime': currentTime, 'model': conversationModel,'news':root.conversation, 'method':'conversation', 'options':globaloptions}; conversationWorker.sendMessage(msg) - } + //} } } @@ -149,9 +145,12 @@ Page { anchors.right: parent.right anchors.rightMargin: 1*mm width: 2*root.fontFactor*osSettings.bigFontSize; - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked: { - newstab.conversation=[]; + root.conversation=[]; if (rootstackView.depth>1){ rootstackView.pop()} } } diff --git a/source-linux/qml/newsqml/FriendicaActivities.qml b/src/qml/newsqml/FriendicaActivities.qml similarity index 94% rename from source-linux/qml/newsqml/FriendicaActivities.qml rename to src/qml/newsqml/FriendicaActivities.qml index 78538f6..9555d8c 100644 --- a/source-linux/qml/newsqml/FriendicaActivities.qml +++ b/src/qml/newsqml/FriendicaActivities.qml @@ -30,7 +30,7 @@ // along with this program. If not, see . // List of people from Friendica Activities -import QtQuick 2.0 +import QtQuick 6.3 import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -73,7 +73,7 @@ Rectangle { width: 5*mm height:5*mm source:(contact.profile_image!="")? "file://"+contact.profile_image : contact.profile_image_url - onStatusChanged: if (contactImage.status == Image.Error) {source="qrc:/images/defaultcontact.jpg"} + onStatusChanged: if (contactImage.status == Image.Error) {source="qrc:/assets/defaultcontact.jpg"} } Text{ color: osSettings.primaryTextColor @@ -96,8 +96,10 @@ Rectangle { anchors.topMargin: 1*mm anchors.right: parent.right anchors.rightMargin: 1*mm - //color:"white" - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked: { activitiesRectangle.destroy() } diff --git a/source-linux/qml/newsqml/Hashtag.qml b/src/qml/newsqml/Hashtag.qml similarity index 99% rename from source-linux/qml/newsqml/Hashtag.qml rename to src/qml/newsqml/Hashtag.qml index a171e7c..28aa64c 100644 --- a/source-linux/qml/newsqml/Hashtag.qml +++ b/src/qml/newsqml/Hashtag.qml @@ -29,7 +29,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 +import QtQuick 6.3 Rectangle { id:hashtagRectangle diff --git a/source-linux/qml/newsqml/MessageImageUploadDialog.qml b/src/qml/newsqml/MessageImageUploadDialog.qml similarity index 88% rename from source-linux/qml/newsqml/MessageImageUploadDialog.qml rename to src/qml/newsqml/MessageImageUploadDialog.qml index 99f12ab..510cd65 100644 --- a/source-linux/qml/newsqml/MessageImageUploadDialog.qml +++ b/src/qml/newsqml/MessageImageUploadDialog.qml @@ -29,7 +29,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.12 +import QtQuick 6.3 import QtQuick.Controls 6.3 import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -73,7 +73,7 @@ Page{ function attach(){ imagePicking=true; - var imagePicker = Qt.createQmlObject('import QtQuick 2.0; import "qrc:/qml/genericqml";'+ + var imagePicker = Qt.createQmlObject('import QtQuick 6.3; import "qrc:/qml/genericqml";'+ osSettings.imagePickQml+'{multiple : false;onReady: {'+ 'attachImage(imageUrl)}}',imageDialog,"imagePicker"); imagePicker.pickImage() @@ -193,9 +193,15 @@ Page{ visible: uploadImage.source!="" anchors.bottom: uploadImage.bottom anchors.right: uploadImage.right - color: "black" + color: "grey" opacity: 0.5 - Text{anchors.centerIn:parent;font.family: fontAwesome.name;text: "\uf01e";color: "white"} + Image{ + anchors.centerIn: parent + source: "qrc:/assets/icons/repeat.svg" + width: root.fontFactor*osSettings.bigFontSize + height: root.fontFactor*osSettings.bigFontSize + } + //Text{anchors.centerIn:parent;font.family: fontAwesome.name;text: "\uf01e";color: "white"} MouseArea{ anchors.fill:parent; onClicked:{ @@ -212,9 +218,15 @@ Page{ visible: uploadImage.source!="" anchors.bottom: uploadImage.bottom anchors.left: uploadImage.left - color: "black" + color: "grey" opacity: 0.5 - Text{anchors.centerIn:parent;font.family: fontAwesome.name; text: "\uf00d";color: "white"} + Image{ + anchors.centerIn: parent + source: "qrc:/assets/icons/times.svg" + width: root.fontFactor*osSettings.bigFontSize + height: root.fontFactor*osSettings.bigFontSize + } + //Text{anchors.centerIn:parent;font.family: fontAwesome.name; text: "\uf00d";color: "white"} MouseArea{ anchors.fill:parent; onClicked:{ @@ -223,16 +235,16 @@ Page{ } } - Text { + Image { id:uploadedArrow anchors.right:uploadImage.right visible: imageUploaded z:4 - text: "\u2713" + source: "qrc:/assets/icons/check.svg" width: root.fontFactor*osSettings.bigFontSize + height: root.fontFactor*osSettings.bigFontSize + //text: "\u2713" anchors.top: parent.top - color: "green" - font.pointSize: 3*osSettings.bigFontSize } Rectangle{ @@ -258,13 +270,15 @@ Page{ } Component{ id: imageFooter - BlueButton{ + Button{ width: 5*root.fontFactor*osSettings.bigFontSize height:imageUploadView.height-3*root.fontFactor*osSettings.bigFontSize - color: osSettings.backgroundColor - border.color: "transparent" - text:"\u002b" - fontSize: 3*osSettings.bigFontSize + text: qsTr("Add") + display: AbstractButton.IconOnly + icon.name: "list-add" + icon.source: "qrc:/assets/icons/plus.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize onClicked:{attach()} } } diff --git a/source-linux/qml/newsqml/MessageSend.qml b/src/qml/newsqml/MessageSend.qml similarity index 83% rename from source-linux/qml/newsqml/MessageSend.qml rename to src/qml/newsqml/MessageSend.qml index 96988e2..e63f066 100644 --- a/source-linux/qml/newsqml/MessageSend.qml +++ b/src/qml/newsqml/MessageSend.qml @@ -31,10 +31,10 @@ // message.qml // message with buttons -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import QtQuick.Window 2.0; -import QtQuick.Dialogs 6.4; +import QtQuick.Dialogs 6.3; //import Qt.labs.platform 6.3 as Platform import io.qt.examples.texteditor 1.0; import "qrc:/js/helper.js" as Helperjs @@ -46,10 +46,9 @@ import "qrc:/qml/newsqml" Window{ color: osSettings.backgroundColor width: parent.width - height: 2/3*parent.height//messageColumn.height+2*mm + height: 2/3*parent.height id: messageSend property bool wideScreen : width>height - // visible: conversation || (newstab.newstabstatus!="Search")?true:false property string parentId: "" //property bool textfocus: false //property bool conversation: false @@ -93,8 +92,6 @@ Window{ } function statusUpdate(title,status,in_reply_to_status_id) { - print("status: "+status); - //xhr.url= login.server + "/api/statuses/update.json"; try{newsBusy.running=true;conversationBusy.running=true}catch(e){} xhr.setAccount(login); xhr.setApi("/api/statuses/update"); @@ -201,7 +198,7 @@ Window{ DropArea{ anchors.fill: parent onDropped: { - //if (messageSend.state==""){messageSend.state="active"} + if (drop.keys.includes('text/uri-list')){ var droptext = drop.text.replace(/(\r\n|\n|\r)/gm, ","); imageUploadDialog.visible=true; @@ -390,15 +387,15 @@ Window{ x: 0.5*mm MButton { id: boldButton - text: "\uf032" // icon-bold - ToolTip.delay: 500 + //text: "\uf032" // icon-bold + text: qsTr("Bold") + display: AbstractButton.IconOnly + icon.name: "format-text-bold" + icon.source: "qrc:/assets/icons/bold.svg" + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Bold") focusPolicy: Qt.NoFocus - // Don't want to close the virtual keyboard when this is clicked. - // focusPolicy: Qt.NoFocus - // checkable: true - // checked: document.bold onClicked: { document.bold = !document.bold; bodyField.forceActiveFocus() @@ -406,48 +403,48 @@ Window{ } MButton { id: italicButton - text: "\uf033" // icon-italic - ToolTip.delay: 500 + //text: "\uf033" // icon-italic + text: qsTr("Format") + display: AbstractButton.IconOnly + icon.name: "format-text-italic" + icon.source: "qrc:/assets/icons/italic.svg" + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Italic") focusPolicy: Qt.NoFocus - // focusPolicy: Qt.NoFocus - // checkable: true - // checked: document.italic onClicked: {document.italic = !document.italic;bodyField.forceActiveFocus()} } MButton { id: liststyleButton - text: "\uf03a" // icon-align-justify - ToolTip.delay: 500 + //text: "\uf03a" // icon-align-justify + text: qsTr("Format") + display: AbstractButton.IconOnly + icon.name: "format-list-unordered" + icon.source: "qrc:/assets/icons/list.svg" + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Create list") - // focusPolicy: Qt.NoFocus - // checkable: true - // checked: document.alignment == Qt.AlignJustify onClicked: {document.liststyle = !document.liststyle;bodyField.forceActiveFocus()} } MButton { id: codeblockButton - text: "\uf121" // icon-code - ToolTip.delay: 500 + //text: "\uf121" // icon-code + text: qsTr("Format") + display: AbstractButton.IconOnly + icon.name: "format-text-code" + icon.source: "qrc:/assets/icons/code.svg" + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Format as code") - // focusPolicy: Qt.NoFocus - // checkable: true - // checked: document.alignment == Qt.AlignJustify onClicked: {document.codeblock = !document.codeblock;bodyField.forceActiveFocus()} } MButton { id: plainButton text: bodyField.textFormat==TextEdit.PlainText?qsTr("Rendered"):qsTr("MD") // icon-code - ToolTip.delay: 500 + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Show Markdown code") - // focusPolicy: Qt.NoFocus - // checkable: true - // checked: document.alignment == Qt.AlignJustify onClicked: { if(bodyField.textFormat==TextEdit.PlainText){ bodyField.textFormat=TextEdit.MarkdownText;} @@ -455,8 +452,20 @@ Window{ bodyField.forceActiveFocus() } } + MButton { + id: menuButton + //text: "\uf044" + text: qsTr("Format") + display: AbstractButton.IconOnly + icon.name: "overflow-menu" + icon.source: "qrc:/assets/icons/ellipsis-v.svg" + ToolTip.delay: 800 + ToolTip.visible: pressed || hovered + ToolTip.text: qsTr("Edit") + onClicked: { contextMenu.open()} + } } - PermissionDialog{id:permissionDialog;x:mm;visible: false} + //PermissionDialog{id:permissionDialog;x:mm;visible: false} SmileyDialog{id:smileyDialog;x:mm;visible: false} MessageImageUploadDialog{id:imageUploadDialog;visible: false} Row{ @@ -466,44 +475,50 @@ Window{ height: 3.5*root.fontFactor*osSettings.bigFontSize x: 0.5*mm - // MButton{id:permButton //Permissions not working in Friendica 02/2022 - // visible: !conversation && (newsSwipeview.stacktype!=="DirectMessages") - // height: 2*root.fontFactor*osSettings.bigFontSize - // width: 2*root.fontFactor*osSettings.bigFontSize - // text: ((contact_allow.length==0)&&(contact_deny.length==0)&&(group_allow.length==0)&&(group_deny.length==0))?"\uf09c":"\uf023" - // onClicked: { if (permissionDialog.visible==false){permissionDialog.visible=true} else{permissionDialog.visible=false}} - // } + // MButton{id:permButton //Permissions not working in Friendica 02/2022 + // visible: !conversation && (newsSwipeview.stacktype!=="DirectMessages") + // height: 2*root.fontFactor*osSettings.bigFontSize + // width: 2*root.fontFactor*osSettings.bigFontSize + // text: ((contact_allow.length==0)&&(contact_deny.length==0)&&(group_allow.length==0)&&(group_deny.length==0))?"\uf09c":"\uf023" + // onClicked: { if (permissionDialog.visible==false){permissionDialog.visible=true} else{permissionDialog.visible=false}} + // } MButton{ id:smileyButton - text: "\uf118" - ToolTip.delay: 500 + text: qsTr("emojies") + display: AbstractButton.IconOnly + icon.name: "smiley" + icon.source: "qrc:/assets/icons/smile-o.svg" + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Insert smiley") - height: 3*root.fontFactor*osSettings.bigFontSize - width: 3*root.fontFactor*osSettings.bigFontSize onClicked: {if (smileyDialog.visible==false){smileyDialog.visible=true} else{smileyDialog.visible=false}} } MButton{ id:hastagButton - text: "\uf292" - ToolTip.delay: 500 + text: "#" + // display: AbstractButton.IconOnly + // icon.name: "tag-symbolic" + // icon.source: "qrc:/assets/icons/hashtag.svg" + // icon.width: root.fontFactor*osSettings.bigFontSize + // icon.height: root.fontFactor*osSettings.bigFontSize + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Insert previous hashtag") - height: 3*root.fontFactor*osSettings.bigFontSize - width: 3*root.fontFactor*osSettings.bigFontSize onClicked: {if (tagSelector.visible==false){hashtagmenu()} else{tagSelector.visible=false}} } MButton{ id:imagesButton visible:(newsSwipeview.stacktype!="DirectMessages") - text: "\uf03e" - ToolTip.delay: 500 + //text: "\uf03e" + text: qsTr("Image") + display: AbstractButton.IconOnly + icon.name: "viewimage" + icon.source: "qrc:/assets/icons/picture-o.svg" + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Insert images") - height: 3*root.fontFactor*osSettings.bigFontSize - width: 3*root.fontFactor*osSettings.bigFontSize onClicked: { if (imageUploadDialog.visible==false){ imageUploadDialog.visible=true; @@ -514,32 +529,36 @@ Window{ MButton { id: cancelButton - ToolTip.delay: 500 + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Cancel message") - height: 3*root.fontFactor*osSettings.bigFontSize - width: 3*root.fontFactor*osSettings.bigFontSize - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked: {messageSend.close()} } MButton { id: formatButton - ToolTip.delay: 500 + visible: !wideScreen + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Format message") - height: 3*root.fontFactor*osSettings.bigFontSize - width: 3*root.fontFactor*osSettings.bigFontSize - text: "\uf031" + text: qsTr("Format") + display: AbstractButton.IconOnly + icon.name: "format-text-italic" + icon.source: "qrc:/assets/icons/font.svg" onClicked: {formatRow.visible?formatRow.visible=false:formatRow.visible=true} } MButton { id: sendButton - ToolTip.delay: 500 + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr("Send message") - height: 3*root.fontFactor*osSettings.bigFontSize - width: 3*root.fontFactor*osSettings.bigFontSize - text: "\uf1d9" + text: qsTr("Send") + display: AbstractButton.IconOnly + icon.name: "document-send" + icon.source: "qrc:/assets/icons/paper-plane-o.svg" onClicked: { var title=titleField.text.replace("\"","\'"); var body=bodyField.getFormattedText(0,bodyField.length); diff --git a/source-linux/qml/newsqml/MoreComments.qml b/src/qml/newsqml/MoreComments.qml similarity index 91% rename from source-linux/qml/newsqml/MoreComments.qml rename to src/qml/newsqml/MoreComments.qml index 375874d..ccb3510 100644 --- a/source-linux/qml/newsqml/MoreComments.qml +++ b/src/qml/newsqml/MoreComments.qml @@ -29,16 +29,14 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 +import QtQuick 6.3 Rectangle{ id: moreComments width: parent.width - height: 5*mm + height: root.fontFactor*osSettings.bigFontSize*2 color:osSettings.backgroundColor property int comments:0 -// border.color:"grey" -// border.width:1 signal clicked state:"" @@ -49,8 +47,8 @@ Rectangle{ anchors.margins: mm width: contentWidth height: contentHeight - font.family:fontAwesome.name - text: qsTr("Show all comments")+" (" +comments + ")" //"\uf0dc" + //font.family:fontAwesome.name + text: qsTr("Show all comments")+" (" +comments + ")" } MouseArea{ id:buttonArea diff --git a/source-linux/qml/newsqml/NewsImage.qml b/src/qml/newsqml/NewsImage.qml similarity index 99% rename from source-linux/qml/newsqml/NewsImage.qml rename to src/qml/newsqml/NewsImage.qml index 0a7c71e..c3a76c6 100644 --- a/source-linux/qml/newsqml/NewsImage.qml +++ b/src/qml/newsqml/NewsImage.qml @@ -29,7 +29,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.15 +import QtQuick 6.3 AnimatedImage {id:gif; width:toprow.width; cache:false diff --git a/source-linux/qml/newsqml/NewsPhotolist.qml b/src/qml/newsqml/NewsPhotolist.qml similarity index 83% rename from source-linux/qml/newsqml/NewsPhotolist.qml rename to src/qml/newsqml/NewsPhotolist.qml index 4c47334..831ecd4 100644 --- a/source-linux/qml/newsqml/NewsPhotolist.qml +++ b/src/qml/newsqml/NewsPhotolist.qml @@ -30,14 +30,14 @@ // along with this program. If not, see . -import QtQuick 2.15 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/genericqml" Page{ id:photolistview width:root.width; - height:root.height//-7*mm + height:root.height property var photolistarray: [] Rectangle{ @@ -66,7 +66,10 @@ Page{ anchors.right: parent.right anchors.rightMargin: 1*mm color: osSettings.dialogColor - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked: { if (rootstackView.depth>1){ //roottoolbar.visible=true; @@ -104,29 +107,35 @@ Page{ } - BlueButton{ + MButton{ width: 5*mm height:photolistview.height anchors.left: newsphotolistView.left visible: newsphotolistView.currentIndex!=0 - text:"\uf053" - fontColor:"grey" - border.color: "transparent" - color:"transparent" - radius:0 + // text:"\uf053" + // fontColor:"grey" + // border.color: "transparent" + // color:"transparent" + // radius:0 + display: AbstractButton.IconOnly + icon.name: "arrow-left" + icon.source: "qrc:/assets/icons/angle-left.svg" onClicked: {newsphotolistView.currentIndex=newsphotolistView.currentIndex-1} } - BlueButton{ + MButton{ width: 5*mm height:photolistview.height anchors.right: newsphotolistView.right visible: newsphotolistView.currentIndex!=photolistarray.length-1 - text:"\uf054" - fontColor:"grey" - border.color: "transparent" - color:"transparent" - radius:0 + // text:"\uf054" + // fontColor:"grey" + // border.color: "transparent" + // color:"transparent" + // radius:0 + display: AbstractButton.IconOnly + icon.name: "arrow-right" + icon.source: "qrc:/assets/icons/angle-right.svg" onClicked: {newsphotolistView.currentIndex=newsphotolistView.currentIndex+1} } diff --git a/source-linux/qml/newsqml/NewsStack.qml b/src/qml/newsqml/NewsStack.qml similarity index 84% rename from source-linux/qml/newsqml/NewsStack.qml rename to src/qml/newsqml/NewsStack.qml index 7781190..a653219 100644 --- a/source-linux/qml/newsqml/NewsStack.qml +++ b/src/qml/newsqml/NewsStack.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.12 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/news.js" as Newsjs import "qrc:/js/helper.js" as Helperjs import "qrc:/js/service.js" as Service @@ -38,18 +38,15 @@ import "qrc:/qml/genericqml" Rectangle{ id: newsStack - // width: parent.width - // height: parent.height color: osSettings.backgroundColor property string updateMethodNews: "refresh" property var allchats: ({}) property int lastnewsid:0 property string newstabstatus: "" - property bool expectScreenUpdate: false - function newstypeHandling(newstype){print("newstype "+newstype) - if (!newsBusy.running) { - try{newsBusy.running=true}catch(e){print(e)}; + function newstypeHandling(newstype){ + //if (!newsBusy.running) { + try{newsBusy.running=true}catch(e){print("newsBusy.running=true " + e)}; //root.replySignal(""); switch(newstype){ case "timeline": @@ -61,50 +58,48 @@ Rectangle{ }; break; case "conversation": - newsStack.updateMethodNews="conversation"; + updateMethodNews="conversation"; newstab.newstabstatus="Conversations"; Newsjs.chatsfromdb(root.db,root.login,0,[],function(news,lastid){ lastnewsid=lastid; showNews(news)}); break; case "favorites": - newsStack.updateMethodNews="refresh"; + updateMethodNews="refresh"; newstab.newstabstatus="Favorites"; Service.updateView("Favorites"); expectScreenUpdate=true; break; case "replies": - newsStack.updateMethodNews="refresh"; + updateMethodNews="refresh"; newstab.newstabstatus="Replies"; Service.updateView("Replies"); expectScreenUpdate=true; break; case "publictimeline": - newsStack.updateMethodNews="refresh"; + updateMethodNews="refresh"; newstab.newstabstatus="Public Timeline"; Service.updateView("Public Timeline"); expectScreenUpdate=true; break; case "groupnews": - newsStack.updateMethodNews="refresh"; + updateMethodNews="refresh"; newstab.newstabstatus="Groupnews"; Service.showGroups(); expectScreenUpdate=true; break; case "search": - newsView.anchors.topMargin=7*mm; + newsView.anchors.topMargin=root.fontFactor*osSettings.bigFontSize*3; newstab.newstabstatus="Search"; newsBusy.running=false; - var leftoffset=(osSettings.osType=="Android")?2*root.fontFactor*osSettings.bigFontSize:0 - var component = Qt.createComponent("qrc:/qml/genericqml/Search.qml"); - var searchItem = component.createObject(newsStack,{y:mm,x:leftoffset,width:root.width-(leftoffset+mm),height: 1.5*root.fontFactor*osSettings.systemFontSize,selfdestroying:true}); + searchBox.visible=true; break; case "refresh": if (newstab.newstabstatus=="Timeline" || newstabstatus=="Timeline"){ - newsStack.updateMethodNews="append" + updateMethodNews="append" } else if (newstab.newstabstatus=="Conversations" || newstabstatus=="Conversations"){ - newsStack.updateMethodNews="conversation"} - else {newsStack.updateMethodNews="refresh"} + updateMethodNews="conversation"} + else {updateMethodNews="refresh"} //root.contactLoadType="news"; if (newsSwipeview.stacktype=="Home"){ Service.updateView(newstab.newstabstatus,lastnewsid) @@ -119,15 +114,15 @@ Rectangle{ break; default: if (newstab.newstabstatus=="Timeline" || newstabstatus=="Timeline"){ - newsStack.updateMethodNews="append" + updateMethodNews="append" } else if (newstab.newstabstatus=="Conversations" || newstabstatus=="Conversations"){ - newsStack.updateMethodNews="conversation"} - else {newsStack.updateMethodNews="refresh"} + updateMethodNews="conversation"} + else {updateMethodNews="refresh"} //root.contactLoadType="news"; if (newsSwipeview.stacktype=="Home"){ Service.updateView(newstab.newstabstatus,lastnewsid) } - else if (newsSwipeview.stacktype=="Directmessage"){ + else if (newsSwipeview.stacktype=="DirectMessages"){ Service.updateView("Direct Messages",lastnewsid) } else if (newsSwipeview.stacktype=="Notifications"){ @@ -149,7 +144,7 @@ Rectangle{ Service.updateView(newstab.newstabstatus,lastnewsid) } expectScreenUpdate=true; - } + //} } } @@ -159,7 +154,7 @@ Rectangle{ if(newsToShow.length>0){ var currentTime= new Date() // downloadNotice.text=downloadNotice.text + "\n shownews start "+ Date.now(); - if (newsToShow.length==1){var method="refresh"}else{var method = newsStack.updateMethodNews} + if (newsToShow.length==1){var method="refresh"}else{var method = updateMethodNews} var msg = {'currentTime': currentTime, 'model': newsModel,'news':newsToShow,'method':method, 'options':globaloptions}; newsWorker.sendMessage(msg); } @@ -167,11 +162,10 @@ Rectangle{ function search(term){ if (term!=""){ - newstabstatus="Search"; newsBusy.running=true; - newsStack.updateMethodNews="refresh"; + updateMethodNews="refresh"; xhr.setAccount(login); - xhr.setApi("/api/search"); + xhr.setApi("/api/search/tweets"); xhr.setParam("q",term) xhr.get(); expectScreenUpdate=true; @@ -241,7 +235,6 @@ Rectangle{ case "Replies":messagetype=3;break; default:messagetype=99; } - print("messagetype " + messagetype); if((newstabstatus=="Conversations")&&(newsSwipeview.stacktype=="Home")){ Newsjs.chatsfromdb(db,login,messagetype,[],function(dbnews,lastid){ lastnewsid=lastid; @@ -249,7 +242,7 @@ Rectangle{ }) } else if (messagetype==99){ - newstypeHandling() + //newstypeHandling() } else{ Newsjs.newsfromdb(db,login,messagetype,function(dbnews,lastid){ @@ -261,7 +254,7 @@ Rectangle{ Connections{ target:xhr - function onError(data,url,api,code){ + function onError(data,url,api,code){print("api "+api+" code "+code+"data"+data) newsBusy.running=false; expectScreenUpdate=false; } @@ -288,6 +281,7 @@ Rectangle{ } } } + Connections{ target:updatenews function onError(api,data){ @@ -302,6 +296,11 @@ Rectangle{ } } + Connections{ + target: root + function onNewstypeSignal(type){newstypeHandling(type)} + } + Timer {id:replytimer; interval: 1000; running: false; repeat: false onTriggered: {print("replytimer") newsBusy.running=true; @@ -309,10 +308,10 @@ Rectangle{ showConversation(newsStack.timelineIndex-1,newsModel.get(0).newsitemobject)} else{ if (newstab.newstabstatus=="Timeline" || newstabstatus=="Timeline"){ - newsStack.updateMethodNews="append" + updateMethodNews="append" } else if (newstab.newstabstatus=="Conversations" || newstabstatus=="Conversations"){ - newsStack.updateMethodNews="conversation"} - else {newsStack.updateMethodNews="refresh"} + updateMethodNews="conversation"} + else {updateMethodNews="refresh"} if (newsSwipeview.stacktype=="Home"){ Service.updateView(newstab.newstabstatus) } @@ -368,26 +367,63 @@ Rectangle{ BusyIndicator{ id: newsBusy anchors.horizontalCenter: newsStack.horizontalCenter - anchors.top:parent.top - anchors.topMargin: mm + anchors.top: newsStack.top + anchors.topMargin: 2*root.fontFactor*osSettings.bigFontSize width: 2*root.fontFactor*osSettings.bigFontSize height: 2*root.fontFactor*osSettings.bigFontSize z:2 running: false } + TextInput{ + id:searchBox + visible: false + anchors.top: parent.top + anchors.margins: 0.5*root.fontFactor*osSettings.bigFontSize + x: searchCloseButton.width+0.5*root.fontFactor*osSettings.bigFontSize + width: parent.width-root.fontFactor*osSettings.bigFontSize*7 + height: root.fontFactor*osSettings.bigFontSize*3 + font.pointSize: osSettings.bigFontSize + onVisibleChanged:{ + if (visible){searchBox.forceActiveFocus()} + else{newsView.anchors.topMargin=0.5*mm;}} + onAccepted: searchButton.onClicked() + } + + MButton { + id: searchButton + visible: searchBox.visible + anchors.left: searchBox.right + anchors.leftMargin: 0.5*root.fontFactor*osSettings.bigFontSize + icon.name: "search" + icon.source: "qrc:/assets/icons/search.svg" + text: qsTr("Close") + display: AbstractButton.IconOnly + onClicked: {search(searchBox.text); searchBox.visible=false} + } + MButton { + id: searchCloseButton + visible: searchBox.visible + anchors.right: searchBox.left + anchors.rightMargin: 0.5*root.fontFactor*osSettings.bigFontSize + font.bold: true + font.pointSize: osSettings.bigFontSize + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" + onClicked: {searchBox.text=""; searchBox.visible=false} + } ListView { id: newsView property real oldContentY:0 property bool viewdragged: false property bool viewdraggedpositive: false property string viewtype: "news" - width: parent.width - height: parent.height//-3*mm + anchors.fill:parent anchors.margins: 0.5*mm clip: true spacing: 0 - //header:MessageSend{id:messagesend;onHeightChanged: {if(state=="active"){newsView.positionViewAtBeginning()}}} footer: footerComponent model: newsModel delegate: Newsitem{} @@ -420,10 +456,10 @@ Rectangle{ newsBusy.running=true; viewdragged=false if (newstab.newstabstatus=="Timeline" || newstabstatus=="Timeline"){ - newsStack.updateMethodNews="append" + updateMethodNews="append" } else if (newstab.newstabstatus=="Conversations" || newstabstatus=="Conversations"){ - newsStack.updateMethodNews="conversation"} - else {newsStack.updateMethodNews="refresh"} + updateMethodNews="conversation"} + else {updateMethodNews="refresh"} let currentnewstabstatus="Conversations"; if (newstab.newstabstatus!=""){ currentnewstabstatus=newstab.newstabstatus @@ -482,34 +518,6 @@ Rectangle{ source: "qrc:/js/newsworker.js" } - Text { - id: closeButton - //Svisible: !(globaloptions.defaultNewsTypes.indexOf(newsSwipeview.stacktype)>-1) - anchors.top: parent.top - anchors.topMargin: 1*mm - anchors.right: parent.right - anchors.rightMargin: 1*mm - width: root.fontFactor*osSettings.bigFontSize*2 - height: root.fontFactor*osSettings.bigFontSize*2 - font.bold: true - font.family: fontAwesome.name - font.pointSize: osSettings.bigFontSize - HoverHandler{id:closehover} - ToolTip.visible: closehover.hovered - ToolTip.text: qsTr("Close this timeline") - text: "\uf057" - MouseArea{ - anchors.fill: parent - onClicked: { - newstabitem.newstypes.splice(newsSwipeview.currentIndex,1) - newstabbar.removeItem(newstabbar.contentChildren[newstabbar.currentIndex]); - newstabbar.currentIndex=0; - newsSwipeview.removeItem(newsStack) - newsSwipeview.currentIndex=0; - } - } - } - Rectangle{ id:downloadNotice property alias text: noticeText.text @@ -535,8 +543,6 @@ Rectangle{ } Component.onCompleted: { - print("globaloptions.defaultNewsTypes.indexOf(newsSwipeview.stacktype)>-1 " +(globaloptions.defaultNewsTypes.indexOf(newsSwipeview.stacktype)>-1)) - root.newstypeSignal.connect(newstypeHandling); root.contactdetailsSignal.connect(showContact); root.newsSignal.connect(showNews); root.searchSignal.connect(search); @@ -544,6 +550,7 @@ Rectangle{ swipeIndicator.visible=true; root.globaloptions.hasOwnProperty("newsViewType")?newstab.newstabstatus=root.globaloptions.newsViewType:newstab.newstabstatus="Conversations"; newstabstatus=newstab.newstabstatus; - loadDBNews() + if(newsSwipeview.stacktype=="Search"){searchBox.visible=true} //else if (newsSwipeview.stacktype=="Group News"){newstypeHandling("groupnews")} + if(["Home","DirectMessages","Notifications","Replies"].indexOf(newsSwipeview.stacktype)>-1){loadDBNews()} } } diff --git a/source-linux/qml/newsqml/NewsTab.qml b/src/qml/newsqml/NewsTab.qml similarity index 78% rename from source-linux/qml/newsqml/NewsTab.qml rename to src/qml/newsqml/NewsTab.qml index 65a92db..f80f3fb 100644 --- a/source-linux/qml/newsqml/NewsTab.qml +++ b/src/qml/newsqml/NewsTab.qml @@ -29,7 +29,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.15 +import QtQuick 6.3 import QtQuick.Controls 6.3 import "qrc:/qml/newsqml" import "qrc:/qml/genericqml" @@ -42,6 +42,7 @@ Page{ width:rootstack.width height: rootstack.height property var newstypes: globaloptions.hasOwnProperty("defaultNewsTypes")?globaloptions.defaultNewsTypes:["Home","Replies","DirectMessages","Notifications"] + property bool expectScreenUpdate: false Timer {id:contacttimer; interval: 50; running: false; repeat: false onTriggered: { @@ -118,31 +119,44 @@ Page{ parentId=newsitemobject.id replyUser=newsitemobject.user.screen_name; } -// var messageString='import QtQuick 2.15; import QtQuick.Window 2.0; import "qrc:/qml/newsqml";'+ -// ' Window{id:messageWindow; title:"Message"; width:root.width; height:root.height; '+ -// 'MessageSend{state:"'+messageState+'"} Component.onCompleted: {x=Screen.width/2-width/2; y=Screen.height/2-height/2}}'; -// var messageObject=Qt.createQmlObject(messageString,root,"messageOutput"); + // var messageString='import qtquick 6.3; import QtQuick.Window 2.0; import "qrc:/qml/newsqml";'+ + // ' Window{id:messageWindow; title:"Message"; width:root.width; height:root.height; '+ + // 'MessageSend{state:"'+messageState+'"} Component.onCompleted: {x=Screen.width/2-width/2; y=Screen.height/2-height/2}}'; + // var messageObject=Qt.createQmlObject(messageString,root,"messageOutput"); var messageObject = Qt.createComponent("qrc:/qml/newsqml/MessageSend.qml"); var messageWindow=messageObject.createObject(root, { parentId: parentId, reply_to_user: replyUser, windowstate: messageState }); messageWindow.show(); } +// function getIcon(typerequest){ +// switch (typerequest){ +// case "Home": return "\uf015" +// case "Favorites": return "\uf005"; +// case "Replies": return "\uf0ec"; +// case "DirectMessages": return "\uf0e0"; +// case "Public Timeline": return "\uf0ac"; +// case "Group News": return "\uf0c0"; +// case "Search": return "\uf002"; +// case "Notifications": return "\uf0f3"; +// } +// } + function getIcon(typerequest){ switch (typerequest){ - case "Home": return "\uf015" - case "Favorites": return "\uf005"; - case "Replies": return "\uf0ec"; - case "DirectMessages": return "\uf0e0"; - case "Public Timeline": return "\uf0ac"; - case "Group News": return "\uf0c0"; - case "Search": return "\uf002"; - case "Notifications": return "\uf0f3"; + case "Home": return {iconName:"user-home-symbolic",iconUrl:"qrc:/assets/icons/home.svg"}; + case "Favorites": return {iconName:"starred-symbolic",iconUrl:"qrc:/assets/icons/star.svg"}; + case "Replies": return {iconName:"mail-reply-all",iconUrl:"qrc:/assets/icons/exchange.svg"}; + case "DirectMessages": return {iconName:"mail-message",iconUrl:"qrc:/assets/icons/envelope.svg"}; + case "Public Timeline": return {iconName:"globe",iconUrl:"qrc:/assets/icons/globe.svg"}; + case "Group News": return {iconName:"group",iconUrl:"qrc:/assets/icons/users.svg"}; + case "Search": return {iconName:"search",iconUrl:"qrc:/assets/icons/search.svg"}; + case "Notifications": return {iconName:"notifications",iconUrl:"qrc:/assets/icons/bell.svg"}; } } function addToolbutton(buttontype){ var component = Qt.createComponent("qrc:/qml/newsqml/NewsTabbutton.qml"); - var tabcomp = component.createObject(newstabbar,{"buttontype":buttontype}); + var tabcomp = component.createObject(newstabbar,{buttontype:buttontype,"buttonIcon":getIcon(buttontype)}); newstabbar.addItem(tabcomp); } // CalendarTab{ @@ -161,26 +175,18 @@ Page{ //MessageSend{} - BlueButton{ - z:2 - anchors.right: parent.right - visible: !wideScreen - fontColor: "grey" - border.color: "transparent" - text: "\uf0c9" - font.pointSize: osSettings.bigFontSize - onClicked:{ - leftDrawerAndroid.visible?leftDrawerAndroid.close():leftDrawerAndroid.open()} - } + //BlueButton{ + MButton{ z:2 anchors.right: parent.right - anchors.bottom: parent.bottom + anchors.bottom: newsSwipeview.bottom // fontColor: "grey" // border.color: "transparent" - text: "\uf040" - font.pointSize: osSettings.bigFontSize + icon.name: "open-for-editing" + //text: "o \uf040" + //implicitHeight: root.fontFactor*osSettings.bigFontSize onClicked:{ if (newsSwipeview.stacktype=="DirectMessages"){openMessageSend("directmessage","")} else {openMessageSend("active","")} @@ -215,9 +221,8 @@ Page{ SwipeView{ id: newsSwipeview property string stacktype:"Home" - currentIndex: 0 width: wideScreen&&rootstackView.depth<2?newstabitem.width-leftDrawer.width:newstabitem.width//newstabitem.width/3*2:newstabitem.width - height: newstabitem.height-newstabbar.height + height: newstabitem.height-(newstabbar.height+root.fontFactor*osSettings.systemFontSize) x: leftDrawer.width y: newstabbar.height function onDirectMessage(friend){currentIndex=2} @@ -242,6 +247,20 @@ Page{ } } + ToolButton{ + z:2 + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: newstabbar.height + visible: !wideScreen + icon.name: "application-menu" + icon.source: "qrc:/assets/icons/bars.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + onClicked:{ + leftDrawerAndroid.visible?leftDrawerAndroid.close():leftDrawerAndroid.open()} + } + PageIndicator { id: swipeIndicator z:5 @@ -254,19 +273,20 @@ Page{ } Connections{ - target: root - function onGlobaloptionsChanged(){ - newstypes=globaloptions.defaultNewsTypes; - while (newstabbar.count>0){ - newstabbar.removeItem(newstabbar.contentData[0]); + target: root + function onGlobaloptionsChanged(){ + newstypes=globaloptions.defaultNewsTypes; + while (newstabbar.count>0){ + newstabbar.removeItem(newstabbar.contentData[0]); + } + for (let view in newstypes){ + addToolbutton(newstypes[view]) + } } - for (let view in newstypes){ - addToolbutton(newstypes[view]) - } - } } Component.onCompleted: { - root.directmessageSignal.connect(newsSwipeview.onDirectMessage) + root.directmessageSignal.connect(newsSwipeview.onDirectMessage); + root.globaloptionsChanged(); } } diff --git a/source-linux/qml/newsqml/NewsTabbutton.qml b/src/qml/newsqml/NewsTabbutton.qml similarity index 73% rename from source-linux/qml/newsqml/NewsTabbutton.qml rename to src/qml/newsqml/NewsTabbutton.qml index cbde67c..d8c6e14 100644 --- a/source-linux/qml/newsqml/NewsTabbutton.qml +++ b/src/qml/newsqml/NewsTabbutton.qml @@ -29,22 +29,27 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.15 +import QtQuick 6.3 import QtQuick.Controls 6.3 TabButton { id: tabbutton - font.family: fontAwesome.name + //font.family: fontAwesome.name font.pointSize : osSettings.bigFontSize - width: newstabbar.width/5 + width: newstabbar.width/4 property string buttontype: "" - text: getIcon(buttontype) - background:Rectangle{ - anchors.fill: parent - color: osSettings.backgroundDimColor - border.color: newstypes[newsSwipeview.currentIndex]==buttontype?osSettings.accentColor:color - } - ToolTip.delay: 500 + property var buttonIcon: ({}) + icon.name: buttonIcon.iconName + icon.source: buttonIcon.iconUrl + //icon.color: newstypes[newsSwipeview.currentIndex]==buttontype?osSettings.accentColor:color + icon.height: root.fontFactor*osSettings.bigFontSize + icon.width: root.fontFactor*osSettings.bigFontSize + // background:Rectangle{ + // anchors.fill: parent + // color: osSettings.backgroundDimColor + // border.color: newstypes[newsSwipeview.currentIndex]==buttontype?osSettings.accentColor:color + // } + ToolTip.delay: 800 ToolTip.visible: pressed || hovered ToolTip.text: qsTr(buttontype) onDoubleClicked: {newstypeSignal(buttontype)} diff --git a/source-linux/qml/newsqml/NewsVideo.qml b/src/qml/newsqml/NewsVideo.qml similarity index 82% rename from source-linux/qml/newsqml/NewsVideo.qml rename to src/qml/newsqml/NewsVideo.qml index 2d68034..f713c9b 100644 --- a/source-linux/qml/newsqml/NewsVideo.qml +++ b/src/qml/newsqml/NewsVideo.qml @@ -29,22 +29,26 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.9 +import QtQuick 6.3 Rectangle{ - color:"black" + color:"grey" width:toprow.width/2; - height:toprow.width/3//video.hasVideo?newscolumn.width/4*3:10*mm + height:toprow.width/3 property var attachment:({}) - Text{ - id:noticeText - text:"\uf144"; - color:"light grey" - width:parent.width - font.pixelSize: parent.height/2 - x: (parent.width-contentWidth)/2 - y:parent.height/5 + Image{ + anchors.fill: parent + source: "qrc:/assets/icons/play.svg" } + // Text{ + // id:noticeText + // text:"\uf144"; + // color:"light grey" + // width:parent.width + // font.pixelSize: parent.height/2 + // x: (parent.width-contentWidth)/2 + // y:parent.height/5 + // } MouseArea {anchors.fill:parent; onClicked:{ diff --git a/source-linux/qml/newsqml/NewsVideoLarge.qml b/src/qml/newsqml/NewsVideoLarge.qml similarity index 90% rename from source-linux/qml/newsqml/NewsVideoLarge.qml rename to src/qml/newsqml/NewsVideoLarge.qml index 6b3e581..6c1c4c2 100644 --- a/source-linux/qml/newsqml/NewsVideoLarge.qml +++ b/src/qml/newsqml/NewsVideoLarge.qml @@ -29,18 +29,17 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtMultimedia 5.15 -import QtQuick 2.11 -import QtQuick.Controls 2.12 +import QtMultimedia 6.3 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/genericqml" Page{ id:newsvideofullscreen - //color:"black" - //border.color: "light grey" width:root.width; height:root.height-3*root.fontFactor*osSettings.bigFontSize property alias source:video.source + property string mimetype:"" Text{ id:noticeText text:"" @@ -56,12 +55,12 @@ Page{ Video { id:video; anchors.fill:parent - property string mimetype:"" + onErrorChanged:{noticeText.font.pointSize=osSettings.bigFontSize;noticeText.text=errorString;} fillMode: Image.PreserveAspectFit; - autoLoad: true - autoPlay: true - audioRole: MediaPlayer.VideoRole +// autoLoad: true +// autoPlay: true +// audioRole: MediaPlayer.VideoRole } ProgressBar{ @@ -99,7 +98,10 @@ Page{ anchors.topMargin: 1*mm anchors.right: parent.right anchors.rightMargin: 1*mm - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" onClicked: {if (rootstackView.depth>1){ rootstackView.pop()} } } diff --git a/source-linux/qml/newsqml/Newsitem.qml b/src/qml/newsqml/Newsitem.qml similarity index 81% rename from source-linux/qml/newsqml/Newsitem.qml rename to src/qml/newsqml/Newsitem.qml index 616aef2..a1522de 100644 --- a/source-linux/qml/newsqml/Newsitem.qml +++ b/src/qml/newsqml/Newsitem.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/news.js" as Newsjs import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -93,7 +93,7 @@ Item { width: 2*root.fontFactor*osSettings.bigFontSize height: 2*root.fontFactor*osSettings.bigFontSize //radius:mm - onStatusChanged: if (profileImage.status == Image.Error) {source="qrc:/images/defaultcontact.jpg"} + onStatusChanged: if (profileImage.status == Image.Error) {source="qrc:/assets/defaultcontact.jpg"} } Flow{ id:topFlow @@ -103,6 +103,7 @@ Item { anchors.margins: mm Label { id:user_name + color: osSettings.primaryTextColor width:parent.width font.bold: true font.pointSize: osSettings.systemFontSize @@ -183,26 +184,33 @@ Item { } - BlueButton{ + Button{ width: newsitem.width-2 height:5*mm anchors.bottom: toprow.bottom visible: toprow.implicitHeight>3/4*root.height || newsitemobject.nsfw - text:"\uf078" - fontColor: osSettings.secondaryTextColor - border.color: "transparent" - color: osSettings.backgroundColor + //text:"\uf078" +// fontColor: osSettings.secondaryTextColor +// border.color: "transparent" +// color: osSettings.backgroundColor // gradient: Gradient { // GradientStop { position: 0.0; color: "transparent" } // GradientStop { position: 0.5; color: osSettings.backgroundDimColor} // } - radius:0 + //radius:0 + icon.name:"arrow-down" + icon.source: "qrc:/assets/icons/chevron-down.svg" + icon.width: 2*root.fontFactor*osSettings.bigFontSize + icon.height: 2*root.fontFactor*osSettings.bigFontSize + background: Rectangle{color: "transparent"; + radius: 0.5*mm} onClicked: { - if (text=="\uf078"){ - toprow.height=toprow.implicitHeight+6*mm;text="\uf077" + if (icon.name=="arrow-down"){ + toprow.height=toprow.implicitHeight+6*mm; + icon.name=="arrow-up";icon.source="qrc:/assets/icons/chevron-up.svg"; } else { toprow.height=Math.min(toprow.implicitHeight,3/4*root.height); - text="\uf078"; + icon.name=="arrow-down";icon.source="qrc:/assets/icons/chevron-down.svg"; newsView.positionViewAtIndex(index,ListView.Beginning); } } @@ -273,25 +281,17 @@ Item { Row{id:controlrow anchors.top:friendicaActivities.bottom height: 1.5*root.fontFactor*osSettings.bigFontSize - CheckBox{ + ToolButton{ id:likeCheckbox width:newsitem.width/5 height: parent.height visible: ((newsitemobject.messagetype==0)||(newsitemobject.messagetype==3))? true:false checked:(model.newsitemobject.friendica_activities_view.self.liked==1)?true:false - indicator: Rectangle{ - height: parent.height - implicitWidth: newsitem.width/5 - implicitHeight:root.fontFactor*osSettings.bigFontSize - color:"transparent" - Text{ - anchors.centerIn: parent - font.pointSize: osSettings.bigFontSize - font.family:fontAwesome.name - color:likeCheckbox.checked?osSettings.primaryTextColor: osSettings.secondaryTextColor - text:likeCheckbox.checked?"\uf118"+"!":"\uf118" - } - } + icon.name:"smiley" + icon.source: "qrc:/assets/icons/smile-o.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + onClicked: { if(likeCheckbox.checked==true){Newsjs.like(root.login,root.db,1,"like",newsitemobject.id,root);dislikeCheckbox.checked=false; newsitemobject.friendica_activities_view.self.liked=1; @@ -302,25 +302,17 @@ Item { newsitem.ListView.view.model.set(index,{"newsitemobject":newsitemobject}); }} } - CheckBox{ + ToolButton{ id: dislikeCheckbox width:newsitem.width/5 height: parent.height visible: ((newsitemobject.messagetype==0)||(newsitemobject.messagetype==3))? true:false checked: (newsitemobject.friendica_activities_view.self.disliked==1)?true:false - indicator: Rectangle{ - height: parent.height - implicitWidth: newsitem.width/5 - implicitHeight:root.fontFactor*osSettings.bigFontSize - color:"transparent" - Text{ - anchors.centerIn: parent - font.pointSize: osSettings.bigFontSize - font.family:fontAwesome.name - color:dislikeCheckbox.checked?osSettings.primaryTextColor: osSettings.secondaryTextColor - text: dislikeCheckbox.checked?"\uf119"+"!":"\uf119" - } - } + //icon.name:"frown" + icon.source: favoritedCheckbox.checked?"qrc:/assets/icons/star.svg":"qrc:/assets/icons/frown-o.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + onClicked: { if (dislikeCheckbox.checked==true){Newsjs.like(root.login,root.db,1,"dislike",newsitemobject.id,root);likeCheckbox.checked=false; newsitemobject.friendica_activities_view.self.disliked=1; @@ -332,86 +324,56 @@ Item { }} } - CheckBox { + ToolButton{ + //CheckBox { id:favoritedCheckbox visible:((newsitemobject.messagetype==0)||(newsitemobject.messagetype==3)) width: newsitem.width/5 height: parent.height - indicator:Rectangle{ - height: parent.height - implicitWidth: newsitem.width/5 - implicitHeight:root.fontFactor*osSettings.bigFontSize - color:"transparent" - Text{ - anchors.centerIn: parent - font.pointSize: osSettings.bigFontSize - font.family:fontAwesome.name - color: favoritedCheckbox.checked?osSettings.primaryTextColor: osSettings.secondaryTextColor - text:"\uf005" - } - } + icon.name: favoritedCheckbox.checked?"starred-symbolic":"non-starred-symbolic" + icon.source: favoritedCheckbox.checked?"qrc:/assets/icons/star.svg":"qrc:/assets/icons/star-o.svg" + icon.width: root.fontFactor*osSettings.systemFontSize + icon.height: root.fontFactor*osSettings.systemFontSize + icon.color: favoritedCheckbox.checked?osSettings.primaryTextColor: osSettings.secondaryTextColor checked:(newsitemobject.favorited>0) onClicked:{ - if(favoritedCheckbox.checkState==Qt.Checked){ - Newsjs.favorite(login,true,newsitemobject.id,root); model.newsitemobject.favorited=1} - else if(favoritedCheckbox.checkState==Qt.Unchecked){ - Newsjs.favorite(login,false,newsitemobject.id,root);model.newsitemobject.favorited=0} - } - } - Rectangle{ - width: newsitem.width/5 - height: parent.height - visible:(newsitemobject.messagetype!==2) - color:"transparent" - Text{ - id:replysymbol - color: osSettings.secondaryTextColor - anchors.centerIn: parent - font.pointSize: osSettings.bigFontSize - font.family:fontAwesome.name - text: "\uf112" - } - MouseArea{ - anchors.fill:parent - onClicked: { - openMessageSend("reply",newsitemobject) + if(!checked){ + Newsjs.favorite(login,true,newsitemobject.id,root); model.newsitemobject.favorited=1; + checked=true + } + else if(checked){ + Newsjs.favorite(login,false,newsitemobject.id,root);model.newsitemobject.favorited=0; + checked=false } - -// var directmessage=0; -// if (newsitemobject.messagetype==1){ directmessage=1} -// var replycomp=Qt.createComponent("qrc:/qml/newsqml/MessageSend.qml"); -// var conversation; -// if (newsitem.ListView.view==null){conversation=true} -// else if (newsitem.ListView.view.viewtype=="conversation"){ -// conversation=true -// newsitem.ListView.view.currentIndex=itemindex -// } -// else{ -// conversation=false; -// newsitem.ListView.view.currentIndex=itemindex -// }; -// var reply=replycomp.createObject(friendicaActivities,{parentId:newsitemobject.id,reply_to_user:newsitemobject.user.screen_name, state:"reply",conversation:conversation,textfocus:true}) -// } } } - Rectangle{ + + ToolButton{ + id: reply + visible: (newsitemobject.messagetype!==2) width: newsitem.width/5 height: parent.height - visible:(newsitemobject.messagetype!==2) - color:"transparent" - Text{ - id:newsmenusymbol - color: osSettings.secondaryTextColor - anchors.centerIn: parent - font.pointSize: osSettings.bigFontSize - font.family:fontAwesome.name - text: "\uf142" + icon.name: "comment-symbolic" + icon.source: "qrc:/assets/icons/reply.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + onClicked:{ + openMessageSend("reply",newsitemobject) + } + } + + ToolButton{ + id: menubutton + visible: (newsitemobject.messagetype!==2) + width: newsitem.width/5 + height: parent.height + icon.name: "overflow-menu" + icon.source: "qrc:/assets/icons/ellipsis-v.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize + onClicked:{newsmenu.popup()} } - MouseArea{ - anchors.fill:parent - onClicked: {newsmenu.popup()}} } - } Menu { id:newsmenu @@ -474,7 +436,7 @@ Item { Action{ text:qsTr("Calendar Entry") onTriggered:{ - rootstack.currentIndex=3; + rootstackSignal(3); bar.currentIndex=3; eventcreateSignal(newsitemobject); } diff --git a/source-linux/qml/newsqml/PermissionDialog.qml b/src/qml/newsqml/PermissionDialog.qml similarity index 100% rename from source-linux/qml/newsqml/PermissionDialog.qml rename to src/qml/newsqml/PermissionDialog.qml diff --git a/source-linux/qml/newsqml/ReportUser.qml b/src/qml/newsqml/ReportUser.qml similarity index 98% rename from source-linux/qml/newsqml/ReportUser.qml rename to src/qml/newsqml/ReportUser.qml index 4b5884f..2583785 100644 --- a/source-linux/qml/newsqml/ReportUser.qml +++ b/src/qml/newsqml/ReportUser.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.0 -import QtQuick.Controls 2.15 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/helper.js" as Helperjs Dialog { diff --git a/source-linux/qml/newsqml/SmileyDialog.qml b/src/qml/newsqml/SmileyDialog.qml similarity index 53% rename from source-linux/qml/newsqml/SmileyDialog.qml rename to src/qml/newsqml/SmileyDialog.qml index bd95561..613b696 100644 --- a/source-linux/qml/newsqml/SmileyDialog.qml +++ b/src/qml/newsqml/SmileyDialog.qml @@ -29,9 +29,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.11 -import QtQuick.Controls 2.12 -import QtQuick.Layouts 1.11 +import QtQuick 6.3 +import QtQuick.Controls 6.3 +import QtQuick.Layouts import "qrc:/js/smiley.js" as Smileyjs import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" @@ -44,75 +44,60 @@ Rectangle{ color: osSettings.backgroundColor MButton{ - id:closeButton - anchors.top: parent.top - anchors.topMargin: 1*mm - anchors.right: parent.right - anchors.rightMargin: 1*mm - text: "\uf057" - onClicked:{smileyDialog.visible=false} - } - - - TabBar { - id: smileybar - width: parent.width - height: 9*mm - position:TabBar.Header - TabButton { - text:qsTr("Unicode") - font.pointSize: osSettings.systemFontSize - } - } - - StackLayout{ - id:smileyTabView - currentIndex: smileybar.currentIndex - anchors.top: closeButton.bottom + id:closeButton + anchors.top: parent.top anchors.topMargin: 1*mm - width: smileyDialog.width-2*mm - height: smileyDialog.height-4*root.fontFactor*osSettings.bigFontSize - Rectangle{ - id: htmlGridTab - color: osSettings.backgroundColor - GridView { - id:htmlView - anchors.fill: parent - cellWidth: 5*mm - cellHeight: 5*mm - clip: true - model: htmlModel - delegate: htmlItem - } - - ListModel{ - id:htmlModel - } - Component.onCompleted:{ - for (var icon in Smileyjs.html){ - htmlModel.append({"emoji":Smileyjs.html[icon]}) - } - } - } + anchors.right: parent.right + anchors.rightMargin: 1*mm + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" + onClicked:{smileyDialog.visible=false} } - + + Rectangle{ + id: htmlGridTab + color: osSettings.backgroundColor + width: smileyDialog.width-4*root.fontFactor*osSettings.bigFontSize//2*mm + height: smileyDialog.height//-4*root.fontFactor*osSettings.bigFontSize + + GridView { + id:htmlView + anchors.fill: parent + cellWidth: 5*mm + cellHeight: 5*mm + clip: true + model: htmlModel + delegate: htmlItem + } + + ListModel{ + id:htmlModel + } + Component.onCompleted:{ + for (var icon in Smileyjs.html){ + htmlModel.append({"emoji":Smileyjs.html[icon]}) + } + } + } + Component{ - id:htmlItem + id:htmlItem Label{id:smileText - width:4.5*mm - height: 4.5*mm - textFormat:Text.RichText - font.pointSize: osSettings.osType=="Linux"?1.7*osSettings.systemFontSize:1.4*osSettings.systemFontSize - text: emoji - + width:4.5*mm + height: 4.5*mm + textFormat:Text.RichText + font.pointSize: osSettings.osType=="Linux"?1.7*osSettings.systemFontSize:1.4*osSettings.systemFontSize + text: emoji + MouseArea{ anchors.fill: parent onClicked:{ - //bodyField.append(emoji.name+" ") bodyField.insert(bodyField.cursorPosition,emoji+" "); - smileyDialog.visible=false - } + smileyDialog.visible=false } } - } + } } +} diff --git a/source-linux/qml/photoqml/ImageUploadDialog.qml b/src/qml/photoqml/ImageUploadDialog.qml similarity index 97% rename from source-linux/qml/photoqml/ImageUploadDialog.qml rename to src/qml/photoqml/ImageUploadDialog.qml index 0412489..012a646 100644 --- a/source-linux/qml/photoqml/ImageUploadDialog.qml +++ b/src/qml/photoqml/ImageUploadDialog.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.5 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/image.js" as Imagejs import "qrc:/qml/genericqml" @@ -138,7 +138,10 @@ Page{ MButton{ id:closeButton - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" width: 2.5*root.fontFactor*osSettings.bigFontSize font.pointSize: osSettings.bigFontSize onClicked:{photoStack.pop()} @@ -286,7 +289,7 @@ Page{ fontSize: 3*osSettings.bigFontSize onClicked:{ imagePicking=true; - var imagePicker = Qt.createQmlObject('import QtQuick 2.0; import "qrc:/qml/genericqml";'+ + var imagePicker = Qt.createQmlObject('import QtQuick 6.3; import "qrc:/qml/genericqml";'+ osSettings.imagePickQml+'{multiple : false;onReady: {'+ 'attachImage(imageUrl)}}',imageDialog,"imagePicker"); imagePicker.pickImage()} diff --git a/source-linux/qml/photoqml/PhotoComponent.qml b/src/qml/photoqml/PhotoComponent.qml similarity index 97% rename from source-linux/qml/photoqml/PhotoComponent.qml rename to src/qml/photoqml/PhotoComponent.qml index 5e67fe4..1488dd3 100644 --- a/source-linux/qml/photoqml/PhotoComponent.qml +++ b/src/qml/photoqml/PhotoComponent.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.5 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import "qrc:/qml/photoqml" Package { @@ -84,7 +84,7 @@ Package { MouseArea { width: realImage.paintedWidth; height: realImage.paintedHeight; anchors.centerIn: realImage onPressAndHold:{ - var menuString="import QtQuick 2.5;import QtQuick.Controls 2.12; "+ + var menuString="import QtQuick 6.3;import QtQuick.Controls 6.3; "+ "Menu {MenuItem {text:qsTr('Delete on client and server'); onTriggered: {"+ "changeimage('delete','image','"+imageLocation+"');photoModel.remove(index)}}"+ "MenuItem {text:qsTr('Move to album'); onTriggered: {"+ diff --git a/source-linux/qml/photoqml/PhotoTab.qml b/src/qml/photoqml/PhotoTab.qml similarity index 93% rename from source-linux/qml/photoqml/PhotoTab.qml rename to src/qml/photoqml/PhotoTab.qml index 1addf00..6168800 100644 --- a/source-linux/qml/photoqml/PhotoTab.qml +++ b/src/qml/photoqml/PhotoTab.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.5 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import QtQml.Models 2.1 import "qrc:/js/image.js" as Imagejs import "qrc:/js/helper.js" as Helperjs @@ -42,7 +42,7 @@ StackView{ id: photoStack initialItem:Rectangle { id:fotorectangle - anchors.fill:parent + //anchors.fill:parent color: osSettings.backgroundColor property var newimages:[] property int currentimageno: 0 @@ -122,11 +122,11 @@ StackView{ function showFotos(login,friend){ if(friend=="backButton"){ if (photoStack.depth > 1){photoStack.pop()} - else if(albumgridview.currentItem==null){rootstack.currentIndex=0} + else if(albumgridview.currentItem==null){rootstackSignal(0)} else if(albumgridview.currentItem.state=='fullscreen'){ albumgridview.currentItem.state = 'inGrid'} else if (albumgridview.currentItem.state == 'inGrid'){albumgridview.currentItem.state=''} - else{rootstack.currentIndex=0} + else{rootstackSignal(0)} } else{ try {photogroupModel.clear()}catch (e){print(e)} @@ -170,13 +170,16 @@ StackView{ photoStack.push("qrc:/qml/photoqml/ImageUploadDialog.qml",{"attachImageURLs":urls}) } - BlueButton{ + ToolButton{ + id:menuButton z:2 + anchors.right: parent.right + anchors.top: parent.top visible: !wideScreen - fontColor: osSettings.secondaryTextColor//"grey" - border.color: "transparent" - text: "\uf0c9" - font.pointSize: osSettings.bigFontSize + icon.name: "application-menu" + icon.source: "qrc:/assets/icons/bars.svg" + icon.width: root.fontFactor*osSettings.bigFontSize + icon.height: root.fontFactor*osSettings.bigFontSize onClicked:{ leftDrawerAndroid.visible?leftDrawerAndroid.close():leftDrawerAndroid.open()} } @@ -210,7 +213,10 @@ StackView{ anchors.topMargin: 0.5*mm anchors.right:updatePhotolist.left anchors.rightMargin:mm - text:"\uf0ee" + text: qsTr("upload") + display: AbstractButton.IconOnly + icon.name: "cloud-upload" + icon.source: "qrc:/assets/icons/cloud-upload.svg" onClicked: {photoStack.push("qrc:/qml/photoqml/ImageUploadDialog.qml")} } @@ -220,7 +226,10 @@ StackView{ anchors.topMargin: 0.5*mm anchors.right:phototabstatusButton.left anchors.rightMargin:mm - text:"\uf0ed" + text: qsTr("download") + display: AbstractButton.IconOnly + icon.name: "cloud-download" + icon.source: "qrc:/assets/icons/cloud-download.svg" Menu { id:photoupdatemenu @@ -245,7 +254,7 @@ StackView{ id: phototabstatusButton anchors.top: parent.top anchors.topMargin: 0.5*mm - anchors.right: parent.right + anchors.right: menuButton.left anchors.rightMargin:2*mm width: Math.max(8*root.fontFactor*osSettings.bigFontSize,implicitWidth) text: fotostab.phototabstatus=="Images"?qsTr("Own Images"):fotostab.phototabstatus @@ -319,7 +328,10 @@ StackView{ MButton { id: backButton - text: "\uf057" + text: qsTr("Close") + display: AbstractButton.IconOnly + icon.name: "dialog-close" + icon.source: "qrc:/assets/icons/times-circle.svg" x: parent.width - backButton.width - root.fontFactor*osSettings.bigFontSize y: -backButton.height - root.fontFactor*osSettings.bigFontSize z:2 diff --git a/source-linux/qml/photoqml/PhotogroupComponent.qml b/src/qml/photoqml/PhotogroupComponent.qml similarity index 96% rename from source-linux/qml/photoqml/PhotogroupComponent.qml rename to src/qml/photoqml/PhotogroupComponent.qml index f847088..96f6feb 100644 --- a/source-linux/qml/photoqml/PhotogroupComponent.qml +++ b/src/qml/photoqml/PhotogroupComponent.qml @@ -29,8 +29,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -import QtQuick 2.5 -import QtQuick.Controls 2.12 +import QtQuick 6.3 +import QtQuick.Controls 6.3 import QtQml.Models 2.1 //import "qrc:/js/service.js" as Service import "qrc:/js/image.js" as Imagejs @@ -135,7 +135,7 @@ Package { MouseArea { anchors.fill: parent onPressAndHold:{ - var menuString="import QtQuick.Controls 2.12; Menu {MenuItem{text:qsTr('Delete on client and server'); onTriggered: {deletepics('album',albumname);photogroupModel.remove(index)}}}"; + var menuString="import QtQuick.Controls 6.3; Menu {MenuItem{text:qsTr('Delete on client and server'); onTriggered: {deletepics('album',albumname);photogroupModel.remove(index)}}}"; var albummenuObject=Qt.createQmlObject(menuString,albumWrapper,"albummenuOutput") albummenuObject.popup() } diff --git a/source-linux/qtquickcontrols2.conf b/src/qtquickcontrols2.conf similarity index 100% rename from source-linux/qtquickcontrols2.conf rename to src/qtquickcontrols2.conf diff --git a/source-linux/translations/friendiqa-de.qm b/src/translations/friendiqa-de.qm similarity index 100% rename from source-linux/translations/friendiqa-de.qm rename to src/translations/friendiqa-de.qm diff --git a/source-linux/translations/friendiqa-de.ts b/src/translations/friendiqa-de.ts similarity index 100% rename from source-linux/translations/friendiqa-de.ts rename to src/translations/friendiqa-de.ts diff --git a/source-linux/translations/friendiqa-es.qm b/src/translations/friendiqa-es.qm similarity index 100% rename from source-linux/translations/friendiqa-es.qm rename to src/translations/friendiqa-es.qm diff --git a/source-linux/translations/friendiqa-es.ts b/src/translations/friendiqa-es.ts similarity index 100% rename from source-linux/translations/friendiqa-es.ts rename to src/translations/friendiqa-es.ts diff --git a/source-linux/translations/friendiqa-hu.qm b/src/translations/friendiqa-hu.qm similarity index 100% rename from source-linux/translations/friendiqa-hu.qm rename to src/translations/friendiqa-hu.qm diff --git a/source-linux/translations/friendiqa-hu.ts b/src/translations/friendiqa-hu.ts similarity index 100% rename from source-linux/translations/friendiqa-hu.ts rename to src/translations/friendiqa-hu.ts diff --git a/source-linux/translations/friendiqa-it.qm b/src/translations/friendiqa-it.qm similarity index 100% rename from source-linux/translations/friendiqa-it.qm rename to src/translations/friendiqa-it.qm diff --git a/source-linux/translations/friendiqa-it.ts b/src/translations/friendiqa-it.ts similarity index 100% rename from source-linux/translations/friendiqa-it.ts rename to src/translations/friendiqa-it.ts diff --git a/source-linux/translations/friendiqa-nl.qm b/src/translations/friendiqa-nl.qm similarity index 100% rename from source-linux/translations/friendiqa-nl.qm rename to src/translations/friendiqa-nl.qm diff --git a/source-linux/translations/friendiqa-nl.ts b/src/translations/friendiqa-nl.ts similarity index 100% rename from source-linux/translations/friendiqa-nl.ts rename to src/translations/friendiqa-nl.ts