v0.5.3 events and indentation
This commit is contained in:
parent
575c1b0e1e
commit
18c7255b91
|
@ -1,3 +1,11 @@
|
||||||
|
## v0.5.3 ##
|
||||||
|
* Implementation of new events API (incl. sync and notification) for Friendica version >= 20.03
|
||||||
|
* Indentation to see replied to newsitem for conversation view
|
||||||
|
* News view type config moved from account page to config page
|
||||||
|
* Simplification of account page on first start
|
||||||
|
* Bugfixes
|
||||||
|
|
||||||
|
|
||||||
## v0.5.2 ##
|
## v0.5.2 ##
|
||||||
* Redesign of news item
|
* Redesign of news item
|
||||||
* Background sync for Android >8.0
|
* Background sync for Android >8.0
|
||||||
|
|
|
@ -23,7 +23,7 @@ Currently supported:
|
||||||
* Android notifications or Dbus notification (Linux) for new items in friends timeline, replies and DMs
|
* Android notifications or Dbus notification (Linux) for new items in friends timeline, replies and DMs
|
||||||
* Search for news
|
* Search for news
|
||||||
* Click on hashtag in newsitem starts search for news with that word
|
* Click on hashtag in newsitem starts search for news with that word
|
||||||
* Click on image shows image fullscree
|
* Click on image shows image fullscreen
|
||||||
* Click on video or youtube video shows video fullscreen
|
* Click on video or youtube video shows video fullscreen
|
||||||
* For news containing urls ending with mp3, mp4, avi, webm, ogg or to a Peertube instance: media can be played in the app
|
* For news containing urls ending with mp3, mp4, avi, webm, ogg or to a Peertube instance: media can be played in the app
|
||||||
* Open links in external browser
|
* Open links in external browser
|
||||||
|
@ -81,13 +81,12 @@ ToDo:
|
||||||
|
|
||||||
# Events #
|
# Events #
|
||||||
Currently supported:
|
Currently supported:
|
||||||
* Download own public events
|
* Show own events
|
||||||
* Show public of Friendica contacts
|
* Show public events of Friendica contacts
|
||||||
* List view of events of selected date
|
* List view of events of selected date
|
||||||
* Click on event to show details
|
* Click on event to show details
|
||||||
|
|
||||||
ToDo
|
ToDo
|
||||||
* Show own private events (needs API)
|
|
||||||
* Create events (needs API)
|
* Create events (needs API)
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,6 +96,7 @@ Currently supported:
|
||||||
* View mode for news (tree or timeline)
|
* View mode for news (tree or timeline)
|
||||||
* Maximum news (deleted after use of Quit button)
|
* Maximum news (deleted after use of Quit button)
|
||||||
* Sync home timeline, replies, DM, Notify yes/no
|
* Sync home timeline, replies, DM, Notify yes/no
|
||||||
|
* Hide #nsfw
|
||||||
|
|
||||||
ToDo
|
ToDo
|
||||||
* OAuth?
|
* OAuth?
|
||||||
|
|
|
@ -1,7 +1,19 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<manifest package="org.qtproject.friendiqa" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.5.2" android:versionCode="19" android:installLocation="auto">
|
<manifest package="org.qtproject.friendiqa" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.5.3" android:versionCode="21" android:installLocation="auto">
|
||||||
<application android:hardwareAccelerated="true" android:vmSafeMode="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="Friendiqa" android:icon="@drawable/friendiqa" android:logo="@drawable/friendiqa" android:theme="@android:style/Theme.Holo.Light">
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29"/>
|
||||||
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="androidnative.friendiqa.FriendiqaActivity" android:label="Friendiqa" android:screenOrientation="unspecified" android:launchMode="singleTask" android:taskAffinity="">
|
|
||||||
|
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
|
||||||
|
Remove the comment if you do not require these default permissions. -->
|
||||||
|
<!-- %%INSERT_PERMISSIONS -->
|
||||||
|
|
||||||
|
<!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
|
||||||
|
Remove the comment if you do not require these default features. -->
|
||||||
|
<!-- %%INSERT_FEATURES -->
|
||||||
|
|
||||||
|
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
|
||||||
|
|
||||||
|
<application android:hardwareAccelerated="false" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="Friendiqa" android:extractNativeLibs="true" android:icon="@drawable/friendiqa" android:theme="@android:style/Theme.Holo.Light" android:logo="@drawable/friendiqa">
|
||||||
|
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="androidnative.friendiqa.FriendiqaActivity" android:label="Friendiqa" android:screenOrientation="unspecified" android:launchMode="singleTask" android:taskAffinity="">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
@ -17,6 +29,10 @@
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<category android:name="android.intent.category.DEFAULT"/>
|
||||||
<data android:mimeType="text/*"/>
|
<data android:mimeType="text/*"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
<!-- Application arguments -->
|
||||||
|
<!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
|
||||||
|
<!-- Application arguments -->
|
||||||
|
|
||||||
<meta-data android:name="android.app.lib_name" android:value="friendiqa"/>
|
<meta-data android:name="android.app.lib_name" android:value="friendiqa"/>
|
||||||
<meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
|
<meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
|
||||||
<meta-data android:name="android.app.repository" android:value="default"/>
|
<meta-data android:name="android.app.repository" android:value="default"/>
|
||||||
|
@ -24,22 +40,33 @@
|
||||||
<meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
|
<meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
|
||||||
<!-- Deploy Qt libs as part of package -->
|
<!-- Deploy Qt libs as part of package -->
|
||||||
<meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
|
<meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
|
||||||
<meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
|
|
||||||
<meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
|
|
||||||
<!-- Run with local libs -->
|
<!-- Run with local libs -->
|
||||||
<meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
|
<meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
|
||||||
<meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
|
<meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
|
||||||
<meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
|
<meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/>
|
||||||
<meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
|
<meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
|
||||||
<meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
|
<meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
|
||||||
|
<!-- Used to specify custom system library path to run with local system libs -->
|
||||||
|
<!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> -->
|
||||||
<!-- Messages maps -->
|
<!-- Messages maps -->
|
||||||
<meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
|
<meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
|
||||||
<meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
|
<meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
|
||||||
<meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
|
<meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
|
||||||
|
<meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/>
|
||||||
<!-- Messages maps -->
|
<!-- Messages maps -->
|
||||||
|
|
||||||
|
<!-- Splash screen -->
|
||||||
|
<!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation,
|
||||||
|
then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and
|
||||||
|
use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you
|
||||||
|
are done populating your window with content. -->
|
||||||
|
<!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / -->
|
||||||
|
<!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / -->
|
||||||
|
<!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ -->
|
||||||
|
<!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ -->
|
||||||
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash"/>
|
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash"/>
|
||||||
|
<!-- Splash screen -->
|
||||||
|
|
||||||
<!-- Background running -->
|
<!-- Background running -->
|
||||||
<!-- Warning: changing this value to true may cause unexpected crashes if the
|
<!-- Warning: changing this value to true may cause unexpected crashes if the
|
||||||
|
@ -48,9 +75,23 @@
|
||||||
signal is sent! -->
|
signal is sent! -->
|
||||||
<meta-data android:name="android.app.background_running" android:value="false"/>
|
<meta-data android:name="android.app.background_running" android:value="false"/>
|
||||||
<!-- Background running -->
|
<!-- Background running -->
|
||||||
</activity>
|
|
||||||
|
|
||||||
|
<!-- auto screen scale factor -->
|
||||||
|
<meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/>
|
||||||
|
<!-- auto screen scale factor -->
|
||||||
|
|
||||||
|
<!-- extract android style -->
|
||||||
|
<!-- available android:values :
|
||||||
|
* default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons
|
||||||
|
* full - useful QWidget & Quick Controls 1 apps
|
||||||
|
* minimal - useful for Quick Controls 2 apps, it is much faster than "full"
|
||||||
|
* none - useful for apps that don't use any of the above Qt modules
|
||||||
|
-->
|
||||||
|
<meta-data android:name="android.app.extract_android_style" android:value="default"/>
|
||||||
|
<!-- extract android style -->
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
<!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
|
||||||
<service android:name="androidnative.friendiqa.FriendiqaService" android:permission="android.permission.BIND_JOB_SERVICE">
|
<service android:name="androidnative.friendiqa.FriendiqaService" android:permission="android.permission.BIND_JOB_SERVICE">
|
||||||
<meta-data android:name="android.app.background_running" android:value="true"/>
|
<meta-data android:name="android.app.background_running" android:value="true"/>
|
||||||
</service>
|
</service>
|
||||||
|
@ -64,12 +105,14 @@
|
||||||
<meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
|
<meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
|
||||||
|
|
||||||
<meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
|
<meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
|
||||||
|
<!--
|
||||||
<meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
|
<meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
|
||||||
<meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
|
<meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
|
||||||
|
-->
|
||||||
<meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
|
<meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
|
||||||
<meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
|
<meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
|
||||||
<meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
|
<meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
|
||||||
|
<meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/>
|
||||||
<meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
|
<meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
|
||||||
<meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
|
<meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
|
||||||
|
|
||||||
|
@ -83,20 +126,7 @@
|
||||||
<service android:process=":qt" android:name="androidnative.friendiqa.FriendiqaStopService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="true">
|
<service android:process=":qt" android:name="androidnative.friendiqa.FriendiqaStopService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="true">
|
||||||
<meta-data android:name="android.app.background_running" android:value="true"/>
|
<meta-data android:name="android.app.background_running" android:value="true"/>
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/>
|
|
||||||
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
|
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
|
|
||||||
Remove the comment if you do not require these default permissions. -->
|
|
||||||
<!-- %%INSERT_PERMISSIONS -->
|
|
||||||
|
|
||||||
<!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
|
|
||||||
Remove the comment if you do not require these default features. -->
|
|
||||||
<!-- %%INSERT_FEATURES -->
|
|
||||||
|
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -4,37 +4,26 @@ buildscript {
|
||||||
jcenter()
|
jcenter()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.5.2'
|
classpath 'com.android.tools.build:gradle:3.5.2'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
repositories {
|
||||||
repositories {
|
google()
|
||||||
google()
|
jcenter()
|
||||||
jcenter()
|
|
||||||
maven {
|
maven {
|
||||||
url "https://maven.google.com"
|
url "https://maven.google.com"
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
|
||||||
}
|
}
|
||||||
|
|
||||||
//apply plugin: 'android-library'
|
|
||||||
|
|
||||||
//dependencies {
|
|
||||||
// compile 'com.android.support:support-v4:25.4.0'
|
|
||||||
//}
|
|
||||||
|
|
||||||
//dependencies {
|
|
||||||
// compile 'com.android.support:support-compat:25.4.0'
|
|
||||||
//}
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile 'androidx.appcompat:appcompat:1.1.0'
|
compile 'androidx.appcompat:appcompat:1.1.0'
|
||||||
}
|
}
|
||||||
|
@ -55,7 +44,7 @@ android {
|
||||||
|
|
||||||
compileSdkVersion androidCompileSdkVersion.toInteger()
|
compileSdkVersion androidCompileSdkVersion.toInteger()
|
||||||
|
|
||||||
buildToolsVersion androidBuildToolsVersion
|
buildToolsVersion '28.0.3'
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
|
@ -63,7 +52,7 @@ android {
|
||||||
java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
|
java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
|
||||||
aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
|
aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
|
||||||
res.srcDirs = [qt5AndroidDir + '/res', 'res']
|
res.srcDirs = [qt5AndroidDir + '/res', 'res']
|
||||||
resources.srcDirs = ['src']
|
resources.srcDirs = ['resources']
|
||||||
renderscript.srcDirs = ['src']
|
renderscript.srcDirs = ['src']
|
||||||
assets.srcDirs = ['assets']
|
assets.srcDirs = ['assets']
|
||||||
jniLibs.srcDirs = ['libs']
|
jniLibs.srcDirs = ['libs']
|
||||||
|
@ -73,6 +62,15 @@ android {
|
||||||
lintOptions {
|
lintOptions {
|
||||||
abortOnError false
|
abortOnError false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not compress Qt binary resources file
|
||||||
|
aaptOptions {
|
||||||
|
noCompress 'rcc'
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
resConfigs "en"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
apply from: "androidnative.gradle"
|
apply from: "androidnative.gradle"
|
||||||
setAndroidNativePath("/../androidnative.pri");
|
setAndroidNativePath("/../androidnative.pri");
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
classpath 'com.android.tools.build:gradle:1.1.0'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
|
||||||
repositories {
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
apply plugin: 'com.android.application'
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
|
||||||
}
|
|
||||||
|
|
||||||
//apply plugin: 'android-library'
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile 'com.android.support:support-v4:25.3.1'
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile 'com.android.support:support-compat:25.3.1'
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
|
||||||
/*******************************************************
|
|
||||||
* The following variables:
|
|
||||||
* - androidBuildToolsVersion,
|
|
||||||
* - androidCompileSdkVersion
|
|
||||||
* - qt5AndroidDir - holds the path to qt android files
|
|
||||||
* needed to build any Qt application
|
|
||||||
* on Android.
|
|
||||||
*
|
|
||||||
* are defined in gradle.properties file. This file is
|
|
||||||
* updated by QtCreator and androiddeployqt tools.
|
|
||||||
* Changing them manually might break the compilation!
|
|
||||||
*******************************************************/
|
|
||||||
|
|
||||||
compileSdkVersion androidCompileSdkVersion.toInteger()
|
|
||||||
|
|
||||||
buildToolsVersion androidBuildToolsVersion
|
|
||||||
|
|
||||||
sourceSets {
|
|
||||||
main {
|
|
||||||
manifest.srcFile 'AndroidManifest.xml'
|
|
||||||
java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
|
|
||||||
aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
|
|
||||||
res.srcDirs = [qt5AndroidDir + '/res', 'res']
|
|
||||||
resources.srcDirs = ['src']
|
|
||||||
renderscript.srcDirs = ['src']
|
|
||||||
assets.srcDirs = ['assets']
|
|
||||||
jniLibs.srcDirs = ['libs']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
lintOptions {
|
|
||||||
abortOnError false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
apply from: "androidnative.gradle"
|
|
||||||
setAndroidNativePath("/../androidnative.pri");
|
|
Binary file not shown.
|
@ -1,6 +1,5 @@
|
||||||
#Wed Apr 10 15:27:10 PDT 2013
|
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
##
|
##
|
||||||
|
@ -6,47 +6,6 @@
|
||||||
##
|
##
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS=""
|
|
||||||
|
|
||||||
APP_NAME="Gradle"
|
|
||||||
APP_BASE_NAME=`basename "$0"`
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD="maximum"
|
|
||||||
|
|
||||||
warn ( ) {
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
die ( ) {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN* )
|
|
||||||
cygwin=true
|
|
||||||
;;
|
|
||||||
Darwin* )
|
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# For Cygwin, ensure paths are in UNIX format before anything is touched.
|
|
||||||
if $cygwin ; then
|
|
||||||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
# Attempt to set APP_HOME
|
||||||
# Resolve links: $0 may be a link
|
# Resolve links: $0 may be a link
|
||||||
PRG="$0"
|
PRG="$0"
|
||||||
|
@ -61,9 +20,49 @@ while [ -h "$PRG" ] ; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
SAVED="`pwd`"
|
SAVED="`pwd`"
|
||||||
cd "`dirname \"$PRG\"`/" >&-
|
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||||
APP_HOME="`pwd -P`"
|
APP_HOME="`pwd -P`"
|
||||||
cd "$SAVED" >&-
|
cd "$SAVED" >/dev/null
|
||||||
|
|
||||||
|
APP_NAME="Gradle"
|
||||||
|
APP_BASE_NAME=`basename "$0"`
|
||||||
|
|
||||||
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
DEFAULT_JVM_OPTS=""
|
||||||
|
|
||||||
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
|
MAX_FD="maximum"
|
||||||
|
|
||||||
|
warn () {
|
||||||
|
echo "$*"
|
||||||
|
}
|
||||||
|
|
||||||
|
die () {
|
||||||
|
echo
|
||||||
|
echo "$*"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# OS specific support (must be 'true' or 'false').
|
||||||
|
cygwin=false
|
||||||
|
msys=false
|
||||||
|
darwin=false
|
||||||
|
nonstop=false
|
||||||
|
case "`uname`" in
|
||||||
|
CYGWIN* )
|
||||||
|
cygwin=true
|
||||||
|
;;
|
||||||
|
Darwin* )
|
||||||
|
darwin=true
|
||||||
|
;;
|
||||||
|
MINGW* )
|
||||||
|
msys=true
|
||||||
|
;;
|
||||||
|
NONSTOP* )
|
||||||
|
nonstop=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
@ -90,7 +89,7 @@ location of your Java installation."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
# Increase the maximum file descriptors if we can.
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
MAX_FD_LIMIT=`ulimit -H -n`
|
||||||
if [ $? -eq 0 ] ; then
|
if [ $? -eq 0 ] ; then
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||||
|
@ -114,6 +113,7 @@ fi
|
||||||
if $cygwin ; then
|
if $cygwin ; then
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||||
|
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
# We build the pattern for arguments to be converted via cygpath
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||||
|
@ -154,11 +154,19 @@ if $cygwin ; then
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
# Escape application args
|
||||||
function splitJvmOpts() {
|
save () {
|
||||||
JVM_OPTS=("$@")
|
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||||
|
echo " "
|
||||||
}
|
}
|
||||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
APP_ARGS=$(save "$@")
|
||||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
|
||||||
|
|
||||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||||
|
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||||
|
|
||||||
|
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||||
|
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec "$JAVACMD" "$@"
|
||||||
|
|
|
@ -1,90 +1,84 @@
|
||||||
@if "%DEBUG%" == "" @echo off
|
@if "%DEBUG%" == "" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@rem
|
@rem
|
||||||
@rem Gradle startup script for Windows
|
@rem Gradle startup script for Windows
|
||||||
@rem
|
@rem
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
@rem Set local scope for the variables with windows NT shell
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
set DIRNAME=%~dp0
|
||||||
set DEFAULT_JVM_OPTS=
|
if "%DIRNAME%" == "" set DIRNAME=.
|
||||||
|
set APP_BASE_NAME=%~n0
|
||||||
set DIRNAME=%~dp0
|
set APP_HOME=%DIRNAME%
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
|
||||||
set APP_BASE_NAME=%~n0
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
set APP_HOME=%DIRNAME%
|
set DEFAULT_JVM_OPTS=
|
||||||
|
|
||||||
@rem Find java.exe
|
@rem Find java.exe
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
set JAVA_EXE=java.exe
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if "%ERRORLEVEL%" == "0" goto init
|
if "%ERRORLEVEL%" == "0" goto init
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
echo.
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation.
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
:findJavaFromJavaHome
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto init
|
if exist "%JAVA_EXE%" goto init
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
echo.
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation.
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
:init
|
:init
|
||||||
@rem Get command-line arguments, handling Windowz variants
|
@rem Get command-line arguments, handling Windows variants
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
|
||||||
|
:win9xME_args
|
||||||
:win9xME_args
|
@rem Slurp the command line arguments.
|
||||||
@rem Slurp the command line arguments.
|
set CMD_LINE_ARGS=
|
||||||
set CMD_LINE_ARGS=
|
set _SKIP=2
|
||||||
set _SKIP=2
|
|
||||||
|
:win9xME_args_slurp
|
||||||
:win9xME_args_slurp
|
if "x%~1" == "x" goto execute
|
||||||
if "x%~1" == "x" goto execute
|
|
||||||
|
set CMD_LINE_ARGS=%*
|
||||||
set CMD_LINE_ARGS=%*
|
|
||||||
goto execute
|
:execute
|
||||||
|
@rem Setup the command line
|
||||||
:4NT_args
|
|
||||||
@rem Get arguments from the 4NT Shell from JP Software
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||||
set CMD_LINE_ARGS=%$
|
|
||||||
|
@rem Execute Gradle
|
||||||
:execute
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||||
@rem Setup the command line
|
|
||||||
|
:end
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
:fail
|
||||||
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||||
:end
|
rem the _cmd.exe /c_ return code!
|
||||||
@rem End local scope for the variables with windows NT shell
|
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
exit /b 1
|
||||||
|
|
||||||
:fail
|
:mainEnd
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
:omega
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
||||||
sdk.dir=/home/pankraz/android-sdk_alt
|
|
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -1,7 +1,7 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<resources>
|
<resources>
|
||||||
<array name="qt_sources">
|
<array name="qt_sources">
|
||||||
<item>https://download.qt.io/ministro/android/qt5/qt-5.8</item>
|
<item>https://download.qt.io/ministro/android/qt5/qt-5.14</item>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<!-- The following is handled automatically by the deployment tool. It should
|
<!-- The following is handled automatically by the deployment tool. It should
|
||||||
|
@ -11,15 +11,12 @@
|
||||||
<!-- %%INSERT_EXTRA_LIBS%% -->
|
<!-- %%INSERT_EXTRA_LIBS%% -->
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<array name="qt_libs">
|
<array name="qt_libs">
|
||||||
<!-- %%INSERT_QT_LIBS%% -->
|
<!-- %%INSERT_QT_LIBS%% -->
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="bundled_in_lib">
|
|
||||||
<!-- %%INSERT_BUNDLED_IN_LIB%% -->
|
|
||||||
</array>
|
</array>
|
||||||
<array name="bundled_in_assets">
|
|
||||||
<!-- %%INSERT_BUNDLED_IN_ASSETS%% -->
|
<array name="load_local_libs">
|
||||||
|
<!-- %%INSERT_LOCAL_LIBS%% -->
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
package androidnative.example;
|
|
||||||
import androidnative.SystemDispatcher;
|
|
||||||
import android.app.Notification;
|
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.os.Handler;
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.view.View;
|
|
||||||
import android.content.Context;
|
|
||||||
import java.util.Map;
|
|
||||||
import org.qtproject.qt5.android.QtNative;
|
|
||||||
|
|
||||||
public class ExampleService {
|
|
||||||
|
|
||||||
static {
|
|
||||||
|
|
||||||
SystemDispatcher.addListener(new SystemDispatcher.Listener() {
|
|
||||||
|
|
||||||
NotificationManager m_notificationManager;
|
|
||||||
Notification.Builder m_builder;
|
|
||||||
|
|
||||||
private void notificationManagerNotify(Map data) {
|
|
||||||
|
|
||||||
final Activity activity = QtNative.activity();
|
|
||||||
final Map messageData = data;
|
|
||||||
|
|
||||||
Runnable runnable = new Runnable () {
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
String title = (String) messageData.get("title");
|
|
||||||
|
|
||||||
String message = (String) messageData.get("message");
|
|
||||||
|
|
||||||
if (m_notificationManager == null) {
|
|
||||||
m_notificationManager = (NotificationManager) activity.getSystemService(Context.NOTIFICATION_SERVICE);
|
|
||||||
m_builder = new Notification.Builder(activity);
|
|
||||||
|
|
||||||
// Small Icon is a must to make notification works.
|
|
||||||
// And that is why you need to inherit QtActivity
|
|
||||||
//m_builder.setSmallIcon(drawable.icon);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_builder.setContentTitle(title);
|
|
||||||
m_builder.setContentText(message);
|
|
||||||
m_notificationManager.notify(1, m_builder.build());
|
|
||||||
|
|
||||||
// Test function. Remove it later.
|
|
||||||
SystemDispatcher.dispatch("Notifier.notifyFinished");
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.d("",e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
activity.runOnUiThread(runnable);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void hapticFeedbackPerform(Map data) {
|
|
||||||
|
|
||||||
final Activity activity = QtNative.activity();
|
|
||||||
final Map messageData = data;
|
|
||||||
Runnable runnable = new Runnable () {
|
|
||||||
public void run() {
|
|
||||||
int feedbackConstant = (Integer) messageData.get("feedbackConstant");
|
|
||||||
int flags = (Integer) messageData.get("flags");
|
|
||||||
|
|
||||||
Log.d("",String.format("hapticFeedbackPerform(%d,%d)",feedbackConstant,flags));
|
|
||||||
|
|
||||||
View rootView = activity.getWindow().getDecorView().getRootView();
|
|
||||||
rootView.performHapticFeedback(feedbackConstant, flags);
|
|
||||||
|
|
||||||
// Test function. Remove it later.
|
|
||||||
SystemDispatcher.dispatch("hapticFeedbackPerformFinished");
|
|
||||||
};
|
|
||||||
};
|
|
||||||
activity.runOnUiThread(runnable);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onDispatched(String name , Map data) {
|
|
||||||
|
|
||||||
if (name.equals("Notifier.notify")) {
|
|
||||||
notificationManagerNotify(data);
|
|
||||||
return;
|
|
||||||
} else if (name.equals("hapticFeedbackPerform")) {
|
|
||||||
hapticFeedbackPerform(data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class AndroidNativeActivity extends org.qtproject.qt5.android.bindings.Qt
|
||||||
// result of the request.
|
// result of the request.
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
System.loadLibrary("friendiqa");
|
System.loadLibrary("friendiqa_arm64-v8a");
|
||||||
if((getIntent().getFlags() == (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY)) || (getIntent().getFlags() == Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) || (getIntent().getFlags() == Intent.FLAG_ACTIVITY_NEW_TASK) || (getIntent().getFlags() == Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) || (getIntent().getFlags() == (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED))) {
|
if((getIntent().getFlags() == (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY)) || (getIntent().getFlags() == Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) || (getIntent().getFlags() == Intent.FLAG_ACTIVITY_NEW_TASK) || (getIntent().getFlags() == Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) || (getIntent().getFlags() == (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED))) {
|
||||||
SystemDispatcher.onActivityResume();
|
SystemDispatcher.onActivityResume();
|
||||||
} else {
|
} else {
|
||||||
|
@ -90,7 +90,7 @@ public class AndroidNativeActivity extends org.qtproject.qt5.android.bindings.Qt
|
||||||
|
|
||||||
|
|
||||||
protected void onNewIntent(Intent data) {
|
protected void onNewIntent(Intent data) {
|
||||||
System.loadLibrary("friendiqa");
|
System.loadLibrary("friendiqa_arm64-v8a");
|
||||||
super.onNewIntent(data);
|
super.onNewIntent(data);
|
||||||
if ((data!=null) && (data.getType() != null) && !(data.getBooleanExtra("used",false))){
|
if ((data!=null) && (data.getType() != null) && !(data.getBooleanExtra("used",false))){
|
||||||
String type = data.getType();
|
String type = data.getType();
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class AndroidNativeService extends QtService
|
||||||
private static String TAG = "AndroidNative";
|
private static String TAG = "AndroidNative";
|
||||||
|
|
||||||
public void startQtService(Context ctx) {
|
public void startQtService(Context ctx) {
|
||||||
Log.d(TAG, "QtActivity active "+String.valueOf(QtNative.activity()!=null));
|
//Log.d(TAG, "QtActivity active "+String.valueOf(QtNative.activity()!=null));
|
||||||
if (QtNative.activity()==null){
|
if (QtNative.activity()==null){
|
||||||
//Log.d(TAG,"Friendiqasync Stop existing QtService");
|
//Log.d(TAG,"Friendiqasync Stop existing QtService");
|
||||||
ctx.stopService(new Intent(ctx, AndroidNativeService.class));
|
ctx.stopService(new Intent(ctx, AndroidNativeService.class));
|
||||||
|
@ -55,7 +55,7 @@ public class AndroidNativeService extends QtService
|
||||||
NotificationManager.IMPORTANCE_DEFAULT);
|
NotificationManager.IMPORTANCE_DEFAULT);
|
||||||
channel.setSound(null,null);
|
channel.setSound(null,null);
|
||||||
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);
|
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);
|
||||||
//Log.d(TAG,"Friendiqa onCreate Notification");
|
Log.d(TAG,"Friendiqa onCreate Notification");
|
||||||
Notification notification = new Notification.Builder(context,CHANNEL_ID)
|
Notification notification = new Notification.Builder(context,CHANNEL_ID)
|
||||||
.setSmallIcon(R.drawable.friendiqanotification)
|
.setSmallIcon(R.drawable.friendiqanotification)
|
||||||
.setContentTitle("Friendiqa")
|
.setContentTitle("Friendiqa")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -56,8 +56,8 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void*) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
Q_DECL_EXPORT int main(int argc, char *argv[]) {
|
||||||
//qDebug()<< "argv Friendiqa"<< argv[0]; //<<" argv2" <<argv[1];
|
//if (argc>1){qDebug()<< "argc Friendiqa"<< argc <<" argv1" <<argv[1];}
|
||||||
if ((argc>1) && (qstrcmp(argv[1],"-service")==0)){
|
if ((argc>1) && (qstrcmp(argv[1],"-service")==0)){
|
||||||
//qDebug()<<"FriendiqaMain Service";
|
//qDebug()<<"FriendiqaMain Service";
|
||||||
QAndroidService app(argc, argv);
|
QAndroidService app(argc, argv);
|
||||||
|
@ -71,7 +71,7 @@ int main(int argc, char *argv[]) {
|
||||||
else{
|
else{
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
QQuickView view;
|
QQuickView view;
|
||||||
qDebug()<<"FriendiqaMain started";
|
//qDebug()<<"FriendiqaMain started";
|
||||||
QTranslator qtTranslator;
|
QTranslator qtTranslator;
|
||||||
qtTranslator.load("friendiqa-" + QLocale::system().name(),":/translations");
|
qtTranslator.load("friendiqa-" + QLocale::system().name(),":/translations");
|
||||||
app.installTranslator(&qtTranslator);
|
app.installTranslator(&qtTranslator);
|
||||||
|
|
|
@ -24,6 +24,17 @@ SOURCES += common/friendiqa.cpp \
|
||||||
common/remoteauthasyncimageprovider.cpp \
|
common/remoteauthasyncimageprovider.cpp \
|
||||||
common/updatenews.cpp \
|
common/updatenews.cpp \
|
||||||
common/alarmandroid.cpp
|
common/alarmandroid.cpp
|
||||||
|
lupdate_only{
|
||||||
|
SOURCES = qml/friendiqa.qml \
|
||||||
|
qml/*.qml
|
||||||
|
qml/calendarqml/*.qml
|
||||||
|
qml/configqml/*.qml
|
||||||
|
qml/genericqml/*.qml
|
||||||
|
qml/contactqml/*.qml
|
||||||
|
qml/newsqml/*.qml
|
||||||
|
qml/photoqml/*.qml
|
||||||
|
js/*.js
|
||||||
|
}
|
||||||
|
|
||||||
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
|
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
|
||||||
|
|
||||||
|
@ -70,16 +81,6 @@ DISTFILES += \
|
||||||
js/*.js \
|
js/*.js \
|
||||||
android/androidnative.gradle \
|
android/androidnative.gradle \
|
||||||
android/src/FriendiqaActivity.java \
|
android/src/FriendiqaActivity.java \
|
||||||
android/src/ExampleService.java
|
android/src/FriendiqaService.java
|
||||||
|
|
||||||
contains(ANDROID_TARGET_ARCH,armeabi-v7a) {
|
ANDROID_EXTRA_LIBS = $$PWD/android/arm/libcrypto_1_1.so $$PWD/android/arm/libssl_1_1.so $$PWD/android/arm64/libcrypto_1_1.so $$PWD/android/arm64/libssl_1_1.so
|
||||||
ANDROID_EXTRA_LIBS = \
|
|
||||||
$$PWD/android/libcrypto_1_1.so \
|
|
||||||
$$PWD/android/libssl_1_1.so
|
|
||||||
}
|
|
||||||
|
|
||||||
contains(ANDROID_TARGET_ARCH,arm64-v8a) {
|
|
||||||
ANDROID_EXTRA_LIBS = \
|
|
||||||
/home/pankraz/ownCloud/clientsync/Friendiqa/v0.5.2/source-android/../../../../../git/android_openssl/arm64/libcrypto_1_1.so \
|
|
||||||
$$PWD/../../../../../git/android_openssl/arm64/libssl_1_1.so
|
|
||||||
}
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ StackView{
|
||||||
height:osSettings.appHeight
|
height:osSettings.appHeight
|
||||||
property var db: ["Friendiqa", "1.0", "Stores Friendica data", 100000000]
|
property var db: ["Friendiqa", "1.0", "Stores Friendica data", 100000000]
|
||||||
property var login: Service.readActiveConfig(db)
|
property var login: Service.readActiveConfig(db)
|
||||||
property var globaloptions: ({}) //Service.readGlobaloptions(db)
|
property var globaloptions: Service.readGO(db)
|
||||||
property var contactlist: []
|
property var contactlist: []
|
||||||
property real mm: osSettings.osType=="Android"?Screen.pixelDensity:Screen.pixelDensity*1.5
|
property real mm: osSettings.osType=="Android"?Screen.pixelDensity:Screen.pixelDensity*1.5
|
||||||
signal messageSignal(var friend)
|
signal messageSignal(var friend)
|
||||||
|
@ -59,6 +59,7 @@ StackView{
|
||||||
signal uploadSignal(var urls)
|
signal uploadSignal(var urls)
|
||||||
signal sendtextSignal(var intenttext)
|
signal sendtextSignal(var intenttext)
|
||||||
signal changeimage(var method, var type, var id)
|
signal changeimage(var method, var type, var id)
|
||||||
|
signal updateSyncinterval(int interval)
|
||||||
property var news:[]
|
property var news:[]
|
||||||
property var newContacts:[]
|
property var newContacts:[]
|
||||||
//property string contactLoadType: ""
|
//property string contactLoadType: ""
|
||||||
|
@ -67,7 +68,7 @@ StackView{
|
||||||
onLoginChanged:{
|
onLoginChanged:{
|
||||||
if(login==""){root.push("qrc:/qml/configqml/AccountPage.qml")}
|
if(login==""){root.push("qrc:/qml/configqml/AccountPage.qml")}
|
||||||
else{root.push(rootStackItem)
|
else{root.push(rootStackItem)
|
||||||
newstab.newstabstatus=login.newsViewType;
|
if (login.newsViewType!="" || login.newsViewType!=null){newstab.newstabstatus=login.newsViewType;}
|
||||||
Newsjs.getCurrentContacts(login,db,function(contacts){
|
Newsjs.getCurrentContacts(login,db,function(contacts){
|
||||||
contactlist=contacts})}
|
contactlist=contacts})}
|
||||||
}
|
}
|
||||||
|
@ -105,20 +106,20 @@ StackView{
|
||||||
|
|
||||||
FontLoader{id: fontAwesome; source: "qrc:/images/fontawesome-webfont.ttf"}
|
FontLoader{id: fontAwesome; source: "qrc:/images/fontawesome-webfont.ttf"}
|
||||||
|
|
||||||
Keys.onReleased: {
|
Keys.onReleased: {//print(event.key + "Backkey"+newstab.conversation.length+" "+root.depth)
|
||||||
if (event.key === osSettings.backKey) {
|
if (event.key === osSettings.backKey) {
|
||||||
if (rootstack.currentIndex==0){
|
if (rootstack.currentIndex==0){
|
||||||
newstab.active=true;
|
newstab.active=true;
|
||||||
if (newstab.newstabstatus!=login.newsViewType){
|
if (newstab.newstabstatus!=globaloptions.newsViewType){
|
||||||
newstab.newstabstatus=login.newsViewType;
|
newstab.newstabstatus=globaloptions.newsViewType;
|
||||||
if(login.newsViewType=="Timeline"){Newsjs.newsfromdb(db,login.username,0,function(dbnews){
|
if(globaloptions.newsViewType=="Timeline"){Newsjs.newsfromdb(db,login.username,0,function(dbnews){
|
||||||
newsSignal(dbnews)
|
newsSignal(dbnews)
|
||||||
})}
|
})}
|
||||||
else{
|
else{
|
||||||
Newsjs.chatsfromdb(db,login.username,function(dbnews){
|
Newsjs.chatsfromdb(db,login.username,function(dbnews){
|
||||||
newsSignal(dbnews)
|
newsSignal(dbnews)
|
||||||
})}
|
})}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (newstab.conversation.length>0){newstab.conversation=[]}
|
else if (newstab.conversation.length>0){newstab.conversation=[]}
|
||||||
else if (root.depth>1){root.pop()}
|
else if (root.depth>1){root.pop()}
|
||||||
|
@ -285,7 +286,6 @@ StackView{
|
||||||
}
|
}
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
|
|
||||||
text: "\uf08b " +qsTr("Quit")
|
text: "\uf08b " +qsTr("Quit")
|
||||||
font.pixelSize: 4*mm
|
font.pixelSize: 4*mm
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -303,9 +303,6 @@ StackView{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Item{
|
Item{
|
||||||
id:rootStackItem
|
id:rootStackItem
|
||||||
width:parent.width
|
width:parent.width
|
||||||
|
@ -392,13 +389,13 @@ StackView{
|
||||||
|
|
||||||
}
|
}
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
forceActiveFocus();
|
forceActiveFocus();
|
||||||
Service.readGlobaloptions(db,function(go){globaloptions=go})
|
|
||||||
//print(xhr.networktype());
|
//print(xhr.networktype());
|
||||||
if(osSettings.osType=="Android"){
|
if(osSettings.osType=="Android"){
|
||||||
var component = Qt.createComponent("qrc:/qml/genericqml/IntentReceiver.qml");
|
var component = Qt.createComponent("qrc:/qml/genericqml/IntentReceiver.qml");
|
||||||
var IntentReceiverQml = component.createObject(root);
|
var IntentReceiverQml = component.createObject(root);
|
||||||
} else if (osSettings.osType=="Linux"){
|
}
|
||||||
|
else if (osSettings.osType=="Linux"){
|
||||||
var component = Qt.createComponent("qrc:/qml/genericqml/LinuxSync.qml");
|
var component = Qt.createComponent("qrc:/qml/genericqml/LinuxSync.qml");
|
||||||
var LinuxSyncQml = component.createObject(root);
|
var LinuxSyncQml = component.createObject(root);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -73,8 +73,10 @@ int main(int argc, char *argv[]) {
|
||||||
//return app.exec();
|
//return app.exec();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
QtWebEngine::initialize();
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
QQuickView view;
|
QQuickView view;
|
||||||
|
view.setResizeMode(QQuickView::SizeRootObjectToView);
|
||||||
QTranslator qtTranslator;
|
QTranslator qtTranslator;
|
||||||
qtTranslator.load("friendiqa-" + QLocale::system().name(),":/translations");
|
qtTranslator.load("friendiqa-" + QLocale::system().name(),":/translations");
|
||||||
app.installTranslator(&qtTranslator);
|
app.installTranslator(&qtTranslator);
|
||||||
|
@ -89,7 +91,7 @@ int main(int argc, char *argv[]) {
|
||||||
view.rootContext()->setContextProperty("alarm", alarm);
|
view.rootContext()->setContextProperty("alarm", alarm);
|
||||||
UPDATENEWS* updatenews = UPDATENEWS::instance();
|
UPDATENEWS* updatenews = UPDATENEWS::instance();
|
||||||
view.rootContext()->setContextProperty("updatenews", updatenews);
|
view.rootContext()->setContextProperty("updatenews", updatenews);
|
||||||
QtWebEngine::initialize();
|
|
||||||
view.setSource(QUrl("qrc:/qml/friendiqa.qml"));
|
view.setSource(QUrl("qrc:/qml/friendiqa.qml"));
|
||||||
view.show();
|
view.show();
|
||||||
view.connect(view.rootContext()->engine(), SIGNAL(quit()), &app, SLOT(quit()));
|
view.connect(view.rootContext()->engine(), SIGNAL(quit()), &app, SLOT(quit()));
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -128,18 +128,18 @@ void UPDATENEWS::login()
|
||||||
QSqlQuery synctimequery("SELECT * FROM globaloptions WHERE k='lastsync'",m_db);
|
QSqlQuery synctimequery("SELECT * FROM globaloptions WHERE k='lastsync'",m_db);
|
||||||
if (synctimequery.next()){
|
if (synctimequery.next()){
|
||||||
QSqlQuery synctimequery2("UPDATE globaloptions SET v='"+QString::number(QDateTime::currentSecsSinceEpoch()) + "' WHERE k = 'lastsync'",m_db);
|
QSqlQuery synctimequery2("UPDATE globaloptions SET v='"+QString::number(QDateTime::currentSecsSinceEpoch()) + "' WHERE k = 'lastsync'",m_db);
|
||||||
if(!(synctimequery2.exec())) {qDebug()<<synctimequery2.lastError();}
|
if(!(synctimequery2.exec())) {qDebug()<<" synctimequery2 " << synctimequery2.lastError();}
|
||||||
qDebug() << " synctimequery ";
|
//qDebug() << " synctimequery ";
|
||||||
} else {
|
} else {
|
||||||
qDebug() << "INSERT INTO globaloptions(k,v) VALUES('lastsync','"+QString::number(QDateTime::currentSecsSinceEpoch()) + "'";
|
//qDebug() << "INSERT INTO globaloptions(k,v) VALUES('lastsync','"+QString::number(QDateTime::currentSecsSinceEpoch()) + "'";
|
||||||
QSqlQuery synctimequery3("INSERT INTO globaloptions(k,v) VALUES('lastsync','"+QString::number(QDateTime::currentSecsSinceEpoch()) + "')",m_db);
|
QSqlQuery synctimequery3("INSERT INTO globaloptions(k,v) VALUES('lastsync','"+QString::number(QDateTime::currentSecsSinceEpoch()) + "')",m_db);
|
||||||
if(!(synctimequery3.exec())) {qDebug()<<synctimequery3.lastError();}
|
if(!(synctimequery3.exec())) {qDebug() << " synctimequery3 " << synctimequery3.lastError();}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UPDATENEWS::startsync()
|
void UPDATENEWS::startsync()
|
||||||
{ //qDebug()<<"Friendiqa start syncing " <<synclist.length()<<" index "<<syncindex;
|
{ qDebug()<<"Friendiqa start syncing "<<syncindex <<" of "<<synclist.length();
|
||||||
QObject::connect(&xhr,SIGNAL(success(QByteArray,QString)),this,SLOT(store(QByteArray,QString)));
|
QObject::connect(&xhr,SIGNAL(success(QByteArray,QString)),this,SLOT(store(QByteArray,QString)));
|
||||||
QObject::connect(&xhr,SIGNAL(error(QString,QString,QString,int)),this,SLOT(showError(QString,QString,QString,int)));
|
QObject::connect(&xhr,SIGNAL(error(QString,QString,QString,int)),this,SLOT(showError(QString,QString,QString,int)));
|
||||||
if (syncindex<synclist.length()){
|
if (syncindex<synclist.length()){
|
||||||
|
@ -151,6 +151,8 @@ void UPDATENEWS::startsync()
|
||||||
directmessages();
|
directmessages();
|
||||||
} else if (synclist[syncindex]=="sync_Notifications") {
|
} else if (synclist[syncindex]=="sync_Notifications") {
|
||||||
notifications();
|
notifications();
|
||||||
|
} else if (synclist[syncindex]=="sync_Events") {
|
||||||
|
events();
|
||||||
}
|
}
|
||||||
} else if (syncindex==synclist.length()) {
|
} else if (syncindex==synclist.length()) {
|
||||||
m_api="";
|
m_api="";
|
||||||
|
@ -159,6 +161,7 @@ void UPDATENEWS::startsync()
|
||||||
synclist.clear();
|
synclist.clear();
|
||||||
m_db.close();
|
m_db.close();
|
||||||
m_db.removeDatabase(m_db.connectionName());
|
m_db.removeDatabase(m_db.connectionName());
|
||||||
|
QObject::disconnect(&xhr,SIGNAL(error(QString,QString,QString,int)),this,SLOT(showError(QString,QString,QString,int)));
|
||||||
emit quitapp();
|
emit quitapp();
|
||||||
alarm.setAlarm(m_updateInterval);
|
alarm.setAlarm(m_updateInterval);
|
||||||
m_updateInterval=0;
|
m_updateInterval=0;
|
||||||
|
@ -239,6 +242,28 @@ void UPDATENEWS::notifications()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UPDATENEWS::events()
|
||||||
|
{
|
||||||
|
m_api="/api/friendica/events";
|
||||||
|
xhr.clearParams();
|
||||||
|
xhr.setUrl(m_url);
|
||||||
|
xhr.setApi(m_api);
|
||||||
|
QSqlQuery query("SELECT id FROM events WHERE username='"+ username +"' ORDER BY id DESC LIMIT 1",m_db);
|
||||||
|
if (query.isActive() && query.isSelect()){
|
||||||
|
if (query.first()){
|
||||||
|
QString lastid=query.value(0).toString();
|
||||||
|
xhr.setParam("since_id",lastid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xhr.setParam("count","30");
|
||||||
|
xhr.get();
|
||||||
|
QObject::disconnect(&xhr,SIGNAL(success(QByteArray,QString)),this,SLOT(store(QByteArray,QString)));
|
||||||
|
QObject::connect(&xhr,SIGNAL(success(QByteArray,QString)),this,SLOT(storeEvents(QByteArray,QString)));
|
||||||
|
QObject::connect(&xhr,SIGNAL(error(QString,QString,QString,int)),this,SLOT(showError(QString,QString,QString,int)));
|
||||||
|
//QObject::connect(&xhr, SIGNAL(downloaded(QString, QString, QString, int)), this, SLOT(updateImageLocation(QString,QString, QString, int)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void UPDATENEWS::store(QByteArray serverreply,QString apiname)
|
void UPDATENEWS::store(QByteArray serverreply,QString apiname)
|
||||||
{ if (apiname!=m_api || xhr.downloadtype()!=""){} else {
|
{ if (apiname!=m_api || xhr.downloadtype()!=""){} else {
|
||||||
QJsonDocument news;
|
QJsonDocument news;
|
||||||
|
@ -328,7 +353,7 @@ void UPDATENEWS::store(QByteArray serverreply,QString apiname)
|
||||||
query.bindValue(16, newsitem["url"]);
|
query.bindValue(16, newsitem["url"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!(query.exec())) {qDebug()<<query.lastError();}
|
if(!(query.exec())) {qDebug()<< "store news " << query.lastError();}
|
||||||
|
|
||||||
// notifications
|
// notifications
|
||||||
if (apiname=="/api/statuses/friends_timeline"){
|
if (apiname=="/api/statuses/friends_timeline"){
|
||||||
|
@ -352,7 +377,7 @@ void UPDATENEWS::store(QByteArray serverreply,QString apiname)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch(...){
|
}catch(...){
|
||||||
qDebug() << "Friendiqasync Error inserting news" << newsitem["text"].toString() << " " << newsitem.toString();
|
//qDebug() << "Friendiqasync Error inserting news" << newsitem["text"].toString() << " " << newsitem.toString();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -387,7 +412,7 @@ void UPDATENEWS::updateImageLocation(QString downloadtype,QString imageurl, QStr
|
||||||
testquery.first();
|
testquery.first();
|
||||||
//qDebug()<< "update imageurl for " <<imageurl << " from " <<testquery.value(0).toString() <<" to "<< filename <<" index " << index << " newcontactnames.length " <<newcontactnames.length();
|
//qDebug()<< "update imageurl for " <<imageurl << " from " <<testquery.value(0).toString() <<" to "<< filename <<" index " << index << " newcontactnames.length " <<newcontactnames.length();
|
||||||
QSqlQuery query("UPDATE contacts SET profile_image='"+ filename +"' WHERE profile_image_url ='"+imageurl+ "' AND username = '" +username+"'",m_db);
|
QSqlQuery query("UPDATE contacts SET profile_image='"+ filename +"' WHERE profile_image_url ='"+imageurl+ "' AND username = '" +username+"'",m_db);
|
||||||
query.exec();
|
if(!(query.exec())) {qDebug()<< "updateImagelocation " << query.lastError();}
|
||||||
if (index==(newcontactnames.length()-1)){
|
if (index==(newcontactnames.length()-1)){
|
||||||
newcontactnames.clear();
|
newcontactnames.clear();
|
||||||
newcontactimagelinks.clear();
|
newcontactimagelinks.clear();
|
||||||
|
@ -546,7 +571,7 @@ void UPDATENEWS::updateContacts(QList<QJsonValue> contacts){
|
||||||
query.bindValue(16,contact["time_zone"].toString());
|
query.bindValue(16,contact["time_zone"].toString());
|
||||||
query.bindValue(17,contact["statuses_count"].toInt());
|
query.bindValue(17,contact["statuses_count"].toInt());
|
||||||
query.bindValue(18,contact["following"].toBool());
|
query.bindValue(18,contact["following"].toBool());
|
||||||
query.bindValue(19,contact["verfied"].toBool());
|
query.bindValue(19,contact["verified"].toBool());
|
||||||
query.bindValue(20,contact["statusnet_blocking"].toBool());
|
query.bindValue(20,contact["statusnet_blocking"].toBool());
|
||||||
query.bindValue(21,contact["notifications"].toBool());
|
query.bindValue(21,contact["notifications"].toBool());
|
||||||
query.bindValue(22,contact["statusnet_profile_url"]);
|
query.bindValue(22,contact["statusnet_profile_url"]);
|
||||||
|
@ -559,13 +584,65 @@ void UPDATENEWS::updateContacts(QList<QJsonValue> contacts){
|
||||||
query.bindValue(26,timestamp);
|
query.bindValue(26,timestamp);
|
||||||
|
|
||||||
}
|
}
|
||||||
query.exec() ;
|
if(!(query.exec())) {qDebug()<< "updatecontacts " << query.lastError();}
|
||||||
} catch(...){
|
} catch(...){
|
||||||
qDebug() << "Friendiqasync Error inserting contact" << contact["screen_name"] << " " << contact.toString();
|
qDebug() << "Friendiqasync Error inserting contact" << contact["screen_name"] << " " << contact.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UPDATENEWS::storeEvents(QByteArray serverreply,QString apiname)
|
||||||
|
{ if (apiname!=m_api || xhr.downloadtype()!=""){} else {
|
||||||
|
QJsonDocument events;
|
||||||
|
//qDebug()<<apiname << serverreply;
|
||||||
|
QJsonParseError jsonerror;
|
||||||
|
events=QJsonDocument::fromJson(serverreply,&jsonerror);
|
||||||
|
if (events.isArray()){
|
||||||
|
for (int i=0; i < events.array().count();i++){
|
||||||
|
QJsonValue eventitem=events[i];
|
||||||
|
try{
|
||||||
|
QSqlQuery query(m_db);
|
||||||
|
query.prepare("INSERT INTO events (username,id,cid,start,end,title,uri,desc,location,type,nofinish,adjust,ignore,permissions) " "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
|
||||||
|
query.bindValue(0,username);
|
||||||
|
query.bindValue(1,eventitem["id"].toInt());
|
||||||
|
query.bindValue(2,eventitem["cid"].toInt());
|
||||||
|
QString sourcedateStart=eventitem["startTime"].toString();
|
||||||
|
query.bindValue(3,QDateTime::fromString(sourcedateStart,Qt::ISODate).toMSecsSinceEpoch() );
|
||||||
|
QString sourcedateEnd=eventitem["endTime"].toString();
|
||||||
|
query.bindValue(4,QDateTime::fromString(sourcedateEnd,Qt::ISODate).toMSecsSinceEpoch() );
|
||||||
|
query.bindValue(5,eventitem["name"].toString());
|
||||||
|
query.bindValue(6,eventitem["uri"].toString());
|
||||||
|
query.bindValue(7,eventitem["desc"].toString().toUtf8().toBase64());
|
||||||
|
query.bindValue(8,eventitem["place"].toString());
|
||||||
|
query.bindValue(9,eventitem["type"].toString());
|
||||||
|
query.bindValue(10,eventitem["nofinsh"].toInt());
|
||||||
|
query.bindValue(11,eventitem["adjust"].toInt());
|
||||||
|
query.bindValue(12,eventitem["ignore"].toInt());
|
||||||
|
QJsonArray permissions; permissions={eventitem["allow_cid"].toString().replace("<","[").replace(">","]"),eventitem["allow_gid"].toString().replace("<","[").replace(">","]"),eventitem["deny_cid"].toString().replace("<","[").replace(">","]"),eventitem["deny_gid"].toString().replace("<","[").replace(">","]")};
|
||||||
|
QJsonDocument permissionDocument; permissionDocument.setArray(permissions);
|
||||||
|
query.bindValue(13,permissionDocument.toJson(QJsonDocument::Compact));
|
||||||
|
if(!(query.exec())) {qDebug()<< "store events " << query.lastError();}
|
||||||
|
} catch(...){
|
||||||
|
qDebug() << "Friendiqasync Error event" << eventitem["name"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
emit this->success(m_api);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(notifylist.contains("notify_Events")){
|
||||||
|
QSqlQuery eventnotifyquery("SELECT start,title FROM events WHERE (start BETWEEN " + QString::number(QDateTime::currentDateTime().toMSecsSinceEpoch()) + " AND "+QString::number(QDateTime::currentDateTime().toMSecsSinceEpoch()+(m_updateInterval*60*1000))+") AND username='"+ username +"'",m_db);
|
||||||
|
while (eventnotifyquery.next()) {
|
||||||
|
alarm.notify("Event: "+ QDateTime::fromMSecsSinceEpoch(eventnotifyquery.value(0).toLongLong()).toString("dd.MM.yyyy hh:mm"),eventnotifyquery.value(1).toString(),1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(m_updateInterval!=0){
|
||||||
|
syncindex+=1;
|
||||||
|
startsync();
|
||||||
|
}
|
||||||
|
QObject::disconnect(&xhr,SIGNAL(success(QByteArray,QString)),this,SLOT(storeEvents(QByteArray,QString)));
|
||||||
|
}
|
||||||
|
|
||||||
QString UPDATENEWS::url() const
|
QString UPDATENEWS::url() const
|
||||||
{
|
{
|
||||||
return m_url;
|
return m_url;
|
||||||
|
@ -583,7 +660,7 @@ void UPDATENEWS::startImagedownload()
|
||||||
|
|
||||||
void UPDATENEWS::showError(QString data, QString url,QString api, int code )
|
void UPDATENEWS::showError(QString data, QString url,QString api, int code )
|
||||||
{
|
{
|
||||||
qDebug() << "showerror " << api << " data " << data;
|
//qDebug() << "showerror " << api << " data " << data;
|
||||||
emit this->error(api,data);
|
emit this->error(api,data);
|
||||||
if (api!=m_api || xhr.downloadtype()!=""){} else{
|
if (api!=m_api || xhr.downloadtype()!=""){} else{
|
||||||
if(m_updateInterval!=0){
|
if(m_updateInterval!=0){
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -68,10 +68,12 @@ public slots:
|
||||||
void startsync();
|
void startsync();
|
||||||
void directmessages();
|
void directmessages();
|
||||||
void notifications();
|
void notifications();
|
||||||
|
void events();
|
||||||
//void startservice(QString type,QVariantMap map);
|
//void startservice(QString type,QVariantMap map);
|
||||||
void startImagedownload();
|
void startImagedownload();
|
||||||
void updateImageLocation(QString downloadtype,QString imageurl, QString filename, int index);
|
void updateImageLocation(QString downloadtype,QString imageurl, QString filename, int index);
|
||||||
void store(QByteArray serverreply,QString apiname);
|
void store(QByteArray serverreply,QString apiname);
|
||||||
|
void storeEvents(QByteArray serverreply,QString apiname);
|
||||||
void showError(QString data, QString url,QString api, int code);
|
void showError(QString data, QString url,QString api, int code);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -292,7 +292,7 @@ void XHR::post()
|
||||||
void XHR::onReplyError(QNetworkReply::NetworkError code)
|
void XHR::onReplyError(QNetworkReply::NetworkError code)
|
||||||
{
|
{
|
||||||
qDebug() << code;
|
qDebug() << code;
|
||||||
emit this->error( bufferToString(), m_url,m_api, (int) code);
|
if(downloadtype()!="contactlist"){emit this->error( bufferToString(), m_url,m_api, (int) code);}
|
||||||
buffer.clear();
|
buffer.clear();
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
if((downloadtype()=="contactlist")||(downloadtype()=="picturelist")){dlindex=dlindex+1;XHR::getlist();}
|
if((downloadtype()=="contactlist")||(downloadtype()=="picturelist")){dlindex=dlindex+1;XHR::getlist();}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -47,8 +47,6 @@ HEADERS += \
|
||||||
|
|
||||||
DISTFILES += \
|
DISTFILES += \
|
||||||
qml/calendarqml/*.qml \
|
qml/calendarqml/*.qml \
|
||||||
qml/newsqml/Lastcomment.qml \
|
|
||||||
qml/newsqml/NewsVideoLarge.qml \
|
|
||||||
translations/*.ts \
|
translations/*.ts \
|
||||||
translations/*.qm \
|
translations/*.qm \
|
||||||
qml/*.qml \
|
qml/*.qml \
|
||||||
|
@ -57,8 +55,7 @@ DISTFILES += \
|
||||||
qml/photoqml/*.qml \
|
qml/photoqml/*.qml \
|
||||||
qml/configqml/*.qml \
|
qml/configqml/*.qml \
|
||||||
js/*.js \
|
js/*.js \
|
||||||
qml/newsqml/NewsStack.qml \
|
|
||||||
qml/configqml/SyncComponent.qml
|
|
||||||
|
|
||||||
target.path=/usr/bin
|
target.path=/usr/bin
|
||||||
desktop.path = /usr/share/applications
|
desktop.path = /usr/share/applications
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -102,7 +102,7 @@ function getLastNews(login,database,callback){
|
||||||
var lastnewsid=0;
|
var lastnewsid=0;
|
||||||
db.transaction( function(tx) {
|
db.transaction( function(tx) {
|
||||||
var result = tx.executeSql('SELECT status_id from news WHERE username="'+login.username+'" AND messagetype=0 ORDER BY status_id DESC LIMIT 1');
|
var result = tx.executeSql('SELECT status_id from news WHERE username="'+login.username+'" AND messagetype=0 ORDER BY status_id DESC LIMIT 1');
|
||||||
try{lastnewsid=result.rows.item(0).status_id;}catch(e){print(e)};
|
try{lastnewsid=result.rows.item(0).status_id;}catch(e){lastnewsid=0};
|
||||||
callback(lastnewsid)
|
callback(lastnewsid)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -292,7 +292,7 @@ function newsfromdb(database,login,messagetype,callback,contact,stop_time){
|
||||||
newsArray[i].statusnet_html=Qt.atob(newsArray[i].statusnet_html);
|
newsArray[i].statusnet_html=Qt.atob(newsArray[i].statusnet_html);
|
||||||
newsArray[i].text=Qt.atob(newsArray[i].text);
|
newsArray[i].text=Qt.atob(newsArray[i].text);
|
||||||
newsArray[i].id=newsArray[i].status_id;
|
newsArray[i].id=newsArray[i].status_id;
|
||||||
newsArray[i].friendica_author=newsArray[i].friendica_owner
|
newsArray[i].friendica_author=objFromArray(allcontacts,"url",newsArray[i].friendica_owner)
|
||||||
newsArray[i]=fetchUsersForNews(database,login.username,newsArray[i],allcontacts);
|
newsArray[i]=fetchUsersForNews(database,login.username,newsArray[i],allcontacts);
|
||||||
if (newsArray[i].attachments!="" && newsArray[i].attachments!==null){newsArray[i].attachments=JSON.parse(Qt.atob(newsArray[i].attachments))};
|
if (newsArray[i].attachments!="" && newsArray[i].attachments!==null){newsArray[i].attachments=JSON.parse(Qt.atob(newsArray[i].attachments))};
|
||||||
}
|
}
|
||||||
|
@ -487,6 +487,7 @@ function chatsfromdb(database,login,messagetype,callback,stop_time){
|
||||||
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
||||||
helpernews.text=Qt.atob(helpernews.text);
|
helpernews.text=Qt.atob(helpernews.text);
|
||||||
helpernews.id=helpernews.status_id;
|
helpernews.id=helpernews.status_id;
|
||||||
|
helpernews.friendica_author=objFromArray(allcontacts,"url",helpernews.friendica_owner);
|
||||||
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||||
helpernews.currentconversation=[];
|
helpernews.currentconversation=[];
|
||||||
for (var h = 0;h<newsrs.rows.length;h++){
|
for (var h = 0;h<newsrs.rows.length;h++){
|
||||||
|
@ -496,6 +497,7 @@ function chatsfromdb(database,login,messagetype,callback,stop_time){
|
||||||
helpernews2.statusnet_html=Qt.atob(helpernews2.statusnet_html);
|
helpernews2.statusnet_html=Qt.atob(helpernews2.statusnet_html);
|
||||||
helpernews2.text=Qt.atob(helpernews2.text);//print(h+" "+helpernews2.text)
|
helpernews2.text=Qt.atob(helpernews2.text);//print(h+" "+helpernews2.text)
|
||||||
helpernews2.id=helpernews2.status_id;
|
helpernews2.id=helpernews2.status_id;
|
||||||
|
helpernews2.friendica_author=objFromArray(allcontacts,"url",helpernews2.friendica_owner);
|
||||||
if (helpernews2.attachments!="" && helpernews2.attachments!==null){helpernews2.attachments=JSON.parse(Qt.atob(helpernews2.attachments))};
|
if (helpernews2.attachments!="" && helpernews2.attachments!==null){helpernews2.attachments=JSON.parse(Qt.atob(helpernews2.attachments))};
|
||||||
helpernews.currentconversation.push(helpernews2)
|
helpernews.currentconversation.push(helpernews2)
|
||||||
}
|
}
|
||||||
|
@ -527,7 +529,7 @@ function allchatsfromdb(database,user,callback){
|
||||||
helpernews=fetchUsersForNews(database,user,helpernews,allcontacts);
|
helpernews=fetchUsersForNews(database,user,helpernews,allcontacts);
|
||||||
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
||||||
helpernews.text=Qt.atob(helpernews.text);
|
helpernews.text=Qt.atob(helpernews.text);
|
||||||
helpernews.id=helpernews.status_id;
|
helpernews.id=helpernews.status_id;helpernews.friendica_author=objFromArray(allcontacts,"url",helpernews.friendica_owner);
|
||||||
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||||
newsArray.push(helpernews);
|
newsArray.push(helpernews);
|
||||||
countArray.push(newsrs.rows.length)
|
countArray.push(newsrs.rows.length)
|
||||||
|
@ -552,7 +554,7 @@ function oldchatfromdb(database,user,conversationId,lastpost,allcontacts,callbac
|
||||||
helpernews=fetchUsersForNews(database,user,helpernews,allcontacts);
|
helpernews=fetchUsersForNews(database,user,helpernews,allcontacts);
|
||||||
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
helpernews.statusnet_html=Qt.atob(helpernews.statusnet_html);
|
||||||
helpernews.text=Qt.atob(helpernews.text);
|
helpernews.text=Qt.atob(helpernews.text);
|
||||||
helpernews.id=helpernews.status_id;
|
helpernews.id=helpernews.status_id;helpernews.friendica_author=objFromArray(allcontacts,"url",helpernews.friendica_owner);
|
||||||
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
if (helpernews.attachments!="" && helpernews.attachments!==null){helpernews.attachments=JSON.parse(Qt.atob(helpernews.attachments))};
|
||||||
callback(helpernews,newscount);}
|
callback(helpernews,newscount);}
|
||||||
// var conversationobject={news:helpernews,newscount:newscount};
|
// var conversationobject={news:helpernews,newscount:newscount};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -36,43 +36,27 @@ function findend (text, startpos) {
|
||||||
|
|
||||||
function beautify(newsitemobject,msg){
|
function beautify(newsitemobject,msg){
|
||||||
var forumname="";
|
var forumname="";
|
||||||
try{if (newsitemobject.messagetype==0&&newsitemobject.hasOwnProperty('friendica_author')&&
|
try{
|
||||||
|
if (newsitemobject.messagetype==0&&newsitemobject.hasOwnProperty('friendica_author')&&
|
||||||
((newsitemobject.friendica_author.url)!=(newsitemobject.user.url))&&((newsitemobject.friendica_author.url)!=null)){
|
((newsitemobject.friendica_author.url)!=(newsitemobject.user.url))&&((newsitemobject.friendica_author.url)!=null)){
|
||||||
//print(" Friendica Author "+JSON.stringify(newsitemobject));
|
//print(" Friendica Author "+JSON.stringify(newsitemobject));
|
||||||
forumname=" via "+newsitemobject.user.name;
|
forumname=" via "+newsitemobject.user.name;
|
||||||
newsitemobject.user=newsitemobject.friendica_author;
|
newsitemobject.user=newsitemobject.friendica_author;
|
||||||
}}catch(e){print("forum name "+e)}
|
}
|
||||||
var likeText="";var dislikeText="";var attendyesText="";var attendnoText="";var attendmaybeText=""; var self={};
|
if (typeof(newsitemobject.friendica_activities_self)=="string"){
|
||||||
try{if (newsitemobject.messagetype==0&&newsitemobject.hasOwnProperty('friendica_activities')){
|
newsitemobject.friendica_activities_self=JSON.parse(newsitemobject.friendica_activities_self);
|
||||||
if (newsitemobject.friendica_activities.like.length>0){
|
}
|
||||||
if (newsitemobject.friendica_activities.like.length==1){likeText= newsitemobject.friendica_activities.like[0].name+" "+ qsTr("likes this.")}
|
}catch(e){print("forum name "+e)}
|
||||||
else {likeText= newsitemobject.friendica_activities.like.length+" "+ qsTr("like this.")}
|
|
||||||
}
|
var self=({})
|
||||||
if (newsitemobject.friendica_activities.dislike.length>0){
|
if (newsitemobject.hasOwnProperty("friendica_activities_self")){
|
||||||
if (newsitemobject.friendica_activities.dislike.length==1){dislikeText= newsitemobject.friendica_activities.dislike[0].name+" "+ qsTr("doesn't like this.")}
|
if (newsitemobject.friendica_activities_self.indexOf(3)!=-1){self.attending=qsTr("yes")}
|
||||||
else {dislikeText= newsitemobject.friendica_activities.dislike.length+" "+ qsTr("don't like this.")}
|
if (newsitemobject.friendica_activities_self.indexOf(4)!=-1){self.attending=qsTr("no")}
|
||||||
}
|
if (newsitemobject.friendica_activities_self.indexOf(5)!=-1){self.attending=qsTr("maybe")}
|
||||||
if (newsitemobject.friendica_activities.attendyes.length>0){
|
if (newsitemobject.friendica_activities_self.indexOf(1)!=-1){self.liked=1}
|
||||||
if (newsitemobject.friendica_activities.attendyes.length==1){attendyesText=newsitemobject.friendica_activities.attendyes[0].name+" "+ qsTr("will attend.")}
|
if (newsitemobject.friendica_activities_self.indexOf(2)!=-1){self.disliked=1}
|
||||||
else {attendyesText= newsitemobject.friendica_activities.attendyes.length+" "+ qsTr("persons will attend.")}
|
}
|
||||||
}
|
var friendica_activities={self:self}
|
||||||
if (newsitemobject.friendica_activities.attendno.length>0){
|
|
||||||
if (newsitemobject.friendica_activities.attendno.length==1){attendnoText= newsitemobject.friendica_activities.attendno[0].name+" "+ qsTr("will not attend.")}
|
|
||||||
else {attendnoText= newsitemobject.friendica_activities.attendno.length+" "+ qsTr("persons will not attend.")}
|
|
||||||
}
|
|
||||||
if (newsitemobject.friendica_activities.attendmaybe.length>0){
|
|
||||||
if (newsitemobject.friendica_activities.attendmaybe.length==1){attendmaybeText= newsitemobject.friendica_activities.attendmaybe[0].name+" "+ qsTr("may attend.")}
|
|
||||||
else {attendmaybeText= newsitemobject.friendica_activities.attendmaybe.length+" "+ qsTr("persons may attend.")}
|
|
||||||
}
|
|
||||||
//var friendica_activities_self=JSON.parse(newsitemobject.friendica_activities_self);
|
|
||||||
if (newsitemobject.hasOwnProperty("friendica_activities_self")){
|
|
||||||
if (newsitemobject.friendica_activities_self.indexOf(3)!=-1){self.attending=qsTr("yes")}
|
|
||||||
if (newsitemobject.friendica_activities_self.indexOf(4)!=-1){self.attending=qsTr("no")}
|
|
||||||
if (newsitemobject.friendica_activities_self.indexOf(5)!=-1){self.attending=qsTr("maybe")}
|
|
||||||
if (newsitemobject.friendica_activities_self.indexOf(1)!=-1){self.liked=1}
|
|
||||||
if (newsitemobject.friendica_activities_self.indexOf(2)!=-1){self.disliked=1}
|
|
||||||
}}} catch(e){print("Activities "+e+ " "+JSON.stringify(newsitemobject.friendica_activities))}
|
|
||||||
var friendica_activities={likeText:likeText,dislikeText:dislikeText,attendyesText:attendyesText,attendnoText:attendnoText,attendmaybeText:attendmaybeText,self:self}
|
|
||||||
var attachmentList=[];
|
var attachmentList=[];
|
||||||
var videoformats=["mp4", "avi", "webm","ogg","mp3"]
|
var videoformats=["mp4", "avi", "webm","ogg","mp3"]
|
||||||
try{if(newsitemobject.attachments){
|
try{if(newsitemobject.attachments){
|
||||||
|
@ -119,11 +103,8 @@ function beautify(newsitemobject,msg){
|
||||||
ptvideotext=ptvideotext.substring(ptposend,ptvideotext.length)
|
ptvideotext=ptvideotext.substring(ptposend,ptvideotext.length)
|
||||||
if ((attachmentList.length==0) || (attachmentList[attachmentList.length-1].url!=ptvideohelper.url)){attachmentList.push(ptvideohelper)}
|
if ((attachmentList.length==0) || (attachmentList[attachmentList.length-1].url!=ptvideohelper.url)){attachmentList.push(ptvideohelper)}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (newsitemobject.text.indexOf("youtube.com/watch?v")>-1){
|
if (newsitemobject.text.indexOf("youtube.com/watch?v")>-1){
|
||||||
//print("message "+msg.options.showWebsiteForLinks);
|
|
||||||
//if (msg.options.showYoutube!="false"){
|
|
||||||
|
|
||||||
var yttext=newsitemobject.text;
|
var yttext=newsitemobject.text;
|
||||||
while (yttext.indexOf("youtube.com/watch?v")>-1){
|
while (yttext.indexOf("youtube.com/watch?v")>-1){
|
||||||
var ythelperstringposition=yttext.indexOf("watch?v=");
|
var ythelperstringposition=yttext.indexOf("watch?v=");
|
||||||
|
@ -133,44 +114,14 @@ function beautify(newsitemobject,msg){
|
||||||
yttext=yttext.substring(ytposend,yttext.length);
|
yttext=yttext.substring(ytposend,yttext.length);
|
||||||
if ((attachmentList.length==0) || (attachmentList[attachmentList.length-1].url!=ythelper.url)){attachmentList.push(ythelper)}
|
if ((attachmentList.length==0) || (attachmentList[attachmentList.length-1].url!=ythelper.url)){attachmentList.push(ythelper)}
|
||||||
}
|
}
|
||||||
//}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// if (newsitemobject.text.indexOf(".html")>-1){
|
|
||||||
// //print("message "+msg.options.showWebsiteForLinks);
|
|
||||||
// if (msg.options.showWebsiteForLinks!="false"){
|
|
||||||
// var linkhelper={mimetype:"text/html"}
|
|
||||||
// var linktext=newsitemobject.text;
|
|
||||||
// while (linktext.indexOf(".html")>-1){
|
|
||||||
// var linkhelperstringposition=linktext.indexOf(".html");
|
|
||||||
// var linkposend=findend(linktext,linkhelperstringposition);
|
|
||||||
// linkhelper.url=linktext.substring(linktext.lastIndexOf("http",linkhelperstringposition),linkposend);
|
|
||||||
// linktext=linktext.substring(linkhelperstringposition+5,linktext.length)
|
|
||||||
// if ((attachmentList.length==0) || (attachmentList[attachmentList.length-1].url!=linkhelper.url)){attachmentList.push(linkhelper)}
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
newsitemobject.attachmentList=attachmentList;
|
newsitemobject.attachmentList=attachmentList;
|
||||||
|
|
||||||
if ((msg.options.hasOwnProperty("hide_nsfw"))&&(msg.options.hide_nsfw==1)&&(newsitemobject.text.indexOf("#nsfw")>-1)){
|
if ((msg.options.hasOwnProperty("hide_nsfw"))&&(msg.options.hide_nsfw==1)&&(newsitemobject.text.indexOf("#nsfw")>-1)){
|
||||||
newsitemobject.nsfw=true
|
newsitemobject.nsfw=true
|
||||||
} else{newsitemobject.nsfw=false}
|
} else{newsitemobject.nsfw=false}
|
||||||
|
|
||||||
var seconds=(msg.currentTime-newsitemobject.created_at)/1000;
|
newsitemobject.dateDiff=(msg.currentTime-newsitemobject.created_at)/1000;
|
||||||
var timestring="";
|
|
||||||
if (seconds<60) {timestring=seconds+" "+qsTr("seconds") +" "+qsTr("ago");}
|
|
||||||
else if (seconds<90){timestring=Math.round(seconds/60)+" "+qsTr("minute") +" "+qsTr("ago");}
|
|
||||||
else if (seconds<3600){timestring=Math.round(seconds/60)+" "+qsTr("minutes") +" "+qsTr("ago");}
|
|
||||||
else if (seconds<5400){timestring=Math.round(seconds/3600)+" "+qsTr("hour") +" "+qsTr("ago");}
|
|
||||||
else if (seconds<86400){timestring=Math.round(seconds/3600)+" "+qsTr("hours") +" "+qsTr("ago");}
|
|
||||||
else if (seconds<129600){timestring=Math.round(seconds/86400)+" "+qsTr("day") +" "+qsTr("ago");}
|
|
||||||
else if (seconds<3888000){timestring=Math.round(seconds/86400)+" "+qsTr("days") +" "+qsTr("ago");}
|
|
||||||
else if (seconds<5832000){timestring=Math.round(seconds/3888000)+" "+qsTr("month") +" "+qsTr("ago");}
|
|
||||||
else if (seconds<69984000){timestring=Math.round(seconds/3888000)+" "+qsTr("months") +" "+qsTr("ago");}
|
|
||||||
else {timestring=Math.round(seconds/46656000)+" "+qsTr("years") +" "+qsTr("ago");}
|
|
||||||
|
|
||||||
newsitemobject.dateDiff=timestring;
|
|
||||||
newsitemobject.friendica_activities_view=friendica_activities;
|
newsitemobject.friendica_activities_view=friendica_activities;
|
||||||
newsitemobject.forumname=forumname;
|
newsitemobject.forumname=forumname;
|
||||||
return newsitemobject;
|
return newsitemobject;
|
||||||
|
@ -184,27 +135,28 @@ if(msg.deleteId!==undefined)
|
||||||
msg.model.sync()
|
msg.model.sync()
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(msg.method=="refresh"){msg.model.clear()};
|
if(msg.method=="refresh" ||msg.method=="conversation"){msg.model.clear()};
|
||||||
msg.model.sync()
|
msg.model.sync()
|
||||||
for (var j=0;j<msg.news.length;j++){
|
for (var j=0;j<msg.news.length;j++){
|
||||||
if (msg.news[j]) {
|
if (msg.news[j]) {
|
||||||
var newsitemobject=msg.news[j];
|
var newsitemobject=msg.news[j];
|
||||||
// print("Newsitem "+JSON.stringify(newsitemobject.friendica_owner)+" userid: "+newsitemobject.user.id);
|
|
||||||
// if (newsitemobject.messagetype==2){
|
|
||||||
// newsitemobject.user={};
|
|
||||||
// newsitemobject.user.profile_image="";
|
|
||||||
// newsitemobject.user.profile_image_url="";
|
|
||||||
// newsitemobject.user.name="";
|
|
||||||
// }
|
|
||||||
|
|
||||||
//var data=({"newsitemobject": newsitemobject,"dateDiff":timestring,"friendica_activities":friendica_activities,"forumname":forumname})}
|
|
||||||
//print("News:"+j+msg.news.length+JSON.stringify(data));
|
|
||||||
newsitemobject=beautify(newsitemobject,msg);
|
newsitemobject=beautify(newsitemobject,msg);
|
||||||
|
|
||||||
if (newsitemobject.hasOwnProperty("currentconversation")&&(newsitemobject.currentconversation.length>1)){
|
if (newsitemobject.hasOwnProperty("currentconversation")&&(newsitemobject.currentconversation.length>1)){
|
||||||
newsitemobject.lastcomment=beautify(newsitemobject.currentconversation[newsitemobject.currentconversation.length-1],msg);
|
newsitemobject.lastcomment=beautify(newsitemobject.currentconversation[newsitemobject.currentconversation.length-1],msg);
|
||||||
//print("Currentconversation" + newsitemobject.currentconversation.length+JSON.stringify(newsitemobject.lastcomment))
|
//print("Currentconversation" + newsitemobject.currentconversation.length+JSON.stringify(newsitemobject.lastcomment))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (msg.method=="conversation"){
|
||||||
|
if (j==0){newsitemobject.indent=0}else{
|
||||||
|
for (var k=msg.model.count-1;k>-1;k--){
|
||||||
|
if (newsitemobject.in_reply_to_status_id==msg.model.get(k).newsitemobject.id){
|
||||||
|
newsitemobject.indent=msg.model.get(k).newsitemobject.indent+1;
|
||||||
|
if (newsitemobject.indent>6){newsitemobject.indent=6};
|
||||||
|
break}
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
|
||||||
var data=({"newsitemobject": newsitemobject})
|
var data=({"newsitemobject": newsitemobject})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,7 +168,6 @@ else{
|
||||||
}
|
}
|
||||||
|
|
||||||
if (j==msg.news.length){
|
if (j==msg.news.length){
|
||||||
//print("j: "+j+" msg.model.count: "+msg.model.count);
|
|
||||||
msg.model.sync()
|
msg.model.sync()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -90,14 +90,23 @@ function newscount(database, callback){
|
||||||
|
|
||||||
function eventsfromdb(database, username,callback){
|
function eventsfromdb(database, username,callback){
|
||||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||||
|
var allcontacts=[];
|
||||||
|
allcontacts=Newsjs.getAllContacts(root.db,login.username);
|
||||||
db.transaction( function(tx) {
|
db.transaction( function(tx) {
|
||||||
var eventrs=tx.executeSql('select * from events WHERE username="'+username+'" ORDER BY start ASC');
|
var eventrs=tx.executeSql('select * from events WHERE username="'+username+'" ORDER BY start ASC');
|
||||||
var eventArray=[];
|
var eventArray=[];
|
||||||
var dayArray=[];
|
var dayArray=[];
|
||||||
for(var i = 0; i < eventrs.rows.length; i++) {
|
for(var i = 0; i < eventrs.rows.length; i++) {
|
||||||
eventArray.push(eventrs.rows.item(i));
|
eventArray.push(eventrs.rows.item(i));
|
||||||
// eventArray[i]=fetchUsersForNews(database,username,newsArray[i])
|
if (eventArray[i].cid!=0){eventArray[i]["eventOwner"]=Newsjs.objFromArray(allcontacts,"cid",eventArray[i].cid);}
|
||||||
dayArray.push(Math.floor(eventrs.rows.item(i).start/86400000));
|
else{eventArray[i]["eventOwner"]=Newsjs.objFromArray(allcontacts,"isFriend",2);}
|
||||||
|
var startday=Math.floor((eventArray[i].start-new Date(eventArray[i].start).getTimezoneOffset() * 60 * 1000)/86400000);
|
||||||
|
var endday=Math.floor((eventArray[i].end-1-new Date(eventArray[i].end).getTimezoneOffset() * 60 * 1000)/86400000);if (endday<startday){endday=startday}
|
||||||
|
eventArray[i]["startday"]=startday;eventArray[i]["endday"]=endday;
|
||||||
|
dayArray.push(startday);
|
||||||
|
if (endday>startday){
|
||||||
|
for (var j=startday+1;j<endday+1;j++){dayArray.push(j)}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
callback(eventArray,dayArray)});
|
callback(eventArray,dayArray)});
|
||||||
}
|
}
|
||||||
|
@ -281,8 +290,9 @@ function readConfig(database,callback,filter,filtervalue) { // reads config
|
||||||
for(var i = 0; i < rs.rows.length; i++) {
|
for(var i = 0; i < rs.rows.length; i++) {
|
||||||
rsArray.push(rs.rows.item(i))
|
rsArray.push(rs.rows.item(i))
|
||||||
}
|
}
|
||||||
var rsObject={server:rsArray[0].server,username:rsArray[0].username, password:rsArray[0].password,imagestore:rsArray[0].imagestore,isActive:rsArray[0].isActive, newsViewType:rsArray[0].newsViewType,permissions:JSON.parse(rsArray[0].permissions),maxContactAge:rsArray[0].maxContactAge,APIVersion:rsArray[0].APIVersion,addons:rsArray[0].addons};
|
var rsObject={server:rsArray[0].server,username:rsArray[0].username, password:rsArray[0].password,imagestore:rsArray[0].imagestore,isActive:rsArray[0].isActive, newsViewType:rsArray[0].newsViewType,permissions:JSON.parse(rsArray[0].permissions),maxContactAge:rsArray[0].maxContactAge,APIVersion:rsArray[0].APIVersion,addons:rsArray[0].addons};
|
||||||
} else {var rsObject=""}
|
if (rsObject.newsViewType!="" && rsObject.newsViewType!=null){updateNewsviewtype(database,rsObject.newsViewType)}
|
||||||
|
} else {var rsObject=""}
|
||||||
callback(rsObject)}}
|
callback(rsObject)}}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -293,6 +303,14 @@ function readActiveConfig(database){
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setDefaultOptions(database){
|
||||||
|
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||||
|
db.transaction( function(tx) {
|
||||||
|
var rs = tx.executeSql('INSERT INTO globaloptions (k,v) VALUES ("newsViewType","Conversations")');
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function readGlobaloptions(database,callback){
|
function readGlobaloptions(database,callback){
|
||||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||||
var go=({});
|
var go=({});
|
||||||
|
@ -303,7 +321,12 @@ function readGlobaloptions(database,callback){
|
||||||
}
|
}
|
||||||
callback(go)
|
callback(go)
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function readGO(database){
|
||||||
|
var obj;
|
||||||
|
readGlobaloptions(database,function(go){obj=go});
|
||||||
|
return obj
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateglobaloptions(database,key,value){
|
function updateglobaloptions(database,key,value){
|
||||||
|
@ -334,6 +357,17 @@ function deleteConfig(database,userobj,callback) { // delete user data from DB
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateNewsviewtype(database, newsViewtype){
|
||||||
|
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||||
|
if(!db) { return; }
|
||||||
|
db.transaction( function(tx) {
|
||||||
|
var rs1 = tx.executeSql('INSERT INTO globaloptions (k,v) VALUES (?,?)', ["newsViewType",newsViewtype])
|
||||||
|
var rs2 = tx.executeSql('UPDATE config SET newsViewType=""');
|
||||||
|
Helperjs.showMessage(qsTr("Changelog"),qsTr("Setting view type of news has moved from account page to config page."),root)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function cleanNews(database,callback){
|
function cleanNews(database,callback){
|
||||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||||
db.transaction( function(tx) {
|
db.transaction( function(tx) {
|
||||||
|
@ -611,7 +645,7 @@ function showGroups(){
|
||||||
for (var i=0;i<groups.length;i++){
|
for (var i=0;i<groups.length;i++){
|
||||||
groupitems=groupitems+"MenuItem{text:'"+groups[i].groupname+"'; onTriggered: Service.getGroupnews("+groups[i].gid+")}"
|
groupitems=groupitems+"MenuItem{text:'"+groups[i].groupname+"'; onTriggered: Service.getGroupnews("+groups[i].gid+")}"
|
||||||
}
|
}
|
||||||
var menuString="import QtQuick.Controls 1.4; import 'qrc:/js/service.js' as Service; Menu {"+groupitems+"}";
|
var menuString="import QtQuick.Controls 2.12; import 'qrc:/js/service.js' as Service; Menu {"+groupitems+"}";
|
||||||
var grouplistObject=Qt.createQmlObject(menuString,newsStack,"groupmenuOutput");
|
var grouplistObject=Qt.createQmlObject(menuString,newsStack,"groupmenuOutput");
|
||||||
grouplistObject.popup()
|
grouplistObject.popup()
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -36,7 +36,7 @@ Item {
|
||||||
id: calendarDay
|
id: calendarDay
|
||||||
width:7*mm
|
width:7*mm
|
||||||
height: 7*mm
|
height: 7*mm
|
||||||
property int dateInt:Math.floor((Date.parse(model.date)-(new Date().getTimezoneOffset() * 60 * 1000))/86400000)
|
property int dateInt: Math.floor(Date.parse(model.date)/86400000) //Math.floor((Date.parse(model.date)-(new Date().getTimezoneOffset() * 60 * 1000))/86400000)
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: placeHolder
|
id: placeHolder
|
||||||
color: 'lightblue'; antialiasing: true
|
color: 'lightblue'; antialiasing: true
|
||||||
|
@ -54,7 +54,7 @@ Item {
|
||||||
}
|
}
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id:eventRect
|
id:eventRect
|
||||||
color:"black"
|
color:"grey"
|
||||||
anchors.margins: 0.5*mm
|
anchors.margins: 0.5*mm
|
||||||
anchors.bottom: calendarDay.bottom
|
anchors.bottom: calendarDay.bottom
|
||||||
width: parent.width-mm
|
width: parent.width-mm
|
||||||
|
@ -64,15 +64,9 @@ Item {
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: calendarDay
|
anchors.fill: calendarDay
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var eventDate=[];
|
|
||||||
var idx = eventdays.indexOf(dateInt);
|
|
||||||
while (idx != -1) {
|
|
||||||
eventDate.push(idx);
|
|
||||||
idx = eventdays.indexOf(dateInt,idx + 1)
|
|
||||||
}
|
|
||||||
var component = Qt.createComponent("qrc:/qml/calendarqml/EventList.qml");
|
var component = Qt.createComponent("qrc:/qml/calendarqml/EventList.qml");
|
||||||
if (component.status== Component.Ready){
|
if (component.status== Component.Ready){
|
||||||
var eventlist = component.createObject(calendartab,{"daylist": eventDate})}
|
var eventlist = component.createObject(calendartab,{"dayint": dateInt})}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import QtQml 2.2
|
import QtQml 2.2
|
||||||
import Qt.labs.calendar 1.0
|
import Qt.labs.calendar 1.0
|
||||||
//import QtQuick.Controls 1.2 as Oldcontrol
|
//import QtQuick.Controls 1.2 as Oldcontrol
|
||||||
|
@ -51,7 +51,7 @@ Rectangle {
|
||||||
property int offsetTime: currentTime.getTimezoneOffset() * 60 * 1000
|
property int offsetTime: currentTime.getTimezoneOffset() * 60 * 1000
|
||||||
property var events:[]
|
property var events:[]
|
||||||
property var eventdays:[]
|
property var eventdays:[]
|
||||||
//onEventdaysChanged: print(JSON.stringify(eventdays))
|
|
||||||
|
|
||||||
function showEvents(friend){
|
function showEvents(friend){
|
||||||
if(friend=="backButton"){Service.eventsfromdb(db,login.username,function(eventArray,dayArray){
|
if(friend=="backButton"){Service.eventsfromdb(db,login.username,function(eventArray,dayArray){
|
||||||
|
@ -94,9 +94,24 @@ Rectangle {
|
||||||
width: 8*mm
|
width: 8*mm
|
||||||
text:"\uf021"
|
text:"\uf021"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
Service.getEvents(db,login, calendartab,function(){
|
calBusy.running=true;
|
||||||
showEvents("")
|
updatenews.setDatabase();
|
||||||
})}}
|
updatenews.login();
|
||||||
|
updatenews.events();
|
||||||
|
// Service.getEvents(db,login, calendartab,function(){
|
||||||
|
// showEvents("")
|
||||||
|
// })
|
||||||
|
}}
|
||||||
|
|
||||||
|
Connections{
|
||||||
|
target: updatenews
|
||||||
|
|
||||||
|
onSuccess:{
|
||||||
|
calBusy.running=false;
|
||||||
|
showEvents("")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
MButton{
|
MButton{
|
||||||
id: calendartabstatusButton
|
id: calendartabstatusButton
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
@ -44,7 +44,7 @@ Rectangle{
|
||||||
x:mm
|
x:mm
|
||||||
y:mm
|
y:mm
|
||||||
property var daylist:[]
|
property var daylist:[]
|
||||||
|
property int dayint: 0
|
||||||
MButton{
|
MButton{
|
||||||
id:closeButton
|
id:closeButton
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
@ -71,10 +71,12 @@ Rectangle{
|
||||||
id: eventModel
|
id: eventModel
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted:{
|
Component.onCompleted:{//print("daylist"+JSON.stringify(daylist) + dayint)
|
||||||
for (var i=0; i<daylist.length;i++){
|
var currentevents=events.filter(event=>(dayint>=event.startday)&&(dayint<=event.endday));
|
||||||
var liststate="";if(daylist.length<2){liststate="large"}
|
for (var i=0; i<currentevents.length;i++){
|
||||||
eventModel.append({"event":events[daylist[i]],"eventstatus":liststate});
|
var liststate="";if(currentevents.length<2){liststate="large"};
|
||||||
|
//print(JSON.stringify(events[daylist[i]]));
|
||||||
|
eventModel.append({"event":currentevents[i],"eventstatus":liststate});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,26 +88,39 @@ Rectangle{
|
||||||
height:eventNameText.height+eventDetailsText.height+mm
|
height:eventNameText.height+eventDetailsText.height+mm
|
||||||
border.color: "light grey"
|
border.color: "light grey"
|
||||||
border.width: 1
|
border.width: 1
|
||||||
Text {
|
Image {
|
||||||
|
id:profileImage
|
||||||
|
source: ((event.eventOwner.profile_image!="") && (typeof(event.eventOwner.profile_image)=="string"))? "file://"+event.eventOwner.profile_image : event.eventOwner.profile_image_url
|
||||||
|
x:1
|
||||||
|
y:1
|
||||||
|
width: 7*mm
|
||||||
|
height: 7*mm
|
||||||
|
//radius:mm
|
||||||
|
|
||||||
|
onStatusChanged: if (profileImage.status == Image.Error) {source="qrc:/images/defaultcontact.jpg"}
|
||||||
|
}
|
||||||
|
Text {
|
||||||
id:eventNameText
|
id:eventNameText
|
||||||
x:mm
|
x: 8*mm
|
||||||
width:parent.width
|
width:parent.width-8*mm
|
||||||
height:contentHeight
|
height:contentHeight
|
||||||
text: new Date(event.start+calendarrectangle.offsetTime).toLocaleTimeString()+": "+event.title
|
text: new Date(event.start).toLocaleString(Qt.locale(),Locale.NarrowFormat)+ " - " +(event.end>0?new Date(event.end).toLocaleString(Qt.locale(),Locale.NarrowFormat):" ")+": "+event.title //+calendarrectangle.offsetTime
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
wrapMode:Text.Wrap
|
wrapMode:Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
id:eventDetailsText
|
id:eventDetailsText
|
||||||
x:mm
|
x:8*mm
|
||||||
z:4
|
z:4
|
||||||
width: parent.width
|
width: parent.width-8*mm
|
||||||
height: contentHeight
|
height: contentHeight
|
||||||
text: status==""?"":Qt.atob(event.html)
|
textFormat: Text.RichText
|
||||||
|
text: status==""?"":Qt.atob(event.desc) + (event.location==""?"":"<br><br>"+qsTr("Location")+": "+event.location)//Qt.atob(event.html)
|
||||||
anchors.top: eventNameText.bottom
|
anchors.top: eventNameText.bottom
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
wrapMode:Text.Wrap
|
wrapMode:Text.Wrap
|
||||||
|
onLinkActivated:{Qt.openUrlExternally(link)}
|
||||||
}
|
}
|
||||||
MouseArea{
|
MouseArea{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
import QtQuick 2.7
|
import QtQuick 2.7
|
||||||
import QtQuick.Dialogs 1.2
|
import QtQuick.Dialogs 1.2
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
|
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
import "qrc:/js/layout.js" as Layoutjs
|
import "qrc:/js/layout.js" as Layoutjs
|
||||||
|
@ -61,6 +61,8 @@ Page{
|
||||||
x: mm
|
x: mm
|
||||||
y: mm
|
y: mm
|
||||||
width: root.width/2
|
width: root.width/2
|
||||||
|
visible: users.length>0
|
||||||
|
|
||||||
onClicked:{
|
onClicked:{
|
||||||
var useritems="";
|
var useritems="";
|
||||||
for (var i=0;i<accountPage.users.length;i++){
|
for (var i=0;i<accountPage.users.length;i++){
|
||||||
|
@ -73,11 +75,10 @@ Page{
|
||||||
username.text= obj.username;
|
username.text= obj.username;
|
||||||
password.text=Qt.atob(obj.password);
|
password.text=Qt.atob(obj.password);
|
||||||
imagestore.text=obj.imagestore;
|
imagestore.text=obj.imagestore;
|
||||||
newsTypeField.text=obj.newsViewType;
|
|
||||||
if( obj.isActive==0){userButton.font.bold='true'} else {userButton.font.bold='false'}
|
if( obj.isActive==0){userButton.font.bold='true'} else {userButton.font.bold='false'}
|
||||||
},'username','"+ accountPage.users[i].username+"')}}"
|
},'username','"+ accountPage.users[i].username+"')}}"
|
||||||
}
|
}
|
||||||
var menuString="import QtQuick.Controls 2.4;import 'qrc:/js/service.js' as Service; Menu {"+useritems+"}";
|
var menuString="import QtQuick.Controls 2.12;import 'qrc:/js/service.js' as Service; Menu {"+useritems+"}";
|
||||||
var userlistObject=Qt.createQmlObject(menuString,accountPage,"usermenuOutput")
|
var userlistObject=Qt.createQmlObject(menuString,accountPage,"usermenuOutput")
|
||||||
userlistObject.popup() }
|
userlistObject.popup() }
|
||||||
}
|
}
|
||||||
|
@ -109,11 +110,11 @@ Page{
|
||||||
// font.pixelSize:3*mm
|
// font.pixelSize:3*mm
|
||||||
// x: 4*mm; y: 50*mm
|
// x: 4*mm; y: 50*mm
|
||||||
// }
|
// }
|
||||||
Text {
|
// Text {
|
||||||
text: qsTr("News as")
|
// text: qsTr("News as")
|
||||||
font.pixelSize:3*mm
|
// font.pixelSize:3*mm
|
||||||
x: 4*mm; y: 50*mm
|
// x: 4*mm; y: 50*mm
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
// Text {
|
// Text {
|
||||||
|
@ -173,7 +174,7 @@ Page{
|
||||||
|
|
||||||
Rectangle{
|
Rectangle{
|
||||||
color: "light grey"
|
color: "light grey"
|
||||||
x: 4*mm; y: 23.5*mm; width: root.width-14*mm; height: 5*mm;
|
x: 4*mm; y: 23.5*mm; width: root.width-6*mm; height: 5*mm;
|
||||||
TextInput {
|
TextInput {
|
||||||
id: username
|
id: username
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -186,14 +187,14 @@ Page{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Button {
|
// Button {
|
||||||
x: root.width-9*mm; y: 23.5*mm; width:5*mm; height:5*mm
|
// x: root.width-9*mm; y: 23.5*mm; width:5*mm; height:5*mm
|
||||||
text: "\uf234"
|
// text: "\uf234"
|
||||||
font.pixelSize: 3*mm
|
// font.pixelSize: 3*mm
|
||||||
onClicked: {
|
// onClicked: {
|
||||||
root.push("qrc:/qml/configqml/RegisterPage.qml",{url:servername.text+"/register?nickname="+username.getText(0,username.length)})
|
// root.push("qrc:/qml/configqml/RegisterPage.qml",{url:servername.text+"/register?nickname="+username.getText(0,username.length)})
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
Rectangle{
|
Rectangle{
|
||||||
color: "light grey"
|
color: "light grey"
|
||||||
|
@ -261,20 +262,20 @@ Page{
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
Rectangle{
|
// Rectangle{
|
||||||
x: 4*mm; y: 53.5*mm; width: newsTypeField.contentWidth+2*mm; height: 5*mm;
|
// x: 4*mm; y: 53.5*mm; width: newsTypeField.contentWidth+2*mm; height: 5*mm;
|
||||||
color:"light grey"
|
// color:"light grey"
|
||||||
Text{
|
// Text{
|
||||||
id: newsTypeField
|
// id: newsTypeField
|
||||||
anchors.fill: parent
|
// anchors.fill: parent
|
||||||
font.pixelSize:3*mm
|
// font.pixelSize:3*mm
|
||||||
text:"Conversations"
|
// text:"Conversations"
|
||||||
}
|
// }
|
||||||
MouseArea{
|
// MouseArea{
|
||||||
anchors.fill:parent
|
// anchors.fill:parent
|
||||||
onClicked:newstypemenu.popup()
|
// onClicked:newstypemenu.popup()
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
BusyIndicator{
|
BusyIndicator{
|
||||||
id: accountBusy
|
id: accountBusy
|
||||||
|
@ -306,7 +307,7 @@ Page{
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
onClicked:{
|
onClicked:{
|
||||||
accountBusy.running=true;
|
accountBusy.running=true;
|
||||||
var userconfig={server: servername.text, username: username.text, password:Qt.btoa(password.text), imagestore:imagestore.text, maxnews:"",interval: "",newsViewType:newsTypeField.text};
|
var userconfig={server: servername.text, username: username.text, password:Qt.btoa(password.text), imagestore:imagestore.text, maxnews:"",interval: ""};
|
||||||
var errormessage="";
|
var errormessage="";
|
||||||
if (servername.text==""){errormessage=qsTr("No server given! ")}
|
if (servername.text==""){errormessage=qsTr("No server given! ")}
|
||||||
else if (username.text==""){errormessage+=qsTr("No nickname given! ")}
|
else if (username.text==""){errormessage+=qsTr("No nickname given! ")}
|
||||||
|
@ -322,6 +323,7 @@ Page{
|
||||||
Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password!"),root)
|
Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password!"),root)
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
if (users.length==0){Service.setDefaultOptions(db);}
|
||||||
filesystem.Directory=userconfig.imagestore;
|
filesystem.Directory=userconfig.imagestore;
|
||||||
filesystem.makeDir("contacts");
|
filesystem.makeDir("contacts");
|
||||||
filesystem.makeDir("albums");
|
filesystem.makeDir("albums");
|
||||||
|
@ -352,6 +354,7 @@ Page{
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
x: parent.width/2+2*mm; y: mm; width: 5*mm; height: 8*mm;
|
x: parent.width/2+2*mm; y: mm; width: 5*mm; height: 8*mm;
|
||||||
|
visible: users.length>0
|
||||||
text: "-"
|
text: "-"
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
onClicked:{
|
onClicked:{
|
||||||
|
@ -368,7 +371,7 @@ Page{
|
||||||
password.text="";
|
password.text="";
|
||||||
imagestore.text="";
|
imagestore.text="";
|
||||||
//maxNews.value=0;
|
//maxNews.value=0;
|
||||||
newsTypeField.text="Conversations";
|
//newsTypeField.text="Conversations";
|
||||||
//messageIntervalSlider.value=30;
|
//messageIntervalSlider.value=30;
|
||||||
userButton.text=qsTr("User");
|
userButton.text=qsTr("User");
|
||||||
Helperjs.readData(db,"config","",function(storedUsers){
|
Helperjs.readData(db,"config","",function(storedUsers){
|
||||||
|
@ -381,6 +384,7 @@ Page{
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
x: parent.width/2+8*mm; y: mm; width: 5*mm; height: 8*mm;
|
x: parent.width/2+8*mm; y: mm; width: 5*mm; height: 8*mm;
|
||||||
|
visible: users.length>0
|
||||||
text: "+"
|
text: "+"
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
onClicked:{
|
onClicked:{
|
||||||
|
@ -391,7 +395,7 @@ Page{
|
||||||
password.text=""
|
password.text=""
|
||||||
imagestore.text=""
|
imagestore.text=""
|
||||||
//maxNews.value=0
|
//maxNews.value=0
|
||||||
newsTypeField.text="Conversations"
|
//newsTypeField.text="Conversations"
|
||||||
//messageIntervalSlider.value=30
|
//messageIntervalSlider.value=30
|
||||||
userButton.text=qsTr("User")
|
userButton.text=qsTr("User")
|
||||||
}
|
}
|
||||||
|
@ -409,6 +413,7 @@ Page{
|
||||||
id:closeButton
|
id:closeButton
|
||||||
height: 8*mm
|
height: 8*mm
|
||||||
width: 5*mm
|
width: 5*mm
|
||||||
|
visible: users.length>0
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: 1*mm
|
anchors.topMargin: 1*mm
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -417,19 +422,19 @@ Page{
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
onClicked:{root.pop()}
|
onClicked:{root.pop()}
|
||||||
}
|
}
|
||||||
Menu {
|
// Menu {
|
||||||
id:newstypemenu
|
// id:newstypemenu
|
||||||
MenuItem {
|
// MenuItem {
|
||||||
font.pixelSize: 3*mm
|
// font.pixelSize: 3*mm
|
||||||
text: qsTr("Timeline")
|
// text: qsTr("Timeline")
|
||||||
onTriggered: {newsTypeField.text="Timeline"}
|
// onTriggered: {newsTypeField.text="Timeline"}
|
||||||
}
|
// }
|
||||||
MenuItem {
|
// MenuItem {
|
||||||
font.pixelSize: 3*mm
|
// font.pixelSize: 3*mm
|
||||||
text: qsTr("Conversations")
|
// text: qsTr("Conversations")
|
||||||
onTriggered: {newsTypeField.text="Conversations"}
|
// onTriggered: {newsTypeField.text="Conversations"}
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
try{Helperjs.readData(db,"config","",function(storedUsers){
|
try{Helperjs.readData(db,"config","",function(storedUsers){
|
||||||
|
@ -445,12 +450,12 @@ Page{
|
||||||
password.text=Qt.atob(obj.password);
|
password.text=Qt.atob(obj.password);
|
||||||
imagestore.text=obj.imagestore;
|
imagestore.text=obj.imagestore;
|
||||||
//maxNews.value=obj.maxnews;
|
//maxNews.value=obj.maxnews;
|
||||||
newsTypeField.text=obj.newsViewType;
|
//newsTypeField.text=obj.newsViewType;
|
||||||
//messageIntervalSlider.value=obj.timerInterval;
|
//messageIntervalSlider.value=obj.timerInterval;
|
||||||
if( obj.isActive==0){userButton.font.bold='true'} else {userButton.font.bold='false'}
|
if( obj.isActive==0){userButton.font.bold='true'} else {userButton.font.bold='false'}
|
||||||
},"isActive",0)
|
},"isActive",0)
|
||||||
})}
|
})}
|
||||||
catch (e){print(e)
|
catch (e){//print("onCompleted" +users.count +e)
|
||||||
// Helperjs.friendicaWebRequest("https://dir.friendica.social/servers/surprise",accountPage,function(html){
|
// Helperjs.friendicaWebRequest("https://dir.friendica.social/servers/surprise",accountPage,function(html){
|
||||||
// print(html);
|
// print(html);
|
||||||
// var bpos=html.indexOf("base ");
|
// var bpos=html.indexOf("base ");
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -31,11 +31,9 @@
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.11
|
||||||
import QtQuick.Dialogs 1.2
|
import QtQuick.Dialogs 1.2
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
|
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
//import "qrc:/js/layout.js" as Layoutjs
|
|
||||||
//import "qrc:/js/helper.js" as Helperjs
|
|
||||||
import "qrc:/qml/configqml"
|
import "qrc:/qml/configqml"
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
||||||
|
@ -43,85 +41,92 @@ Page{
|
||||||
//anchors.fill: parent
|
//anchors.fill: parent
|
||||||
width:root.width
|
width:root.width
|
||||||
height:root.height
|
height:root.height
|
||||||
//contentHeight: configBackground.height
|
|
||||||
//boundsBehavior: Flickable.StopAtBounds
|
|
||||||
|
|
||||||
// Rectangle{
|
|
||||||
// id:configBackground
|
|
||||||
// color: "white"
|
|
||||||
// anchors.fill: parent
|
|
||||||
// width:parent.width
|
|
||||||
// height:Math.max(90*mm,root.height-12*mm)
|
|
||||||
// property var users:[]
|
|
||||||
// property bool registeredUser: true
|
|
||||||
// property var userdata: ({})
|
|
||||||
|
|
||||||
// Text {
|
Rectangle{
|
||||||
// text: qsTr("Image dir.")
|
x: 4*mm; y:13.5*mm; width: parent.width - 14*mm; height: 5*mm;
|
||||||
// //text: qsTr("Max. News")
|
color:"light grey"
|
||||||
// font.pixelSize:3*mm
|
radius: 0.5*mm
|
||||||
// x: 4*mm; y: 10*mm
|
Text{
|
||||||
// }
|
anchors.fill: parent
|
||||||
Text {
|
font.pixelSize:3*mm
|
||||||
text: qsTr("Max. News")
|
text:qsTr("Sync")
|
||||||
//text: qsTr("News as")
|
}
|
||||||
font.pixelSize:3*mm
|
MouseArea{
|
||||||
x: 4*mm; y:10*mm
|
anchors.fill:parent
|
||||||
|
onClicked:root.push("qrc:qml/configqml/SyncConfig.qml");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
// Text {
|
text: qsTr("News as")
|
||||||
// text: qsTr("Show Website")
|
font.pixelSize:3*mm
|
||||||
// x: 4*mm; y: 40*mm; width: 20*mm
|
x: 4*mm; y: 20*mm
|
||||||
// }
|
}
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
x: 4*mm; y: 23.5*mm; width: newsTypeField.contentWidth+2*mm; height: 5*mm;
|
||||||
|
color:"light grey"
|
||||||
|
radius: 0.5*mm
|
||||||
|
Text{
|
||||||
|
id: newsTypeField
|
||||||
|
anchors.fill: parent
|
||||||
|
font.pixelSize:3*mm
|
||||||
|
text:qsTr("Conversations")
|
||||||
|
}
|
||||||
|
MouseArea{
|
||||||
|
anchors.fill:parent
|
||||||
|
onClicked:newstypemenu.popup()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Menu {
|
||||||
|
id:newstypemenu
|
||||||
|
MenuItem {
|
||||||
|
font.pixelSize: 3*mm
|
||||||
|
text: qsTr("Timeline")
|
||||||
|
onTriggered: {newsTypeField.text=qsTr("Timeline");
|
||||||
|
Service.updateglobaloptions(root.db,"newsViewType","Timeline");}
|
||||||
|
}
|
||||||
|
MenuItem {
|
||||||
|
font.pixelSize: 3*mm
|
||||||
|
text: qsTr("Conversations")
|
||||||
|
onTriggered: {newsTypeField.text=qsTr("Conversations");
|
||||||
|
Service.updateglobaloptions(root.db,"newsViewType","Conversations");}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Rectangle{color: "light grey"; x: 4*mm; y: 13.5*mm; width: root.width-14*mm; height: 5*mm;}
|
Text {
|
||||||
// Flickable {
|
text: qsTr("Max. News")
|
||||||
// id: imagestoreFlickable
|
font.pixelSize:3*mm
|
||||||
// x: 4*mm; y: 13.5*mm; width: root.width-14*mm; height: 5*mm;
|
x: 4*mm; y:30*mm
|
||||||
// clip: true
|
}
|
||||||
// TextInput {
|
|
||||||
// id: imagestore
|
|
||||||
// width: imagestoreFlickable.width
|
|
||||||
// height: imagestoreFlickable.height
|
|
||||||
// font.pixelSize:3*mm
|
|
||||||
// wrapMode: TextEdit.NoWrap
|
|
||||||
// onCursorRectangleChanged: Layoutjs.ensureVisibility(cursorRectangle,imagestoreFlickable)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// FileDialog {
|
|
||||||
// id: imagestoreDialog
|
|
||||||
// title: "Please choose a directory"
|
|
||||||
// folder: shortcuts.pictures
|
|
||||||
// selectFolder: true
|
|
||||||
// onAccepted: {
|
|
||||||
// var imagestoreString=imagestoreDialog.folder.toString();
|
|
||||||
// imagestoreString=imagestoreString.replace(/^(file:\/{2})/,"")+"/"
|
|
||||||
// imagestore.text=imagestoreString
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Button {
|
|
||||||
// x: root.width-9*mm; y: 13.5*mm; width: 7*mm; height: 8*mm;
|
|
||||||
// text: "..."
|
|
||||||
// onClicked:
|
|
||||||
// {imagestoreDialog.open()}
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
Slider{ id: maxNews
|
Slider{ id: maxNews
|
||||||
x:19*mm; y: 13.5*mm;width: root.width/2;height:5*mm
|
x:19*mm; y: 33.5*mm;width: root.width/2;height:5*mm
|
||||||
from: 0;to:2000; stepSize: 100
|
from: 0;to:2000; stepSize: 100
|
||||||
value: root.globaloptions.hasOwnProperty("max_news")?root.globaloptions.max_news:1000
|
value: root.globaloptions.hasOwnProperty("max_news")?root.globaloptions.max_news:1000
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle{color: "light grey"; x: 4*mm; y: 33.5*mm; width: 9*mm; height: 5*mm;
|
||||||
|
radius: 0.5*mm
|
||||||
|
TextEdit{id:maxNewsText;
|
||||||
|
anchors.fill: parent
|
||||||
|
font.pixelSize:3*mm
|
||||||
|
verticalAlignment:TextEdit.AlignRight
|
||||||
|
text:maxNews.value
|
||||||
|
selectByMouse: true
|
||||||
|
onTextChanged: {
|
||||||
|
Service.updateglobaloptions(root.db,"max_news",text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CheckBox{
|
CheckBox{
|
||||||
id: nsfwCheckbox
|
id: nsfwCheckbox
|
||||||
x: 4*mm
|
x: 4*mm
|
||||||
y: 33.5*mm
|
y: 43.5*mm
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
//width:5*mm
|
//width:5*mm
|
||||||
text: qsTr("Hide #nsfw?")
|
text: qsTr("Hide #nsfw?")
|
||||||
|
@ -137,69 +142,6 @@ Page{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle{color: "light grey"; x: 4*mm; y: 13.5*mm; width: 9*mm; height: 5*mm;
|
|
||||||
radius: 0.5*mm
|
|
||||||
TextEdit{id:maxNewsText;
|
|
||||||
anchors.fill: parent
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
verticalAlignment:TextEdit.AlignRight
|
|
||||||
text:maxNews.value
|
|
||||||
focus: true
|
|
||||||
selectByMouse: true
|
|
||||||
onTextChanged: {
|
|
||||||
Service.updateglobaloptions(root.db,"max_news",text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Rectangle{
|
|
||||||
x: 4*mm; y:23.5*mm; width: parent.width - 14*mm; height: 5*mm;
|
|
||||||
color:"light grey"
|
|
||||||
radius: 0.5*mm
|
|
||||||
Text{
|
|
||||||
anchors.fill: parent
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
text:qsTr("Sync")
|
|
||||||
}
|
|
||||||
MouseArea{
|
|
||||||
anchors.fill:parent
|
|
||||||
onClicked:root.push("qrc:qml/configqml/SyncConfig.qml");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Slider{ id: messageIntervalSlider
|
|
||||||
// x:22*mm; y: 73.5*mm;width: root.width/2;height:5*mm
|
|
||||||
// from: 0;to:120; stepSize: 15
|
|
||||||
// }
|
|
||||||
// Rectangle{
|
|
||||||
// x: 4*mm; y: 73.5*mm; width: 9*mm; height: 5*mm;
|
|
||||||
// TextEdit{
|
|
||||||
// id: messageIntervalField
|
|
||||||
// anchors.fill: parent
|
|
||||||
// font.pixelSize:3*mm
|
|
||||||
// verticalAlignment:TextEdit.AlignRight
|
|
||||||
// text:messageIntervalSlider.value
|
|
||||||
// focus: true
|
|
||||||
// selectByMouse: true
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// Text{x: 14*mm; y: 73.5*mm; width: 5*mm; height: 5*mm;
|
|
||||||
// font.pixelSize:3*mm
|
|
||||||
// text:qsTr("Min.")
|
|
||||||
// }
|
|
||||||
|
|
||||||
// CheckBox{
|
|
||||||
// id:showwebsiteCheckbox
|
|
||||||
// x:35*mm;y:80*mm
|
|
||||||
// onClicked:{
|
|
||||||
// if (checked==true){
|
|
||||||
// Service.updateglobaloptions(root.db,"showWebsiteForLinks","true")
|
|
||||||
// root.globaloptions.showWebsiteForLinks="true"
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// Service.updateglobaloptions(root.db,"showWebsiteForLinks","false")
|
|
||||||
// root.globaloptions.showWebsiteForLinks="false"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
MButton {
|
MButton {
|
||||||
anchors.right: closeButton.left; anchors.rightMargin: mm;
|
anchors.right: closeButton.left; anchors.rightMargin: mm;
|
||||||
|
@ -224,22 +166,4 @@ Page{
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
onClicked:{root.pop()}
|
onClicked:{root.pop()}
|
||||||
}
|
}
|
||||||
// Menu {
|
|
||||||
// id:newstypemenu
|
|
||||||
// MenuItem {
|
|
||||||
// text: qsTr("Timeline")
|
|
||||||
// onTriggered: {newsTypeField.text="Timeline"}
|
|
||||||
// }
|
|
||||||
// MenuItem {
|
|
||||||
// text: qsTr("Conversations")
|
|
||||||
// onTriggered: {newsTypeField.text="Conversations"}
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Component.onCompleted: {
|
|
||||||
// Service.readGlobaloptions(db,function(go){
|
|
||||||
// if(go.hasOwnProperty("max_news")){maxNews.value=go.max_news}else{maxNews.value=1000}
|
|
||||||
// //if (root.globaloptions.showWebsiteForLinks!="false"){showwebsiteCheckbox.checked=true}
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,482 +0,0 @@
|
||||||
// This file is part of Friendiqa
|
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
|
||||||
//
|
|
||||||
// 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 <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
import QtQuick 2.7
|
|
||||||
import QtQuick.Dialogs 1.2
|
|
||||||
import QtQuick.Controls 1.2
|
|
||||||
|
|
||||||
import "qrc:/js/service.js" as Service
|
|
||||||
import "qrc:/js/layout.js" as Layoutjs
|
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
|
||||||
import "qrc:/qml/configqml"
|
|
||||||
import "qrc:/qml/genericqml"
|
|
||||||
|
|
||||||
StackView{
|
|
||||||
id: configStack
|
|
||||||
anchors.fill:parent
|
|
||||||
initialItem: Flickable{
|
|
||||||
width:root.width-5*mm
|
|
||||||
height:root.height-12*mm
|
|
||||||
contentHeight: configBackground.height
|
|
||||||
boundsBehavior: Flickable.StopAtBounds
|
|
||||||
|
|
||||||
Rectangle{
|
|
||||||
id:configBackground
|
|
||||||
color: "white"
|
|
||||||
width:parent.width
|
|
||||||
height:Math.max(90*mm,root.height-12*mm)
|
|
||||||
property var users:[]
|
|
||||||
property bool registeredUser: true
|
|
||||||
property var userdata: ({})
|
|
||||||
|
|
||||||
function setServericon(server){
|
|
||||||
try {Helperjs.friendicaWebRequest(server+"/api/statusnet/config",configBackground, function (obj){
|
|
||||||
var serverdata = JSON.parse(obj);
|
|
||||||
servericon.visible=true;
|
|
||||||
servericon.source=serverdata.site.logo})} catch(e){print(e)}
|
|
||||||
}
|
|
||||||
|
|
||||||
BlueButton{
|
|
||||||
id:userButton
|
|
||||||
text:qsTr("User")
|
|
||||||
y:mm
|
|
||||||
width: root.width/2
|
|
||||||
onClicked:{
|
|
||||||
var useritems="";
|
|
||||||
for (var i=0;i<configBackground.users.length;i++){
|
|
||||||
|
|
||||||
useritems=useritems+"MenuItem{text:'"+configBackground.users[i].username+
|
|
||||||
"'; onTriggered: {Service.readConfig(db,function(obj){
|
|
||||||
configBackground.registeredUser=true;
|
|
||||||
userButton.text=obj.username;
|
|
||||||
servername.text=obj.server;
|
|
||||||
configBackground.setServericon(obj.server);
|
|
||||||
username.text= obj.username;
|
|
||||||
password.text=Qt.atob(obj.password);
|
|
||||||
imagestore.text=obj.imagestore;
|
|
||||||
maxNews.value=obj.maxnews;
|
|
||||||
newsTypeField.text=obj.newsViewType;
|
|
||||||
if( obj.isActive==0){userButton.fontColor='black'} else {userButton.fontColor='grey'}
|
|
||||||
},'username','"+configBackground.users[i].username+"')}}"
|
|
||||||
}
|
|
||||||
var menuString="import QtQuick.Controls 1.4;import 'qrc:/js/service.js' as Service; Menu {"+useritems+"}";
|
|
||||||
var userlistObject=Qt.createQmlObject(menuString,configBackground,"usermenuOutput")
|
|
||||||
userlistObject.popup() }
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
text: qsTr("Server")
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
x: 4*mm; y: 10*mm
|
|
||||||
}
|
|
||||||
Text {
|
|
||||||
text: qsTr("Nickname")
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
x: 4*mm; y: 20*mm
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
text: qsTr("Password")
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
x: 4*mm; y: 30*mm
|
|
||||||
}
|
|
||||||
Text {
|
|
||||||
text: qsTr("Image dir.")
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
x: 4*mm; y: 40*mm
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
text: qsTr("Max. News")
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
x: 4*mm; y: 50*mm
|
|
||||||
}
|
|
||||||
Text {
|
|
||||||
text: qsTr("News as")
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
x: 4*mm; y: 60*mm
|
|
||||||
}
|
|
||||||
Text {
|
|
||||||
text: qsTr("Sync Interval (0=None)")
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
//visible: false
|
|
||||||
x: 4*mm; y: 70*mm; //width:35*mm;wrapMode: Text.Wrap
|
|
||||||
}
|
|
||||||
|
|
||||||
// Text {
|
|
||||||
// text: qsTr("Show Website")
|
|
||||||
// x: 4*mm; y:80*mm; width: 20*mm
|
|
||||||
// }
|
|
||||||
|
|
||||||
Image{
|
|
||||||
id:servericon
|
|
||||||
x:4*mm;y:13.5*mm
|
|
||||||
width:5*mm; height: 5*mm
|
|
||||||
visible: false
|
|
||||||
source:""
|
|
||||||
MouseArea{
|
|
||||||
anchors.fill:parent
|
|
||||||
onClicked:{
|
|
||||||
Service.showServerConfig(servername.text, configBackground, function(configString){
|
|
||||||
var serverconfigObject=Qt.createQmlObject(configString,configBackground,"serverconfigOutput");})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BlueButton{
|
|
||||||
id:serverSearchButton
|
|
||||||
text:"\uf002"
|
|
||||||
x:4*mm
|
|
||||||
y:13.5*mm
|
|
||||||
width: 5*mm; height:5*mm
|
|
||||||
visible: servericon.visible?false:true
|
|
||||||
onClicked:{Qt.openUrlExternally(Qt.resolvedUrl("https://dir.friendica.social/servers"))}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle{color: "light grey"; x: 10*mm; y: 13.5*mm; width: root.width-12*mm; height: 5*mm;}
|
|
||||||
Flickable {
|
|
||||||
id: servernameFlickable
|
|
||||||
x: 10*mm; y: 13.5*mm; width: root.width-12*mm; height: 5*mm;
|
|
||||||
contentWidth: servername.paintedWidth
|
|
||||||
contentHeight: servername.paintedHeight
|
|
||||||
clip: true
|
|
||||||
TextEdit {
|
|
||||||
id: servername
|
|
||||||
width: servernameFlickable.width
|
|
||||||
height: servernameFlickable.height
|
|
||||||
focus: true
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
text:"https://..."
|
|
||||||
onEditingFinished:{
|
|
||||||
if((servername.text).substring(0,14) =="https://...http"){
|
|
||||||
serverstring.text= (serverstring.text).substring(11)
|
|
||||||
}
|
|
||||||
configBackground.setServericon(servername.text)
|
|
||||||
}
|
|
||||||
onCursorRectangleChanged: Layoutjs.ensureVisibility(cursorRectangle,servernameFlickable)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle{
|
|
||||||
color: "light grey"
|
|
||||||
x: 4*mm; y: 23.5*mm; width: root.width-14*mm; height: 5*mm;
|
|
||||||
TextInput {
|
|
||||||
id: username
|
|
||||||
anchors.fill: parent
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
selectByMouse: true
|
|
||||||
onEditingFinished:{
|
|
||||||
if (username.text.indexOf('@')>-1){
|
|
||||||
Helperjs.showMessage(qsTr("Error"),qsTr("Nicknames containing @ symbol currently not supported"),configBackground)
|
|
||||||
}
|
|
||||||
// Helperjs.friendicaWebRequest(servername.text+'/api/users/show?screen_name='+username.text,configBackground,function(obj){
|
|
||||||
// var screennametest=JSON.parse(obj);
|
|
||||||
// if (screennametest.hasOwnProperty('status')){
|
|
||||||
// Helperjs.showMessage(qsTr("Error"),qsTr("Nickname not registered at given server!"),configBackground);
|
|
||||||
// configBackground.registeredUser=false;
|
|
||||||
// }else{configBackground.registeredUser=true}
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
BlueButton {
|
|
||||||
x: root.width-9*mm; y: 23.5*mm; width:7*mm
|
|
||||||
text: "\uf234"
|
|
||||||
onClicked: {
|
|
||||||
configStack.push({item:"qrc:/qml/configqml/RegisterPage.qml",properties:{url:servername.text+"/register?nickname="+username.getText(0,username.length)}})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle{
|
|
||||||
color: "light grey"
|
|
||||||
x: 4*mm; y: 33.5*mm; width: root.width-6*mm; height: 5*mm;
|
|
||||||
TextInput {
|
|
||||||
id: password
|
|
||||||
anchors.fill: parent
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
selectByMouse: true
|
|
||||||
echoMode: TextInput.PasswordEchoOnEdit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle{color: "light grey"; x: 4*mm; y: 43.5*mm; width: root.width-14*mm; height: 5*mm;}
|
|
||||||
Flickable {
|
|
||||||
id: imagestoreFlickable
|
|
||||||
x: 4*mm; y: 43.5*mm; width: root.width-14*mm; height: 5*mm;
|
|
||||||
clip: true
|
|
||||||
TextInput {
|
|
||||||
id: imagestore
|
|
||||||
width: imagestoreFlickable.width
|
|
||||||
height: imagestoreFlickable.height
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
wrapMode: TextEdit.NoWrap
|
|
||||||
onCursorRectangleChanged: Layoutjs.ensureVisibility(cursorRectangle,imagestoreFlickable)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FileDialog {
|
|
||||||
id: imagestoreDialog
|
|
||||||
title: "Please choose a directory"
|
|
||||||
folder: shortcuts.pictures
|
|
||||||
selectFolder: true
|
|
||||||
onAccepted: {
|
|
||||||
var imagestoreString=imagestoreDialog.folder.toString();
|
|
||||||
imagestoreString=imagestoreString.replace(/^(file:\/{2})/,"")+"/"
|
|
||||||
imagestore.text=imagestoreString
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BlueButton {
|
|
||||||
x: root.width-9*mm; y: 43.5*mm; width: 7*mm; height: 5*mm;
|
|
||||||
text: "..."
|
|
||||||
onClicked:
|
|
||||||
{imagestoreDialog.open()}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Slider{ id: maxNews
|
|
||||||
x:19*mm; y: 53.5*mm;width: root.width/2;height:5*mm
|
|
||||||
minimumValue: 0;maximumValue:2000; stepSize: 100
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Rectangle{color: "light grey"; x: 4*mm; y: 53.5*mm; width: 9*mm; height: 5*mm;
|
|
||||||
TextEdit{id:maxNewsText;
|
|
||||||
anchors.fill: parent
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
verticalAlignment:TextEdit.AlignRight
|
|
||||||
text:maxNews.value
|
|
||||||
focus: true
|
|
||||||
selectByMouse: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle{
|
|
||||||
x: 4*mm; y: 63.5*mm; width: newsTypeField.contentWidth+2*mm; height: 5*mm;
|
|
||||||
color:"light grey"
|
|
||||||
Text{
|
|
||||||
id: newsTypeField
|
|
||||||
anchors.fill: parent
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
text:"Conversations"
|
|
||||||
}
|
|
||||||
MouseArea{
|
|
||||||
anchors.fill:parent
|
|
||||||
onClicked:newstypemenu.popup()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Slider{ id: messageIntervalSlider
|
|
||||||
x:22*mm; y: 73.5*mm;width: root.width/2;height:5*mm
|
|
||||||
minimumValue: 0;maximumValue:120; stepSize: 15
|
|
||||||
}
|
|
||||||
Rectangle{
|
|
||||||
x: 4*mm; y: 73.5*mm; width: 9*mm; height: 5*mm;
|
|
||||||
TextEdit{
|
|
||||||
id: messageIntervalField
|
|
||||||
anchors.fill: parent
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
verticalAlignment:TextEdit.AlignRight
|
|
||||||
text:messageIntervalSlider.value
|
|
||||||
focus: true
|
|
||||||
selectByMouse: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Text{x: 14*mm; y: 73.5*mm; width: 5*mm; height: 5*mm;
|
|
||||||
font.pixelSize:3*mm
|
|
||||||
text:qsTr("Min.")
|
|
||||||
}
|
|
||||||
|
|
||||||
// CheckBox{
|
|
||||||
// id:showwebsiteCheckbox
|
|
||||||
// x:35*mm;y:80*mm
|
|
||||||
// onClicked:{
|
|
||||||
// if (checked==true){
|
|
||||||
// Service.updateglobaloptions(root.db,"showWebsiteForLinks","true")
|
|
||||||
// root.globaloptions.showWebsiteForLinks="true"
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// Service.updateglobaloptions(root.db,"showWebsiteForLinks","false")
|
|
||||||
// root.globaloptions.showWebsiteForLinks="false"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
BlueButton {
|
|
||||||
x: 4*mm; y: 83.5*mm
|
|
||||||
text: qsTr("Confirm")
|
|
||||||
onClicked:{
|
|
||||||
var userconfig={server: servername.text, username: username.text, password:Qt.btoa(password.text), imagestore:imagestore.text,maxnews:maxNewsText.text,interval: messageIntervalField.text, newsViewType:newsTypeField.text};
|
|
||||||
var errormessage="";
|
|
||||||
if (servername.text==""){errormessage=qsTr("No server given! ")}
|
|
||||||
else if (username.text==""){errormessage+=qsTr("No nickname given! ")}
|
|
||||||
else if ((configBackground.registeredUser==false)){errormessage+=qsTr("Nickname not registered at given server! ")}
|
|
||||||
else if (password.text=="") {errormessage+=qsTr("No password given! ")}
|
|
||||||
else if (imagestore.text=="") {errormessage+=qsTr("No image directory given!")}
|
|
||||||
else if (maxNewsText.text=="") {errormessage+=qsTr("No maximum news number given!")}
|
|
||||||
else {errormessage=""}
|
|
||||||
if (errormessage=="") {
|
|
||||||
Helperjs.friendicaRequest(userconfig,"/api/account/verify_credentials?skip_status=true",root,function(obj){
|
|
||||||
var credentials=JSON.parse(obj);
|
|
||||||
if (credentials.hasOwnProperty('status')){
|
|
||||||
Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password!"),root)
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
filesystem.Directory=userconfig.imagestore;
|
|
||||||
filesystem.makeDir("contacts");
|
|
||||||
filesystem.makeDir("albums");
|
|
||||||
Service.storeConfig(db,userconfig);
|
|
||||||
Service.readConfig(db,function(userconfig){
|
|
||||||
Helperjs.readData(db,"config","",function(storedUsers){
|
|
||||||
storedUsers.sort(function(obj1, obj2) {
|
|
||||||
return obj1.isActive - obj2.isActive;
|
|
||||||
});
|
|
||||||
configBackground.users=storedUsers});
|
|
||||||
userButton.color="black"
|
|
||||||
//reset values
|
|
||||||
root.login=userconfig;
|
|
||||||
root.news=[];
|
|
||||||
},"isActive",0);
|
|
||||||
Service.requestProfile(userconfig,db,root,function(nc){root.newContacts=nc});
|
|
||||||
if(osSettings.osType=="Android" && userconfig.timerInterval !=0){
|
|
||||||
alarm.setAlarm(userconfig.timerInterval);
|
|
||||||
}
|
|
||||||
Helperjs.showMessage(qsTr("Success"),qsTr("Name")+": "+credentials.name+"\nScreen Name: "+credentials.screen_name,root)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
else {Helperjs.showMessage(qsTr("Error"), errormessage,root)}
|
|
||||||
}}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BlueButton {
|
|
||||||
x: root.width/2+2*mm; y: mm; width: 5*mm; height: 5*mm;
|
|
||||||
text: "-"
|
|
||||||
onClicked:{
|
|
||||||
var userconfig={server: servername.text, username: username.text, password: Qt.btoa(password.text)};
|
|
||||||
Service.deleteConfig(db,userconfig,function(){
|
|
||||||
filesystem.Directory=imagestore.text+"contacts";
|
|
||||||
filesystem.rmDir();
|
|
||||||
filesystem.Directory=imagestore.text+"albums";
|
|
||||||
filesystem.rmDir();
|
|
||||||
configBackground.registeredUser=true;
|
|
||||||
servername.text="https://...";
|
|
||||||
servericon.visible=false;
|
|
||||||
servericon.source="";
|
|
||||||
username.text="";
|
|
||||||
password.text="";
|
|
||||||
imagestore.text="";
|
|
||||||
maxNews.value=0;
|
|
||||||
newsTypeField.text="Conversations";
|
|
||||||
messageIntervalSlider.value=30;
|
|
||||||
userButton.text=qsTr("User");
|
|
||||||
Helperjs.readData(db,"config","",function(storedUsers){
|
|
||||||
storedUsers.sort(function(obj1, obj2) {
|
|
||||||
return obj1.isActive - obj2.isActive;
|
|
||||||
})
|
|
||||||
configBackground.users=storedUsers;})
|
|
||||||
})
|
|
||||||
}}
|
|
||||||
|
|
||||||
BlueButton {
|
|
||||||
x: root.width/2+8*mm; y: mm; width: 5*mm; height: 5*mm;
|
|
||||||
text: "+"
|
|
||||||
onClicked:{
|
|
||||||
configBackground.registeredUser=true;
|
|
||||||
servername.text="https://..."
|
|
||||||
servericon.visible=false;
|
|
||||||
servericon.source="";
|
|
||||||
username.text=""
|
|
||||||
password.text=""
|
|
||||||
imagestore.text=""
|
|
||||||
maxNews.value=0
|
|
||||||
newsTypeField.text="Conversations"
|
|
||||||
messageIntervalSlider.value=30
|
|
||||||
userButton.text=qsTr("User")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BlueButton {
|
|
||||||
x: root.width/2+14*mm; y: mm; width: 5*mm; height: 5*mm;
|
|
||||||
text: "?"
|
|
||||||
onClicked:{
|
|
||||||
configStack.push({item:"qrc:/qml/configqml/InfoBox.qml"});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu {
|
|
||||||
id:newstypemenu
|
|
||||||
MenuItem {
|
|
||||||
text: qsTr("Timeline")
|
|
||||||
onTriggered: {newsTypeField.text="Timeline"}
|
|
||||||
}
|
|
||||||
MenuItem {
|
|
||||||
text: qsTr("Conversations")
|
|
||||||
onTriggered: {newsTypeField.text="Conversations"}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
try{Helperjs.readData(db,"config","",function(storedUsers){
|
|
||||||
storedUsers.sort(function(obj1, obj2) {
|
|
||||||
return obj1.isActive - obj2.isActive;
|
|
||||||
})
|
|
||||||
configBackground.users=storedUsers;
|
|
||||||
Service.readConfig(db,function(obj){
|
|
||||||
userButton.text=obj.username;
|
|
||||||
servername.text=obj.server;
|
|
||||||
configBackground.setServericon(obj.server);
|
|
||||||
username.text= obj.username;
|
|
||||||
password.text=Qt.atob(obj.password);
|
|
||||||
imagestore.text=obj.imagestore;
|
|
||||||
maxNews.value=obj.maxnews;
|
|
||||||
newsTypeField.text=obj.newsViewType;
|
|
||||||
messageIntervalSlider.value=obj.timerInterval;
|
|
||||||
if( obj.isActive==0){userButton.fontColor='black'} else {userButton.fontColor='grey'}},"isActive",0
|
|
||||||
)
|
|
||||||
})
|
|
||||||
// Service.readGlobaloptions(db,function(go){
|
|
||||||
// if (root.globaloptions.showWebsiteForLinks!="false"){showwebsiteCheckbox.checked=true}
|
|
||||||
// })
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (e){print(e)
|
|
||||||
Helperjs.friendicaWebRequest("https://dir.friendica.social/servers/surprise",configBackground,function(html){
|
|
||||||
var bpos=html.indexOf("baseurl");
|
|
||||||
var baseurl=html.substring(html.indexOf("http",bpos),html.indexOf('"',html.indexOf("http",bpos)));
|
|
||||||
servername.text=baseurl
|
|
||||||
})}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
||||||
Rectangle{
|
Rectangle{
|
||||||
|
@ -43,7 +43,7 @@ Rectangle{
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
width: root.width-mm
|
width: root.width-mm
|
||||||
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
||||||
text: "<b>Friendiqa v0.5.2 </b><br>Licensed under GPL 3 with the exception of OpenSSL <br> "+
|
text: "<b>Friendiqa v0.5.3 </b><br>Licensed under GPL 3 with the exception of OpenSSL <br> "+
|
||||||
"Website <a href='https://friendiqa.ma-nic.de'>https://friendiqa.ma-nic.de</a><br>"+
|
"Website <a href='https://friendiqa.ma-nic.de'>https://friendiqa.ma-nic.de</a><br>"+
|
||||||
"Sourcecode: <a href='https://git.friendi.ca/LubuWest/Friendiqa'>https://git.friendi.ca/LubuWest/Friendiqa</a><br>"+
|
"Sourcecode: <a href='https://git.friendi.ca/LubuWest/Friendiqa'>https://git.friendi.ca/LubuWest/Friendiqa</a><br>"+
|
||||||
"Privacy Policy: <a href='https://git.friendi.ca/lubuwest/Friendiqa/src/branch/master/PrivacyPolicy.md'>http://git.friendi.ca/lubuwest/Friendiqa/src/branch/master/PrivacyPolicy.md</a><br>"+
|
"Privacy Policy: <a href='https://git.friendi.ca/lubuwest/Friendiqa/src/branch/master/PrivacyPolicy.md'>http://git.friendi.ca/lubuwest/Friendiqa/src/branch/master/PrivacyPolicy.md</a><br>"+
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -29,10 +29,11 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import QtQuick.Window 2.0
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
QtObject{
|
QtObject{
|
||||||
property real appWidth: 500
|
property real appWidth: Screen.desktopAvailableWidth/3
|
||||||
property real appHeight: 500
|
property real appHeight: Screen.desktopAvailableHeight/3*2
|
||||||
property int backKey: Qt.Key_Escape
|
property int backKey: Qt.Key_Escape
|
||||||
property string osType: "Linux"
|
property string osType: "Linux"
|
||||||
//property string attachImageDir:filesystem.homePath+"/Pictures/"
|
//property string attachImageDir:filesystem.homePath+"/Pictures/"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.9
|
import QtQuick 2.9
|
||||||
import QtQuick.Controls 2.5
|
import QtQuick.Controls 2.12
|
||||||
import QtWebView 1.1
|
import QtWebView 1.1
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.11
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/qml/configqml"
|
import "qrc:/qml/configqml"
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,14 +30,17 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.11
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/qml/configqml"
|
import "qrc:/qml/configqml"
|
||||||
|
import "qrc:/qml/genericqml"
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
|
|
||||||
Rectangle{
|
Rectangle{
|
||||||
color:"white"
|
color:"white"
|
||||||
width:root.width
|
width:root.width
|
||||||
height:root.height
|
height: root.height
|
||||||
|
|
||||||
|
//height:root.height
|
||||||
Text {
|
Text {
|
||||||
text: qsTr("Sync Interval (0=None)")
|
text: qsTr("Sync Interval (0=None)")
|
||||||
font.pixelSize:3*mm
|
font.pixelSize:3*mm
|
||||||
|
@ -47,7 +50,7 @@ Rectangle{
|
||||||
|
|
||||||
Slider{ id: messageIntervalSlider
|
Slider{ id: messageIntervalSlider
|
||||||
x:22*mm; y: 13.5*mm;width: root.width/2;height:5*mm
|
x:22*mm; y: 13.5*mm;width: root.width/2;height:5*mm
|
||||||
value: globaloptions.syncinterval
|
value: globaloptions.hasOwnProperty("syncinterval")?globaloptions.syncinterval:0
|
||||||
from: 0;to:120; stepSize: 15
|
from: 0;to:120; stepSize: 15
|
||||||
}
|
}
|
||||||
Rectangle{
|
Rectangle{
|
||||||
|
@ -65,6 +68,7 @@ Rectangle{
|
||||||
if(osSettings.osType=="Android"){
|
if(osSettings.osType=="Android"){
|
||||||
alarm.setAlarm(text);
|
alarm.setAlarm(text);
|
||||||
} else if(osSettings.osType=="Linux" && text !=0){
|
} else if(osSettings.osType=="Linux" && text !=0){
|
||||||
|
root.updateSyncinterval(parseInt(text))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,18 +78,24 @@ Rectangle{
|
||||||
text:qsTr("Min.")
|
text:qsTr("Min.")
|
||||||
}
|
}
|
||||||
|
|
||||||
Column{
|
ScrollView{
|
||||||
y:22*mm
|
width: root.width
|
||||||
width: parent.width
|
height: root.height - 25*mm;y:22*mm
|
||||||
spacing:mm
|
clip:true
|
||||||
//anchors.fill: parent
|
Column{
|
||||||
SyncComponent{adapter:"Timeline"}
|
//height: implicitHeight
|
||||||
SyncComponent{adapter:"Replies"}
|
width: parent.width
|
||||||
SyncComponent{ adapter:"DirectMessages"}
|
spacing:mm
|
||||||
SyncComponent{ adapter:"Notifications"}
|
//anchors.fill: parent
|
||||||
|
SyncComponent{adapter:"Timeline"}
|
||||||
|
SyncComponent{adapter:"Replies"}
|
||||||
|
SyncComponent{ adapter:"DirectMessages"}
|
||||||
|
SyncComponent{ adapter:"Notifications"}
|
||||||
|
SyncComponent{ adapter: "Events"}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Button{
|
MButton{
|
||||||
id:closeButton
|
id:closeButton
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: 1*mm
|
anchors.topMargin: 1*mm
|
||||||
|
|
|
@ -1,92 +0,0 @@
|
||||||
// This file is part of Friendiqa
|
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
|
||||||
//
|
|
||||||
// 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 <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
import QtQuick 2.0
|
|
||||||
import QtQuick.Controls 2.4
|
|
||||||
import "qrc:/qml/genericqml"
|
|
||||||
|
|
||||||
Item {
|
|
||||||
id: contactComponent
|
|
||||||
height: 8*mm
|
|
||||||
width: parent.width
|
|
||||||
property var createdAtDate: new Date(contact.created_at)
|
|
||||||
property string connectUrl: (contact.network!=="dfrn")||(contact.isFriend==1)?"":( "<a href='"+contact.url.replace("profile","dfrn_request") +"'>"+qsTr("Connect")+"</a><br>")
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: wrapper
|
|
||||||
width:parent.width
|
|
||||||
height: 8*mm
|
|
||||||
border.color: "grey"
|
|
||||||
color:"white"
|
|
||||||
Image {
|
|
||||||
id: photoImage
|
|
||||||
x:0.5*mm
|
|
||||||
y:0.5*mm
|
|
||||||
width: 7*mm
|
|
||||||
height:7*mm
|
|
||||||
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"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
Column{
|
|
||||||
width: wrapper.width-8*mm
|
|
||||||
anchors.left: photoImage.right
|
|
||||||
anchors.margins: 1*mm
|
|
||||||
spacing: mm
|
|
||||||
Label {
|
|
||||||
id: namelabel
|
|
||||||
width: wrapper.width-4
|
|
||||||
height: 3*mm
|
|
||||||
text: contact.name
|
|
||||||
elide:Text.ElideRight
|
|
||||||
color: "#303030"
|
|
||||||
font.pixelSize: 3*mm
|
|
||||||
}
|
|
||||||
Label {
|
|
||||||
id: screennamelabel
|
|
||||||
width: wrapper.width-8*mm
|
|
||||||
height: 2.5*mm
|
|
||||||
text: "@"+contact.screen_name
|
|
||||||
elide:Text.ElideRight
|
|
||||||
color: "#303030"
|
|
||||||
font.pixelSize: 2.5*mm
|
|
||||||
}
|
|
||||||
}
|
|
||||||
MouseArea{
|
|
||||||
anchors.fill: parent
|
|
||||||
onClicked:{
|
|
||||||
rootstack.currentIndex=0;
|
|
||||||
bar.currentIndex=0;
|
|
||||||
root.contactdetailsSignal(contact)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
// List of people
|
// List of people
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.5
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.11
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
//import QtQuick.Controls.Styles 1.4
|
//import QtQuick.Controls.Styles 1.4
|
||||||
import QtQuick.Layouts 1.11
|
import QtQuick.Layouts 1.11
|
||||||
import QtQuick.LocalStorage 2.0
|
import QtQuick.LocalStorage 2.0
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.11
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/js/news.js" as Newsjs
|
import "qrc:/js/news.js" as Newsjs
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ StackView{
|
||||||
height:osSettings.appHeight
|
height:osSettings.appHeight
|
||||||
property var db: ["Friendiqa", "1.0", "Stores Friendica data", 100000000]
|
property var db: ["Friendiqa", "1.0", "Stores Friendica data", 100000000]
|
||||||
property var login: Service.readActiveConfig(db)
|
property var login: Service.readActiveConfig(db)
|
||||||
property var globaloptions: ({}) //Service.readGlobaloptions(db)
|
property var globaloptions: Service.readGO(db)
|
||||||
property var contactlist: []
|
property var contactlist: []
|
||||||
property real mm: osSettings.osType=="Android"?Screen.pixelDensity:Screen.pixelDensity*1.5
|
property real mm: osSettings.osType=="Android"?Screen.pixelDensity:Screen.pixelDensity*1.5
|
||||||
signal messageSignal(var friend)
|
signal messageSignal(var friend)
|
||||||
|
@ -59,6 +59,7 @@ StackView{
|
||||||
signal uploadSignal(var urls)
|
signal uploadSignal(var urls)
|
||||||
signal sendtextSignal(var intenttext)
|
signal sendtextSignal(var intenttext)
|
||||||
signal changeimage(var method, var type, var id)
|
signal changeimage(var method, var type, var id)
|
||||||
|
signal updateSyncinterval(int interval)
|
||||||
property var news:[]
|
property var news:[]
|
||||||
property var newContacts:[]
|
property var newContacts:[]
|
||||||
//property string contactLoadType: ""
|
//property string contactLoadType: ""
|
||||||
|
@ -67,7 +68,7 @@ StackView{
|
||||||
onLoginChanged:{
|
onLoginChanged:{
|
||||||
if(login==""){root.push("qrc:/qml/configqml/AccountPage.qml")}
|
if(login==""){root.push("qrc:/qml/configqml/AccountPage.qml")}
|
||||||
else{root.push(rootStackItem)
|
else{root.push(rootStackItem)
|
||||||
newstab.newstabstatus=login.newsViewType;
|
if (login.newsViewType!="" || login.newsViewType!=null){newstab.newstabstatus=login.newsViewType;}
|
||||||
Newsjs.getCurrentContacts(login,db,function(contacts){
|
Newsjs.getCurrentContacts(login,db,function(contacts){
|
||||||
contactlist=contacts})}
|
contactlist=contacts})}
|
||||||
}
|
}
|
||||||
|
@ -105,22 +106,20 @@ StackView{
|
||||||
|
|
||||||
FontLoader{id: fontAwesome; source: "qrc:/images/fontawesome-webfont.ttf"}
|
FontLoader{id: fontAwesome; source: "qrc:/images/fontawesome-webfont.ttf"}
|
||||||
|
|
||||||
Keys.onReleased: {print("Backkey"+newstab.conversation.length+" "+root.depth)
|
Keys.onReleased: {//print(event.key + "Backkey"+newstab.conversation.length+" "+root.depth)
|
||||||
if (event.key === osSettings.backKey) {
|
if (event.key === osSettings.backKey) {
|
||||||
if (rootstack.currentIndex==0){
|
if (rootstack.currentIndex==0){
|
||||||
newstab.active=true;
|
newstab.active=true;
|
||||||
print(newstab.newstabstatus)
|
if (newstab.newstabstatus!=globaloptions.newsViewType){
|
||||||
if (newstab.newstabstatus!=login.newsViewType){
|
newstab.newstabstatus=globaloptions.newsViewType;
|
||||||
newstab.newstabstatus=login.newsViewType;
|
if(globaloptions.newsViewType=="Timeline"){Newsjs.newsfromdb(db,login.username,0,function(dbnews){
|
||||||
if(login.newsViewType=="Timeline"){Newsjs.newsfromdb(db,login.username,0,function(dbnews){
|
|
||||||
newsSignal(dbnews)
|
newsSignal(dbnews)
|
||||||
})}
|
})}
|
||||||
else{
|
else{
|
||||||
Newsjs.chatsfromdb(db,login.username,function(dbnews){
|
Newsjs.chatsfromdb(db,login.username,function(dbnews){
|
||||||
newsSignal(dbnews)
|
newsSignal(dbnews)
|
||||||
})}
|
})}
|
||||||
print(newstab.conversation.length);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
else if (newstab.conversation.length>0){newstab.conversation=[]}
|
else if (newstab.conversation.length>0){newstab.conversation=[]}
|
||||||
else if (root.depth>1){root.pop()}
|
else if (root.depth>1){root.pop()}
|
||||||
|
@ -287,7 +286,6 @@ StackView{
|
||||||
}
|
}
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
|
|
||||||
text: "\uf08b " +qsTr("Quit")
|
text: "\uf08b " +qsTr("Quit")
|
||||||
font.pixelSize: 4*mm
|
font.pixelSize: 4*mm
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -305,9 +303,6 @@ StackView{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Item{
|
Item{
|
||||||
id:rootStackItem
|
id:rootStackItem
|
||||||
width:parent.width
|
width:parent.width
|
||||||
|
@ -395,12 +390,12 @@ StackView{
|
||||||
}
|
}
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
forceActiveFocus();
|
forceActiveFocus();
|
||||||
Service.readGlobaloptions(db,function(go){globaloptions=go})
|
|
||||||
//print(xhr.networktype());
|
//print(xhr.networktype());
|
||||||
if(osSettings.osType=="Android"){
|
if(osSettings.osType=="Android"){
|
||||||
var component = Qt.createComponent("qrc:/qml/genericqml/IntentReceiver.qml");
|
var component = Qt.createComponent("qrc:/qml/genericqml/IntentReceiver.qml");
|
||||||
var IntentReceiverQml = component.createObject(root);
|
var IntentReceiverQml = component.createObject(root);
|
||||||
} else if (osSettings.osType=="Linux"){
|
}
|
||||||
|
else if (osSettings.osType=="Linux"){
|
||||||
var component = Qt.createComponent("qrc:/qml/genericqml/LinuxSync.qml");
|
var component = Qt.createComponent("qrc:/qml/genericqml/LinuxSync.qml");
|
||||||
var LinuxSyncQml = component.createObject(root);
|
var LinuxSyncQml = component.createObject(root);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import Qt.labs.folderlistmodel 2.1
|
import Qt.labs.folderlistmodel 2.1
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
|
|
|
@ -12,11 +12,17 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function startSyncTimer(interval){
|
||||||
|
syncTimer.interval=interval*60000;
|
||||||
|
//print("synctimer interval "+syncTimer.interval)
|
||||||
|
syncTimer.start()
|
||||||
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
if (root.globaloptions.hasOwnProperty("syncinterval") && root.globaloptions.syncinterval !=null && root.globaloptions.syncinterval !=0){
|
if (root.globaloptions.hasOwnProperty("syncinterval") && root.globaloptions.syncinterval !=null && root.globaloptions.syncinterval !=0){
|
||||||
syncTimer.interval=root.globaloptions.syncinterval*60000;
|
startSyncTimer(root.globaloptions.syncinterval)
|
||||||
syncTimer.start()
|
|
||||||
}
|
}
|
||||||
|
root.updateSyncinterval.connect(startSyncTimer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -29,12 +29,13 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
import QtQuick 2.6
|
import QtQuick 2.6
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
Button{
|
Button{
|
||||||
id: mButton
|
id: mButton
|
||||||
width: Math.max(text.width+2*mm,8*mm)
|
width: Math.max(text.width+2*mm,8*mm)
|
||||||
|
//radius: mm
|
||||||
height: 6*mm
|
height: 6*mm
|
||||||
//color: Material.grey
|
//color: Material.grey
|
||||||
font.pixelSize: 3*mm
|
font.pixelSize: 3*mm
|
||||||
background: Rectangle{color:"#F8F8F8"}
|
background: Rectangle{color:"#F8F8F8";radius: 0.5*mm}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.7
|
import QtQuick 2.7
|
||||||
import QtQuick.Controls 1.2
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
//import "qrc:/js/news.js" as Newsjs
|
//import "qrc:/js/news.js" as Newsjs
|
||||||
//import "qrc:/js/helper.js" as Helperjs
|
//import "qrc:/js/helper.js" as Helperjs
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
// ConversationView with button
|
// ConversationView with button
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
import "qrc:/qml/newsqml"
|
import "qrc:/qml/newsqml"
|
||||||
|
@ -83,7 +83,7 @@ Rectangle {
|
||||||
} else { conversationBusy.running=false;
|
} else { conversationBusy.running=false;
|
||||||
conversationModel.clear();
|
conversationModel.clear();
|
||||||
var currentTime= new Date();
|
var currentTime= new Date();
|
||||||
var msg = {'currentTime': currentTime, 'model': conversationModel,'news':newstab.conversation, 'method':'refresh', 'options':globaloptions};
|
var msg = {'currentTime': currentTime, 'model': conversationModel,'news':newstab.conversation, 'method':'conversation', 'options':globaloptions};
|
||||||
conversationWorker.sendMessage(msg)
|
conversationWorker.sendMessage(msg)
|
||||||
//conversationsymbol.color="grey"
|
//conversationsymbol.color="grey"
|
||||||
}
|
}
|
||||||
|
@ -186,7 +186,7 @@ Rectangle {
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
if (news.length>0){var currentTime= new Date();
|
if (news.length>0){var currentTime= new Date();
|
||||||
var msg = {'currentTime': currentTime, 'model': conversationModel,'news':news,'appendnews':true, 'options':globaloptions};
|
var msg = {'currentTime': currentTime, 'model': conversationModel,'news':news,'method':'conversation', 'options':globaloptions};
|
||||||
conversationWorker.sendMessage(msg)}
|
conversationWorker.sendMessage(msg)}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
// message.qml
|
// message.qml
|
||||||
// message with buttons
|
// message with buttons
|
||||||
import QtQuick 2.4
|
import QtQuick 2.4
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
//import QtQuick.Dialogs 1.2
|
//import QtQuick.Dialogs 1.2
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/js/smiley.js" as Smileyjs
|
import "qrc:/js/smiley.js" as Smileyjs
|
||||||
|
@ -404,6 +404,7 @@ Rectangle{
|
||||||
visible:false //(bodyField.length>1)||(attachImageURLs.length>0)
|
visible:false //(bodyField.length>1)||(attachImageURLs.length>0)
|
||||||
spacing: mm
|
spacing: mm
|
||||||
height: 12*mm
|
height: 12*mm
|
||||||
|
x: 0.5*mm
|
||||||
MButton{id:permButton
|
MButton{id:permButton
|
||||||
visible: (newsSwipeview.stacktype!=="DirectMessages")
|
visible: (newsSwipeview.stacktype!=="DirectMessages")
|
||||||
height: 6*mm
|
height: 6*mm
|
||||||
|
@ -473,7 +474,7 @@ Rectangle{
|
||||||
else{Helperjs.showMessage(qsTr("Error"),qsTr("No receiver supplied!"),root)}
|
else{Helperjs.showMessage(qsTr("Error"),qsTr("No receiver supplied!"),root)}
|
||||||
}
|
}
|
||||||
if (conversation==true){
|
if (conversation==true){
|
||||||
newstab.newstabstatus=login.newsViewType; newsStack.pop(null)
|
newstab.newstabstatus=root.globaloptions.newsViewType; newsStack.pop(null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://github.com/lubuwest/Friendiqa
|
// https://github.com/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -42,7 +42,7 @@ AnimatedImage {id:gif;
|
||||||
'Rectangle{id:recfullscreen;color:"white";width:root.width;height:root.height;'+
|
'Rectangle{id:recfullscreen;color:"white";width:root.width;height:root.height;'+
|
||||||
'MouseArea {anchors.fill:parent;onClicked:{recfullscreen.destroy()}}'+
|
'MouseArea {anchors.fill:parent;onClicked:{recfullscreen.destroy()}}'+
|
||||||
'AnimatedImage {id:giffullscreen;source: "'+gif.source+
|
'AnimatedImage {id:giffullscreen;source: "'+gif.source+
|
||||||
'";anchors.centerIn:parent; width:root.width;fillMode: Image.PreserveAspectFit; onStatusChanged: playing = (status == AnimatedImage.Ready);'+
|
'";anchors.centerIn:parent; width:root.width;height:root.height;fillMode: Image.PreserveAspectFit; onStatusChanged: playing = (status == AnimatedImage.Ready);'+
|
||||||
'}}',root,"Attachmentlarge")
|
'}}',root,"Attachmentlarge")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.11
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/news.js" as Newsjs
|
import "qrc:/js/news.js" as Newsjs
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
|
@ -162,7 +162,7 @@ StackView{
|
||||||
case "Replies":messagetype=3;break;
|
case "Replies":messagetype=3;break;
|
||||||
default:messagetype=0;
|
default:messagetype=0;
|
||||||
}
|
}
|
||||||
if(newstab.newstabstatus=="Timeline"){print("lastnewsid "+lastnews_id);
|
if(newstab.newstabstatus=="Timeline"){//print("lastnewsid "+lastnews_id);
|
||||||
Newsjs.newsfromdb(root.db,root.login, messagetype,function(news){
|
Newsjs.newsfromdb(root.db,root.login, messagetype,function(news){
|
||||||
var msg = {'currentTime': currentTime, 'model': newsModel,'news':news,'method':"", 'options':globaloptions};
|
var msg = {'currentTime': currentTime, 'model': newsModel,'news':news,'method':"", 'options':globaloptions};
|
||||||
newsWorker.sendMessage(msg);
|
newsWorker.sendMessage(msg);
|
||||||
|
@ -187,7 +187,8 @@ StackView{
|
||||||
Connections{
|
Connections{
|
||||||
target:xhr
|
target:xhr
|
||||||
onError:{
|
onError:{
|
||||||
Helperjs.showMessage(qsTr("Network Error"),"API:\n" +login.server+api+"\n Return: \n"+data,root);
|
if (data !="contactlist"){Helperjs.showMessage(qsTr("Network Error"),"API:\n" +login.server+api+"\n Return: \n"+data,root);}
|
||||||
|
newsBusy.running=false;
|
||||||
}
|
}
|
||||||
onSuccess:{
|
onSuccess:{
|
||||||
// downloadNotice.text=downloadNotice.text+ "\n xhr finished "+Date.now();
|
// downloadNotice.text=downloadNotice.text+ "\n xhr finished "+Date.now();
|
||||||
|
@ -385,7 +386,6 @@ StackView{
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
//print(newsSwipeview.stacktype);
|
|
||||||
root.newstypeSignal.connect(newstypeHandling);
|
root.newstypeSignal.connect(newstypeHandling);
|
||||||
root.messageSignal.connect(onFriendsMessages);
|
root.messageSignal.connect(onFriendsMessages);
|
||||||
root.contactdetailsSignal.connect(showContact);
|
root.contactdetailsSignal.connect(showContact);
|
||||||
|
@ -396,7 +396,7 @@ StackView{
|
||||||
newsSwipeview.height=rootStackItem.height-12*mm;
|
newsSwipeview.height=rootStackItem.height-12*mm;
|
||||||
newsSwipeview.y=5*mm;
|
newsSwipeview.y=5*mm;
|
||||||
rootStackItem.state=""
|
rootStackItem.state=""
|
||||||
login.hasOwnProperty("newsViewType")?newstab.newstabstatus=login.newsViewType:"Conversations"
|
root.globaloptions.hasOwnProperty("newsViewType")?newstab.newstabstatus=root.globaloptions.newsViewType:newstab.newstabstatus="Conversations";
|
||||||
var messagetype=0;
|
var messagetype=0;
|
||||||
switch(newsSwipeview.stacktype){
|
switch(newsSwipeview.stacktype){
|
||||||
case "Home":messagetype=0;break;
|
case "Home":messagetype=0;break;
|
||||||
|
@ -405,17 +405,17 @@ StackView{
|
||||||
case "Replies":messagetype=3;break;
|
case "Replies":messagetype=3;break;
|
||||||
default:messagetype=0;
|
default:messagetype=0;
|
||||||
}
|
}
|
||||||
if((login.newsViewType=="Conversations")&&(newsSwipeview.stacktype=="Home")){
|
if((newstab.newstabstatus=="Conversations")&&(newsSwipeview.stacktype=="Home")){
|
||||||
Newsjs.chatsfromdb(db,login,messagetype,function(dbnews,lastid){
|
Newsjs.chatsfromdb(db,login,messagetype,function(dbnews,lastid){
|
||||||
lastnewsid=lastid;
|
lastnewsid=lastid;
|
||||||
showNews(dbnews);
|
showNews(dbnews);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else{Newsjs.newsfromdb(db,login,messagetype,function(dbnews,lastid){
|
else{
|
||||||
|
Newsjs.newsfromdb(db,login,messagetype,function(dbnews,lastid){
|
||||||
lastnewsid=lastid;
|
lastnewsid=lastid;
|
||||||
showNews(dbnews)
|
showNews(dbnews)
|
||||||
})}
|
})}
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.11
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
//import QtQuick.Controls.Styles 2.3
|
//import QtQuick.Controls.Styles 2.3
|
||||||
//import QtQuick.Dialogs 1.3
|
//import QtQuick.Dialogs 1.3
|
||||||
import "qrc:/qml/newsqml"
|
import "qrc:/qml/newsqml"
|
||||||
|
@ -40,25 +40,7 @@ import "qrc:/js/service.js" as Service
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
|
||||||
// Connections{
|
onHeightChanged: {newsSwipeview.height=height-6*mm}
|
||||||
// target:xhr
|
|
||||||
// onError:{
|
|
||||||
// Helperjs.showMessage(qsTr("Network Error"),"API:\n" +login.server+api+"\n Return: \n"+data,root);
|
|
||||||
// }
|
|
||||||
// onSuccess:{
|
|
||||||
// if (api=="/api/statuses/friends_timeline"){
|
|
||||||
// // downloadNotice.text=downloadNotice.text+ "\n xhr finished "+Date.now();
|
|
||||||
// //Service.processNews(api,data);
|
|
||||||
// if(login.newsViewType=="Timeline"){
|
|
||||||
// Newsjs.newsfromdb(db,login.username,function(dbnews){showNews(dbnews)})}
|
|
||||||
// else{Newsjs.chatsfromdb(db,login.username,function(dbnews){
|
|
||||||
// showNews(dbnews);
|
|
||||||
// })}
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
Timer {id:contacttimer; interval: 50; running: false; repeat: false
|
Timer {id:contacttimer; interval: 50; running: false; repeat: false
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
// downloadNotice.text=downloadNotice.text + "\n contactTimer start "+ Date.now()
|
// downloadNotice.text=downloadNotice.text + "\n contactTimer start "+ Date.now()
|
||||||
|
@ -86,6 +68,50 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getDateDiffString (seconds){
|
||||||
|
var timestring="";
|
||||||
|
if (seconds<60) {timestring= Math.round(seconds) + " " +qsTr("seconds");}
|
||||||
|
else if (seconds<90){timestring= Math.round(seconds/60) + " " +qsTr("minute") ;}
|
||||||
|
else if (seconds<3600){timestring= Math.round(seconds/60) + " " +qsTr("minutes");}
|
||||||
|
else if (seconds<5400){timestring= Math.round(seconds/3600) + " " +qsTr("hour");}
|
||||||
|
else if (seconds<86400){timestring= Math.round(seconds/3600) + " " +qsTr("hours");}
|
||||||
|
else if (seconds<129600){timestring= Math.round(seconds/86400) + " " +qsTr("day");}
|
||||||
|
else if (seconds<3888000){timestring= Math.round(seconds/86400) + " " +qsTr("days");}
|
||||||
|
else if (seconds<5832000){timestring= Math.round(seconds/3888000) + " " +qsTr("month");}
|
||||||
|
else if (seconds<69984000){timestring= Math.round(seconds/3888000) + " " +qsTr("months");}
|
||||||
|
else {timestring= Math.round(seconds/46656000) + " " + qsTr("years");}
|
||||||
|
|
||||||
|
return timestring;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getActivitiesView(newsitemobject){
|
||||||
|
var likeText="";var dislikeText="";var attendyesText="";var attendnoText="";var attendmaybeText=""; var self={};
|
||||||
|
try{if (newsitemobject.messagetype==0&&newsitemobject.hasOwnProperty('friendica_activities')){
|
||||||
|
if (newsitemobject.friendica_activities.like.length>0){
|
||||||
|
if (newsitemobject.friendica_activities.like.length==1){likeText= newsitemobject.friendica_activities.like[0].name+" "+ qsTr("likes this.")}
|
||||||
|
else {likeText= newsitemobject.friendica_activities.like.length+" "+ qsTr("like this.")}
|
||||||
|
}
|
||||||
|
if (newsitemobject.friendica_activities.dislike.length>0){
|
||||||
|
if (newsitemobject.friendica_activities.dislike.length==1){dislikeText= newsitemobject.friendica_activities.dislike[0].name+" "+ qsTr("doesn't like this.")}
|
||||||
|
else {dislikeText= newsitemobject.friendica_activities.dislike.length+" "+ qsTr("don't like this.")}
|
||||||
|
}
|
||||||
|
if (newsitemobject.friendica_activities.attendyes.length>0){
|
||||||
|
if (newsitemobject.friendica_activities.attendyes.length==1){attendyesText=newsitemobject.friendica_activities.attendyes[0].name+" "+ qsTr("will attend.")}
|
||||||
|
else {attendyesText= newsitemobject.friendica_activities.attendyes.length+" "+ qsTr("persons will attend.")}
|
||||||
|
}
|
||||||
|
if (newsitemobject.friendica_activities.attendno.length>0){
|
||||||
|
if (newsitemobject.friendica_activities.attendno.length==1){attendnoText= newsitemobject.friendica_activities.attendno[0].name+" "+ qsTr("will not attend.")}
|
||||||
|
else {attendnoText= newsitemobject.friendica_activities.attendno.length+" "+ qsTr("persons will not attend.")}
|
||||||
|
}
|
||||||
|
if (newsitemobject.friendica_activities.attendmaybe.length>0){
|
||||||
|
if (newsitemobject.friendica_activities.attendmaybe.length==1){attendmaybeText= newsitemobject.friendica_activities.attendmaybe[0].name+" "+ qsTr("may attend.")}
|
||||||
|
else {attendmaybeText= newsitemobject.friendica_activities.attendmaybe.length+" "+ qsTr("persons may attend.")}
|
||||||
|
}
|
||||||
|
//var friendica_activities_self=JSON.parse(newsitemobject.friendica_activities_self);
|
||||||
|
}} catch(e){print("Activities "+e+ " "+JSON.stringify(newsitemobject.friendica_activities))}
|
||||||
|
return {likeText:likeText,dislikeText:dislikeText,attendyesText:attendyesText,attendnoText:attendnoText,attendmaybeText:attendmaybeText}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function onFriendsMessages(friend){
|
function onFriendsMessages(friend){
|
||||||
newstab.newstabstatus="Contact"
|
newstab.newstabstatus="Contact"
|
||||||
|
@ -126,7 +152,6 @@ Item {
|
||||||
height: parent.height-6*mm
|
height: parent.height-6*mm
|
||||||
y: 5*mm
|
y: 5*mm
|
||||||
function onDirectMessage(friend){currentIndex=2}
|
function onDirectMessage(friend){currentIndex=2}
|
||||||
|
|
||||||
transitions: Transition {
|
transitions: Transition {
|
||||||
PropertyAnimation { properties: "height";
|
PropertyAnimation { properties: "height";
|
||||||
easing.type: Easing.InOutQuad
|
easing.type: Easing.InOutQuad
|
||||||
|
@ -167,7 +192,7 @@ Item {
|
||||||
source:(newsSwipeview.currentIndex==3)? "qrc:/qml/newsqml/NewsStack.qml":""
|
source:(newsSwipeview.currentIndex==3)? "qrc:/qml/newsqml/NewsStack.qml":""
|
||||||
//onLoaded: newsSwipeview.stacktype="Notifications"
|
//onLoaded: newsSwipeview.stacktype="Notifications"
|
||||||
}
|
}
|
||||||
Component.onCompleted: {root.directmessageSignal.connect(onDirectMessage);}
|
Component.onCompleted: {root.directmessageSignal.connect(onDirectMessage)}
|
||||||
}
|
}
|
||||||
|
|
||||||
PageIndicator {
|
PageIndicator {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
import QtMultimedia 5.8
|
import QtMultimedia 5.8
|
||||||
import QtQuick 2.9
|
import QtQuick 2.9
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
//import QtQuick.Controls.Styles 1.4
|
//import QtQuick.Controls.Styles 1.4
|
||||||
|
|
||||||
Rectangle{
|
Rectangle{
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/news.js" as Newsjs
|
import "qrc:/js/news.js" as Newsjs
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
@ -42,8 +42,10 @@ Item {
|
||||||
property int itemindex: index
|
property int itemindex: index
|
||||||
property var newsitemobject:model.newsitemobject
|
property var newsitemobject:model.newsitemobject
|
||||||
property string attending: ""
|
property string attending: ""
|
||||||
|
property var friendica_activities_view: getActivitiesView(model.newsitemobject)
|
||||||
|
|
||||||
onAttendingChanged: {attendLabel.visible=true;
|
onAttendingChanged: {attendLabel.visible=true;
|
||||||
attendLabel.text= qsTr("attending: ")+ qsTr(attending)}
|
attendLabel.text= qsTr("attending")+": "+ qsTr(attending)}
|
||||||
|
|
||||||
signal replyto(string parent_id)
|
signal replyto(string parent_id)
|
||||||
|
|
||||||
|
@ -80,8 +82,8 @@ Item {
|
||||||
// }
|
// }
|
||||||
Column {
|
Column {
|
||||||
id:toprow //newscolumn
|
id:toprow //newscolumn
|
||||||
width: newsitem.width//-8*mm
|
width: newsitemobject.hasOwnProperty("indent")?newsitem.width-(newsitem.width/20 *newsitemobject.indent):newsitem.width//-8*mm
|
||||||
|
x:newsitemobject.hasOwnProperty("indent")?newsitem.width/20*newsitemobject.indent:0
|
||||||
Item{
|
Item{
|
||||||
height: Math.max(profileImage.height+mm,topFlow.implicitHeight+mm)
|
height: Math.max(profileImage.height+mm,topFlow.implicitHeight+mm)
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -128,7 +130,7 @@ Item {
|
||||||
color: "grey"
|
color: "grey"
|
||||||
font.pixelSize: 1.5*mm
|
font.pixelSize: 1.5*mm
|
||||||
horizontalAlignment: Label.AlignRight
|
horizontalAlignment: Label.AlignRight
|
||||||
text: newsitemobject.dateDiff
|
text: getDateDiffString(newsitemobject.dateDiff) + " " +qsTr("ago")
|
||||||
}
|
}
|
||||||
Label {
|
Label {
|
||||||
id:replytoLabel
|
id:replytoLabel
|
||||||
|
@ -166,7 +168,7 @@ Item {
|
||||||
// clip:true
|
// clip:true
|
||||||
// height: newsitemobject.nsfw?5*mm:Math.min(implicitHeight,3/4*root.height)
|
// height: newsitemobject.nsfw?5*mm:Math.min(implicitHeight,3/4*root.height)
|
||||||
MouseArea{
|
MouseArea{
|
||||||
width: newsitem.width-8*mm-2
|
width: toprow.width-2
|
||||||
height: itemMessage.height
|
height: itemMessage.height
|
||||||
onPressAndHold: {
|
onPressAndHold: {
|
||||||
pushConversation();
|
pushConversation();
|
||||||
|
@ -178,7 +180,7 @@ Item {
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
font.family: "Noto Sans"
|
font.family: "Noto Sans"
|
||||||
text: newsitemobject.statusnet_html//newsitemobject.attachmentList.length>0?newsitemobject.text : newsitemobject.statusnet_html
|
text: newsitemobject.statusnet_html//newsitemobject.attachmentList.length>0?newsitemobject.text : newsitemobject.statusnet_html
|
||||||
width: newsitem.width-2
|
width: toprow.width-2
|
||||||
height:newsitemobject.nsfw?5*mm:Math.min(implicitHeight,3/4*root.height)
|
height:newsitemobject.nsfw?5*mm:Math.min(implicitHeight,3/4*root.height)
|
||||||
//height: implicitHeight
|
//height: implicitHeight
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
@ -257,7 +259,7 @@ Item {
|
||||||
Label{color: "grey"
|
Label{color: "grey"
|
||||||
height:3.5*mm
|
height:3.5*mm
|
||||||
font.pixelSize: 1.5*mm
|
font.pixelSize: 1.5*mm
|
||||||
text: newsitemobject.friendica_activities_view.likeText
|
text: friendica_activities_view.likeText
|
||||||
MouseArea{
|
MouseArea{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: { showActivityContacts(newsitemobject.friendica_activities.like)}
|
onClicked: { showActivityContacts(newsitemobject.friendica_activities.like)}
|
||||||
|
@ -266,7 +268,7 @@ Item {
|
||||||
Label{color: "grey"
|
Label{color: "grey"
|
||||||
height:3.5*mm
|
height:3.5*mm
|
||||||
font.pixelSize: 1.5*mm
|
font.pixelSize: 1.5*mm
|
||||||
text: newsitemobject.friendica_activities_view.dislikeText
|
text: friendica_activities_view.dislikeText
|
||||||
MouseArea{
|
MouseArea{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: { showActivityContacts(newsitemobject.friendica_activities.dislike)}
|
onClicked: { showActivityContacts(newsitemobject.friendica_activities.dislike)}
|
||||||
|
@ -275,7 +277,7 @@ Item {
|
||||||
Label{color: "grey"
|
Label{color: "grey"
|
||||||
height:3.5*mm
|
height:3.5*mm
|
||||||
font.pixelSize: 1.5*mm
|
font.pixelSize: 1.5*mm
|
||||||
text: newsitemobject.friendica_activities_view.attendyesText
|
text: friendica_activities_view.attendyesText
|
||||||
MouseArea{
|
MouseArea{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: { showActivityContacts(newsitemobject.friendica_activities.attendyes)}
|
onClicked: { showActivityContacts(newsitemobject.friendica_activities.attendyes)}
|
||||||
|
@ -283,7 +285,7 @@ Item {
|
||||||
Label{color: "grey"
|
Label{color: "grey"
|
||||||
height:3.5*mm
|
height:3.5*mm
|
||||||
font.pixelSize: 1.5*mm
|
font.pixelSize: 1.5*mm
|
||||||
text: newsitemobject.friendica_activities_view.attendnoText
|
text: friendica_activities_view.attendnoText
|
||||||
MouseArea{
|
MouseArea{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: { showActivityContacts(newsitemobject.friendica_activities.attendno)}
|
onClicked: { showActivityContacts(newsitemobject.friendica_activities.attendno)}
|
||||||
|
@ -292,7 +294,7 @@ Item {
|
||||||
Label{color: "grey"
|
Label{color: "grey"
|
||||||
height:3.5*mm
|
height:3.5*mm
|
||||||
font.pixelSize: 1.5*mm
|
font.pixelSize: 1.5*mm
|
||||||
text: newsitemobject.friendica_activities_view.attendmaybeText
|
text: friendica_activities_view.attendmaybeText
|
||||||
MouseArea{
|
MouseArea{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: { showActivityContacts(newsitemobject.friendica_activities.attendmaybe)}
|
onClicked: { showActivityContacts(newsitemobject.friendica_activities.attendmaybe)}
|
||||||
|
@ -315,7 +317,7 @@ Item {
|
||||||
width:newsitem.width/5 //10*mm
|
width:newsitem.width/5 //10*mm
|
||||||
height: parent.height
|
height: parent.height
|
||||||
visible: ((newsitemobject.messagetype==0)||(newsitemobject.messagetype==3))? true:false
|
visible: ((newsitemobject.messagetype==0)||(newsitemobject.messagetype==3))? true:false
|
||||||
checked:(newsitemobject.friendica_activities_view.self.liked==1)?true:false
|
checked:(model.newsitemobject.friendica_activities_view.self.liked==1)?true:false
|
||||||
indicator: Rectangle{
|
indicator: Rectangle{
|
||||||
implicitWidth: newsitem.width/5 //10*mm
|
implicitWidth: newsitem.width/5 //10*mm
|
||||||
implicitHeight:4*mm
|
implicitHeight:4*mm
|
||||||
|
@ -328,8 +330,14 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if(likeCheckbox.checked==true){Newsjs.like(root.login,root.db,1,"like",newsitemobject.id,root);dislikeCheckbox.checked=false; model.newsitemobject.friendica_activities_view.self.liked=0 }
|
if(likeCheckbox.checked==true){Newsjs.like(root.login,root.db,1,"like",newsitemobject.id,root);dislikeCheckbox.checked=false;
|
||||||
else{Newsjs.like(root.login,root.db,0,"like",newsitemobject.id,root); model.newsitemobject.friendica_activities_view.self.liked=1}}
|
newsitemobject.friendica_activities_view.self.liked=1;
|
||||||
|
newsitem.ListView.view.model.set(index,{"newsitemobject":newsitemobject});
|
||||||
|
}
|
||||||
|
else{Newsjs.like(root.login,root.db,0,"like",newsitemobject.id,root);
|
||||||
|
newsitemobject.friendica_activities_view.self.liked=0;
|
||||||
|
newsitem.ListView.view.model.set(index,{"newsitemobject":newsitemobject});
|
||||||
|
}}
|
||||||
}
|
}
|
||||||
CheckBox{
|
CheckBox{
|
||||||
id: dislikeCheckbox
|
id: dislikeCheckbox
|
||||||
|
@ -349,8 +357,14 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (dislikeCheckbox.checked==true){Newsjs.like(root.login,root.db,1,"dislike",newsitemobject.id,root);likeCheckbox.checked=false; model.newsitemobject.friendica_activities_view.self.disliked=0}
|
if (dislikeCheckbox.checked==true){Newsjs.like(root.login,root.db,1,"dislike",newsitemobject.id,root);likeCheckbox.checked=false;
|
||||||
else {Newsjs.like(root.login,root.db,0,"dislike",newsitemobject.id,root); model.newsitemobject.friendica_activities_view.self.disliked=1}}
|
newsitemobject.friendica_activities_view.self.disliked=1;
|
||||||
|
newsitem.ListView.view.model.set(index,{"newsitemobject":newsitemobject});
|
||||||
|
}
|
||||||
|
else {Newsjs.like(root.login,root.db,0,"dislike",newsitemobject.id,root);
|
||||||
|
newsitemobject.friendica_activities_view.self.disliked=0;
|
||||||
|
newsitem.ListView.view.model.set(index,{"newsitemobject":newsitemobject});
|
||||||
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckBox {
|
CheckBox {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/service.js" as Service
|
import "qrc:/js/service.js" as Service
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.11
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import QtQuick.Layouts 1.11
|
import QtQuick.Layouts 1.11
|
||||||
//import QtQuick.Controls.Styles 1.4
|
//import QtQuick.Controls.Styles 1.4
|
||||||
import "qrc:/js/smiley.js" as Smileyjs
|
import "qrc:/js/smiley.js" as Smileyjs
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.5
|
import QtQuick 2.5
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
import "qrc:/js/image.js" as Imagejs
|
import "qrc:/js/image.js" as Imagejs
|
||||||
import "qrc:/qml/genericqml"
|
import "qrc:/qml/genericqml"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.5
|
import QtQuick 2.5
|
||||||
import QtQuick.Controls 1.2
|
import QtQuick.Controls 2.12
|
||||||
import "qrc:/qml/photoqml"
|
import "qrc:/qml/photoqml"
|
||||||
|
|
||||||
Package {
|
Package {
|
||||||
|
@ -84,7 +84,7 @@ Package {
|
||||||
MouseArea {
|
MouseArea {
|
||||||
width: realImage.paintedWidth; height: realImage.paintedHeight; anchors.centerIn: realImage
|
width: realImage.paintedWidth; height: realImage.paintedHeight; anchors.centerIn: realImage
|
||||||
onPressAndHold:{
|
onPressAndHold:{
|
||||||
var menuString="import QtQuick 2.5;import QtQuick.Controls 1.4; "+
|
var menuString="import QtQuick 2.5;import QtQuick.Controls 2.12; "+
|
||||||
"Menu {MenuItem {text:qsTr('Delete on client and server'); onTriggered: {"+
|
"Menu {MenuItem {text:qsTr('Delete on client and server'); onTriggered: {"+
|
||||||
"changeimage('delete','image','"+imageLocation+"');photoModel.remove(index)}}"+
|
"changeimage('delete','image','"+imageLocation+"');photoModel.remove(index)}}"+
|
||||||
"MenuItem {text:qsTr('Move to album'); onTriggered: {"+
|
"MenuItem {text:qsTr('Move to album'); onTriggered: {"+
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.5
|
import QtQuick 2.5
|
||||||
import QtQuick.Controls 2.4
|
import QtQuick.Controls 2.12
|
||||||
import QtQml.Models 2.1
|
import QtQml.Models 2.1
|
||||||
import "qrc:/js/image.js" as Imagejs
|
import "qrc:/js/image.js" as Imagejs
|
||||||
import "qrc:/js/helper.js" as Helperjs
|
import "qrc:/js/helper.js" as Helperjs
|
||||||
|
@ -276,7 +276,7 @@ StackView{
|
||||||
}}}
|
}}}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle { id: photoBackground; color: 'light grey'; width: parent.width; height: parent.height; opacity: 0; visible: opacity != 0.0 }
|
Rectangle { id: photoBackground; color: 'black'; width: parent.width; height: parent.height; opacity: 0; visible: opacity != 0.0 }
|
||||||
|
|
||||||
ListView { width: parent.width; height:parent.height; model: visualphotoModel.parts.browser; interactive: false }
|
ListView { width: parent.width; height:parent.height; model: visualphotoModel.parts.browser; interactive: false }
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// This file is part of Friendiqa
|
// This file is part of Friendiqa
|
||||||
// https://git.friendi.ca/lubuwest/Friendiqa
|
// https://git.friendi.ca/lubuwest/Friendiqa
|
||||||
// Copyright (C) 2017 Marco R. <thomasschmidt45@gmx.net>
|
// Copyright (C) 2020 Marco R. <thomasschmidt45@gmx.net>
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// 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
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import QtQuick 2.5
|
import QtQuick 2.5
|
||||||
import QtQuick.Controls 1.3
|
import QtQuick.Controls 2.12
|
||||||
import QtQml.Models 2.1
|
import QtQml.Models 2.1
|
||||||
//import "qrc:/js/service.js" as Service
|
//import "qrc:/js/service.js" as Service
|
||||||
import "qrc:/js/image.js" as Imagejs
|
import "qrc:/js/image.js" as Imagejs
|
||||||
|
|
Binary file not shown.
|
@ -5,108 +5,105 @@
|
||||||
<name>AccountPage</name>
|
<name>AccountPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="59"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="59"/>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="373"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="376"/>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="396"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="400"/>
|
||||||
<source>User</source>
|
<source>User</source>
|
||||||
<translation>Name</translation>
|
<translation>Name</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="86"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="87"/>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation>Server</translation>
|
<translation>Server</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="91"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="92"/>
|
||||||
<source>Nickname</source>
|
<source>Nickname</source>
|
||||||
<translation>Kurzname</translation>
|
<translation>Kurzname</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="97"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="98"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Passwort</translation>
|
<translation>Passwort</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="102"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="103"/>
|
||||||
<source>Image dir.</source>
|
<source>Image dir.</source>
|
||||||
<translation>Bildverz.</translation>
|
<translation>Bildverz.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="113"/>
|
|
||||||
<source>News as</source>
|
<source>News as</source>
|
||||||
<translation>Anzeige</translation>
|
<translation type="vanished">Anzeige</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="184"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="185"/>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="322"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="323"/>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="348"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="350"/>
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<translation>Fehler</translation>
|
<translation>Fehler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="184"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="185"/>
|
||||||
<source>Nicknames containing @ symbol currently not supported</source>
|
<source>Nicknames containing @ symbol currently not supported</source>
|
||||||
<translation>Kurznamen mit @ Zeichen werden derzeit nicht unterstützt.</translation>
|
<translation>Kurznamen mit @ Zeichen werden derzeit nicht unterstützt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="305"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="306"/>
|
||||||
<source>Confirm</source>
|
<source>Confirm</source>
|
||||||
<translation>Bestätigen</translation>
|
<translation>Bestätigen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="311"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="312"/>
|
||||||
<source>No server given! </source>
|
<source>No server given! </source>
|
||||||
<translation>Kein Server angegeben!</translation>
|
<translation>Kein Server angegeben!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="312"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="313"/>
|
||||||
<source>No nickname given! </source>
|
<source>No nickname given! </source>
|
||||||
<translation>Kein Kurzname angegeben!</translation>
|
<translation>Kein Kurzname angegeben!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="313"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="314"/>
|
||||||
<source>No password given! </source>
|
<source>No password given! </source>
|
||||||
<translation>Kein Passwort angegeben!</translation>
|
<translation>Kein Passwort angegeben!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="314"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="315"/>
|
||||||
<source>No image directory given!</source>
|
<source>No image directory given!</source>
|
||||||
<translation>Kein Verzeichnis für Bilder angegeben!</translation>
|
<translation>Kein Verzeichnis für Bilder angegeben!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="322"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="323"/>
|
||||||
<source>Wrong password!</source>
|
<source>Wrong password!</source>
|
||||||
<translation>Falsches Passwort!</translation>
|
<translation>Falsches Passwort!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="343"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="345"/>
|
||||||
<source>Success</source>
|
<source>Success</source>
|
||||||
<translation>Bestätigt</translation>
|
<translation>Bestätigt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="343"/>
|
<location filename="../qml/configqml/AccountPage.qml" line="345"/>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Name</translation>
|
<translation>Name</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="424"/>
|
|
||||||
<source>Timeline</source>
|
<source>Timeline</source>
|
||||||
<translation>Chronologisch</translation>
|
<translation type="vanished">Chronologisch</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/AccountPage.qml" line="429"/>
|
|
||||||
<source>Conversations</source>
|
<source>Conversations</source>
|
||||||
<translation>Unterhaltungen</translation>
|
<translation type="vanished">Unterhaltungen</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CalendarTab</name>
|
<name>CalendarTab</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="109"/>
|
<location filename="../qml/calendarqml/CalendarTab.qml" line="124"/>
|
||||||
<source>Events</source>
|
<source>Events</source>
|
||||||
<translation>Termine</translation>
|
<translation>Termine</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/calendarqml/CalendarTab.qml" line="114"/>
|
<location filename="../qml/calendarqml/CalendarTab.qml" line="129"/>
|
||||||
<source>Own Calendar</source>
|
<source>Own Calendar</source>
|
||||||
<translation>Eigener Kalender</translation>
|
<translation>Eigener Kalender</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -114,17 +111,35 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ConfigPage</name>
|
<name>ConfigPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/ConfigPage.qml" line="66"/>
|
<location filename="../qml/configqml/ConfigPage.qml" line="61"/>
|
||||||
|
<source>News as</source>
|
||||||
|
<translation>Anzeige</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/configqml/ConfigPage.qml" line="74"/>
|
||||||
|
<location filename="../qml/configqml/ConfigPage.qml" line="91"/>
|
||||||
|
<location filename="../qml/configqml/ConfigPage.qml" line="92"/>
|
||||||
|
<source>Conversations</source>
|
||||||
|
<translation>Unterhaltungen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/configqml/ConfigPage.qml" line="85"/>
|
||||||
|
<location filename="../qml/configqml/ConfigPage.qml" line="86"/>
|
||||||
|
<source>Timeline</source>
|
||||||
|
<translation>Chronologisch</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/configqml/ConfigPage.qml" line="99"/>
|
||||||
<source>Max. News</source>
|
<source>Max. News</source>
|
||||||
<translation>Max. Nachr.</translation>
|
<translation>Max. Nachr.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/ConfigPage.qml" line="127"/>
|
<location filename="../qml/configqml/ConfigPage.qml" line="132"/>
|
||||||
<source>Hide #nsfw?</source>
|
<source>Hide #nsfw?</source>
|
||||||
<translation>#nsfw minimieren?</translation>
|
<translation>#nsfw minimieren?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/ConfigPage.qml" line="161"/>
|
<location filename="../qml/configqml/ConfigPage.qml" line="52"/>
|
||||||
<source>Sync</source>
|
<source>Sync</source>
|
||||||
<translation>Autom. Aktualisierung</translation>
|
<translation>Autom. Aktualisierung</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -310,6 +325,14 @@
|
||||||
<translation>Erstellt</translation>
|
<translation>Erstellt</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>EventList</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/calendarqml/EventList.qml" line="119"/>
|
||||||
|
<source>Location</source>
|
||||||
|
<translation>Ort</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>FriendsTab</name>
|
<name>FriendsTab</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -403,20 +426,20 @@
|
||||||
<translation>Woran denkst du gerade?</translation>
|
<translation>Woran denkst du gerade?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/MessageSend.qml" line="422"/>
|
<location filename="../qml/newsqml/MessageSend.qml" line="423"/>
|
||||||
<location filename="../qml/newsqml/MessageSend.qml" line="473"/>
|
<location filename="../qml/newsqml/MessageSend.qml" line="474"/>
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<translation>Fehler</translation>
|
<translation>Fehler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/MessageSend.qml" line="422"/>
|
<location filename="../qml/newsqml/MessageSend.qml" line="423"/>
|
||||||
<source>Only one attachment supported at the moment.
|
<source>Only one attachment supported at the moment.
|
||||||
Remove other attachment first!</source>
|
Remove other attachment first!</source>
|
||||||
<translation>Nur ein Anhang derzeit unterstützt.
|
<translation>Nur ein Anhang derzeit unterstützt.
|
||||||
Lösche zuerst den anderen Anhang!</translation>
|
Lösche zuerst den anderen Anhang!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/MessageSend.qml" line="473"/>
|
<location filename="../qml/newsqml/MessageSend.qml" line="474"/>
|
||||||
<source>No receiver supplied!</source>
|
<source>No receiver supplied!</source>
|
||||||
<translation>Kein Empfänger angegeben!</translation>
|
<translation>Kein Empfänger angegeben!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -432,12 +455,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NewsStack</name>
|
<name>NewsStack</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/NewsStack.qml" line="189"/>
|
<location filename="../qml/newsqml/NewsStack.qml" line="190"/>
|
||||||
<source>Network Error</source>
|
<source>Network Error</source>
|
||||||
<translation>Netzwerk-Fehler</translation>
|
<translation>Netzwerk-Fehler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/NewsStack.qml" line="237"/>
|
<location filename="../qml/newsqml/NewsStack.qml" line="239"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation>Mehr</translation>
|
<translation>Mehr</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -496,26 +519,125 @@
|
||||||
<source>Quit</source>
|
<source>Quit</source>
|
||||||
<translation type="vanished">Schliessen</translation>
|
<translation type="vanished">Schliessen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="73"/>
|
||||||
|
<source>seconds</source>
|
||||||
|
<translation>Sekunden</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="74"/>
|
||||||
|
<source>minute</source>
|
||||||
|
<translation>Minute</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="75"/>
|
||||||
|
<source>minutes</source>
|
||||||
|
<translation>Minuten</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="76"/>
|
||||||
|
<source>hour</source>
|
||||||
|
<translation>Stunde</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="77"/>
|
||||||
|
<source>hours</source>
|
||||||
|
<translation>Stunden</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="78"/>
|
||||||
|
<source>day</source>
|
||||||
|
<translation>Tag</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="79"/>
|
||||||
|
<source>days</source>
|
||||||
|
<translation>Tage</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="80"/>
|
||||||
|
<source>month</source>
|
||||||
|
<translation>Monat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="81"/>
|
||||||
|
<source>months</source>
|
||||||
|
<translation>Monate</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="82"/>
|
||||||
|
<source>years</source>
|
||||||
|
<translation>Jahre</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="91"/>
|
||||||
|
<source>likes this.</source>
|
||||||
|
<translation>mag das.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="92"/>
|
||||||
|
<source>like this.</source>
|
||||||
|
<translation>mögen das.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="95"/>
|
||||||
|
<source>doesn't like this.</source>
|
||||||
|
<translation>mag das nicht.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="96"/>
|
||||||
|
<source>don't like this.</source>
|
||||||
|
<translation>mögen das nicht.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="99"/>
|
||||||
|
<source>will attend.</source>
|
||||||
|
<translation>nehmen teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="100"/>
|
||||||
|
<source>persons will attend.</source>
|
||||||
|
<translation>Personen nehmen teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="103"/>
|
||||||
|
<source>will not attend.</source>
|
||||||
|
<translation>nimmt nicht teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="104"/>
|
||||||
|
<source>persons will not attend.</source>
|
||||||
|
<translation>Personen nehmen nicht teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="107"/>
|
||||||
|
<source>may attend.</source>
|
||||||
|
<translation>nimmt vielleicht teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/NewsTab.qml" line="108"/>
|
||||||
|
<source>persons may attend.</source>
|
||||||
|
<translation>Personen nehmen vielleicht teil.</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Newsitem</name>
|
<name>Newsitem</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="46"/>
|
|
||||||
<source>attending: </source>
|
<source>attending: </source>
|
||||||
<translation>Teilnahme</translation>
|
<translation type="vanished">Teilnahme</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="123"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="125"/>
|
||||||
<source>Source: </source>
|
<source>Source: </source>
|
||||||
<translation>Quelle: </translation>
|
<translation>Quelle: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="123"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="125"/>
|
||||||
<source>Direct Message</source>
|
<source>Direct Message</source>
|
||||||
<translation>Direktnachricht</translation>
|
<translation>Direktnachricht</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="139"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="141"/>
|
||||||
<source>In reply to </source>
|
<source>In reply to </source>
|
||||||
<translation>Antwort an </translation>
|
<translation>Antwort an </translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -524,57 +646,67 @@
|
||||||
<translation type="vanished"> Kommentare</translation>
|
<translation type="vanished"> Kommentare</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="307"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="48"/>
|
||||||
|
<source>attending</source>
|
||||||
|
<translation>partecipare</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/Newsitem.qml" line="133"/>
|
||||||
|
<source>ago</source>
|
||||||
|
<translation>her</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/newsqml/Newsitem.qml" line="309"/>
|
||||||
<source>Attending: </source>
|
<source>Attending: </source>
|
||||||
<translation>Teilnahme: </translation>
|
<translation>Teilnahme: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="432"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="446"/>
|
||||||
<source>Reply</source>
|
<source>Reply</source>
|
||||||
<translation>Antworten</translation>
|
<translation>Antworten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="444"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="458"/>
|
||||||
<source>DM</source>
|
<source>DM</source>
|
||||||
<translation>Direktnachricht</translation>
|
<translation>Direktnachricht</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="450"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="464"/>
|
||||||
<source>Repost</source>
|
<source>Repost</source>
|
||||||
<translation>Teilen</translation>
|
<translation>Teilen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="453"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="467"/>
|
||||||
<source>Success!</source>
|
<source>Success!</source>
|
||||||
<translation>Erledigt!</translation>
|
<translation>Erledigt!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="458"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="472"/>
|
||||||
<source>Conversation</source>
|
<source>Conversation</source>
|
||||||
<translation>Unterhaltung</translation>
|
<translation>Unterhaltung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="465"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="479"/>
|
||||||
<source>Attending</source>
|
<source>Attending</source>
|
||||||
<translation>Teilnahme</translation>
|
<translation>Teilnahme</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="474"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="488"/>
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<translation>ja</translation>
|
<translation>ja</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="479"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="493"/>
|
||||||
<source>maybe</source>
|
<source>maybe</source>
|
||||||
<translation>vielleicht</translation>
|
<translation>vielleicht</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="484"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="498"/>
|
||||||
<source>no</source>
|
<source>no</source>
|
||||||
<translation>nein</translation>
|
<translation>nein</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/newsqml/Newsitem.qml" line="491"/>
|
<location filename="../qml/newsqml/Newsitem.qml" line="505"/>
|
||||||
<source>Delete</source>
|
<source>Delete</source>
|
||||||
<translation>Löschen</translation>
|
<translation>Löschen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -883,12 +1015,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SyncConfig</name>
|
<name>SyncConfig</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/SyncConfig.qml" line="42"/>
|
<location filename="../qml/configqml/SyncConfig.qml" line="45"/>
|
||||||
<source>Sync Interval (0=None)</source>
|
<source>Sync Interval (0=None)</source>
|
||||||
<translation>Akt.-intervall (0=keine)</translation>
|
<translation>Akt.-intervall (0=keine)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/configqml/SyncConfig.qml" line="74"/>
|
<location filename="../qml/configqml/SyncConfig.qml" line="78"/>
|
||||||
<source>Min.</source>
|
<source>Min.</source>
|
||||||
<translation>Min.</translation>
|
<translation>Min.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -896,57 +1028,57 @@
|
||||||
<context>
|
<context>
|
||||||
<name>friendiqa</name>
|
<name>friendiqa</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="159"/>
|
<location filename="../qml/friendiqa.qml" line="158"/>
|
||||||
<source>Refresh</source>
|
<source>Refresh</source>
|
||||||
<translation>Aktualisieren</translation>
|
<translation>Aktualisieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="176"/>
|
<location filename="../qml/friendiqa.qml" line="175"/>
|
||||||
<source>Timeline</source>
|
<source>Timeline</source>
|
||||||
<translation>Chronologisch</translation>
|
<translation>Chronologisch</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="189"/>
|
<location filename="../qml/friendiqa.qml" line="188"/>
|
||||||
<source>Conversations</source>
|
<source>Conversations</source>
|
||||||
<translation>Unterhaltungen</translation>
|
<translation>Unterhaltungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="202"/>
|
<location filename="../qml/friendiqa.qml" line="201"/>
|
||||||
<source>Favorites</source>
|
<source>Favorites</source>
|
||||||
<translation>Markierte News</translation>
|
<translation>Markierte News</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="214"/>
|
<location filename="../qml/friendiqa.qml" line="213"/>
|
||||||
<source>Replies</source>
|
<source>Replies</source>
|
||||||
<translation>Interaktionen</translation>
|
<translation>Interaktionen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="228"/>
|
<location filename="../qml/friendiqa.qml" line="227"/>
|
||||||
<source>Public Timeline</source>
|
<source>Public Timeline</source>
|
||||||
<translation>öff. Timeline</translation>
|
<translation>öff. Timeline</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="241"/>
|
<location filename="../qml/friendiqa.qml" line="240"/>
|
||||||
<source>Group news</source>
|
<source>Group news</source>
|
||||||
<translation>News Gruppe</translation>
|
<translation>News Gruppe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="254"/>
|
<location filename="../qml/friendiqa.qml" line="253"/>
|
||||||
<source>Search</source>
|
<source>Search</source>
|
||||||
<translation>Suche</translation>
|
<translation>Suche</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="267"/>
|
<location filename="../qml/friendiqa.qml" line="266"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Einstellungen</translation>
|
<translation>Einstellungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="278"/>
|
<location filename="../qml/friendiqa.qml" line="277"/>
|
||||||
<source>Accounts</source>
|
<source>Accounts</source>
|
||||||
<translation>Konten</translation>
|
<translation>Konten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/friendiqa.qml" line="291"/>
|
<location filename="../qml/friendiqa.qml" line="289"/>
|
||||||
<source>Quit</source>
|
<source>Quit</source>
|
||||||
<translation>Schliessen</translation>
|
<translation>Schliessen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -954,133 +1086,99 @@
|
||||||
<context>
|
<context>
|
||||||
<name>newsworker</name>
|
<name>newsworker</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="48"/>
|
|
||||||
<source>likes this.</source>
|
<source>likes this.</source>
|
||||||
<translation>mag das.</translation>
|
<translation type="vanished">mag das.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="49"/>
|
|
||||||
<source>like this.</source>
|
<source>like this.</source>
|
||||||
<translation>mögen das.</translation>
|
<translation type="vanished">mögen das.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="52"/>
|
|
||||||
<source>doesn't like this.</source>
|
<source>doesn't like this.</source>
|
||||||
<translation>mag das nicht.</translation>
|
<translation type="vanished">mag das nicht.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>don't like this.</source>
|
||||||
|
<translation type="vanished">mögen das nicht.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>will attend.</source>
|
||||||
|
<translation type="vanished">nehmen teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>persons will attend.</source>
|
||||||
|
<translation type="vanished">Personen nehmen teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>will not attend.</source>
|
||||||
|
<translation type="vanished">nimmt nicht teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>persons will not attend.</source>
|
||||||
|
<translation type="vanished">Personen nehmen nicht teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>may attend.</source>
|
||||||
|
<translation type="vanished">nimmt vielleicht teil.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>persons may attend.</source>
|
||||||
|
<translation type="vanished">Personen nehmen vielleicht teil.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="53"/>
|
<location filename="../js/newsworker.js" line="53"/>
|
||||||
<source>don't like this.</source>
|
|
||||||
<translation>mögen das nicht.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../js/newsworker.js" line="56"/>
|
|
||||||
<source>will attend.</source>
|
|
||||||
<translation>nehmen teil.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../js/newsworker.js" line="57"/>
|
|
||||||
<source>persons will attend.</source>
|
|
||||||
<translation>Personen nehmen teil.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../js/newsworker.js" line="60"/>
|
|
||||||
<source>will not attend.</source>
|
|
||||||
<translation>nimmt nicht teil.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../js/newsworker.js" line="61"/>
|
|
||||||
<source>persons will not attend.</source>
|
|
||||||
<translation>Personen nehmen nicht teil.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../js/newsworker.js" line="64"/>
|
|
||||||
<source>may attend.</source>
|
|
||||||
<translation>nimmt vielleicht teil.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../js/newsworker.js" line="65"/>
|
|
||||||
<source>persons may attend.</source>
|
|
||||||
<translation>Personen nehmen vielleicht teil.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../js/newsworker.js" line="69"/>
|
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<translation>ja</translation>
|
<translation>ja</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="70"/>
|
<location filename="../js/newsworker.js" line="54"/>
|
||||||
<source>no</source>
|
<source>no</source>
|
||||||
<translation>nein</translation>
|
<translation>nein</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="71"/>
|
<location filename="../js/newsworker.js" line="55"/>
|
||||||
<source>maybe</source>
|
<source>maybe</source>
|
||||||
<translation>vielleicht</translation>
|
<translation>vielleicht</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="162"/>
|
|
||||||
<source>seconds</source>
|
<source>seconds</source>
|
||||||
<translation>Sekunden</translation>
|
<translation type="vanished">Sekunden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="162"/>
|
|
||||||
<location filename="../js/newsworker.js" line="163"/>
|
|
||||||
<location filename="../js/newsworker.js" line="164"/>
|
|
||||||
<location filename="../js/newsworker.js" line="165"/>
|
|
||||||
<location filename="../js/newsworker.js" line="166"/>
|
|
||||||
<location filename="../js/newsworker.js" line="167"/>
|
|
||||||
<location filename="../js/newsworker.js" line="168"/>
|
|
||||||
<location filename="../js/newsworker.js" line="169"/>
|
|
||||||
<location filename="../js/newsworker.js" line="170"/>
|
|
||||||
<location filename="../js/newsworker.js" line="171"/>
|
|
||||||
<source>ago</source>
|
<source>ago</source>
|
||||||
<translation>her</translation>
|
<translation type="vanished">her</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="163"/>
|
|
||||||
<source>minute</source>
|
<source>minute</source>
|
||||||
<translation>Minute</translation>
|
<translation type="vanished">Minute</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="164"/>
|
|
||||||
<source>minutes</source>
|
<source>minutes</source>
|
||||||
<translation>Minuten</translation>
|
<translation type="vanished">Minuten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="165"/>
|
|
||||||
<source>hour</source>
|
<source>hour</source>
|
||||||
<translation>Stunde</translation>
|
<translation type="vanished">Stunde</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="166"/>
|
|
||||||
<source>hours</source>
|
<source>hours</source>
|
||||||
<translation>Stunden</translation>
|
<translation type="vanished">Stunden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="167"/>
|
|
||||||
<source>day</source>
|
<source>day</source>
|
||||||
<translation>Tag</translation>
|
<translation type="vanished">Tag</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="168"/>
|
|
||||||
<source>days</source>
|
<source>days</source>
|
||||||
<translation>Tage</translation>
|
<translation type="vanished">Tage</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="169"/>
|
|
||||||
<source>month</source>
|
<source>month</source>
|
||||||
<translation>Monat</translation>
|
<translation type="vanished">Monat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/newsworker.js" line="170"/>
|
|
||||||
<source>months</source>
|
<source>months</source>
|
||||||
<translation>Monate</translation>
|
<translation type="vanished">Monate</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../js/newsworker.js" line="171"/>
|
|
||||||
<source>years</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1090,12 +1188,22 @@
|
||||||
<translation type="vanished">Fehler</translation>
|
<translation type="vanished">Fehler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/service.js" line="398"/>
|
<location filename="../js/service.js" line="366"/>
|
||||||
|
<source>Changelog</source>
|
||||||
|
<translation>Änderungen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../js/service.js" line="366"/>
|
||||||
|
<source>Setting view type of news has moved from account page to config page.</source>
|
||||||
|
<translation>Die Einstellung der Ansichtsart von Nachrichten wurde von der Kontoseite auf die Konfigurationsseite verschoben.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../js/service.js" line="432"/>
|
||||||
<source>Undefined Array Error</source>
|
<source>Undefined Array Error</source>
|
||||||
<translation>Antwort-Array ungültig</translation>
|
<translation>Antwort-Array ungültig</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../js/service.js" line="401"/>
|
<location filename="../js/service.js" line="435"/>
|
||||||
<source>JSON status Error</source>
|
<source>JSON status Error</source>
|
||||||
<translation>Server-Antwort: Fehler</translation>
|
<translation>Server-Antwort: Fehler</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue