lomiri.lomiri-calendar-app: init at 1.1.2 (#366949)
This commit is contained in:
commit
bbea96f543
@ -86,6 +86,7 @@ in
|
||||
libusermetrics
|
||||
lomiri
|
||||
lomiri-calculator-app
|
||||
lomiri-calendar-app
|
||||
lomiri-camera-app
|
||||
lomiri-clock-app
|
||||
lomiri-content-hub
|
||||
|
||||
@ -564,6 +564,7 @@ in {
|
||||
#logstash = handleTest ./logstash.nix {};
|
||||
lomiri = discoverTests (import ./lomiri.nix);
|
||||
lomiri-calculator-app = runTest ./lomiri-calculator-app.nix;
|
||||
lomiri-calendar-app = runTest ./lomiri-calendar-app.nix;
|
||||
lomiri-camera-app = runTest ./lomiri-camera-app.nix;
|
||||
lomiri-clock-app = runTest ./lomiri-clock-app.nix;
|
||||
lomiri-docviewer-app = runTest ./lomiri-docviewer-app.nix;
|
||||
|
||||
79
nixos/tests/lomiri-calendar-app.nix
Normal file
79
nixos/tests/lomiri-calendar-app.nix
Normal file
@ -0,0 +1,79 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lomiri-calendar-app-standalone";
|
||||
meta = {
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
# This needs a Linux VM
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [ ./common/x11.nix ];
|
||||
|
||||
services.xserver.enable = true;
|
||||
|
||||
environment = {
|
||||
systemPackages =
|
||||
with pkgs;
|
||||
[
|
||||
xdotool # mouse movement
|
||||
]
|
||||
++ (with pkgs.lomiri; [
|
||||
suru-icon-theme
|
||||
lomiri-calendar-app
|
||||
]);
|
||||
variables = {
|
||||
UITK_ICON_THEME = "suru";
|
||||
};
|
||||
};
|
||||
|
||||
i18n.supportedLocales = [ "all" ];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
# Intended font & helps with OCR
|
||||
ubuntu-classic
|
||||
];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_x()
|
||||
|
||||
with subtest("lomiri calendar launches"):
|
||||
machine.succeed("lomiri-calendar-app >&2 &")
|
||||
machine.wait_for_text(r"(January|February|March|April|May|June|July|August|September|October|November|December)")
|
||||
machine.screenshot("lomiri-calendar")
|
||||
|
||||
with subtest("lomiri calendar works"):
|
||||
# Switch to Agenda tab, less busy
|
||||
machine.succeed("xdotool mousemove 300 50 click 1")
|
||||
|
||||
# Still on main page
|
||||
machine.succeed("xdotool mousemove 500 650 click 1")
|
||||
machine.wait_for_text(r"(Date|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|All day|Name|Details|More)")
|
||||
machine.screenshot("lomiri-calendar_newevent")
|
||||
|
||||
# On New Event page
|
||||
machine.succeed("xdotool mousemove 500 230 click 1")
|
||||
machine.send_chars("foobar")
|
||||
machine.sleep(2) # make sure they're actually in there
|
||||
machine.succeed("xdotool mousemove 780 40 click 1")
|
||||
machine.wait_for_text("Agenda")
|
||||
machine.screenshot("lomiri-calendar_eventadded")
|
||||
|
||||
# Back on main page
|
||||
# Event was created, does it have the correct name?
|
||||
machine.wait_for_text("foobar")
|
||||
machine.screenshot("lomiri-calendar_works")
|
||||
|
||||
machine.succeed("pkill -f lomiri-calendar-app")
|
||||
|
||||
with subtest("lomiri calendar localisation works"):
|
||||
machine.succeed("env LANG=de_DE.UTF-8 lomiri-calendar-app >&2 &")
|
||||
machine.wait_for_text(r"(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag)")
|
||||
machine.screenshot("lomiri-calendar_localised")
|
||||
'';
|
||||
}
|
||||
120
pkgs/applications/system/timed/default.nix
Normal file
120
pkgs/applications/system/timed/default.nix
Normal file
@ -0,0 +1,120 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
testers,
|
||||
libiodata,
|
||||
pcre-cpp,
|
||||
pkg-config,
|
||||
qmake,
|
||||
qtbase,
|
||||
sailfish-access-control,
|
||||
tzdata,
|
||||
wrapQtAppsHook,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "timed";
|
||||
version = "3.6.23";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"lib"
|
||||
"dev"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sailfishos";
|
||||
repo = "timed";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-EJ0xxAkrISQfylBneYAEOINRvMUTWWw4E5GKjbq67aU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/{lib/lib,voland/voland}.pro \
|
||||
--replace-fail '$$[QT_INSTALL_LIBS]' "$lib/lib" \
|
||||
--replace-fail '/usr/include' "$dev/include" \
|
||||
--replace-fail '$$[QT_INSTALL_DATA]' "$dev"
|
||||
|
||||
substituteInPlace src/server/server.pro \
|
||||
--replace-fail '/usr/bin' "$out/bin" \
|
||||
--replace-fail '/etc' "$out/etc" \
|
||||
--replace-fail '/usr/lib' "$out/lib"
|
||||
|
||||
substituteInPlace tests/tests.pro \
|
||||
--replace-fail '/opt' "$dev/opt" \
|
||||
|
||||
substituteInPlace tests/ut_networktime/ut_networktime.pro \
|
||||
--replace-fail '/opt' "$dev/opt" \
|
||||
--replace-fail '/etc' "$dev/etc"
|
||||
|
||||
substituteInPlace tests/tst_events/tst_events.pro \
|
||||
--replace-fail '/opt' "$dev/opt"
|
||||
|
||||
substituteInPlace tools/timedclient/timedclient.pro \
|
||||
--replace-fail '/usr/bin' "$out/bin"
|
||||
|
||||
substituteInPlace \
|
||||
src/lib/aliases.cpp \
|
||||
src/server/settings.cpp \
|
||||
--replace-fail '/usr/share/zoneinfo' '${tzdata}/share/zoneinfo'
|
||||
'';
|
||||
|
||||
# QMake doesn't handle this well
|
||||
strictDeps = false;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
qmake
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libiodata
|
||||
pcre-cpp
|
||||
sailfish-access-control
|
||||
];
|
||||
|
||||
# Do all configuring now, not during build
|
||||
postConfigure = ''
|
||||
make qmake_all
|
||||
'';
|
||||
|
||||
env = {
|
||||
TIMED_VERSION = "${finalAttrs.version}";
|
||||
|
||||
# Other subprojects expect library to already be present
|
||||
NIX_CFLAGS_COMPILE = "-isystem ${placeholder "dev"}/include";
|
||||
NIX_LDFLAGS = "-L${placeholder "out"}/lib";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
pushd src/lib
|
||||
make ''${enableParallelBuilding:+-j$NIX_BUILD_CORES}
|
||||
make install
|
||||
popd
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gitUpdater { };
|
||||
tests.pkg-config = testers.hasPkgConfigModules {
|
||||
package = finalAttrs.finalPackage;
|
||||
# Version fields exclude patch-level
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Time daemon managing system time, time zone and settings";
|
||||
homepage = "https://github.com/sailfishos/timed";
|
||||
changelog = "https://github.com/sailfishos/timed/releases/tag/${finalAttrs.version}";
|
||||
license = lib.licenses.lgpl21Only;
|
||||
mainProgram = "timed";
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
pkgConfigModules = [
|
||||
"timed-qt${lib.versions.major qtbase.version}"
|
||||
"timed-voland-qt${lib.versions.major qtbase.version}"
|
||||
];
|
||||
};
|
||||
})
|
||||
130
pkgs/by-name/bu/buteo-syncfw/package.nix
Normal file
130
pkgs/by-name/bu/buteo-syncfw/package.nix
Normal file
@ -0,0 +1,130 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
testers,
|
||||
dbus,
|
||||
doxygen,
|
||||
glib,
|
||||
libsForQt5,
|
||||
pkg-config,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "buteo-syncfw";
|
||||
version = "0.11.8";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
"doc"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sailfishos";
|
||||
repo = "buteo-syncfw";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-QQ2NG+zeKZbmZRdJgEQpx3Y/C+3j91ltC+5CRaf6qBY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# Wildcard breaks file installation (tries to run ~ "install source/* target/*")
|
||||
substituteInPlace doc/doc.pri \
|
||||
--replace-fail 'htmldocs.files = $${PWD}/html/*' 'htmldocs.files = $${PWD}/html' \
|
||||
--replace-fail '/usr/share/doc' "$doc/share/doc"
|
||||
|
||||
substituteInPlace declarative/declarative.pro \
|
||||
--replace-fail '$$[QT_INSTALL_QML]' "$out/${libsForQt5.qtbase.qtQmlPrefix}"
|
||||
|
||||
substituteInPlace libbuteosyncfw/libbuteosyncfw.pro \
|
||||
--replace-fail '$$[QT_INSTALL_LIBS]' "$out/lib" \
|
||||
--replace-fail '/usr/include' "$dev/include"
|
||||
|
||||
substituteInPlace msyncd/msyncd-app.pro \
|
||||
--replace-fail '/usr/bin' "$out/bin" \
|
||||
--replace-fail '/usr/lib/systemd' "$out/lib/systemd" \
|
||||
--replace-fail '/etc' "$out/etc" \
|
||||
--replace-fail '/usr/share' "$out/share"
|
||||
|
||||
substituteInPlace oopp-runner/oopp-runner.pro \
|
||||
--replace-fail '/usr/libexec' "$out/libexec"
|
||||
|
||||
# We don't have invoked (mapplauncherd)
|
||||
substituteInPlace msyncd/bin/msyncd.service \
|
||||
--replace-fail 'ExecStart=/usr/bin/invoker -G -o -s --type=qt5 /usr/bin/msyncd' "ExecStart=$out/bin/msyncd"
|
||||
|
||||
substituteInPlace msyncd/com.meego.msyncd.service \
|
||||
--replace-fail 'Exec=/usr/bin/msyncd' "Exec=$out/bin/msyncd"
|
||||
|
||||
# Tests expect to get installed, require excessive patching
|
||||
substituteInPlace buteo-sync.pro \
|
||||
--replace-fail 'unittests \' '\' \
|
||||
--replace-fail 'unittests.depends' '# unittests.depends'
|
||||
'';
|
||||
|
||||
# QMake doesn't handle strictDeps well
|
||||
strictDeps = false;
|
||||
|
||||
nativeBuildInputs =
|
||||
[
|
||||
doxygen
|
||||
glib
|
||||
pkg-config
|
||||
wrapGAppsHook3
|
||||
]
|
||||
++ (with libsForQt5; [
|
||||
qmake
|
||||
wrapQtAppsHook
|
||||
]);
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
dbus
|
||||
]
|
||||
++ (with libsForQt5; [
|
||||
accounts-qt
|
||||
qtdeclarative
|
||||
signond
|
||||
]);
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
# Do all configuring now, not during build
|
||||
postConfigure = ''
|
||||
make qmake_all
|
||||
'';
|
||||
|
||||
# Tests expect to get installed, require excessive patching & managing
|
||||
doCheck = false;
|
||||
|
||||
postInstall = ''
|
||||
glib-compile-schemas $out/share/glib-2.0/schemas
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gitUpdater { };
|
||||
tests.pkg-config = testers.hasPkgConfigModules {
|
||||
package = finalAttrs.finalPackage;
|
||||
# Version is hardcoded to 1.0.0
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Buteo Synchronization Framework";
|
||||
homepage = "https://github.com/sailfishos/buteo-syncfw";
|
||||
changelog = "https://github.com/sailfishos/buteo-syncfw/releases/tag/${finalAttrs.version}";
|
||||
license = lib.licenses.lgpl21Only;
|
||||
mainProgram = "msyncd";
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
pkgConfigModules = [
|
||||
"buteosyncfw5"
|
||||
];
|
||||
};
|
||||
})
|
||||
125
pkgs/by-name/mk/mkcal/package.nix
Normal file
125
pkgs/by-name/mk/mkcal/package.nix
Normal file
@ -0,0 +1,125 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
testers,
|
||||
cmake,
|
||||
doxygen,
|
||||
extra-cmake-modules,
|
||||
graphviz,
|
||||
libsForQt5,
|
||||
perl,
|
||||
pkg-config,
|
||||
tzdata,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mkcal";
|
||||
version = "0.7.26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sailfishos";
|
||||
repo = "mkcal";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-myOSzxzZmuOU7MShPfUOsHJilw9B6jh3W1S3P5dhcvs=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
"doc"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace doc/CMakeLists.txt \
|
||||
--replace-fail 'COMMAND ''${DOXYGEN}' 'WORKING_DIRECTORY ''${CMAKE_SOURCE_DIR} COMMAND ''${DOXYGEN}'
|
||||
|
||||
# Dynamic menus are broken in docs
|
||||
sed -i doc/libmkcal.cfg -e '1i HTML_DYNAMIC_MENUS = NO'
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs =
|
||||
[
|
||||
cmake
|
||||
doxygen
|
||||
graphviz
|
||||
perl
|
||||
pkg-config
|
||||
]
|
||||
++ (with libsForQt5; [
|
||||
wrapQtAppsHook
|
||||
]);
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
extra-cmake-modules
|
||||
]
|
||||
++ (with libsForQt5; [
|
||||
kcalendarcore
|
||||
qtbase
|
||||
qtpim
|
||||
timed
|
||||
]);
|
||||
|
||||
nativeCheckInputs = [
|
||||
tzdata
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "BUILD_PLUGINS" false)
|
||||
(lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
(lib.cmakeBool "INSTALL_TESTS" false)
|
||||
(lib.cmakeBool "BUILD_DOCUMENTATION" true)
|
||||
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (
|
||||
lib.concatStringsSep ";" [
|
||||
# Exclude tests
|
||||
"-E"
|
||||
(lib.strings.escapeShellArg "(${
|
||||
lib.concatStringsSep "|" [
|
||||
# Test expects to be passed a real, already existing database to test migrations. We don't have one
|
||||
"tst_perf"
|
||||
|
||||
# 10/97 tests fail. Half seem related to time (zone) issues w/ local time / Helsinki timezone
|
||||
# Other half are x-1/x on lists of alarms/events
|
||||
"tst_storage"
|
||||
]
|
||||
})")
|
||||
]
|
||||
))
|
||||
];
|
||||
|
||||
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
# Parallelism breaks tests
|
||||
enableParallelChecking = false;
|
||||
|
||||
preCheck = ''
|
||||
export HOME=$TMP
|
||||
export QT_QPA_PLATFORM=minimal
|
||||
export QT_PLUGIN_PATH=${lib.getBin libsForQt5.qtbase}/${libsForQt5.qtbase.qtPluginPrefix}
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gitUpdater { };
|
||||
tests.pkg-config = testers.hasPkgConfigModules {
|
||||
package = finalAttrs.finalPackage;
|
||||
# version field doesn't exactly match current version
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Mobile version of the original KCAL from KDE";
|
||||
homepage = "https://github.com/sailfishos/mkcal";
|
||||
changelog = "https://github.com/sailfishos/mkcal/releases/tag/${finalAttrs.version}";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
mainProgram = "mkcaltool";
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
pkgConfigModules = [
|
||||
"libmkcal-qt5"
|
||||
];
|
||||
};
|
||||
})
|
||||
91
pkgs/by-name/qt/qtorganizer-mkcal/package.nix
Normal file
91
pkgs/by-name/qt/qtorganizer-mkcal/package.nix
Normal file
@ -0,0 +1,91 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
unstableGitUpdater,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
libsForQt5,
|
||||
mkcal,
|
||||
pkg-config,
|
||||
tzdata,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qtorganizer-mkcal";
|
||||
version = "0-unstable-2025-02-14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dcaliste";
|
||||
repo = "qtorganizer-mkcal";
|
||||
rev = "3090565d70ecdfaad2cba57d5a895fa69afd024a";
|
||||
hash = "sha256-ZNAcqjkVf9efP+WWTDr2YFZT+eZdIJAfX45Gm0+Y81A=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/CMakeLists.txt \
|
||||
--replace-fail 'DESTINATION ''${CMAKE_INSTALL_LIBDIR}/qt5/plugins' 'DESTINATION ''${CMAKE_INSTALL_PREFIX}/${libsForQt5.qtbase.qtPluginPrefix}'
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
extra-cmake-modules
|
||||
mkcal
|
||||
]
|
||||
++ (with libsForQt5; [
|
||||
kcalendarcore
|
||||
qtbase
|
||||
qtpim
|
||||
]);
|
||||
|
||||
nativeCheckInputs = [
|
||||
tzdata
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "INSTALL_TESTS" false)
|
||||
];
|
||||
|
||||
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
preCheck =
|
||||
let
|
||||
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
|
||||
in
|
||||
''
|
||||
export QT_QPA_PLATFORM=minimal
|
||||
export QT_PLUGIN_PATH=${
|
||||
listToQtVar libsForQt5.qtbase.qtPluginPrefix (
|
||||
with libsForQt5;
|
||||
[
|
||||
qtbase
|
||||
qtpim
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
# Wants to load the just-built plugin, doesn't try to set up the build dir / environment for that
|
||||
mkdir -p $TMP/fake-install/organizer
|
||||
cp ./src/libqtorganizer_mkcal.so $TMP/fake-install/organizer
|
||||
export QT_PLUGIN_PATH=$TMP/fake-install:$QT_PLUGIN_PATH
|
||||
'';
|
||||
|
||||
passthru.updateScript = unstableGitUpdater { };
|
||||
|
||||
meta = {
|
||||
description = "QtOrganizer plugin using sqlite via mKCal";
|
||||
homepage = "https://github.com/dcaliste/qtorganizer-mkcal";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
83
pkgs/by-name/sa/sailfish-access-control/package.nix
Normal file
83
pkgs/by-name/sa/sailfish-access-control/package.nix
Normal file
@ -0,0 +1,83 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
testers,
|
||||
glib,
|
||||
libsForQt5,
|
||||
pkg-config,
|
||||
qt6Packages,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "sailfish-access-control";
|
||||
version = "0.0.12";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sailfishos";
|
||||
repo = "sailfish-access-control";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-3gZUz6MZ/dZ1ntPmU89vEoLJ3zPE6Tax/YHw7/MwNCI=";
|
||||
};
|
||||
|
||||
# sourceRoot breaks patches
|
||||
preConfigure = ''
|
||||
cd glib
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"VERSION=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
"ROOT="
|
||||
"PREFIX=${placeholder "out"}"
|
||||
"INCDIR=${placeholder "dev"}/include/sailfishaccesscontrol"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gitUpdater { };
|
||||
tests = {
|
||||
pkg-config = testers.hasPkgConfigModules {
|
||||
package = finalAttrs.finalPackage;
|
||||
versionCheck = true;
|
||||
};
|
||||
qt5 = libsForQt5.sailfish-access-control-plugin;
|
||||
qt6 = qt6Packages.sailfish-access-control-plugin;
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Thin wrapper on top of pwd.h and grp.h of glibc";
|
||||
longDescription = ''
|
||||
This package provides a thin wrapper library on top of the getuid, getpwuid, getgrouplist, and friends.
|
||||
Checking whether a user belongs to a group should be done via this Sailfish Access Control library.
|
||||
|
||||
This will make it easier to fix for instance rerentrancy issues.
|
||||
'';
|
||||
homepage = "https://github.com/sailfishos/sailfish-access-control";
|
||||
changelog = "https://github.com/sailfishos/sailfish-access-control/releases/tag/${finalAttrs.version}";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
pkgConfigModules = [
|
||||
"sailfishaccesscontrol"
|
||||
];
|
||||
};
|
||||
})
|
||||
@ -0,0 +1,73 @@
|
||||
From 0658ff459aa200dfe3561646f5e73cd8715a1d0f Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Wed, 12 Jun 2024 09:24:05 +0200
|
||||
Subject: [PATCH] Migrate to new QtContact sqlite backend fixes:
|
||||
https://gitlab.com/ubports/development/apps/lomiri-calendar-app/-/issues/221
|
||||
|
||||
---
|
||||
src/qml/ContactChoicePopup.qml | 34 ++++------------------------------
|
||||
1 file changed, 4 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/src/qml/ContactChoicePopup.qml b/src/qml/ContactChoicePopup.qml
|
||||
index f514c23b..59fe545d 100644
|
||||
--- a/src/qml/ContactChoicePopup.qml
|
||||
+++ b/src/qml/ContactChoicePopup.qml
|
||||
@@ -20,6 +20,7 @@ import Lomiri.Components 1.3
|
||||
import Lomiri.Components.Popups 1.3
|
||||
import Lomiri.Components.ListItems 1.3
|
||||
import Lomiri.Components.Themes.Ambiance 1.3
|
||||
+import Lomiri.Contacts 0.1
|
||||
import QtOrganizer 5.0
|
||||
import QtContacts 5.0
|
||||
|
||||
@@ -38,36 +39,9 @@ Popover {
|
||||
visible: contactModel.contacts.length === 0
|
||||
}
|
||||
|
||||
- UnionFilter {
|
||||
- id: filter
|
||||
-
|
||||
- property string searchString: ""
|
||||
-
|
||||
- filters: [
|
||||
- DetailFilter{
|
||||
- detail: ContactDetail.Name
|
||||
- field: Name.FirstName
|
||||
- matchFlags: Filter.MatchContains
|
||||
- value: filter.searchString
|
||||
- },
|
||||
- DetailFilter{
|
||||
- detail: ContactDetail.Name
|
||||
- field: Name.LastName
|
||||
- matchFlags: Filter.MatchContains
|
||||
- value: filter.searchString
|
||||
- },
|
||||
- DetailFilter{
|
||||
- detail: ContactDetail.DisplayLabel
|
||||
- field: DisplayLabel.Label
|
||||
- matchFlags: Filter.MatchContains
|
||||
- value: filter.searchString
|
||||
- }
|
||||
- ]
|
||||
- }
|
||||
-
|
||||
- ContactModel {
|
||||
+ ContactListModel {
|
||||
id: contactModel
|
||||
- manager: "galera"
|
||||
+ manager: ContactManager.manager()
|
||||
filter: filter
|
||||
autoUpdate: true
|
||||
}
|
||||
@@ -78,7 +52,7 @@ Popover {
|
||||
interval: 500
|
||||
repeat: false
|
||||
onTriggered: {
|
||||
- filter.searchString = searchBox.text
|
||||
+ contactModel.filterTerm = searchBox.text
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,301 @@
|
||||
From fe4c377c08ecc7fa09e0a9407c17afcb63325822 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Tue, 29 Oct 2024 16:11:47 +0100
|
||||
Subject: [PATCH] EDS -> mkCal Initial commit
|
||||
|
||||
---
|
||||
debian/control | 7 ++++---
|
||||
src/qml/AgendaView.qml | 2 +-
|
||||
src/qml/CalendarChoicePopup.qml | 24 +++++++++++++++---------
|
||||
src/qml/EventActions.qml | 23 +++++++++++++++++------
|
||||
src/qml/EventDetails.qml | 2 +-
|
||||
src/qml/EventListModel.qml | 21 +++++++++------------
|
||||
src/qml/ExportPageCommon.qml | 2 +-
|
||||
src/qml/TimeLineBaseComponent.qml | 2 +-
|
||||
src/qml/calendar.qml | 2 +-
|
||||
9 files changed, 50 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/debian/control b/debian/control
|
||||
index 1f4fe4d5..5f8a603f 100644
|
||||
--- a/debian/control
|
||||
+++ b/debian/control
|
||||
@@ -11,6 +11,8 @@ Build-Depends: cmake,
|
||||
qml-module-qtquick2,
|
||||
qml-module-qttest,
|
||||
qml-module-lomiri-components,
|
||||
+ qml-module-buteo-profiles,
|
||||
+ qt5-default,
|
||||
qtdeclarative5-dev,
|
||||
qtdeclarative5-dev-tools,
|
||||
Standards-Version: 4.7.0
|
||||
@@ -29,10 +31,9 @@ Depends: ${misc:Depends},
|
||||
qml-module-lomiri-components,
|
||||
qml-module-lomiri-onlineaccounts-client,
|
||||
qml-module-sso-onlineaccounts,
|
||||
- qtcontact5-galera,
|
||||
- qml-module-lomiri-syncmonitor | qml-module-lomiri-syncmonitor0.1,
|
||||
- qtorganizer5-eds,
|
||||
+ qml-module-buteo-profiles,
|
||||
ubuntu-mobile-icons | suru-icon-theme,
|
||||
+ qtorganizer-mkcal,
|
||||
Description: Calendar application
|
||||
The Calendar application devices lets you organise your life your way by
|
||||
month, week or daily diary.
|
||||
diff --git a/src/qml/AgendaView.qml b/src/qml/AgendaView.qml
|
||||
index 08d7bd21..5996cbee 100644
|
||||
--- a/src/qml/AgendaView.qml
|
||||
+++ b/src/qml/AgendaView.qml
|
||||
@@ -35,7 +35,7 @@ PageWithBottomEdge {
|
||||
|
||||
function hasEnabledCalendars() {
|
||||
var enabled_calendars = eventListModel.getCollections().filter( function( item ) {
|
||||
- return item.extendedMetaData( "collection-selected" );
|
||||
+ return item.extendedMetaData( "visible" );
|
||||
} );
|
||||
|
||||
return !!enabled_calendars.length;
|
||||
diff --git a/src/qml/CalendarChoicePopup.qml b/src/qml/CalendarChoicePopup.qml
|
||||
index 39416e5c..5d29ef86 100644
|
||||
--- a/src/qml/CalendarChoicePopup.qml
|
||||
+++ b/src/qml/CalendarChoicePopup.qml
|
||||
@@ -20,7 +20,8 @@ import QtQuick 2.4
|
||||
import QtOrganizer 5.0
|
||||
import Lomiri.Components 1.3
|
||||
import Lomiri.Content 1.3
|
||||
-import Lomiri.SyncMonitor 0.1
|
||||
+//import Lomiri.SyncMonitor 0.1
|
||||
+import Buteo 0.1
|
||||
import Lomiri.Components.Popups 1.3
|
||||
import SSO.OnlineAccounts 0.1
|
||||
|
||||
@@ -59,17 +60,22 @@ Page {
|
||||
// TRANSLATORS: Please translate this string to 15 characters only.
|
||||
// Currently ,there is no way we can increase width of action menu currently.
|
||||
text: enabled ? i18n.tr("Sync") : i18n.tr("Syncing")
|
||||
- onTriggered: syncMonitor.sync(["calendar"])
|
||||
- enabled: (syncMonitor.state !== "syncing")
|
||||
+ onTriggered: buteoSync.startSyncByCategory("calendar")
|
||||
+ enabled: (!buteoSync.synchronizing)
|
||||
visible: !networkError
|
||||
}
|
||||
flickable: flickable
|
||||
}
|
||||
|
||||
- SyncMonitor {
|
||||
- id: syncMonitor
|
||||
+ ButeoSync {
|
||||
+ id: buteoSync
|
||||
}
|
||||
|
||||
+
|
||||
+ // SyncMonitor {
|
||||
+ // id: syncMonitor
|
||||
+ // }
|
||||
+
|
||||
Flickable {
|
||||
id: flickable
|
||||
|
||||
@@ -162,10 +168,10 @@ Page {
|
||||
id: checkBox
|
||||
objectName: "checkBox"
|
||||
SlotsLayout.position: SlotsLayout.Last
|
||||
- checked: modelData.extendedMetaData("collection-selected")
|
||||
+ checked: modelData.extendedMetaData("visible")
|
||||
enabled: !calendarChoicePage.isInEditMode
|
||||
onCheckedChanged: {
|
||||
- if (!checkBox.checked && modelData.extendedMetaData("collection-readonly") === false) {
|
||||
+ if (!checkBox.checked && modelData.extendedMetaData("readOnly") === false) {
|
||||
var collections = calendarChoicePage.model.getWritableAndSelectedCollections();
|
||||
if (collections.length == 1) {
|
||||
PopupUtils.open(singleWritableDialogComponent);
|
||||
@@ -174,8 +180,8 @@ Page {
|
||||
}
|
||||
}
|
||||
|
||||
- if (modelData.extendedMetaData("collection-selected") !== checkBox.checked) {
|
||||
- modelData.setExtendedMetaData("collection-selected",checkBox.checked)
|
||||
+ if (modelData.extendedMetaData("visible") !== checkBox.checked) {
|
||||
+ modelData.setExtendedMetaData("visible",checkBox.checked)
|
||||
var collection = calendarChoicePage.model.collection(modelData.collectionId);
|
||||
calendarChoicePage.model.saveCollection(collection);
|
||||
}
|
||||
diff --git a/src/qml/EventActions.qml b/src/qml/EventActions.qml
|
||||
index 30617065..d583eb1a 100644
|
||||
--- a/src/qml/EventActions.qml
|
||||
+++ b/src/qml/EventActions.qml
|
||||
@@ -18,7 +18,8 @@
|
||||
|
||||
import QtQuick 2.4
|
||||
import Lomiri.Components 1.3
|
||||
-import Lomiri.SyncMonitor 0.1
|
||||
+//import Lomiri.SyncMonitor 0.1
|
||||
+import Buteo.Profiles 0.1
|
||||
import Lomiri.Components.Popups 1.3
|
||||
import Qt.labs.settings 1.0
|
||||
|
||||
@@ -29,7 +30,7 @@ Item {
|
||||
property alias syncCalendarAction: _syncCalendarAction
|
||||
property alias settingsAction: _settingsAction
|
||||
property Settings settings
|
||||
- readonly property bool syncInProgress: (syncMonitor.state !== "") && (syncMonitor.state === "syncing")
|
||||
+ readonly property bool syncInProgress: buteoSync.synchronizing
|
||||
|
||||
onSyncInProgressChanged: {
|
||||
|
||||
@@ -77,11 +78,20 @@ Item {
|
||||
// TRANSLATORS: Please translate this string to 15 characters only.
|
||||
// Currently ,there is no way we can increase width of action menu currently.
|
||||
text: i18n.tr("Sync")
|
||||
- onTriggered: syncMonitor.sync(["calendar"])
|
||||
- enabled: syncMonitor.enabledServices ? syncMonitor.serviceIsEnabled("calendar") : false
|
||||
- visible: syncMonitor.enabledServices ? true : false
|
||||
+ onTriggered: buteoSync.synchronize()
|
||||
+ enabled: buteoSync.profiles.length > 0 ? true: false
|
||||
+ visible: buteoSync.serviceAvailable ? true : false
|
||||
}
|
||||
|
||||
+ SyncManager {
|
||||
+ id: buteoSync
|
||||
+ filterHidden: true
|
||||
+ filterBy.key: "category"
|
||||
+ filterBy.value: "calendar"
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+/*
|
||||
SyncMonitor {
|
||||
id: syncMonitor
|
||||
onSyncError: {
|
||||
@@ -94,6 +104,7 @@ Item {
|
||||
}
|
||||
}
|
||||
}
|
||||
+ */
|
||||
|
||||
Action{
|
||||
id: _showCalendarAction
|
||||
@@ -125,7 +136,7 @@ Item {
|
||||
target: _syncCalendarAction
|
||||
iconSource: "../assets/sync-cancel.svg"
|
||||
text: i18n.tr("Syncing")
|
||||
- onTriggered: syncMonitor.cancel(["calendar"])
|
||||
+ //onTriggered: syncMonitor.cancel(["calendar"])
|
||||
}
|
||||
},
|
||||
State {
|
||||
diff --git a/src/qml/EventDetails.qml b/src/qml/EventDetails.qml
|
||||
index e8b5dcfb..63377c5d 100644
|
||||
--- a/src/qml/EventDetails.qml
|
||||
+++ b/src/qml/EventDetails.qml
|
||||
@@ -49,7 +49,7 @@ Page {
|
||||
text: i18n.tr("Edit");
|
||||
objectName: "edit"
|
||||
iconName: "edit";
|
||||
- enabled: !collection.extendedMetaData("collection-readonly")
|
||||
+ enabled: !collection.extendedMetaData("readOnly")
|
||||
shortcut: "Ctrl+E"
|
||||
onTriggered: {
|
||||
if( event.itemType === Type.EventOccurrence ) {
|
||||
diff --git a/src/qml/EventListModel.qml b/src/qml/EventListModel.qml
|
||||
index 7e3b28af..8e9c958a 100644
|
||||
--- a/src/qml/EventListModel.qml
|
||||
+++ b/src/qml/EventListModel.qml
|
||||
@@ -22,7 +22,7 @@ import "dateExt.js" as DateExt
|
||||
|
||||
OrganizerModel {
|
||||
id: eventModel
|
||||
- manager:"eds"
|
||||
+ manager:"mkcal"
|
||||
|
||||
readonly property bool appIsActive: (Qt.application.state === Qt.ApplicationActive)
|
||||
property bool active: false
|
||||
@@ -84,7 +84,7 @@ OrganizerModel {
|
||||
if (!collection)
|
||||
return false
|
||||
|
||||
- return collection.extendedMetaData("collection-readonly") === true ||
|
||||
+ return collection.extendedMetaData("readOnly") === true ||
|
||||
collection.extendedMetaData("collection-sync-readonly") === true
|
||||
}
|
||||
|
||||
@@ -93,14 +93,12 @@ OrganizerModel {
|
||||
var collections = eventModel.collections;
|
||||
for(var i = 0 ; i < collections.length ; ++i) {
|
||||
var cal = collections[i];
|
||||
- if( cal.extendedMetaData("collection-type") === "Calendar" ) {
|
||||
- // Handle the special QtContactBirthdays calendar from lomiri-abook2cal-syncd
|
||||
- if (cal.name === "QtContactBirthdays") {
|
||||
- cal.name = i18n.tr("Birthdays & Anniversaries")
|
||||
- }
|
||||
-
|
||||
- cals.push(cal);
|
||||
+ // Handle the special QtContactBirthdays calendar from lomiri-abook2cal-syncd
|
||||
+ if (cal.name === "QtContactBirthdays") {
|
||||
+ cal.name = i18n.tr("Birthdays & Anniversaries")
|
||||
}
|
||||
+
|
||||
+ cals.push(cal);
|
||||
}
|
||||
cals.sort(eventModel._sortCollections)
|
||||
return cals;
|
||||
@@ -111,8 +109,7 @@ OrganizerModel {
|
||||
var collections = eventModel.collections;
|
||||
for(var i = 0 ; i < collections.length ; ++i) {
|
||||
var cal = collections[i];
|
||||
- if( cal.extendedMetaData("collection-type") === "Calendar" &&
|
||||
- cal.extendedMetaData("collection-selected") === true &&
|
||||
+ if( cal.extendedMetaData("visible") === true &&
|
||||
!collectionIsReadOnly(cal)) {
|
||||
cals.push(cal);
|
||||
}
|
||||
@@ -128,7 +125,7 @@ OrganizerModel {
|
||||
var firstSelectedCollection = null
|
||||
for(var i = 0 ; i < cals.length ; ++i) {
|
||||
var cal = cals[i]
|
||||
- if (cal.extendedMetaData("collection-selected") === true) {
|
||||
+ if (cal.extendedMetaData("visible") === true) {
|
||||
if (!firstSelectedCollection) {
|
||||
firstSelectedCollection = cal
|
||||
}
|
||||
diff --git a/src/qml/ExportPageCommon.qml b/src/qml/ExportPageCommon.qml
|
||||
index 0a1f2f34..88310560 100644
|
||||
--- a/src/qml/ExportPageCommon.qml
|
||||
+++ b/src/qml/ExportPageCommon.qml
|
||||
@@ -151,7 +151,7 @@ Page {
|
||||
|
||||
OrganizerModel{
|
||||
id: organizerExporter
|
||||
- manager:"eds"
|
||||
+ manager:"mkcal"
|
||||
autoUpdate: true
|
||||
|
||||
onItemCountChanged: {
|
||||
diff --git a/src/qml/TimeLineBaseComponent.qml b/src/qml/TimeLineBaseComponent.qml
|
||||
index 519300df..7e8a364b 100644
|
||||
--- a/src/qml/TimeLineBaseComponent.qml
|
||||
+++ b/src/qml/TimeLineBaseComponent.qml
|
||||
@@ -193,7 +193,7 @@ Item {
|
||||
id: mainModel
|
||||
objectName: "timeLineBaseEventListModel:" + root.objectName
|
||||
|
||||
- manager:"eds"
|
||||
+ manager:"mkcal"
|
||||
startPeriod: startDay.midnight().utcEarliest();
|
||||
endPeriod: type == ViewType.ViewTypeWeek ? startDay.addDays(6).endOfDay().utcLatest(): startDay.endOfDay().utcLatest()
|
||||
|
||||
diff --git a/src/qml/calendar.qml b/src/qml/calendar.qml
|
||||
index 6238a0f5..2b6e6cfd 100644
|
||||
--- a/src/qml/calendar.qml
|
||||
+++ b/src/qml/calendar.qml
|
||||
@@ -251,7 +251,7 @@ MainView {
|
||||
var collections = eventModel.getCollections();
|
||||
for(var i=0; i < collections.length ; ++i) {
|
||||
var collection = collections[i]
|
||||
- if(collection.extendedMetaData("collection-selected") === true) {
|
||||
+ if(collection.extendedMetaData("visible") === true) {
|
||||
collectionIds.push(collection.collectionId);
|
||||
}
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
From 95218b057d1c9ed571e1abc41f0377c6a087ca37 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Mon, 4 Nov 2024 16:52:56 +0100
|
||||
Subject: [PATCH] fix, allDay events not shown. mkCal store allDay event with
|
||||
the same dateStart and dateEnd. Make it work with that setup
|
||||
|
||||
---
|
||||
src/qml/AllDayEventComponent.qml | 18 ++++++++++--------
|
||||
1 file changed, 10 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/qml/AllDayEventComponent.qml b/src/qml/AllDayEventComponent.qml
|
||||
index ba5a67aa..d3364c37 100644
|
||||
--- a/src/qml/AllDayEventComponent.qml
|
||||
+++ b/src/qml/AllDayEventComponent.qml
|
||||
@@ -37,20 +37,22 @@ Row {
|
||||
height: units.gu(5)
|
||||
|
||||
function getAllDayEvents(startDate, endDate) {
|
||||
- var map = {};
|
||||
- var items = model.itemsByTimePeriod(startDate,endDate);
|
||||
- for(var i = 0 ; i < items.length ; ++i) {
|
||||
- var event = items[(i)];
|
||||
+ let map = {};
|
||||
+ const events = model.itemsByTimePeriod(startDate,endDate);
|
||||
+ events.forEach( event => {
|
||||
if( event && event.allDay ) {
|
||||
- for(var d = event.startDateTime; d < event.endDateTime; d = d.addDays(1)) {
|
||||
- var key = Qt.formatDateTime(d, "dd-MMM-yyyy");
|
||||
- if( !(key in map)) {
|
||||
+ let currentDate = event.startDateTime
|
||||
+ while (currentDate <= event.endDateTime) {
|
||||
+ const key = Qt.formatDateTime(currentDate, "dd-MMM-yyyy");
|
||||
+ if (!map[key]) {
|
||||
map[key] = [];
|
||||
}
|
||||
map[key].push(event);
|
||||
+
|
||||
+ currentDate = currentDate.addDays(1);
|
||||
}
|
||||
}
|
||||
- }
|
||||
+ })
|
||||
return map;
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,97 @@
|
||||
From 06750cc6f042cbcf4fa5e2fdd5a6eb29aff0d1b3 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Mon, 4 Nov 2024 16:54:13 +0100
|
||||
Subject: [PATCH] Use ButeoSync profiles for sync management
|
||||
|
||||
---
|
||||
src/qml/CalendarChoicePopup.qml | 20 +++++++++-----------
|
||||
src/qml/EventActions.qml | 7 ++++---
|
||||
2 files changed, 13 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/src/qml/CalendarChoicePopup.qml b/src/qml/CalendarChoicePopup.qml
|
||||
index 5d29ef86..8fa1e4b2 100644
|
||||
--- a/src/qml/CalendarChoicePopup.qml
|
||||
+++ b/src/qml/CalendarChoicePopup.qml
|
||||
@@ -20,8 +20,7 @@ import QtQuick 2.4
|
||||
import QtOrganizer 5.0
|
||||
import Lomiri.Components 1.3
|
||||
import Lomiri.Content 1.3
|
||||
-//import Lomiri.SyncMonitor 0.1
|
||||
-import Buteo 0.1
|
||||
+import Buteo.Profiles 0.1
|
||||
import Lomiri.Components.Popups 1.3
|
||||
import SSO.OnlineAccounts 0.1
|
||||
|
||||
@@ -31,6 +30,7 @@ Page {
|
||||
objectName: "calendarchoicepopup"
|
||||
|
||||
property var model
|
||||
+ readonly property var canSynchronize: !networkError && buteoSync.serviceAvailable && buteoSync.profiles.length > 0 && !buteoSync.synchronizing
|
||||
signal collectionUpdated()
|
||||
|
||||
function accountFromId(accountId)
|
||||
@@ -60,22 +60,20 @@ Page {
|
||||
// TRANSLATORS: Please translate this string to 15 characters only.
|
||||
// Currently ,there is no way we can increase width of action menu currently.
|
||||
text: enabled ? i18n.tr("Sync") : i18n.tr("Syncing")
|
||||
- onTriggered: buteoSync.startSyncByCategory("calendar")
|
||||
- enabled: (!buteoSync.synchronizing)
|
||||
- visible: !networkError
|
||||
+ onTriggered: buteoSync.synchronize()
|
||||
+ enabled: calendarChoicePage.canSynchronize
|
||||
+ visible: buteoSync.serviceAvailable
|
||||
}
|
||||
flickable: flickable
|
||||
}
|
||||
|
||||
- ButeoSync {
|
||||
+ SyncManager {
|
||||
id: buteoSync
|
||||
+ filterHidden: true
|
||||
+ filterBy.key: "category"
|
||||
+ filterBy.value: "calendar"
|
||||
}
|
||||
|
||||
-
|
||||
- // SyncMonitor {
|
||||
- // id: syncMonitor
|
||||
- // }
|
||||
-
|
||||
Flickable {
|
||||
id: flickable
|
||||
|
||||
diff --git a/src/qml/EventActions.qml b/src/qml/EventActions.qml
|
||||
index d583eb1a..d46e8e25 100644
|
||||
--- a/src/qml/EventActions.qml
|
||||
+++ b/src/qml/EventActions.qml
|
||||
@@ -18,7 +18,6 @@
|
||||
|
||||
import QtQuick 2.4
|
||||
import Lomiri.Components 1.3
|
||||
-//import Lomiri.SyncMonitor 0.1
|
||||
import Buteo.Profiles 0.1
|
||||
import Lomiri.Components.Popups 1.3
|
||||
import Qt.labs.settings 1.0
|
||||
@@ -31,6 +30,8 @@ Item {
|
||||
property alias settingsAction: _settingsAction
|
||||
property Settings settings
|
||||
readonly property bool syncInProgress: buteoSync.synchronizing
|
||||
+ readonly property var canSynchronize: !networkError && buteoSync.serviceAvailable && buteoSync.profiles.length > 0 && !buteoSync.synchronizing
|
||||
+
|
||||
|
||||
onSyncInProgressChanged: {
|
||||
|
||||
@@ -79,8 +80,8 @@ Item {
|
||||
// Currently ,there is no way we can increase width of action menu currently.
|
||||
text: i18n.tr("Sync")
|
||||
onTriggered: buteoSync.synchronize()
|
||||
- enabled: buteoSync.profiles.length > 0 ? true: false
|
||||
- visible: buteoSync.serviceAvailable ? true : false
|
||||
+ enabled: actionPool.canSynchronize
|
||||
+ visible: buteoSync.serviceAvailable
|
||||
}
|
||||
|
||||
SyncManager {
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,283 @@
|
||||
From 7c9419ecb95c7973f7db7dbab8f988d4b40a1c00 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Tue, 26 Nov 2024 16:51:59 +0100
|
||||
Subject: [PATCH] Add EDS to mkCal calendar migration
|
||||
|
||||
---
|
||||
CMakeLists.txt | 5 +
|
||||
clickable.yaml | 2 +-
|
||||
debian/control | 3 +-
|
||||
.../lomiri-calendar-app-migrate-eds2mkcal.sh | 13 ++
|
||||
debian/lomiri-calendar-app.install | 3 +-
|
||||
debian/lomiri-calendar-app.migrations | 1 +
|
||||
debian/rules | 4 +-
|
||||
ics_importer/CMakeLists.txt | 20 +++
|
||||
ics_importer/ics_importer.cpp | 122 ++++++++++++++++++
|
||||
9 files changed, 168 insertions(+), 5 deletions(-)
|
||||
create mode 100644 debian/lomiri-calendar-app-migrate-eds2mkcal.sh
|
||||
create mode 100644 ics_importer/CMakeLists.txt
|
||||
create mode 100644 ics_importer/ics_importer.cpp
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 547f6550..c49d718b 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -12,6 +12,7 @@ find_package(Qt5Quick REQUIRED)
|
||||
|
||||
option(INSTALL_TESTS "Install the tests on make install" on)
|
||||
option(CLICK_MODE "Installs to a contained location" on)
|
||||
+option(ENABLE_EDS_IMPORTER "Build eds2mkcal importer tool" off)
|
||||
|
||||
# Standard install paths
|
||||
include(GNUInstallDirs)
|
||||
@@ -96,3 +97,7 @@ install(FILES ${APPLICATION_FILE} DESTINATION ${APPLICATION_DIR})
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(po)
|
||||
add_subdirectory(tests)
|
||||
+if(ENABLE_EDS_IMPORTER)
|
||||
+ add_subdirectory(ics_importer)
|
||||
+endif(ENABLE_EDS_IMPORTER)
|
||||
+
|
||||
diff --git a/clickable.yaml b/clickable.yaml
|
||||
index 486f4bf6..c1eaf346 100644
|
||||
--- a/clickable.yaml
|
||||
+++ b/clickable.yaml
|
||||
@@ -4,5 +4,5 @@ framework: ubuntu-sdk-20.04
|
||||
build_args: "-DCLICK_MODE=ON"
|
||||
kill: 'lomiri-calendar-app'
|
||||
dependencies_host:
|
||||
- - qtorganizer5-eds
|
||||
+ - qtorganizer5-mkcal
|
||||
ignore_review_errors: true
|
||||
diff --git a/debian/control b/debian/control
|
||||
index 5f8a603f..9bce332f 100644
|
||||
--- a/debian/control
|
||||
+++ b/debian/control
|
||||
@@ -12,9 +12,10 @@ Build-Depends: cmake,
|
||||
qml-module-qttest,
|
||||
qml-module-lomiri-components,
|
||||
qml-module-buteo-profiles,
|
||||
- qt5-default,
|
||||
+ qtbase5-dev,
|
||||
qtdeclarative5-dev,
|
||||
qtdeclarative5-dev-tools,
|
||||
+ qtpim5-dev
|
||||
Standards-Version: 4.7.0
|
||||
Homepage: https://gitlab.com/ubports/development/apps/lomiri-calendar-app
|
||||
Vcs-Git: https://gitlab.com/ubports/development/apps/lomiri-calendar-app.git
|
||||
diff --git a/debian/lomiri-calendar-app-migrate-eds2mkcal.sh b/debian/lomiri-calendar-app-migrate-eds2mkcal.sh
|
||||
new file mode 100644
|
||||
index 00000000..339e0fff
|
||||
--- /dev/null
|
||||
+++ b/debian/lomiri-calendar-app-migrate-eds2mkcal.sh
|
||||
@@ -0,0 +1,13 @@
|
||||
+#! /bin/sh
|
||||
+
|
||||
+set -e
|
||||
+
|
||||
+# Exit if we already migrated
|
||||
+[ -f "$HOME/.local/share/evolution/calendar/system/migrated_to_mkcal" ] && exit 0
|
||||
+
|
||||
+# Exit if there is no ICS file
|
||||
+[ -f "$HOME/.local/share/evolution/calendar/system/calendar.ics" ] || exit 0
|
||||
+
|
||||
+/usr/bin/lomiri-calendar-eds2mkcal-importer "$HOME/.local/share/evolution/calendar/system/calendar.ics"
|
||||
+
|
||||
+echo $? > "$HOME/.local/share/evolution/calendar/system/migrated_to_mkcal"
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/lomiri-calendar-app.install b/debian/lomiri-calendar-app.install
|
||||
index 315c7b75..151885bf 100644
|
||||
--- a/debian/lomiri-calendar-app.install
|
||||
+++ b/debian/lomiri-calendar-app.install
|
||||
@@ -1,3 +1,4 @@
|
||||
-usr/bin/*
|
||||
+usr/bin/lomiri-calendar-app
|
||||
+usr/bin/lomiri-calendar-eds2mkcal-importer
|
||||
usr/lib/lomiri-push-service/*
|
||||
usr/share/*
|
||||
diff --git a/debian/lomiri-calendar-app.migrations b/debian/lomiri-calendar-app.migrations
|
||||
index c232792d..338d4454 100644
|
||||
--- a/debian/lomiri-calendar-app.migrations
|
||||
+++ b/debian/lomiri-calendar-app.migrations
|
||||
@@ -1 +1,2 @@
|
||||
debian/lomiri-calendar-app-name-change.sh
|
||||
+debian/lomiri-calendar-app-migrate-eds2mkcal.sh
|
||||
diff --git a/debian/rules b/debian/rules
|
||||
index ca2b30fc..cce09bd4 100755
|
||||
--- a/debian/rules
|
||||
+++ b/debian/rules
|
||||
@@ -2,7 +2,7 @@
|
||||
# -*- makefile -*-
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
-#export DH_VERBOSE=1
|
||||
+export DH_VERBOSE=1
|
||||
|
||||
PROJECT_DH_OPTIONS =
|
||||
ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
|
||||
@@ -16,7 +16,7 @@ override_dh_missing:
|
||||
dh_missing --fail-missing
|
||||
|
||||
override_dh_auto_configure:
|
||||
- dh_auto_configure -- -DCLICK_MODE=OFF
|
||||
+ dh_auto_configure -- -DCLICK_MODE=OFF -DENABLE_EDS_IMPORTER=ON
|
||||
|
||||
override_dh_auto_test:
|
||||
# unit tests are failing, may be out of sync with the codebase since
|
||||
diff --git a/ics_importer/CMakeLists.txt b/ics_importer/CMakeLists.txt
|
||||
new file mode 100644
|
||||
index 00000000..ee52c860
|
||||
--- /dev/null
|
||||
+++ b/ics_importer/CMakeLists.txt
|
||||
@@ -0,0 +1,20 @@
|
||||
+project(ICSImporter VERSION 1.0 LANGUAGES CXX)
|
||||
+
|
||||
+cmake_minimum_required(VERSION 3.14)
|
||||
+
|
||||
+find_package(Qt5 REQUIRED COMPONENTS Core Organizer Versit VersitOrganizer)
|
||||
+
|
||||
+add_executable(lomiri-calendar-eds2mkcal-importer ics_importer.cpp)
|
||||
+
|
||||
+target_link_libraries(lomiri-calendar-eds2mkcal-importer
|
||||
+ Qt5::Core
|
||||
+ Qt5::Organizer
|
||||
+ Qt5::Versit
|
||||
+ Qt5::VersitOrganizer
|
||||
+)
|
||||
+
|
||||
+install(TARGETS lomiri-calendar-eds2mkcal-importer
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+)
|
||||
+
|
||||
+
|
||||
diff --git a/ics_importer/ics_importer.cpp b/ics_importer/ics_importer.cpp
|
||||
new file mode 100644
|
||||
index 00000000..3d409d47
|
||||
--- /dev/null
|
||||
+++ b/ics_importer/ics_importer.cpp
|
||||
@@ -0,0 +1,122 @@
|
||||
+#include <QCoreApplication>
|
||||
+#include <QDebug>
|
||||
+#include <QFile>
|
||||
+#include <QTextStream>
|
||||
+#include <QtOrganizer/QOrganizerManager>
|
||||
+#include <QtOrganizer/QOrganizerEvent>
|
||||
+#include <QtOrganizer/QOrganizerItem>
|
||||
+#include <QtOrganizer/QOrganizerItemFetchRequest>
|
||||
+#include <QtVersit/QVersitReader>
|
||||
+#include <QVersitOrganizerImporter>
|
||||
+
|
||||
+using namespace QtOrganizer;
|
||||
+using namespace QtVersit;
|
||||
+
|
||||
+bool importICS(const QString& filePath, const QString& collectionId) {
|
||||
+ QFile file(filePath);
|
||||
+
|
||||
+ if (!file.exists()) {
|
||||
+ qWarning() << "File does not exist:" << filePath;
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ if (!file.open(QIODevice::ReadOnly)) {
|
||||
+ qWarning() << "Failed to open file:" << filePath;
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ // Read the .ics file content
|
||||
+ QVersitReader reader;
|
||||
+ reader.setDevice(&file);
|
||||
+ bool result = reader.startReading();
|
||||
+ reader.waitForFinished();
|
||||
+ if(!result)
|
||||
+ {
|
||||
+ qCritical()<<"ics reading failed";
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ QList<QVersitDocument> documents = reader.results();
|
||||
+
|
||||
+
|
||||
+ if (!QOrganizerManager::availableManagers().contains("mkcal")) {
|
||||
+ qWarning() << "Could not found mkcal backend for QtPim";
|
||||
+ return false;
|
||||
+ }
|
||||
+ QOrganizerManager manager("mkcal");
|
||||
+ QOrganizerCollectionId targetCollectionId = manager.defaultCollectionId();
|
||||
+ if (!collectionId.isEmpty()) {
|
||||
+
|
||||
+ QList<QOrganizerCollection> collections = manager.collections();
|
||||
+ bool exist = false;
|
||||
+ for (const QOrganizerCollection& col: collections) {
|
||||
+ if (col.id().localId() == collectionId) {
|
||||
+ exist = true;
|
||||
+ targetCollectionId = col.id();
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ if (!exist) {
|
||||
+ qWarning() << "Could not found collection with id" << collectionId;
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ qDebug() << "targeted collection Id:" << targetCollectionId.localId();
|
||||
+
|
||||
+ //Import the .ics data into QOrganizer
|
||||
+ QtVersitOrganizer::QVersitOrganizerImporter importer;
|
||||
+
|
||||
+ for (const QVersitDocument& document: documents) {
|
||||
+ bool ok = importer.importDocument(document);
|
||||
+
|
||||
+ if (!ok) {
|
||||
+ qWarning() << "Failed to import document" << importer.errorMap();
|
||||
+ } else {
|
||||
+
|
||||
+ QList<QOrganizerItem> importedItems = importer.items();
|
||||
+ QList<QOrganizerItem> batch;
|
||||
+ const int batchSize = 200;
|
||||
+
|
||||
+ qDebug() << "Import events into collection" << targetCollectionId;
|
||||
+
|
||||
+ for (int i = 0; i < importedItems.size(); ++i) {
|
||||
+ QOrganizerItem& item = importedItems[i];
|
||||
+ item.setCollectionId(targetCollectionId);
|
||||
+ batch.append(item);
|
||||
+
|
||||
+ if (batch.size() == batchSize || i == importedItems.size() - 1) {
|
||||
+ if (!manager.saveItems(&batch)) {
|
||||
+ qWarning() << "Failed to save batch. Error:" << manager.error();
|
||||
+ } else {
|
||||
+ qDebug() << "Batch of" << batch.size() << "items saved successfully.";
|
||||
+ }
|
||||
+
|
||||
+ batch.clear();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ qDebug() << "ICS import completed.";
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char *argv[]) {
|
||||
+ QCoreApplication app(argc, argv);
|
||||
+
|
||||
+ if (argc < 2) {
|
||||
+ qCritical() << "Usage: importer <path_to_ics_file> [collection_id]";
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+
|
||||
+ QString filePath = argv[1];
|
||||
+ QString collection;
|
||||
+ if (argc == 3) {
|
||||
+ collection = argv[2];
|
||||
+ }
|
||||
+
|
||||
+ bool ok = importICS(filePath, collection);
|
||||
+
|
||||
+ return ok ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
+}
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
From 83541449e953f15c34f53dce657a94f189f597d3 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Thu, 28 Nov 2024 09:30:59 +0100
|
||||
Subject: [PATCH] Support caldav service. ( Needed by buteo caldav plugin)
|
||||
|
||||
---
|
||||
lomiri-calendar-app.application | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/lomiri-calendar-app.application b/lomiri-calendar-app.application
|
||||
index f0781b77..684c14b6 100644
|
||||
--- a/lomiri-calendar-app.application
|
||||
+++ b/lomiri-calendar-app.application
|
||||
@@ -7,6 +7,9 @@
|
||||
<service-type id="calendar">
|
||||
<description>Syncronize your calendar</description>
|
||||
</service-type>
|
||||
+ <service-type id="caldav">
|
||||
+ <description>Syncronize your calendar</description>
|
||||
+ </service-type>
|
||||
</service-types>
|
||||
|
||||
</application>
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
From fa1e0406e256ce66d399e1e0f0b18974b15704fe Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Wed, 11 Dec 2024 17:17:08 +0100
|
||||
Subject: [PATCH] Clean up sync-monitor usage
|
||||
|
||||
---
|
||||
src/qml/EventActions.qml | 18 +-----------------
|
||||
1 file changed, 1 insertion(+), 17 deletions(-)
|
||||
|
||||
diff --git a/src/qml/EventActions.qml b/src/qml/EventActions.qml
|
||||
index d46e8e25..63e50fb9 100644
|
||||
--- a/src/qml/EventActions.qml
|
||||
+++ b/src/qml/EventActions.qml
|
||||
@@ -91,22 +91,6 @@ Item {
|
||||
filterBy.value: "calendar"
|
||||
}
|
||||
|
||||
-
|
||||
-/*
|
||||
- SyncMonitor {
|
||||
- id: syncMonitor
|
||||
- onSyncError: {
|
||||
- console.log('SyncError:', account, service, error)
|
||||
- if (error != "canceled") {
|
||||
-
|
||||
- syncErrorData.account = account
|
||||
- syncErrorData.error = error
|
||||
- syncErrorData.service = service
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- */
|
||||
-
|
||||
Action{
|
||||
id: _showCalendarAction
|
||||
objectName: "calendarsbutton"
|
||||
@@ -170,7 +154,7 @@ Item {
|
||||
Button {
|
||||
text: i18n.tr("Retry sync")
|
||||
onClicked: {
|
||||
- syncMonitor.sync(["calendar"])
|
||||
+ buteoSync.synchronize()
|
||||
PopupUtils.close(dialogue)
|
||||
}
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
From 25c7d5e53cc4576a6e6a0ba91fc5ff9f288cf626 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Wed, 11 Dec 2024 17:18:06 +0100
|
||||
Subject: [PATCH] Use "account" supported metadata instead of eds metadata
|
||||
"collection-account-id"
|
||||
|
||||
---
|
||||
src/qml/CalendarChoicePopup.qml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/qml/CalendarChoicePopup.qml b/src/qml/CalendarChoicePopup.qml
|
||||
index 8fa1e4b2..02d2c717 100644
|
||||
--- a/src/qml/CalendarChoicePopup.qml
|
||||
+++ b/src/qml/CalendarChoicePopup.qml
|
||||
@@ -155,7 +155,7 @@ Page {
|
||||
|
||||
Account {
|
||||
id: delegateAccount
|
||||
- objectHandle: calendarChoicePage.accountFromId(modelData.extendedMetaData("collection-account-id"))
|
||||
+ objectHandle: calendarChoicePage.accountFromId(modelData.extendedMetaData("account"))
|
||||
}
|
||||
|
||||
title.text: modelData.name
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
From b6369a317d8c5e3c654071382092dca18f543e8f Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Fri, 20 Dec 2024 10:28:32 +0100
|
||||
Subject: [PATCH] Add support for google-calendars
|
||||
|
||||
---
|
||||
lomiri-calendar-app.application | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/lomiri-calendar-app.application b/lomiri-calendar-app.application
|
||||
index 684c14b6..37d1e0ef 100644
|
||||
--- a/lomiri-calendar-app.application
|
||||
+++ b/lomiri-calendar-app.application
|
||||
@@ -5,10 +5,13 @@
|
||||
|
||||
<service-types>
|
||||
<service-type id="calendar">
|
||||
- <description>Syncronize your calendar</description>
|
||||
+ <description>Synchronize your calendar</description>
|
||||
</service-type>
|
||||
<service-type id="caldav">
|
||||
- <description>Syncronize your calendar</description>
|
||||
+ <description>Synchronize your calendar</description>
|
||||
+ </service-type>
|
||||
+ <service-type id="google-calendars">
|
||||
+ <description>Synchronize your calendar</description>
|
||||
</service-type>
|
||||
</service-types>
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,24 @@
|
||||
From 097472be88b64284a90361bee7493e3bb0067f18 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Tue, 7 Jan 2025 10:34:57 +0100
|
||||
Subject: [PATCH] Do not retrieve disabled profiles
|
||||
|
||||
---
|
||||
src/qml/CalendarChoicePopup.qml | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/qml/CalendarChoicePopup.qml b/src/qml/CalendarChoicePopup.qml
|
||||
index 02d2c717..42bf6462 100644
|
||||
--- a/src/qml/CalendarChoicePopup.qml
|
||||
+++ b/src/qml/CalendarChoicePopup.qml
|
||||
@@ -69,6 +69,7 @@ Page {
|
||||
|
||||
SyncManager {
|
||||
id: buteoSync
|
||||
+ filterDisabled: true
|
||||
filterHidden: true
|
||||
filterBy.key: "category"
|
||||
filterBy.value: "calendar"
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,77 @@
|
||||
From d2477ad5cfbdfff39f20c0659c4915a53019572a Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Tue, 7 Jan 2025 10:40:00 +0100
|
||||
Subject: [PATCH] Auto sync on first account creation
|
||||
|
||||
---
|
||||
src/qml/CalendarChoicePopup.qml | 17 +++++++++++++++++
|
||||
src/qml/OnlineAccountsHelper.qml | 11 +++++++++++
|
||||
2 files changed, 28 insertions(+)
|
||||
|
||||
diff --git a/src/qml/CalendarChoicePopup.qml b/src/qml/CalendarChoicePopup.qml
|
||||
index 42bf6462..a0367138 100644
|
||||
--- a/src/qml/CalendarChoicePopup.qml
|
||||
+++ b/src/qml/CalendarChoicePopup.qml
|
||||
@@ -67,6 +67,18 @@ Page {
|
||||
flickable: flickable
|
||||
}
|
||||
|
||||
+ Timer {
|
||||
+ id: contactFirstSyncTimer
|
||||
+
|
||||
+ interval: 500
|
||||
+ repeat: false
|
||||
+ onTriggered: {
|
||||
+ if (calendarChoicePage.canSynchronize) {
|
||||
+ buteoSync.synchronize()
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
SyncManager {
|
||||
id: buteoSync
|
||||
filterDisabled: true
|
||||
@@ -399,6 +411,11 @@ Page {
|
||||
anchors.fill: parent
|
||||
asynchronous: true
|
||||
source: sourceFile
|
||||
+
|
||||
+ Connections {
|
||||
+ target: onlineAccountHelper.item ? onlineAccountHelper.item : null
|
||||
+ onFinished: contactFirstSyncTimer.restart()
|
||||
+ }
|
||||
}
|
||||
|
||||
Component {
|
||||
diff --git a/src/qml/OnlineAccountsHelper.qml b/src/qml/OnlineAccountsHelper.qml
|
||||
index 3a6b4b16..6d07bad7 100644
|
||||
--- a/src/qml/OnlineAccountsHelper.qml
|
||||
+++ b/src/qml/OnlineAccountsHelper.qml
|
||||
@@ -24,6 +24,8 @@ Item {
|
||||
id: root
|
||||
|
||||
property var dialogInstance: null
|
||||
+ signal finished()
|
||||
+ signal canceled()
|
||||
|
||||
function run(){
|
||||
if (!root.dialogInstance) {
|
||||
@@ -86,6 +88,15 @@ Item {
|
||||
providerId: "google"
|
||||
onFinished: {
|
||||
PopupUtils.close(root.dialogInstance)
|
||||
+ if (reply != null && reply.errorName !== undefined) {
|
||||
+ if (reply.errorName === "com.lomiri.OnlineAccountsUi.UserCanceled") {
|
||||
+ root.canceled()
|
||||
+ } else {
|
||||
+ root.finished()
|
||||
+ }
|
||||
+ } else {
|
||||
+ root.finished()
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,64 @@
|
||||
From 9b4412fa12df1452bc987149e8497e50d58e76f0 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Fri, 10 Jan 2025 17:45:39 +0100
|
||||
Subject: [PATCH] Display sync button only if profiles are enabled and set
|
||||
|
||||
---
|
||||
src/qml/CalendarChoicePopup.qml | 5 +++--
|
||||
src/qml/EventActions.qml | 6 ++++--
|
||||
2 files changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/qml/CalendarChoicePopup.qml b/src/qml/CalendarChoicePopup.qml
|
||||
index a0367138..3964c3c1 100644
|
||||
--- a/src/qml/CalendarChoicePopup.qml
|
||||
+++ b/src/qml/CalendarChoicePopup.qml
|
||||
@@ -30,7 +30,8 @@ Page {
|
||||
objectName: "calendarchoicepopup"
|
||||
|
||||
property var model
|
||||
- readonly property var canSynchronize: !networkError && buteoSync.serviceAvailable && buteoSync.profiles.length > 0 && !buteoSync.synchronizing
|
||||
+ readonly property bool syncAvailable: buteoSync.serviceAvailable && buteoSync.profiles.length > 0
|
||||
+ readonly property var canSynchronize: !networkError && syncAvailable && !buteoSync.synchronizing
|
||||
signal collectionUpdated()
|
||||
|
||||
function accountFromId(accountId)
|
||||
@@ -62,7 +63,7 @@ Page {
|
||||
text: enabled ? i18n.tr("Sync") : i18n.tr("Syncing")
|
||||
onTriggered: buteoSync.synchronize()
|
||||
enabled: calendarChoicePage.canSynchronize
|
||||
- visible: buteoSync.serviceAvailable
|
||||
+ visible: calendarChoicePage.syncAvailable
|
||||
}
|
||||
flickable: flickable
|
||||
}
|
||||
diff --git a/src/qml/EventActions.qml b/src/qml/EventActions.qml
|
||||
index 63e50fb9..579981d5 100644
|
||||
--- a/src/qml/EventActions.qml
|
||||
+++ b/src/qml/EventActions.qml
|
||||
@@ -30,7 +30,8 @@ Item {
|
||||
property alias settingsAction: _settingsAction
|
||||
property Settings settings
|
||||
readonly property bool syncInProgress: buteoSync.synchronizing
|
||||
- readonly property var canSynchronize: !networkError && buteoSync.serviceAvailable && buteoSync.profiles.length > 0 && !buteoSync.synchronizing
|
||||
+ readonly property bool syncAvailable: buteoSync.serviceAvailable && buteoSync.profiles.length > 0
|
||||
+ readonly property var canSynchronize: !networkError && syncAvailable && !buteoSync.synchronizing
|
||||
|
||||
|
||||
onSyncInProgressChanged: {
|
||||
@@ -81,11 +82,12 @@ Item {
|
||||
text: i18n.tr("Sync")
|
||||
onTriggered: buteoSync.synchronize()
|
||||
enabled: actionPool.canSynchronize
|
||||
- visible: buteoSync.serviceAvailable
|
||||
+ visible: actionPool.syncAvailable
|
||||
}
|
||||
|
||||
SyncManager {
|
||||
id: buteoSync
|
||||
+ filterDisabled: true
|
||||
filterHidden: true
|
||||
filterBy.key: "category"
|
||||
filterBy.value: "calendar"
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
From 2e8411528eddb5e3e76edef417ed96ce1ed82466 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Mon, 27 Jan 2025 22:26:52 +0100
|
||||
Subject: [PATCH] Don't show alarms Collection
|
||||
|
||||
---
|
||||
src/qml/EventListModel.qml | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/qml/EventListModel.qml b/src/qml/EventListModel.qml
|
||||
index 8e9c958a..b40d84a6 100644
|
||||
--- a/src/qml/EventListModel.qml
|
||||
+++ b/src/qml/EventListModel.qml
|
||||
@@ -93,6 +93,11 @@ OrganizerModel {
|
||||
var collections = eventModel.collections;
|
||||
for(var i = 0 ; i < collections.length ; ++i) {
|
||||
var cal = collections[i];
|
||||
+ // don't show Alarms collection
|
||||
+ if (cal.name === "Alarms") {
|
||||
+ continue
|
||||
+ }
|
||||
+
|
||||
// Handle the special QtContactBirthdays calendar from lomiri-abook2cal-syncd
|
||||
if (cal.name === "QtContactBirthdays") {
|
||||
cal.name = i18n.tr("Birthdays & Anniversaries")
|
||||
@@ -106,15 +111,15 @@ OrganizerModel {
|
||||
|
||||
function getWritableAndSelectedCollections(){
|
||||
var cals = [];
|
||||
- var collections = eventModel.collections;
|
||||
+ var collections = getCollections();
|
||||
for(var i = 0 ; i < collections.length ; ++i) {
|
||||
var cal = collections[i];
|
||||
+
|
||||
if( cal.extendedMetaData("visible") === true &&
|
||||
!collectionIsReadOnly(cal)) {
|
||||
cals.push(cal);
|
||||
}
|
||||
}
|
||||
- cals.sort(eventModel._sortCollections);
|
||||
return cals
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
From fcca1e0fa792e69b6780017db4afc34ea83ea28a Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Mon, 27 Jan 2025 22:40:56 +0100
|
||||
Subject: [PATCH] eds->mkcal : Allow to open up directly an event
|
||||
|
||||
---
|
||||
src/qml/calendar.qml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/qml/calendar.qml b/src/qml/calendar.qml
|
||||
index 2b6e6cfd..fef622c4 100644
|
||||
--- a/src/qml/calendar.qml
|
||||
+++ b/src/qml/calendar.qml
|
||||
@@ -797,7 +797,7 @@ MainView {
|
||||
}
|
||||
} // End of else if (starttime)
|
||||
else if (tabs.eventId !== "") {
|
||||
- var prefix = "qtorganizer:eds::";
|
||||
+ var prefix = "qtorganizer:mkcal::";
|
||||
if (tabs.eventId.indexOf(prefix) < 0)
|
||||
tabs.eventId = prefix + tabs.eventId;
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
From 54a2d60a5c1c4be00a9696d587d933c771ee7b4b Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Duboeuf <lduboeuf@ouvaton.org>
|
||||
Date: Thu, 13 Feb 2025 10:58:14 +0100
|
||||
Subject: [PATCH] Adjust SyncManager filters
|
||||
|
||||
---
|
||||
src/qml/CalendarChoicePopup.qml | 2 +-
|
||||
src/qml/EventActions.qml | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/qml/CalendarChoicePopup.qml b/src/qml/CalendarChoicePopup.qml
|
||||
index 3964c3c1..aa2dfdb4 100644
|
||||
--- a/src/qml/CalendarChoicePopup.qml
|
||||
+++ b/src/qml/CalendarChoicePopup.qml
|
||||
@@ -83,7 +83,7 @@ Page {
|
||||
SyncManager {
|
||||
id: buteoSync
|
||||
filterDisabled: true
|
||||
- filterHidden: true
|
||||
+ filterHidden: false
|
||||
filterBy.key: "category"
|
||||
filterBy.value: "calendar"
|
||||
}
|
||||
diff --git a/src/qml/EventActions.qml b/src/qml/EventActions.qml
|
||||
index 579981d5..eb79da45 100644
|
||||
--- a/src/qml/EventActions.qml
|
||||
+++ b/src/qml/EventActions.qml
|
||||
@@ -88,7 +88,7 @@ Item {
|
||||
SyncManager {
|
||||
id: buteoSync
|
||||
filterDisabled: true
|
||||
- filterHidden: true
|
||||
+ filterHidden: false
|
||||
filterBy.key: "category"
|
||||
filterBy.value: "calendar"
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,158 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
fetchpatch,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
accounts-qml-module,
|
||||
buteo-syncfw,
|
||||
cmake,
|
||||
gettext,
|
||||
lomiri-content-hub,
|
||||
lomiri-indicator-network,
|
||||
lomiri-ui-toolkit,
|
||||
qtbase,
|
||||
qtdeclarative,
|
||||
qtorganizer-mkcal,
|
||||
qtpim,
|
||||
wrapQtAppsHook,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lomiri-calendar-app";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/apps/lomiri-calendar-app";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-NjpzzMuez7Abq1mIBz5N/H55GpkDrnXohPx2U6ThADY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Needed for MR 260 changes
|
||||
(fetchpatch {
|
||||
name = "0001-lomiri-calendar-app-Remove-deprecated-tabs.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-calendar-app/-/commit/12c9d3b8a5643790334e664e6b3d2c8f9b600e83.patch";
|
||||
hash = "sha256-tvY5inNkNrSvfuD05RpmI3a2tFEOwNPCRgRn0RZB4DA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0002-lomiri-calendar-app-Ensure-PageStack-is-initialized.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-calendar-app/-/commit/deef3605b31c4c41f5c67311f1ff1ee02bd3b39a.patch";
|
||||
hash = "sha256-FusFYFnpEEJKchInLZ5vE08SnKbwmlnUYh85cQE+JbM=";
|
||||
})
|
||||
|
||||
# Fixes localisation for us
|
||||
(fetchpatch {
|
||||
name = "0101-lomiri-calendar-app-bindtextdomain.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-calendar-app/-/commit/c4c296e7f308af491558f1b7964542e4d638cb47.patch";
|
||||
hash = "sha256-GLEJlr4EMY6ugP2UVvpyVIZkBnkArn0XoSB5aqGEpm4=";
|
||||
})
|
||||
|
||||
# Switch to future contacts backend
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-calendar-app/-/merge_requests/239 merged & in release
|
||||
./1001-lomiri-calendar-app-Migrate-to-new-QtContact-sqlite-backend.patch
|
||||
|
||||
# Switch to future calendar backend
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-calendar-app/-/merge_requests/260 merged & in release
|
||||
./1101-lomiri-calendar-app-EDS-to-mkCal-initial-commit.patch
|
||||
./1102-lomiri-calendar-app-fix-allDay-events-not-showing.patch
|
||||
./1103-lomiri-calendar-app-Use-ButeoSync-profiles-for-syncing.patch
|
||||
./1104-lomiri-calendar-app-Add-EDS-to-mkCal-calendar-migration.patch
|
||||
./1105-lomiri-calendar-app-Support-caldav-service.patch
|
||||
./1106-lomiri-calendar-app-Clean-up-sync-minitor-usage.patch
|
||||
./1107-lomiri-calendar-app-Use-account-supported-metadata.patch
|
||||
./1108-lomiri-calendar-app-Add-support-for-google-calendars.patch
|
||||
./1109-lomiri-calendar-app-Do-not-retrieve-disabled-profiles.patch
|
||||
./1110-lomiri-calendar-app-Auto-sync-on-first-account-creation.patch
|
||||
./1111-lomiri-calendar-app-Display-sync-button-only-if-profiles-are-enabled-and-set.patch
|
||||
./1112-lomiri-calendar-app-Dont-show-alarms-Collection.patch
|
||||
./1113-lomiri-calendar-app-eds-to-mkcal-Allow-to-open-up-directly-an-event.patch
|
||||
./1114-lomiri-calendar-app-Adjust-SyncManager-filters.patch
|
||||
];
|
||||
|
||||
postPatch =
|
||||
''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail 'QT_IMPORTS_DIR "lib/''${ARCH_TRIPLET}"' 'QT_IMPORTS_DIR "${qtbase.qtQmlPrefix}"'
|
||||
|
||||
# Outdated paths
|
||||
substituteInPlace tests/unittests/tst_{calendar_canvas,date,event_bubble,event_list_model}.qml \
|
||||
--replace-fail '../../qml' '../../src/qml'
|
||||
''
|
||||
+ lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail 'add_subdirectory(tests)' '# add_subdirectory(tests)'
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gettext
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
qtdeclarative
|
||||
|
||||
# QML & Qt plugins
|
||||
accounts-qml-module
|
||||
buteo-syncfw
|
||||
lomiri-content-hub
|
||||
lomiri-indicator-network
|
||||
lomiri-ui-toolkit
|
||||
qtpim
|
||||
qtorganizer-mkcal
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "CLICK_MODE" false)
|
||||
(lib.cmakeBool "INSTALL_TESTS" false)
|
||||
];
|
||||
|
||||
# Not workiing yet
|
||||
doCheck = false;
|
||||
|
||||
enableParallelChecking = false;
|
||||
|
||||
preCheck =
|
||||
let
|
||||
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
|
||||
in
|
||||
''
|
||||
export HOME=$TMP
|
||||
export QT_PLUGIN_PATH=${
|
||||
listToQtVar qtbase.qtPluginPrefix [
|
||||
qtbase
|
||||
qtorganizer-mkcal
|
||||
]
|
||||
}
|
||||
export QML2_IMPORT_PATH=${
|
||||
listToQtVar qtbase.qtQmlPrefix (
|
||||
[
|
||||
lomiri-ui-toolkit
|
||||
qtpim
|
||||
]
|
||||
++ lomiri-ui-toolkit.propagatedBuildInputs
|
||||
)
|
||||
}
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.vm = nixosTests.lomiri-calendar-app;
|
||||
updateScript = gitUpdater { rev-prefix = "v"; };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Default Calendar application for Ubuntu Touch devices";
|
||||
homepage = "https://gitlab.com/ubports/development/apps/lomiri-calendar-app";
|
||||
changelog = "https://gitlab.com/ubports/development/apps/lomiri-calendar-app/-/blob/v${finalAttrs.version}/ChangeLog";
|
||||
license = with lib.licenses; [ gpl3Only ];
|
||||
mainProgram = "lomiri-calendar-app";
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@ -15,6 +15,7 @@ let
|
||||
#### Core Apps
|
||||
lomiri = callPackage ./applications/lomiri { };
|
||||
lomiri-calculator-app = callPackage ./applications/lomiri-calculator-app { };
|
||||
lomiri-calendar-app = callPackage ./applications/lomiri-calendar-app { };
|
||||
lomiri-camera-app = callPackage ./applications/lomiri-camera-app { };
|
||||
lomiri-clock-app = callPackage ./applications/lomiri-clock-app { };
|
||||
lomiri-docviewer-app = callPackage ./applications/lomiri-docviewer-app { };
|
||||
|
||||
87
pkgs/development/libraries/libiodata/default.nix
Normal file
87
pkgs/development/libraries/libiodata/default.nix
Normal file
@ -0,0 +1,87 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
gitUpdater,
|
||||
bison,
|
||||
flex,
|
||||
qmake,
|
||||
pkg-config,
|
||||
libxcrypt,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libiodata";
|
||||
version = "0.19.14";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sailfishos";
|
||||
repo = "libiodata";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-hhcPKZtg9PEE6rrEfRJ/e4E5xMyButH0Rm0eM3iHPh8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Remove when version > 0.19.14
|
||||
(fetchpatch {
|
||||
name = "0001-libiodata-Fix-dependencies-between-sub-projects.patch";
|
||||
url = "https://github.com/sailfishos/libiodata/commit/85517a9f2103e461cbb69dc195335df73b7a8b7e.patch";
|
||||
hash = "sha256-qrRZ1Af5uBJvEoRHifgUSeVHFC5RATDsL3374CmoUDc=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace root.pro \
|
||||
--replace-fail '$$[QT_HOST_DATA]' "$dev"
|
||||
|
||||
substituteInPlace src/src.pro \
|
||||
--replace-fail '$$[QT_INSTALL_LIBS]' "$out/lib" \
|
||||
--replace-fail '/usr/include' "$dev/include"
|
||||
|
||||
substituteInPlace tests/tests.pro \
|
||||
--replace-fail '/usr/bin' "$dev/bin" \
|
||||
--replace-fail '/usr/share' "$dev/share"
|
||||
|
||||
substituteInPlace type-to-cxx/type-to-cxx.pro \
|
||||
--replace-fail '/usr/bin' "$dev/bin"
|
||||
'';
|
||||
|
||||
# QMake doesn't handle strictDeps well
|
||||
strictDeps = false;
|
||||
|
||||
nativeBuildInputs = [
|
||||
bison
|
||||
flex
|
||||
pkg-config
|
||||
qmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libxcrypt
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postConfigure = ''
|
||||
make qmake_all
|
||||
'';
|
||||
|
||||
env.IODATA_VERSION = "${finalAttrs.version}";
|
||||
|
||||
passthru.updateScript = gitUpdater { };
|
||||
|
||||
meta = {
|
||||
description = "Library for reading and writing simple structured data";
|
||||
homepage = "https://github.com/sailfishos/libiodata";
|
||||
changelog = "https://github.com/sailfishos/libiodata/releases/tag/${finalAttrs.version}";
|
||||
license = lib.licenses.lgpl21Only;
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@ -125,6 +125,11 @@ let
|
||||
url = "https://github.com/qt/qtpim/commit/114615812dcf9398c957b0833e860befe15f840f.patch";
|
||||
hash = "sha256-yZ1qs8y5DSq8FDXRPyuSPRIzjEUTWAhpVide/b+xaLQ=";
|
||||
})
|
||||
# Provide interface for accessing all extended metadata from collections
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/5bdfb9127b3f6c9863def0578c7a8734a5156ea9.patch";
|
||||
hash = "sha256-asJNa8tcdtovVE579FjZg1CHeCmvRJ8otQeSrEdrXdQ=";
|
||||
})
|
||||
# Accessors should be const
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/a2bf7cdf05c264b5dd2560f799760b5508f154e4.patch";
|
||||
|
||||
@ -0,0 +1,57 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
pkg-config,
|
||||
qmake,
|
||||
qtbase,
|
||||
qtdeclarative,
|
||||
sailfish-access-control,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "sailfish-access-control-plugin";
|
||||
inherit (sailfish-access-control) version src patches;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace qt/qt.pro \
|
||||
--replace-fail '$$[QT_INSTALL_QML]' '${placeholder "out"}/${qtbase.qtQmlPrefix}'
|
||||
'';
|
||||
|
||||
# QMake doesn't handle strictDeps well
|
||||
strictDeps = false;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
qmake
|
||||
qtdeclarative # qmlplugindump
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtdeclarative
|
||||
sailfish-access-control
|
||||
];
|
||||
|
||||
# Qt plugin
|
||||
dontWrapQtApps = true;
|
||||
|
||||
# sourceRoot breaks patches
|
||||
preConfigure = ''
|
||||
cd qt
|
||||
'';
|
||||
|
||||
# Do all configuring now, not during build
|
||||
postConfigure = ''
|
||||
make qmake_all
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "QML interface for sailfish-access-control";
|
||||
inherit (sailfish-access-control.meta)
|
||||
homepage
|
||||
changelog
|
||||
license
|
||||
maintainers
|
||||
platforms
|
||||
;
|
||||
};
|
||||
})
|
||||
@ -151,6 +151,8 @@ in (noExtraAttrs (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdP
|
||||
|
||||
libdbusmenu = callPackage ../development/libraries/libdbusmenu-qt/qt-5.5.nix { };
|
||||
|
||||
libiodata = callPackage ../development/libraries/libiodata { };
|
||||
|
||||
liblastfm = callPackage ../development/libraries/liblastfm { };
|
||||
|
||||
libopenshot = callPackage ../development/libraries/libopenshot {
|
||||
@ -269,6 +271,8 @@ in (noExtraAttrs (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdP
|
||||
|
||||
rlottie-qml = callPackage ../development/libraries/rlottie-qml { };
|
||||
|
||||
sailfish-access-control-plugin = callPackage ../development/libraries/sailfish-access-control-plugin { };
|
||||
|
||||
sierra-breeze-enhanced = callPackage ../data/themes/kwin-decorations/sierra-breeze-enhanced { useQt5 = true; };
|
||||
|
||||
soqt = callPackage ../development/libraries/soqt { };
|
||||
@ -285,6 +289,8 @@ in (noExtraAttrs (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdP
|
||||
|
||||
soundkonverter = callPackage ../applications/audio/soundkonverter {};
|
||||
|
||||
timed = callPackage ../applications/system/timed { };
|
||||
|
||||
xp-pen-deco-01-v2-driver = callPackage ../os-specific/linux/xp-pen-drivers/deco-01-v2 { };
|
||||
|
||||
xp-pen-g430-driver = callPackage ../os-specific/linux/xp-pen-drivers/g430 { };
|
||||
|
||||
@ -54,6 +54,9 @@ makeScopeWithSplicing' {
|
||||
|
||||
futuresql = callPackage ../development/libraries/futuresql { };
|
||||
kquickimageedit = callPackage ../development/libraries/kquickimageedit { };
|
||||
|
||||
libiodata = callPackage ../development/libraries/libiodata { };
|
||||
|
||||
libqaccessibilityclient = callPackage ../development/libraries/libqaccessibilityclient { };
|
||||
|
||||
libqglviewer = callPackage ../development/libraries/libqglviewer { };
|
||||
@ -113,6 +116,8 @@ makeScopeWithSplicing' {
|
||||
suffix = "qt6";
|
||||
};
|
||||
|
||||
sailfish-access-control-plugin = callPackage ../development/libraries/sailfish-access-control-plugin { };
|
||||
|
||||
# Not a library, but we do want it to be built for every qt version there
|
||||
# is, to allow users to choose the right build if needed.
|
||||
sddm = kdePackages.callPackage ../applications/display-managers/sddm {};
|
||||
@ -121,6 +126,8 @@ makeScopeWithSplicing' {
|
||||
|
||||
signond = callPackage ../development/libraries/signond {};
|
||||
|
||||
timed = callPackage ../applications/system/timed { };
|
||||
|
||||
waylib = callPackage ../development/libraries/waylib { };
|
||||
|
||||
wayqt = callPackage ../development/libraries/wayqt { };
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user