diff --git a/src/translations/dtkwidget.ts b/src/translations/dtkwidget.ts index f5e9e255c..a31ca24fc 100644 --- a/src/translations/dtkwidget.ts +++ b/src/translations/dtkwidget.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Exit + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ady.ts b/src/translations/dtkwidget_ady.ts index f54ba23aa..fd176f415 100644 --- a/src/translations/dtkwidget_ady.ts +++ b/src/translations/dtkwidget_ady.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_af.ts b/src/translations/dtkwidget_af.ts index a11c24399..3ad4b1c83 100644 --- a/src/translations/dtkwidget_af.ts +++ b/src/translations/dtkwidget_af.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_am_ET.ts b/src/translations/dtkwidget_am_ET.ts index 54e6b3f2f..e7aef81c2 100644 --- a/src/translations/dtkwidget_am_ET.ts +++ b/src/translations/dtkwidget_am_ET.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later መውጫ + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ar.ts b/src/translations/dtkwidget_ar.ts index 7bb97ca83..48c58ffb4 100644 --- a/src/translations/dtkwidget_ar.ts +++ b/src/translations/dtkwidget_ar.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later خروج + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ast.ts b/src/translations/dtkwidget_ast.ts index 1b0a5e884..13e286a40 100644 --- a/src/translations/dtkwidget_ast.ts +++ b/src/translations/dtkwidget_ast.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Colar + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_az.ts b/src/translations/dtkwidget_az.ts index b252ec06c..81fc064a8 100644 --- a/src/translations/dtkwidget_az.ts +++ b/src/translations/dtkwidget_az.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Çıxış + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_bg.ts b/src/translations/dtkwidget_bg.ts index 0c20673ec..3ad4a6606 100644 --- a/src/translations/dtkwidget_bg.ts +++ b/src/translations/dtkwidget_bg.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Изход + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_bn.ts b/src/translations/dtkwidget_bn.ts index 4f381861e..5547299ae 100644 --- a/src/translations/dtkwidget_bn.ts +++ b/src/translations/dtkwidget_bn.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later বের হয়ে যান + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_bo.ts b/src/translations/dtkwidget_bo.ts index 9579281f0..8bffbbb3b 100644 --- a/src/translations/dtkwidget_bo.ts +++ b/src/translations/dtkwidget_bo.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later ཕྱིར་འབུད། + + WaterMark + + + Date + དུས་ཚོད། + + + + Username + མི་སྤྱོད་པའི་མིང་། + + \ No newline at end of file diff --git a/src/translations/dtkwidget_bqi.ts b/src/translations/dtkwidget_bqi.ts index 79c61394e..5093ca231 100644 --- a/src/translations/dtkwidget_bqi.ts +++ b/src/translations/dtkwidget_bqi.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_br.ts b/src/translations/dtkwidget_br.ts index a64c48011..6679396db 100644 --- a/src/translations/dtkwidget_br.ts +++ b/src/translations/dtkwidget_br.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Kuitaat + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ca.ts b/src/translations/dtkwidget_ca.ts index de3ca4643..629253ebc 100644 --- a/src/translations/dtkwidget_ca.ts +++ b/src/translations/dtkwidget_ca.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Surt + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_cs.ts b/src/translations/dtkwidget_cs.ts index aee3732d8..890220780 100644 --- a/src/translations/dtkwidget_cs.ts +++ b/src/translations/dtkwidget_cs.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Ukončit + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_da.ts b/src/translations/dtkwidget_da.ts index 537ae7ac8..a3b8b0847 100644 --- a/src/translations/dtkwidget_da.ts +++ b/src/translations/dtkwidget_da.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Afslut + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_de.ts b/src/translations/dtkwidget_de.ts index a7ca57842..4cef88803 100644 --- a/src/translations/dtkwidget_de.ts +++ b/src/translations/dtkwidget_de.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Beenden + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_el.ts b/src/translations/dtkwidget_el.ts index a50d863f5..13ff76b55 100644 --- a/src/translations/dtkwidget_el.ts +++ b/src/translations/dtkwidget_el.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Έξοδος + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_en_AU.ts b/src/translations/dtkwidget_en_AU.ts index e0d9769c8..745e75d14 100644 --- a/src/translations/dtkwidget_en_AU.ts +++ b/src/translations/dtkwidget_en_AU.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_eo.ts b/src/translations/dtkwidget_eo.ts index 56e441d5a..d7cd2f0f4 100644 --- a/src/translations/dtkwidget_eo.ts +++ b/src/translations/dtkwidget_eo.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_es.ts b/src/translations/dtkwidget_es.ts index 25a80f810..7fb9779ff 100644 --- a/src/translations/dtkwidget_es.ts +++ b/src/translations/dtkwidget_es.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Salir + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_eu.ts b/src/translations/dtkwidget_eu.ts index c3768ecf9..e9ca6f545 100644 --- a/src/translations/dtkwidget_eu.ts +++ b/src/translations/dtkwidget_eu.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Irten + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_fa.ts b/src/translations/dtkwidget_fa.ts index 19bfc0bde..79146c5b4 100644 --- a/src/translations/dtkwidget_fa.ts +++ b/src/translations/dtkwidget_fa.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later خروج + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_fi.ts b/src/translations/dtkwidget_fi.ts index d084f4b13..2631130db 100644 --- a/src/translations/dtkwidget_fi.ts +++ b/src/translations/dtkwidget_fi.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Poistu + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_fil.ts b/src/translations/dtkwidget_fil.ts index 3d7c72000..498db14ab 100644 --- a/src/translations/dtkwidget_fil.ts +++ b/src/translations/dtkwidget_fil.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_fr.ts b/src/translations/dtkwidget_fr.ts index 44fd1a83e..de0771540 100644 --- a/src/translations/dtkwidget_fr.ts +++ b/src/translations/dtkwidget_fr.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Quitter + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_gl_ES.ts b/src/translations/dtkwidget_gl_ES.ts index cfcc2aa05..5a78e0477 100644 --- a/src/translations/dtkwidget_gl_ES.ts +++ b/src/translations/dtkwidget_gl_ES.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Saír + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_he.ts b/src/translations/dtkwidget_he.ts index 704e4ecf9..af56ad0d8 100644 --- a/src/translations/dtkwidget_he.ts +++ b/src/translations/dtkwidget_he.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later יציאה + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_hi_IN.ts b/src/translations/dtkwidget_hi_IN.ts index cb524a9e6..79639f997 100644 --- a/src/translations/dtkwidget_hi_IN.ts +++ b/src/translations/dtkwidget_hi_IN.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later बंद करें + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_hr.ts b/src/translations/dtkwidget_hr.ts index f4e8897ff..44c77274f 100644 --- a/src/translations/dtkwidget_hr.ts +++ b/src/translations/dtkwidget_hr.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Izlaz + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_hu.ts b/src/translations/dtkwidget_hu.ts index 842ea5548..c0cb725bc 100644 --- a/src/translations/dtkwidget_hu.ts +++ b/src/translations/dtkwidget_hu.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Kilépés + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_hy.ts b/src/translations/dtkwidget_hy.ts index ef6f7388b..56029fe9d 100644 --- a/src/translations/dtkwidget_hy.ts +++ b/src/translations/dtkwidget_hy.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_id.ts b/src/translations/dtkwidget_id.ts index 8148e2f92..0471d268c 100644 --- a/src/translations/dtkwidget_id.ts +++ b/src/translations/dtkwidget_id.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Keluar + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_it.ts b/src/translations/dtkwidget_it.ts index a8ecca35e..11abe3490 100644 --- a/src/translations/dtkwidget_it.ts +++ b/src/translations/dtkwidget_it.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Esci + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ja.ts b/src/translations/dtkwidget_ja.ts index 0fd3d27b8..128d2ecff 100644 --- a/src/translations/dtkwidget_ja.ts +++ b/src/translations/dtkwidget_ja.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later 終了 + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ka.ts b/src/translations/dtkwidget_ka.ts index 60699038a..427f89320 100644 --- a/src/translations/dtkwidget_ka.ts +++ b/src/translations/dtkwidget_ka.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_km_KH.ts b/src/translations/dtkwidget_km_KH.ts index 28ec2f9d3..b9b4c9506 100644 --- a/src/translations/dtkwidget_km_KH.ts +++ b/src/translations/dtkwidget_km_KH.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_kn_IN.ts b/src/translations/dtkwidget_kn_IN.ts index 32df29677..b44e63689 100644 --- a/src/translations/dtkwidget_kn_IN.ts +++ b/src/translations/dtkwidget_kn_IN.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ko.ts b/src/translations/dtkwidget_ko.ts index 8c9daf729..085e33108 100644 --- a/src/translations/dtkwidget_ko.ts +++ b/src/translations/dtkwidget_ko.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later 종료 + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ku.ts b/src/translations/dtkwidget_ku.ts index dd441263d..6fae91127 100644 --- a/src/translations/dtkwidget_ku.ts +++ b/src/translations/dtkwidget_ku.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ku_IQ.ts b/src/translations/dtkwidget_ku_IQ.ts index 7d546d8d5..d7ed5b515 100644 --- a/src/translations/dtkwidget_ku_IQ.ts +++ b/src/translations/dtkwidget_ku_IQ.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ky.ts b/src/translations/dtkwidget_ky.ts index fa4fd2bbd..ac15ab862 100644 --- a/src/translations/dtkwidget_ky.ts +++ b/src/translations/dtkwidget_ky.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ky@Arab.ts b/src/translations/dtkwidget_ky@Arab.ts index 0d0f11814..bbe10b895 100644 --- a/src/translations/dtkwidget_ky@Arab.ts +++ b/src/translations/dtkwidget_ky@Arab.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_lt.ts b/src/translations/dtkwidget_lt.ts index a18220117..42c85f4a2 100644 --- a/src/translations/dtkwidget_lt.ts +++ b/src/translations/dtkwidget_lt.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Išeiti + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ml.ts b/src/translations/dtkwidget_ml.ts index 405605c46..1d615886d 100644 --- a/src/translations/dtkwidget_ml.ts +++ b/src/translations/dtkwidget_ml.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_mn.ts b/src/translations/dtkwidget_mn.ts index 43807b79c..f729a50b4 100644 --- a/src/translations/dtkwidget_mn.ts +++ b/src/translations/dtkwidget_mn.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_mr.ts b/src/translations/dtkwidget_mr.ts index eb9393c26..7027f76ad 100644 --- a/src/translations/dtkwidget_mr.ts +++ b/src/translations/dtkwidget_mr.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ms.ts b/src/translations/dtkwidget_ms.ts index 54647a9ac..763c8f8bc 100644 --- a/src/translations/dtkwidget_ms.ts +++ b/src/translations/dtkwidget_ms.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Keluar + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_nb.ts b/src/translations/dtkwidget_nb.ts index a50a63af4..6056011f7 100644 --- a/src/translations/dtkwidget_nb.ts +++ b/src/translations/dtkwidget_nb.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Avslutt + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ne.ts b/src/translations/dtkwidget_ne.ts index 20556bb54..8dbbf79c4 100644 --- a/src/translations/dtkwidget_ne.ts +++ b/src/translations/dtkwidget_ne.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later बाहिर निस्कनुहोस् + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_nl.ts b/src/translations/dtkwidget_nl.ts index 243dc48dc..427bb9fa5 100644 --- a/src/translations/dtkwidget_nl.ts +++ b/src/translations/dtkwidget_nl.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Afsluiten + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_pam.ts b/src/translations/dtkwidget_pam.ts index 045633dec..1a9768eae 100644 --- a/src/translations/dtkwidget_pam.ts +++ b/src/translations/dtkwidget_pam.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_pl.ts b/src/translations/dtkwidget_pl.ts index 954de49bf..a0d9df19e 100644 --- a/src/translations/dtkwidget_pl.ts +++ b/src/translations/dtkwidget_pl.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Wyjdź + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_pt.ts b/src/translations/dtkwidget_pt.ts index 73188c323..386764d8b 100644 --- a/src/translations/dtkwidget_pt.ts +++ b/src/translations/dtkwidget_pt.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Sair + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_pt_BR.ts b/src/translations/dtkwidget_pt_BR.ts index e3b0a5504..342929172 100644 --- a/src/translations/dtkwidget_pt_BR.ts +++ b/src/translations/dtkwidget_pt_BR.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Sair + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ro.ts b/src/translations/dtkwidget_ro.ts index ef12c5de5..76cd58df4 100644 --- a/src/translations/dtkwidget_ro.ts +++ b/src/translations/dtkwidget_ro.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Ieșire + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ru.ts b/src/translations/dtkwidget_ru.ts index 25b215225..fac9a28f7 100644 --- a/src/translations/dtkwidget_ru.ts +++ b/src/translations/dtkwidget_ru.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Выход + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_sc.ts b/src/translations/dtkwidget_sc.ts index ff440711d..e13b0343e 100644 --- a/src/translations/dtkwidget_sc.ts +++ b/src/translations/dtkwidget_sc.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_si.ts b/src/translations/dtkwidget_si.ts index 09bd6f2f8..495dd99af 100644 --- a/src/translations/dtkwidget_si.ts +++ b/src/translations/dtkwidget_si.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_sk.ts b/src/translations/dtkwidget_sk.ts index df51bc4f2..082565343 100644 --- a/src/translations/dtkwidget_sk.ts +++ b/src/translations/dtkwidget_sk.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Ukončiť + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_sl.ts b/src/translations/dtkwidget_sl.ts index de813db96..bfb632611 100644 --- a/src/translations/dtkwidget_sl.ts +++ b/src/translations/dtkwidget_sl.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Izhod + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_sq.ts b/src/translations/dtkwidget_sq.ts index d2054d997..b813889ef 100644 --- a/src/translations/dtkwidget_sq.ts +++ b/src/translations/dtkwidget_sq.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Dil + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_sr.ts b/src/translations/dtkwidget_sr.ts index 3e7785986..ea8806661 100644 --- a/src/translations/dtkwidget_sr.ts +++ b/src/translations/dtkwidget_sr.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Изађи + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_sv.ts b/src/translations/dtkwidget_sv.ts index 7255b7ba2..c9edd22f9 100644 --- a/src/translations/dtkwidget_sv.ts +++ b/src/translations/dtkwidget_sv.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_sw.ts b/src/translations/dtkwidget_sw.ts index 7aee9848b..6babfdf68 100644 --- a/src/translations/dtkwidget_sw.ts +++ b/src/translations/dtkwidget_sw.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ta.ts b/src/translations/dtkwidget_ta.ts index 83bc22f96..6b78e60b8 100644 --- a/src/translations/dtkwidget_ta.ts +++ b/src/translations/dtkwidget_ta.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_th.ts b/src/translations/dtkwidget_th.ts index e55058979..7a089b31b 100644 --- a/src/translations/dtkwidget_th.ts +++ b/src/translations/dtkwidget_th.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_tr.ts b/src/translations/dtkwidget_tr.ts index 2770f38dc..c786219d8 100644 --- a/src/translations/dtkwidget_tr.ts +++ b/src/translations/dtkwidget_tr.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Çıkış + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ug.ts b/src/translations/dtkwidget_ug.ts index ad13d5b46..8215f86af 100644 --- a/src/translations/dtkwidget_ug.ts +++ b/src/translations/dtkwidget_ug.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later چېكىنىش + + WaterMark + + + Date + ۋاقىت + + + + Username + نامى ئىشلەتكۈچى + + \ No newline at end of file diff --git a/src/translations/dtkwidget_uk.ts b/src/translations/dtkwidget_uk.ts index 0c00a81d9..f680d3454 100644 --- a/src/translations/dtkwidget_uk.ts +++ b/src/translations/dtkwidget_uk.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later Вийти + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_ur.ts b/src/translations/dtkwidget_ur.ts index faea5681e..e75c4fa20 100644 --- a/src/translations/dtkwidget_ur.ts +++ b/src/translations/dtkwidget_ur.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_vi.ts b/src/translations/dtkwidget_vi.ts index dc33f1333..362756149 100644 --- a/src/translations/dtkwidget_vi.ts +++ b/src/translations/dtkwidget_vi.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later + + WaterMark + + + Date + + + + + Username + + + \ No newline at end of file diff --git a/src/translations/dtkwidget_zh_CN.ts b/src/translations/dtkwidget_zh_CN.ts index cb88848f5..33b9dd64d 100644 --- a/src/translations/dtkwidget_zh_CN.ts +++ b/src/translations/dtkwidget_zh_CN.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later 退出 + + WaterMark + + + Date + 时间 + + + + Username + 用户名 + + \ No newline at end of file diff --git a/src/translations/dtkwidget_zh_HK.ts b/src/translations/dtkwidget_zh_HK.ts index a6d534c4a..58971aaac 100644 --- a/src/translations/dtkwidget_zh_HK.ts +++ b/src/translations/dtkwidget_zh_HK.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later 退出 + + WaterMark + + + Date + 時間 + + + + Username + 用戶名 + + \ No newline at end of file diff --git a/src/translations/dtkwidget_zh_TW.ts b/src/translations/dtkwidget_zh_TW.ts index 0beb152ff..9251e8769 100644 --- a/src/translations/dtkwidget_zh_TW.ts +++ b/src/translations/dtkwidget_zh_TW.ts @@ -800,4 +800,17 @@ SPDX-License-Identifier: LGPL-3.0-or-later 退出 + + WaterMark + + + Date + 時間 + + + + Username + 使用者名稱 + + \ No newline at end of file diff --git a/src/widgets/dprintpreviewwidget.cpp b/src/widgets/dprintpreviewwidget.cpp index 46ea1bba5..bdcc979b5 100644 --- a/src/widgets/dprintpreviewwidget.cpp +++ b/src/widgets/dprintpreviewwidget.cpp @@ -15,7 +15,8 @@ #include #include - +#include +#include #define FIRST_PAGE 1 #define FIRST_INDEX 0 @@ -29,6 +30,8 @@ #define WATER_DEFAULTFONTSIZE 65 #define WATER_TEXTSPACE WATER_DEFAULTFONTSIZE +#define DATE_TIME_FORMAT "yyyy-MM-dd hh:mm:ss" +#define USER_USEC_CONFIG_FILE "/etc/usec/default/contexts/default_mls_type" DGUI_USE_NAMESPACE DWIDGET_BEGIN_NAMESPACE @@ -60,6 +63,77 @@ static void saveImageToFile(int index, const QString &outPutFileName, const QStr }); } +//优先从环境变量中获取,如果环境变量为空,则通过系统调用获取。 +static QString getUserInfo(const QString &envVar, std::function fallback) { + QString value = qgetenv(envVar.toUtf8()); + if (value.isEmpty() && fallback) { + value = fallback(); + } + return value; +} + +static QString getUserName() { + return getUserInfo("USER", []() { + struct passwd *pw = getpwuid(getuid()); + return pw ? QString::fromLocal8Bit(pw->pw_name) : QString(); + }); +} + +static QString getUserId() { + return getUserInfo("UID", []() { + return QString::number(getuid()); + }); +} + +// 获取用户的安全标签 +static QPair getUserSecurityLabel() { + QPair securityLabel = qMakePair(-1, -1); + QFile file(USER_USEC_CONFIG_FILE); + if (!file.exists()) { + qWarning() << "Failed to open default_mls_type file:" << file.fileName(); + return securityLabel; + } + + bool res = file.open(QIODevice::ReadOnly | QIODevice::Text); + if (!res) { + qWarning() << "Failed to open file:" << file.fileName(); + return securityLabel; + } + + QString userName = getUserName(); + QString defaultSmodel; + QString hexString; + QTextStream in(&file); + + while (!in.atEnd()) { + QString line = in.readLine().trimmed(); + if (line.startsWith(userName + " ")) { + hexString = line.split(' ').value(1).trimmed(); + break; + }else if (line.startsWith("default ")) { + defaultSmodel = line.split(' ').value(1).trimmed(); + } + } + + bool ok = false; + quint32 hexValue = 0; + if (!hexString.isEmpty()) { + hexValue = hexString.mid(2).toUInt(&ok, 16); + }else if (!defaultSmodel.isEmpty()) { + hexValue = defaultSmodel.mid(2).toUInt(&ok, 16); + } else { + qWarning() << "Invalid security label format in file:" << file.fileName(); + } + + if (ok) { + int ilevel = (hexValue >> 16) & 0xFF; + int slevel = hexValue & 0xFF; + securityLabel = qMakePair(ilevel, slevel); + } + file.close(); + return securityLabel; +} + DPrintPreviewWidgetPrivate::DPrintPreviewWidgetPrivate(DPrintPreviewWidget *qq) : DFramePrivate(qq) , imposition(DPrintPreviewWidget::One) @@ -93,6 +167,13 @@ void DPrintPreviewWidgetPrivate::init() background->setZValue(-1); scene->addItem(background); + if (usec_strict_getenforce() == 1) { + baseWatermarkItem = new WaterMark(); + scene->addItem(baseWatermarkItem); + updateBaseWatermark(); + baseWatermarkItem->setZValue(2); + } + waterMark = new WaterMark; scene->addItem(waterMark); waterMark->setZValue(1); @@ -143,6 +224,8 @@ void DPrintPreviewWidgetPrivate::populateScene() } waterMark->setBoundingRect(pageRect); + if (baseWatermarkItem) + baseWatermarkItem->setBoundingRect(pageRect); scene->setSceneRect(QRect(QPoint(0, 0), paperSize)); } @@ -418,11 +501,19 @@ void DPrintPreviewWidgetPrivate::printSinglePageDrawUtil(QPainter *painter, cons } // 绘制水印 if (!waterImage.isNull()) { + painter->save(); painter->resetTransform(); painter->translate(translateSize.width() / 2, translateSize.height() / 2); painter->rotate(waterMark->rotation()); - painter->drawImage(-waterImage.width() / 2, -waterImage.height() / 2, waterImage); + painter->restore(); + } + + // 绘制基底水印 + if (baseWatermarkItem) { + QRectF boundingRect = QRectF(QPointF(0, 0), translateSize); + baseWatermarkItem->setBoundingRect(boundingRect); + baseWatermarkItem->paint(painter, nullptr, nullptr); } painter->restore(); @@ -460,6 +551,13 @@ void DPrintPreviewWidgetPrivate::printMultiPageDrawUtil(QPainter *painter, const // 绘制并打水印 此时不能再设置缩放比 if (!waterImage.isNull()) painter->drawImage(leftTop, waterImage); + + // 绘制基底水印 + if (baseWatermarkItem) { + QRectF boundingRect = QRectF(leftTop, previewPrinter->pageLayout().paintRectPixels(previewPrinter->resolution()).size()); + baseWatermarkItem->setBoundingRect(boundingRect); + baseWatermarkItem->paint(painter, nullptr, nullptr); + } } void DPrintPreviewWidgetPrivate::print(bool printAsPicture) @@ -1203,6 +1301,28 @@ QVector DPrintPreviewWidgetPrivate::requestPages(int page) return pagesVector; } +//更新基底水印的文字相关内容。 +void DPrintPreviewWidgetPrivate::updateBaseWatermark() +{ + baseWatermarkItem->setType(WaterMark::Text); + baseWatermarkItem->setLayoutType(WaterMark::Center); + QString userName = getUserName(); + QString userId = getUserId(); + QPair securityLabel = getUserSecurityLabel(); + QString timeStr = QDateTime::currentDateTime().toString(DATE_TIME_FORMAT); + QString waterMarkText = QString("%1: %2\n" + "%3: %4 UID: %5\n" + "ilevel_%6 slevel_%7") + .arg(qApp->translate("WaterMark", "Date"), timeStr, + qApp->translate("WaterMark", "Username"), userName, userId, + QString::number(securityLabel.first), + QString::number(securityLabel.second)); + baseWatermarkItem->setText(waterMarkText); + baseWatermarkItem->setScaleFactor(0.3); + baseWatermarkItem->setColor(QColor("#6f6f6f")); + baseWatermarkItem->update(); +} + /*! \class Dtk::Widget::DPrintPreviewWidget \inmodule dtkwidget diff --git a/src/widgets/private/dprintpreviewwidget_p.h b/src/widgets/private/dprintpreviewwidget_p.h index 899a233b7..3768dd934 100644 --- a/src/widgets/private/dprintpreviewwidget_p.h +++ b/src/widgets/private/dprintpreviewwidget_p.h @@ -289,6 +289,7 @@ class DPrintPreviewWidgetPrivate : public DFramePrivate void calculateNumberPageScale();// 计算缩放比,拼版数发生改变需要调用 void calculateCurrentNumberPage();// page是相对于原文档,添加page页需要显示的小页面到Vector QByteArray foundColorModelByCups() const; + void updateBaseWatermark(); inline void setCurrentPageNumber(int page) { @@ -303,6 +304,7 @@ class DPrintPreviewWidgetPrivate : public DFramePrivate QList pages; QGraphicsRectItem *background; WaterMark *waterMark; + WaterMark *baseWatermarkItem = nullptr; QVector pageRange; // 选择的页码 int currentPageNumber = 0; // 处理以后当前页,值一定是连续的,比如处理共10页,那么取值就是1到10 DPrinter::ColorMode colorMode;