From d7febc408a0f1937f5cf6eddd89659318c4b894e Mon Sep 17 00:00:00 2001 From: Kevin Kim Date: Sun, 4 Oct 2020 15:28:42 +0900 Subject: [PATCH] release systemback for hamonikr 3.0 --- README.md | 30 + debian/changelog | 60 + debian/compat | 1 + debian/control | 177 + debian/copyright | 22 + debian/libsystemback.install | 1 + debian/libsystemback.postrm | 21 + debian/rules | 62 + debian/source.lintian-overrides | 1 + debian/source/format | 1 + debian/systemback-cli.1 | 70 + debian/systemback-cli.install | 1 + debian/systemback-efiboot-amd64.install | 1 + debian/systemback-locales.install | 1 + debian/systemback-scheduler.install | 3 + debian/systemback-scheduler.lintian-overrides | 1 + debian/systemback-scheduler.postrm | 11 + debian/systemback-scheduler.preinst | 8 + debian/systemback-scheduler.prerm | 16 + debian/systemback.1 | 49 + debian/systemback.install | 9 + debian/systemback.links | 1 + debian/systemback.lintian-overrides | 2 + doc/systemback-1.png | Bin 0 -> 55556 bytes doc/systemback-2.png | Bin 0 -> 38136 bytes efi-amd64.bootfiles | Bin 0 -> 928752 bytes icons/128x128/systemback.png | Bin 0 -> 12690 bytes icons/256x256/systemback.png | Bin 0 -> 37598 bytes icons/48x48/systemback.png | Bin 0 -> 3518 bytes icons/64x64/systemback.png | Bin 0 -> 4867 bytes lang/systemback_ar_EG.ts | 1884 ++++ lang/systemback_ca_ES.ts | 1884 ++++ lang/systemback_cs.ts | 1899 ++++ lang/systemback_da_DK.ts | 1900 ++++ lang/systemback_de.ts | 1898 ++++ lang/systemback_en_GB.ts | 1289 +++ lang/systemback_es.ts | 1885 ++++ lang/systemback_fi.ts | 1884 ++++ lang/systemback_fr.ts | 1899 ++++ lang/systemback_gl_ES.ts | 1898 ++++ lang/systemback_hu.ts | 1899 ++++ lang/systemback_id.ts | 1898 ++++ lang/systemback_ko.ts | 1290 +++ lang/systemback_pt_BR.ts | 1898 ++++ lang/systemback_ro.ts | 1898 ++++ lang/systemback_ru.ts | 1898 ++++ lang/systemback_tr.ts | 1884 ++++ lang/systemback_uk.ts | 1898 ++++ lang/systemback_zh_CN.ts | 1898 ++++ libsystemback/bstr.hpp | 51 + libsystemback/lcheck.sh | 20 + libsystemback/libsystemback.pro | 53 + libsystemback/sblib.cpp | 4243 +++++++++ libsystemback/sblib.hpp | 290 + libsystemback/sblib_global.hpp | 30 + libsystemback/sbtypedef.hpp | 75 + libsystemback/version | 1 + libsystemback/version.qrc | 5 + logo.png | Bin 0 -> 348236 bytes sbschedule-kde.desktop | 10 + sbschedule.desktop | 10 + sbscheduler/main.cpp | 40 + sbscheduler/sbscheduler.cpp | 145 + sbscheduler/sbscheduler.hpp | 52 + sbscheduler/sbscheduler.pro | 46 + sbsustart/main.cpp | 63 + sbsustart/sbsustart.cpp | 140 + sbsustart/sbsustart.hpp | 51 + sbsustart/sbsustart.pro | 46 + sbsysupgrade/sbsysupgrade.cpp | 26 + sbsysupgrade/sbsysupgrade.pro | 41 + splash.png | Bin 0 -> 88043 bytes systemback-cli/main.cpp | 45 + systemback-cli/systemback-cli.cpp | 664 ++ systemback-cli/systemback-cli.hpp | 83 + systemback-cli/systemback-cli.pro | 45 + systemback-kde.desktop | 12 + systemback.desktop | 12 + systemback.pro | 33 + systemback/bttnevent.hpp | 43 + systemback/chckbxevent.hpp | 50 + systemback/lblevent.hpp | 94 + systemback/lndtevent.hpp | 44 + systemback/main.cpp | 40 + systemback/pictures.qrc | 26 + systemback/pictures/back.png | Bin 0 -> 809 bytes systemback/pictures/dialogerror.png | Bin 0 -> 9950 bytes systemback/pictures/dialoginfo.png | Bin 0 -> 12743 bytes systemback/pictures/dialogquestion.png | Bin 0 -> 16052 bytes systemback/pictures/dir.png | Bin 0 -> 617 bytes systemback/pictures/dirx.png | Bin 0 -> 679 bytes systemback/pictures/down.png | Bin 0 -> 802 bytes systemback/pictures/error.png | Bin 0 -> 4971 bytes systemback/pictures/isdir.png | Bin 0 -> 554 bytes systemback/pictures/leftarrow.png | Bin 0 -> 707 bytes systemback/pictures/leftgreenarrow.png | Bin 0 -> 706 bytes systemback/pictures/logo.png | Bin 0 -> 103178 bytes systemback/pictures/menuback.png | Bin 0 -> 667 bytes systemback/pictures/menunext.png | Bin 0 -> 680 bytes systemback/pictures/next.png | Bin 0 -> 842 bytes systemback/pictures/ok.png | Bin 0 -> 1111 bytes systemback/pictures/passwordlogo.png | Bin 0 -> 12690 bytes systemback/pictures/refresh.png | Bin 0 -> 1209 bytes systemback/pictures/resize.png | Bin 0 -> 366 bytes systemback/pictures/rightarrow.png | Bin 0 -> 741 bytes systemback/pictures/systemback.png | Bin 0 -> 37598 bytes systemback/pictures/up.png | Bin 0 -> 772 bytes systemback/pnlevent.hpp | 71 + systemback/systemback.cpp | 7735 ++++++++++++++++ systemback/systemback.hpp | 323 + systemback/systemback.pro | 55 + systemback/systemback.ui | 7849 +++++++++++++++++ systemback/tblwdgtevent.hpp | 52 + 113 files changed, 58044 insertions(+) create mode 100644 README.md create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/libsystemback.install create mode 100755 debian/libsystemback.postrm create mode 100755 debian/rules create mode 100644 debian/source.lintian-overrides create mode 100644 debian/source/format create mode 100644 debian/systemback-cli.1 create mode 100644 debian/systemback-cli.install create mode 100644 debian/systemback-efiboot-amd64.install create mode 100644 debian/systemback-locales.install create mode 100644 debian/systemback-scheduler.install create mode 100644 debian/systemback-scheduler.lintian-overrides create mode 100755 debian/systemback-scheduler.postrm create mode 100755 debian/systemback-scheduler.preinst create mode 100755 debian/systemback-scheduler.prerm create mode 100644 debian/systemback.1 create mode 100644 debian/systemback.install create mode 100644 debian/systemback.links create mode 100644 debian/systemback.lintian-overrides create mode 100644 doc/systemback-1.png create mode 100644 doc/systemback-2.png create mode 100644 efi-amd64.bootfiles create mode 100644 icons/128x128/systemback.png create mode 100644 icons/256x256/systemback.png create mode 100644 icons/48x48/systemback.png create mode 100644 icons/64x64/systemback.png create mode 100644 lang/systemback_ar_EG.ts create mode 100644 lang/systemback_ca_ES.ts create mode 100644 lang/systemback_cs.ts create mode 100644 lang/systemback_da_DK.ts create mode 100644 lang/systemback_de.ts create mode 100644 lang/systemback_en_GB.ts create mode 100644 lang/systemback_es.ts create mode 100644 lang/systemback_fi.ts create mode 100644 lang/systemback_fr.ts create mode 100644 lang/systemback_gl_ES.ts create mode 100644 lang/systemback_hu.ts create mode 100644 lang/systemback_id.ts create mode 100644 lang/systemback_ko.ts create mode 100644 lang/systemback_pt_BR.ts create mode 100644 lang/systemback_ro.ts create mode 100644 lang/systemback_ru.ts create mode 100644 lang/systemback_tr.ts create mode 100644 lang/systemback_uk.ts create mode 100644 lang/systemback_zh_CN.ts create mode 100644 libsystemback/bstr.hpp create mode 100755 libsystemback/lcheck.sh create mode 100644 libsystemback/libsystemback.pro create mode 100644 libsystemback/sblib.cpp create mode 100644 libsystemback/sblib.hpp create mode 100644 libsystemback/sblib_global.hpp create mode 100644 libsystemback/sbtypedef.hpp create mode 100644 libsystemback/version create mode 100644 libsystemback/version.qrc create mode 100644 logo.png create mode 100644 sbschedule-kde.desktop create mode 100644 sbschedule.desktop create mode 100644 sbscheduler/main.cpp create mode 100644 sbscheduler/sbscheduler.cpp create mode 100644 sbscheduler/sbscheduler.hpp create mode 100644 sbscheduler/sbscheduler.pro create mode 100644 sbsustart/main.cpp create mode 100644 sbsustart/sbsustart.cpp create mode 100644 sbsustart/sbsustart.hpp create mode 100644 sbsustart/sbsustart.pro create mode 100644 sbsysupgrade/sbsysupgrade.cpp create mode 100644 sbsysupgrade/sbsysupgrade.pro create mode 100644 splash.png create mode 100644 systemback-cli/main.cpp create mode 100644 systemback-cli/systemback-cli.cpp create mode 100644 systemback-cli/systemback-cli.hpp create mode 100644 systemback-cli/systemback-cli.pro create mode 100644 systemback-kde.desktop create mode 100644 systemback.desktop create mode 100644 systemback.pro create mode 100644 systemback/bttnevent.hpp create mode 100644 systemback/chckbxevent.hpp create mode 100644 systemback/lblevent.hpp create mode 100644 systemback/lndtevent.hpp create mode 100644 systemback/main.cpp create mode 100644 systemback/pictures.qrc create mode 100644 systemback/pictures/back.png create mode 100644 systemback/pictures/dialogerror.png create mode 100644 systemback/pictures/dialoginfo.png create mode 100644 systemback/pictures/dialogquestion.png create mode 100644 systemback/pictures/dir.png create mode 100644 systemback/pictures/dirx.png create mode 100644 systemback/pictures/down.png create mode 100644 systemback/pictures/error.png create mode 100644 systemback/pictures/isdir.png create mode 100644 systemback/pictures/leftarrow.png create mode 100644 systemback/pictures/leftgreenarrow.png create mode 100644 systemback/pictures/logo.png create mode 100644 systemback/pictures/menuback.png create mode 100644 systemback/pictures/menunext.png create mode 100644 systemback/pictures/next.png create mode 100644 systemback/pictures/ok.png create mode 100644 systemback/pictures/passwordlogo.png create mode 100644 systemback/pictures/refresh.png create mode 100644 systemback/pictures/resize.png create mode 100644 systemback/pictures/rightarrow.png create mode 100644 systemback/pictures/systemback.png create mode 100644 systemback/pictures/up.png create mode 100644 systemback/pnlevent.hpp create mode 100644 systemback/systemback.cpp create mode 100644 systemback/systemback.hpp create mode 100644 systemback/systemback.pro create mode 100644 systemback/systemback.ui create mode 100644 systemback/tblwdgtevent.hpp diff --git a/README.md b/README.md new file mode 100644 index 0000000..30982bb --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +![hamonikr-me](https://img.shields.io/badge/hamonikr-me-orange) +![hamonikr-sun](https://img.shields.io/badge/hamonikr-sun-green) + +## systemback + +Upstream : https://code.launchpad.net/~nemh/systemback/stable + +systemback 프로그램을 하모니카에서 사용할 수 있도록 새롭게 빌드한 프로젝트. + +- 초보자도 쉽게 자신만의 ISO 이미지를 만들어서 배포할 수 있는 프로그램 +- 사용중인 자신의 PC 환경을 라이브 이미지로 제작할 수 있는 기능 제공 +- 자신이 수정한 자신만의 환경으로 다른 PC에 설치할수 있는 ISO 이미지를 쉽게 + 제작가능 +- 한글 인터페이스를 지원하도록 기능 추가 +- 하모니카 3.0 에서 빌드하고 검증완료 (Ubuntu 18.04, LinuxMint 19.01 지원) + + +![screen1](doc/systemback-1.png) +![screen2](doc/systemback-2.png) + +## 설치 +``` +# 하모니카 SUN 저장소 추가 +curl -sL https://apt.hamonikr.org/setup_hamonikr.sun | sudo -E bash - + +sudo apt install systemback +``` + +## 이슈 또는 버그 + 사용 중 문제를 발견하시면 root@hamonikr.org 또는 https://hamonikr.org 에서 알려주세요. \ No newline at end of file diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..2fe5f59 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,60 @@ +systemback (1.8.402hamonikr1) release; urgency=low + + * Rebuild for HamoniKR OS + * Added Korean translation + + -- Kevin Kim Sun, 04 Oct 2020 15:10:11 +0900 + +systemback (1.8.402) release; urgency=low + + * 1.8.402 + * Fix Live creation when the '/snap' directory is missing + + * 1.8.400 + * Add support to installed Snap packages + * Remove support to old (version 1.5 and below) restore points + * Fix possible segmentation fault when checking directory mount status + * Fix translation files detection in DBGLEV=3 mode + * Fix source code compilation under Ubuntu 14.04 + * Import new Romanian translations + + * 1.8.300 + * Fix the possible conflict with the APT when updating the package index files + * Import new EFI boot files from the Ubuntu 16.04 LTS + * Import new Czech, English (United Kingdom), Hungarian, Romanian and Spanish + translations + + * 1.8.202 + * Improve compatibility with apt 1.2 + * Update EFI boot files + * Import new Spanish, Danish and Chinese (Simplified) translations + + * 1.8.201 + * Fix restore point creation when the storage dir path contains symbolic link + * Fix some directory date and time settings when creating restore points + + * 1.8.200 + * Fix line breaking when printing the mounted filesystems in DBGLEV=3 mode + * Fix error messages printing when upgrading the system + * Fix the GRUB menu height on the Live when the system contains xorg.conf + file(s) + * Detect and takes into account the configuration file(s) in the + /etc/X11/xorg.conf.d directory + * Update EFI boot files + * Import new Czech translations + + * 1.8.102 + * Fix possible segmentation fault when try to minimize the window with the + button + + * 1.8.101 + * Fix partition information reading on Ubuntu 16.04 + + * 1.8.100 + * Fix incorrect symlink following when creating a new incremental restore + point (TeamViewer global.conf bug) + * Add a new debug level (DBGLEV=3) for more debug information + * Some minor fixes and improvements + * Import new Hungarian translations + + -- Kende Krisztián Mon, 16 May 2016 13:04:46 +0200 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..292fd94 --- /dev/null +++ b/debian/control @@ -0,0 +1,177 @@ +Source: systemback +Section: admin +Priority: optional +Maintainer: Kende Krisztián +Build-Depends: debhelper (>= 9), + libblkid-dev, + libmount-dev, + libncursesw5-dev, + libparted0-dev, + qtbase5-dev, + qttools5-dev-tools +Standards-Version: 3.9.7 + +Package: systemback +Architecture: amd64 i386 +Depends: ${misc:Depends}, + ${shlibs:Depends}, + casper | live-boot, + dosfstools, + fonts-freefont-ttf | ttf-freefont, + genisoimage, + squashfs-tools, + syslinux, + syslinux (<< 3:5) | isolinux (>> 3:6), + syslinux (<< 3:5) | syslinux-common (>> 3:6), + syslinux (<< 3:5) | syslinux-utils (>> 3:6), + systemback-efiboot-amd64 (= ${source:Version}) [amd64], + systemback-scheduler (= ${binary:Version}), + upstart | sysvinit (>= 2.88) | systemd, + xterm, + zenity | kde-baseapps-bin | kdebase-bin +Recommends: grub2-common, + grub-efi-amd64-bin, + grub-pc-bin, + lupin-casper [amd64], + systemback-cli (= ${binary:Version}), + systemback-locales (= ${source:Version}), + ttf-ubuntu-font-family +Suggests: btrfs-tools, + jfsutils, + reiserfsprogs, + xfsprogs, + unionfs-fuse +Conflicts: live-config, + live-config-systemd +Breaks: systemback-gui-common (<< 1.0.0) +Replaces: systemback-gui-common (<< 1.0.0) +Description: Simple system backup and restore application with extra features + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contain a Qt5 graphical user interface for Systemback. + +Package: systemback-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: ${misc:Depends}, + systemback (= ${binary:Version}) +Description: Debug symbols for systemback + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contains the debug symbols for systemback. + +Package: systemback-cli +Architecture: amd64 i386 +Depends: ${misc:Depends}, + ${shlibs:Depends}, + upstart | sysvinit (>= 2.88) | systemd +Recommends: grub2-common, + grub-efi-amd64-bin | grub-pc-bin +Description: Systemback command line interface + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contain a command line interface for Systemback. + +Package: systemback-cli-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: ${misc:Depends}, + systemback-cli (= ${binary:Version}) +Description: Debug symbols for systemback-cli + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contains the debug symbols for systemback-cli. + +Package: systemback-scheduler +Architecture: amd64 i386 +Depends: ${misc:Depends}, + ${shlibs:Depends} +Breaks: systemback (<< 1.0.0) +Replaces: systemback (<< 1.0.0) +Description: Systemback scheduler daemon + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contain a scheduler daemon for Systemback. + +Package: systemback-scheduler-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: ${misc:Depends}, + systemback-scheduler (= ${binary:Version}) +Description: Debug symbols for systemback-scheduler + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contains the debug symbols for systemback-scheduler. + +Package: libsystemback +Architecture: amd64 i386 +Section: libs +Depends: ${misc:Depends}, + ${shlibs:Depends}, + apt, + procps +Description: Systemback shared library + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contain a shared library for Systemback binaries. + +Package: libsystemback-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: ${misc:Depends}, + libsystemback (= ${binary:Version}) +Description: Debug symbols for libsystemback + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contains the debug symbols for libsystemback. + +Package: systemback-efiboot-amd64 +Architecture: all +Depends: ${misc:Depends}, + xz-utils +Description: Systemback boot files + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contais 64-bit boot files for UEFI-based machines. + +Package: systemback-locales +Architecture: all +Depends: ${misc:Depends} +Description: Systemback localizations files + Systemback makes it easy to create backups of the system and the users + configuration files. In case of problems you can easily restore the previous + state of the system. There are extra features like system copying, system + installation and Live system creation. + . + This package contains localizations files for Systemback. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..7606a57 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,22 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0 +Upstream-Name: Systemback +Source: https://sourceforge.net/projects/systemback/files + +Files: * +Copyright: 2010-2016 Krisztián Kende +License: GPL-3+ + This package is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation; either version 3 of the License, or (at your option) any later + version. + . + This package is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. See the GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License along with + this package; if not, write to the Free Software Foundation, Inc., 51 Franklin + St, Fifth Floor, Boston, MA 02110-1301 USA + . + On Debian systems, the full text of the GNU General Public License version 3 + can be found in the file '/usr/share/common-licenses/GPL'. diff --git a/debian/libsystemback.install b/debian/libsystemback.install new file mode 100644 index 0000000..dc3d4b1 --- /dev/null +++ b/debian/libsystemback.install @@ -0,0 +1 @@ +libsystemback/libsystemback.so* usr/lib/systemback diff --git a/debian/libsystemback.postrm b/debian/libsystemback.postrm new file mode 100755 index 0000000..fe331b0 --- /dev/null +++ b/debian/libsystemback.postrm @@ -0,0 +1,21 @@ +#!/bin/sh -e + +if [ "$1" = purge ] && [ -d /etc/systemback ] +then + echo "Deleting Systemback configuration files ..." + + if [ -f /etc/systemback/systemback.conf ] + then + sdir="$(grep ^storage_directory= /etc/systemback/systemback.conf | tail -c +19)" + rm /etc/systemback/systemback.conf + + if [ "$sdir" ] && [ -d "$sdir"/Systemback ] && [ ! -d "$sdir"/Systemback/S01_* ] && [ ! -d "$sdir"/Systemback/H01_* ] + then + [ ! -e "$sdir"/Systemback/.sbschedule ] || rm "$sdir"/Systemback/.sbschedule + ! rm -d "$sdir"/Systemback 2>/dev/null || echo "Deleting empty Systemback storage directory ..." + fi + fi + + rm -r /etc/systemback +fi +#DEBHELPER# \ No newline at end of file diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..ef449a4 --- /dev/null +++ b/debian/rules @@ -0,0 +1,62 @@ +#!/usr/bin/make -f + +configure: configure-stamp + +configure-stamp: + qmake -qt5 + touch configure-stamp + +build: build-arch build-indep + +build-arch: build-arch-stamp + +build-indep: build-indep-stamp + +build-arch-stamp: configure-stamp + $(MAKE) -j $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1) + touch build-arch-stamp + +build-indep-stamp: + lrelease -qt5 systemback.pro + touch build-indep-stamp + +clean: + rm -f configure-stamp build-*-stamp lang/*.qm libsystemback/libmount.hpp + [ ! -f Makefile ] || $(MAKE) distclean + dh_clean + +binary-arch: build-arch + dh_installdirs -a + dh_install -a + dh_installman debian/systemback.1 -p systemback + dh_installman debian/systemback-cli.1 -p systemback-cli + dh_strip --dbg-package=systemback-dbg -p systemback + dh_strip --dbg-package=systemback-cli-dbg -p systemback-cli + dh_strip --dbg-package=systemback-scheduler-dbg -p systemback-scheduler + dh_strip --dbg-package=libsystemback-dbg -p libsystemback + dh_link -a + dh_fixperms -a + chmod 4755 debian/systemback-scheduler/usr/lib/systemback/sbsustart + dh_makeshlibs -nV "libsystemback (= $(shell dpkg-parsechangelog | sed -n 's/^Version: //p'))" -a + dh_shlibdeps -a + dh_installdeb -a + dh_gencontrol -a + dh_installdocs -a + dh_installchangelogs -a + dh_lintian -a + dh_compress -a + dh_builddeb -a + +binary-indep: build-indep + dh_install -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_installdocs -i + dh_installchangelogs -i + dh_compress -i + dh_builddeb -i + +binary: binary-arch binary-indep + +.PHONY: configure build-arch build-indep clean binary-arch binary-indep binary diff --git a/debian/source.lintian-overrides b/debian/source.lintian-overrides new file mode 100644 index 0000000..2f2cfd6 --- /dev/null +++ b/debian/source.lintian-overrides @@ -0,0 +1 @@ +systemback source: newer-standards-version * diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/debian/systemback-cli.1 b/debian/systemback-cli.1 new file mode 100644 index 0000000..2247a58 --- /dev/null +++ b/debian/systemback-cli.1 @@ -0,0 +1,70 @@ +.TH Systemback 1 "02.02.2016." + +.SH NAME +Systemback - Simple system backup and restore application with extra +.br + features + +.SH SYNOPSIS +\fBsystemback-cli\fR [\fIOPTION\fR] + +.SH DESCRIPTION + +\fBSystemback\fR makes it easy to create backups of the system and the users +configuration files. In case of problems you can easily restore the previous +state of the system. There are extra features like system copying, system +installation and Live system creation. + +.SH OPTIONS +.TP +.B -n, --newbackup +create a new restore point +.TP +.B -s, --storagedir +get or set restore points storage directory path +.TP +.B -u, --upgrade +upgrade current system +.br +remove unnecessary files and packages +.TP +.B -v, --version +output Systemback version number +.TP +.B -h, --help +show help + +.SH ENVIRONMENT +.TP +.B DBGLEV +set the debug level for the stdout printed error messages +.br +these will be redirected to the /tmp/systemback-cli_stderr +.br +0 - no error messages +.br +1 - print the error messages when a process has stopped because +.br + an error occurred (default) +.br +2 - this is the same as level 1 +.br +3 - print the error messages with extra informations + +.SH FILES +.SS /etc/systemback/systemback.conf +configuration of GUI and CLI +.br +the possible variables and values are indicated in the file, all other changes +are lost + +.SS /etc/systemback/systemback.excludes +exclude hidden user files and directories from restore points +.br +exclude user data files and directories from Live system + +.SS /etc/systemback/systemback.includes +include user data files and directories into the restore points + +.SH AUTHOR +Krisztián Kende (nemh@freemail.hu) diff --git a/debian/systemback-cli.install b/debian/systemback-cli.install new file mode 100644 index 0000000..be073d4 --- /dev/null +++ b/debian/systemback-cli.install @@ -0,0 +1 @@ +systemback-cli/systemback-cli usr/bin diff --git a/debian/systemback-efiboot-amd64.install b/debian/systemback-efiboot-amd64.install new file mode 100644 index 0000000..d910623 --- /dev/null +++ b/debian/systemback-efiboot-amd64.install @@ -0,0 +1 @@ +efi-amd64.bootfiles usr/share/systemback diff --git a/debian/systemback-locales.install b/debian/systemback-locales.install new file mode 100644 index 0000000..8a8bd7e --- /dev/null +++ b/debian/systemback-locales.install @@ -0,0 +1 @@ +lang/*.qm usr/share/systemback/lang diff --git a/debian/systemback-scheduler.install b/debian/systemback-scheduler.install new file mode 100644 index 0000000..1507bb3 --- /dev/null +++ b/debian/systemback-scheduler.install @@ -0,0 +1,3 @@ +sbscheduler/sbscheduler usr/lib/systemback +sbsustart/sbsustart usr/lib/systemback +sbschedule*.desktop etc/xdg/autostart diff --git a/debian/systemback-scheduler.lintian-overrides b/debian/systemback-scheduler.lintian-overrides new file mode 100644 index 0000000..6832c6f --- /dev/null +++ b/debian/systemback-scheduler.lintian-overrides @@ -0,0 +1 @@ +systemback-scheduler: setuid-binary diff --git a/debian/systemback-scheduler.postrm b/debian/systemback-scheduler.postrm new file mode 100755 index 0000000..7b0aac7 --- /dev/null +++ b/debian/systemback-scheduler.postrm @@ -0,0 +1,11 @@ +#!/bin/sh -e + +if [ -d /run ] +then pfile=/run/sbscheduler.pid +else pfile=/var/run/sbscheduler.pid +fi + +if [ "$1" = upgrade ] && [ -s $pfile ] +then printf restart > $pfile +fi +#DEBHELPER# \ No newline at end of file diff --git a/debian/systemback-scheduler.preinst b/debian/systemback-scheduler.preinst new file mode 100755 index 0000000..7c1119e --- /dev/null +++ b/debian/systemback-scheduler.preinst @@ -0,0 +1,8 @@ +#!/bin/sh -e + +if [ "$1" = install ] && grep ^enabled=true /etc/systemback/systemback.conf >/dev/null 2>&1 +then + echo "Disabling Systemback scheduler ..." + sed -i s/^enabled=true/enabled=false/g /etc/systemback/systemback.conf +fi +#DEBHELPER# \ No newline at end of file diff --git a/debian/systemback-scheduler.prerm b/debian/systemback-scheduler.prerm new file mode 100755 index 0000000..451139c --- /dev/null +++ b/debian/systemback-scheduler.prerm @@ -0,0 +1,16 @@ +#!/bin/sh -e + +if [ -d /run ] +then dir=/run +else dir=/var/run +fi + +if [ "$1" = remove ] && [ -e $dir/sbscheduler.lock ] && [ -s $dir/sbscheduler.pid ] +then + echo "Stopping Systemback scheduler daemon ..." + + if kill $(cat $dir/sbscheduler.pid) >/dev/null 2>&1 + then rm $dir/sbscheduler.lock $dir/sbscheduler.pid + fi +fi +#DEBHELPER# \ No newline at end of file diff --git a/debian/systemback.1 b/debian/systemback.1 new file mode 100644 index 0000000..490db28 --- /dev/null +++ b/debian/systemback.1 @@ -0,0 +1,49 @@ +.TH Systemback 1 "02.02.2016." + +.SH NAME +Systemback - Simple system backup and restore application with extra +.br + features + +.SH SYNOPSIS +\fBsystemback + +.SH DESCRIPTION + +\fBSystemback\fR makes it easy to create backups of the system and the users +configuration files. In case of problems you can easily restore the previous +state of the system. There are extra features like system copying, system +installation and Live system creation. + +.SH ENVIRONMENT +.TP +.B DBGLEV +set the debug level for the stdout printed error messages +.br +0 - no error messages +.br +1 - print the error messages when a process has stopped because +.br + an error occurred (default) +.br +2 - print all error messages +.br +3 - print all error messages with extra informations + +.SH FILES +.SS /etc/systemback/systemback.conf +configuration of GUI and CLI +.br +the possible variables and values are indicated in the file, all other changes +are lost + +.SS /etc/systemback/systemback.excludes +exclude hidden user files and directories from restore points +.br +exclude user data files and directories from Live system + +.SS /etc/systemback/systemback.includes +include user data files and directories into the restore points + +.SH AUTHOR +Krisztián Kende (nemh@freemail.hu) diff --git a/debian/systemback.install b/debian/systemback.install new file mode 100644 index 0000000..bbdc11d --- /dev/null +++ b/debian/systemback.install @@ -0,0 +1,9 @@ +systemback/systemback usr/bin +sbsysupgrade/sbsysupgrade usr/lib/systemback +splash.png usr/share/systemback +logo.png usr/share/systemback +systemback*.desktop /usr/share/applications +icons/128x128/systemback.png usr/share/icons/hicolor/128x128/apps +icons/256x256/systemback.png usr/share/icons/hicolor/256x256/apps +icons/48x48/systemback.png usr/share/icons/hicolor/48x48/apps +icons/64x64/systemback.png usr/share/icons/hicolor/64x64/apps diff --git a/debian/systemback.links b/debian/systemback.links new file mode 100644 index 0000000..10cb211 --- /dev/null +++ b/debian/systemback.links @@ -0,0 +1 @@ +/usr/lib/systemback/sbsustart /usr/bin/systemback-sustart diff --git a/debian/systemback.lintian-overrides b/debian/systemback.lintian-overrides new file mode 100644 index 0000000..0b06cca --- /dev/null +++ b/debian/systemback.lintian-overrides @@ -0,0 +1,2 @@ +systemback: desktop-command-not-in-package +systemback: binary-without-manpage diff --git a/doc/systemback-1.png b/doc/systemback-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8b84f22726e047c4ac38a5c2c8162ab2444cd6ed GIT binary patch literal 55556 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 literal 0 HcmV?d00001 diff --git a/efi-amd64.bootfiles b/efi-amd64.bootfiles new file mode 100644 index 0000000000000000000000000000000000000000..2fe623d113ef373ddcde45452b09e53c7dc268ca GIT binary patch literal 928752 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
  • UBKLZ6yj?q}ESW|Cq|bBE=N5qZeI{Tk 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 z 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 z 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

    6aj9}^^2+bHYxbB^Sb+b9u$|G=}} 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 z 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

    RPO5L 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

    yMjM4tF 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%0DL)jvYS6$1+Yu>( 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

    XeP5Jk;`z`8J0T*p=(U^;Pk+yX@~+CSh@ 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

    8wM0r8@5sZc&4u0HT9hO&%C3H>55Hikrj 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 literal 0 HcmV?d00001 diff --git a/icons/256x256/systemback.png b/icons/256x256/systemback.png new file mode 100644 index 0000000000000000000000000000000000000000..13e06130f99adcc03845ac0fd8b99d6f3742d979 GIT binary patch literal 37598 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

    ;T-KAl5GY-p$WsyzM~)QiGE3iA)_Yi{%m z-^ttD^5{ZvvDmc-3w$SxTeaXdZrU?`I>?tX)b! zul`N{BQyl?m{x^8YJdcjHzRuS7YE_Y@k+)mZ(5BZ6s9(2zDz?>kT0p7g4+vj_vN2< zAxgUc@dDzw6+`tvT{mkY?nR8+iTd3|L_r~vuWT4ZqbQ5xbw&jJt{zrTNx1yM{x6_g z+ah;?vVzh*i;ww~ca&T#2Xk~MQceK?tziGe*TC)?BnCwsXu!U3Ezr8a{uA@ri}rIG zq};BV`YQd*I(WRRzW|A0BR)KI?Y))v5UQcVfLxQvGPq|zPu{L@!!q9K>MZk3AJjJbGM(RMyZ`_I literal 0 HcmV?d00001 diff --git a/icons/48x48/systemback.png b/icons/48x48/systemback.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ea9601ae2f31739df5340f193d4a200e8d20ef GIT binary patch literal 3518 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 + + + + systemback + + + Full name of the new user: + اسم المستخدم الجديد الكامل: + + + + New username to login: + اسم المستخدم الجديد للولوج: + + + + New user account password: + كلمة مرور حساب المستخدم الجديد: + + + + New root password (optional, not recommended for Ubuntu): + كلمة الجذر الجديدة (اختيارية، غير مستحسنة لأبونتو): + + + + New hostname: + اسم المضيف الجديد: + + + + + + + + + + + + + + + + Back + السابق + + + + + + + + Next + التالي + + + + + Working directory + دليل العمل + + + + Created Live images + الصور الحيّة المُنشأة + + + + Name of the Live system + اسم النظام الحيّ + + + + + + + + Options + خيارات + + + + Write target + هدف الكتابة + + + + Live operations + + + + + Include the user data files + ضمّن ملفات بيانات المستخدم + + + + Redetect devices + أعد اكتشاف الأجهزة + + + + + + Delete + احذف + + + + Convert to ISO + حوّل إلى ISO + + + + + + Create new + أنشئ جديد + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + ضُمّ أقسام النظام ذات الأخطاء إلى الدليل '‎/mnt' حسب البنية الأصلية.<br>('/'‏ -> '‎/mnt'، ‏'‎/home'‏ -> '‎/mnt/home'، إلخ.) + + + + + Mount + ضُمّ + + + + Reset mounts + + + + + Repair type + نوع الإصلاح + + + + GRUB 2 repair + إصلاح GRUB 2 + + + + System files repair + إصلاح ملفات النظام + + + + + Reinstall GRUB 2 bootloader: + أعد تثبيت محمّل الإقلاع GRUB 2: + + + + + Auto detection + اكتشف آليًّا + + + + Full repair + إصلاح شامل + + + + Do not repair the fstab file + + + + + Exclude hidden user files and directories from restore points + استثنِ ملفات المستخدم المخفية والأدلة من نقاط الاستعادة + + + + Exclude user data files and directories from Live system + استثنِ ملفات المستخدم والأدلة من النظام الحيّ + + + + Excluded items + العناصر المُستثناة + + + + + Remove item from the exclusion list + أزل العنصر من قائمة الاستثناء + + + + + Add item to the exclusion list + أضف العنصر إلى قائمة الاستثناء + + + + Scheduler state: + حالة المجدول: + + + + + + + + + + + + + + Disabled + معطّل + + + + Timer settings + إعدادات المؤقت + + + + Waiting time before creating a new restore point: + وقت الانتظار قبل إنشاء نقطة استعادة: + + + + Visible countdown time: + + + + + Pop-up window position on screen: + موقع النافذة المنبثقة على الشاشة: + + + + Use silent mode + استخدم الوضع الصامت + + + + + + + More + أكثر + + + + + + + Less + أقل + + + + Simple system backup and restore application with extra features + تطبيق بسيط لنسخ النظام احتياطيًّا واستعادته مع بعض الميزات الإضافية + + + + Project homepage: + صفحة المشروع الرئيسية: + + + + Contact: + راسلني: + + + + Donate: + تبرّع: + + + + Systemback version: + + + + + + License + الرخصة + + + + Re-read directories + أعد قراءة الأدلة + + + + Writable Linux filesystem! + نظام ملفات لينكس قابل للكتابة! + + + + + + + Cancel + ألغِ + + + + + + + + + + + Maximum number of temporary restore points + أقصى عدد لنقاطة الاستعادة المؤقّتة + + + + + Include + + + + + + + + + + + + + + + + + + + empty + فارغ + + + + + + + + + + + not used + غير مُستخدم + + + + Includable items + + + + + Included items + + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + + Restore points + نقاط الاستعادة + + + + Highlighted restore points + نقاط الاستعادة المُبرزة + + + + Point operations + عمليات النقطة + + + + Highlight + أبرز + + + + Rename + أعد التسمية + + + + + + + + + + + + + + + + + + Select restore point + اختر نقطة استعادة + + + + + + + + + Storage directory + دليل الوسيط + + + + Function menu + قائمة الوظائف + + + + + + System restore + استعد النظام + + + + + + + System copy + انسخ النظام + + + + + System install + ثبّت النظام + + + + + + + Live system create + انشئ نظام حيّ + + + + + System repair + أصلح النظام + + + + System upgrade + رقِّ النظام + + + + + Exclude + استثنِ + + + + + Schedule + الجدولة + + + + Excludable items + + + + + + + About + حول + + + + + Settings + + + + + Change path + غيّر المسار + + + + Restore type + نوع الاستعادة + + + + + + + + + Full restore + استعادة كاملة + + + + + + + + + System files restore + استعادة ملفات النظام + + + + User(s) configuration files restore + استعادة ملفات إعداد المستخدمين + + + + + Keep newly installed configuration files + أبقِ ملفات الإعداد المثبّتة حديثًا + + + + Include user(s): + ضمّن المستخدمين: + + + + Do not restore the fstab file + + + + + Partition settings + إعدادات القسم + + + + Need to set the mount point as '/boot/efi'! + + + + + Window DPI scaling + + + + + Multiplier factor for scaling the window contents + + + + + User interface + + + + + Window always on top + + + + + System + + + + + Disable scheduler daemon starting for the following users: + + + + + Use XZ compressor for squashfs filesystems + + + + + Override auto-detected language: + + + + + Override the used style: + + + + + Disable incremental restore points (do not use hard links between backups) + + + + + Create Live ISO images automatically (faster than the conversion) + + + + + Do not empty memory cache at the end of some processes + + + + + + + + + + + Unmount + افصِل + + + + Write to target + + + + + Mount point: + نقطة الضم: + + + + + + + + + ! Delete ! + + + + + Add new partition + + + + + Create new: + + + + + Filesystem: + نظام الملفات: + + + + + + Format + الهيئة + + + + + + Reset partitions settings + أعد تعيين إعدادات الأقسام + + + + Change partition settings + غيّر إعدادات القسم + + + + + + + + Transfer user configuration files + + + + + Copy user data files + انسخ ملفات بيانات المستخدم + + + + Install GRUB 2 bootloader: + ثبّت محمّل الإقلاع GRUB 2: + + + + + + + + + Transfer user configuration and data files + + + + + ! Interrupt ! + ! اقطع ! + + + + Creates a scheduled restore point within few seconds. + يُنشأ نقطة استعادة مجدولة في غضون ثوانٍ قليلة. + + + + + + Start + ابدأ + + + + Later + لاحقًا + + + + Systemback user authentication + + + + + Administrator: + + + + + Password: + + + + + + Partition + + + + + + Size + + + + + Current mount point + نقطة الضمّ الحالية + + + + New mount point + نقطة ضمّ جديدة + + + + Filesystem + نظام الملفات + + + + Device + الجهاز + + + + + + scheduler + المجدول + + + + + Top left + أعلى اليسار + + + + + + Top right + أعلى اليمين + + + + + + Center + الوسط + + + + + + Bottom left + أدنى اليسار + + + + + Bottom right + أدنى اليمين + + + + + + day(s) + + + + + + + hour(s) + + + + + + + + + minute(s) + + + + + + + seconds + + + + + + + Live image + الصورة الحيّة + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + + + Boot system installer + + + + + + + Currently running system + النظام العامل حاليًّا + + + + Label + + + + + + Creating restore point + ينشأ نقطة استعادة + + + + + Restoring the full system + + + + + + Restoring the system files + يستعيد ملفات النظام + + + + Restoring the user(s) configuration files + + + + + Repairing the system files + يُصلح ملفات النظام + + + + Repairing the full system + + + + + Copying the system + ينسخ النظام + + + + Installing the system + يثبّت النظام + + + + Creating Live system + ينشأ النظام الحيّ + + + + + Deleting restore point + يحذف نقطة الاستعادة + + + + Deleting old restore point + يحذف نقطة الاستعادة القديمة + + + + + Deleting incomplete restore point + يحذف نقطة الاستعادة غير المكتملة + + + + + Flushing filesystem buffers + + + + + + + + + + Reboot + أعد الإقلاع + + + + + + + X restart + إعادة تشغيل X + + + + Repairing the GRUB 2 + يُصلح GRUB 2 + + + + + Emptying cache + يمحو الخبيئة + + + + + An another Systemback process is currently running, please wait until it finishes. + + + + + Please enter a new name. + ضلًا أدخِل اسمًا جديدًا. + + + + The specified name contain(s) unsupported character(s)! + الاسم المحدّد يحوي محارف غير صالحة! + + + + Restore the system files to the following restore point: + استعد ملفات النظام إلى نقطة الاستعادة التالية: + + + + Repair the system files with the following restore point: + أصلح ملفات النظام بنقطة الاستعادة التالية: + + + + Repair the complete system with the following restore point: + أصلح كل النظام بنقطة الاستعادة التالية: + + + + Restore the complete user(s) configuration files to the following restore point: + استعد ملفات إعداد مستخدمي الحاسوب الكاملة إلى نقطة الاستعادة التالية: + + + + Restore the user(s) configuration files to the following restore point: + استعد ملفات إعداد مستخدمي الحاسوب إلى نقطة الاستعادة التالية: + + + + The user(s) configuration files full restoration are completed. + + + + + + The X server will restart automatically within 30 seconds. + + + + + The user(s) configuration files restoration are completed. + + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + + + + + The full system repair is completed. + اكتمل إصلاح كامل النظام. + + + + The system repair is completed. + اكتمل إصلاح النظام. + + + + Copy the system, using the following restore point: + انسخ النظام، باستخدام نقطة الاستعادة التالية: + + + + Install the system, using the following restore point: + ثبّت النظام، باستخدام نقطة الاستعادة التالية: + + + + + + + The restore point creation is aborted! + + + + + + + Not enough free disk space to complete the process. + + + + + + Root privileges are required for running the Systemback! + + + + + Restore the complete system to the following restore point: + استعد كامل النظام إلى أحد نقاط الاستعادة التالية: + + + + + The system files restoration are completed. + + + + + + + The computer will restart automatically within 30 seconds. + + + + + + The full system restoration is completed. + + + + + + + + + The system copy is aborted! + + + + + An error occurred while reinstalling the GRUB. + + + + + Format the %1, and write the following Live system image: + هيّئ %1، واكتب صورة النظام الحيّ التالية: + + + + The selected device does not have enough space to write the Live system. + + + + + + There is not enough free space. + + + + + Interrupting the current process + + + + + The system copy is completed, but an error occurred while installing the GRUB! + + + + + + You need to manually install a bootloader. + + + + + + The system restoration is aborted! + + + + + An error occurred while creating the file system image. + + + + + An error occurred while creating the container file. + حدث خطأ أثناء إنشاء الملف الحاوي. + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + + + + + + + The specified partition could not be formatted (in use or unavailable). + + + + + An error occurred while reinstalling the GRUB! + حدث خطأ أثناء إعادة تثبيت GRUB! + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + + + + + The system copy is completed. + اكتمل نسخ النظام. + + + + + + + + The Live system creation is aborted! + + + + + + + The specified partition could not be mounted. + تعذّر ضمّ القسم المحدّد. + + + + An error occurred while unpacking the Live system files. + حدث خطأ أثناء فكّ تحزيم ملفات النظام الحيّ. + + + + An error occurred while renaming the essential Live files. + + + + + An error occurred while creating the .iso image. + حدث خطأ أثناء إنشاء صورة ‎.iso. + + + + An error occurred while reading the .sblive image. + حدث خطأ أثناء قراءة صورة ‎.sblive. + + + + An error occurred while creating the new initramfs image. + + + + + + + The Live image could not be mounted. + + + + + The GRUB 2 repair is completed. + اكتمل إصلاح GRUB 2. + + + + Writing Live image to the target device + + + + + The Live system creation is completed. + + + + + The created .sblive file can be written to pendrive. + + + + + The system install is completed. + اكتمل تثبيت النظام. + + + + The system install is completed, but an error occurred while installing the GRUB! + + + + + + + + + The system installation is aborted! + + + + + + + + + + + There has been critical changes in the file system during this operation. + + + + + Repair the GRUB 2 bootloader. + أصلِح محمّل الإقلاع GRUB 2. + + + + + + + + The Live write is aborted! + + + + + The Live system image write is completed. + اكتمل كتابة صورة النظام الحيّ. + + + + + + + The Live conversion is aborted! + + + + + + The restore point deletion is aborted! + + + + + + An error occurred while during the process. + + + + + + The system repair is aborted! + + + + + + + + Everyone + + + + + Upgrading the system + يرقّي النظام + + + + + + + + Multiple mount points + + + + + Enabled + مُمكّن + + + + Systemback worker thread is interrupted by the user. + + + + + + process + + + + + Boot Live without xorg.conf file + + + + + + + Boot Live system + أقلِع النظام الحيّ + + + + + + Boot Live in safe graphics mode + + + + + + + Boot Live in debug mode + + + + + Press 'E' key to edit + اضغط زر 'E' للتحرير + + + + Press TAB key to edit + اضغط زر TAB للتحرير + + + + Converting Live system image + يحوّل صورة النظام الحيّ + + + + + Unable to get exclusive lock! + تعذّر الحصول على استثناء قفل! + + + + + First, close all package manager. + أولًا، أغلق كل مدراء الحزم. + + + + The specified storage directory path has not been set! + + + + + The restoration is aborted! + + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + + + + + The restore points storage directory is not available or not writable! + + + + + This stupid terminal does not support color! + + + + + This terminal is too small! + + + + + basic restore UI + + + + + Available restore point(s): + + + + + Quit + + + + + Selected restore point: + + + + + The specified storage directory path is set. + + + + + Deleting old restore point(s) + + + + + Restore with the following restore point: + + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + + + + + The Systemback command line interface cannot be used on a Live system! + + + + + Restore with the following restore method: + + + + + Users configuration files restore + + + + + + Complete configuration files restore + + + + + Configuration files restore + + + + + + + You want to keep the current fstab file? + + + + + + + + + + + + (Y/N) + + + + + + + + Reinstall the GRUB 2 bootloader? + + + + + Start the restore? + + + + + Restoring the users configuration files + + + + + The users configuration files full restoration are completed. + + + + + The users configuration files restoration are completed. + + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + + + + + Press 'ENTER' key to quit. + + + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + + + + + An error occurred while creating the following directory: + + + + + An error occurred while removing the following file: + + + + + An error occurred while creating the following hard link: + + + + + Reference file: + + + + + An error occurred while creating the following file: + + + + + An error occurred while renaming the following item: + + + + + New path: + + + + + An error occurred while executing the following command: + + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + + + + + An error occurred while upgrading the system! + + + + + Restart upgrade ... + + + + + This file could not be copied because it does not exist: + + + + + The following partition has no UUID: + + + + + An error occurred while creating a new partition on the following device: + + + + + An error occurred while mounting the following partition/image: + + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + + + + + An error occurred while unmounting the following partition/image/mount point: + + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + + + + + Target file: + + + + + An error occurred while cloning the following directory: + + + + + Target directory: + + + + + An error occurred while deleting the following directory: + + + + + An error occurred while changing the access permissions of the following file: + + + + + + Cannot start the Systemback scheduler daemon! + + + + + + Missing, wrong or too much argument(s). + + + + + The process is disabled for this user. + + + + + Root privileges are required. + + + + + This system is a Live. + + + + + Already running. + + + + + Unable to daemonize. + + + + + Cannot start the Systemback graphical user interface! + + + + + Unable to get root permissions. + + + + + Unable to connect to the X server. + + + + + Unsafe X Window authorization! + + + + + Please do not use 'sudo' command. + + + + diff --git a/lang/systemback_ca_ES.ts b/lang/systemback_ca_ES.ts new file mode 100644 index 0000000..c114555 --- /dev/null +++ b/lang/systemback_ca_ES.ts @@ -0,0 +1,1884 @@ + + + + + systemback + + + Full name of the new user: + Nom complet del nou usuari: + + + + New username to login: + Nom d'usuari per a iniciar sessió: + + + + New user account password: + Contrasenya del compte del nou usuari: + + + + New root password (optional, not recommended for Ubuntu): + Nova contrasenya root (opcional, no recomanable per Ubuntu): + + + + New hostname: + Nou nom per a l'equip: + + + + + + + + + + + + + + + + Back + Enrere + + + + + + + + Next + Següent + + + + + Working directory + Directori de treball + + + + Created Live images + Live imatges disponibles + + + + Name of the Live system + Nom de sistema Live + + + + + + + + Options + Opcions + + + + Write target + Dispositius disponibles + + + + Live operations + Opcions Live + + + + Include the user data files + Incloure arxius de dades de l'usuari + + + + Redetect devices + + + + + + + Delete + Esborrar + + + + Convert to ISO + Convertir a ISO + + + + + + Create new + Crear nou + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Muntar la partició del sistema defectuós en el directori '/mnt' segons l'estructura original.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + + + Mount + Muntar + + + + Reset mounts + + + + + Repair type + Tipus de reparació + + + + GRUB 2 repair + Reparar el GRUB 2 + + + + System files repair + Reparació del sistema d'arxius + + + + + Reinstall GRUB 2 bootloader: + Reinstal·lació del gestor d'arrencada GRUB 2: + + + + + Auto detection + Auto detectar + + + + Full repair + Reparació completa + + + + Do not repair the fstab file + No reparar l'arxiu fstab + + + + Exclude hidden user files and directories from restore points + Excloure arxius ocults d'usuari i directoris de punts de restauració + + + + Exclude user data files and directories from Live system + Excloure arxius de dades de l'usuari i els directoris de sistema Live + + + + Excluded items + Excloure elements + + + + + Remove item from the exclusion list + + + + + + Add item to the exclusion list + + + + + Scheduler state: + Estat de tasques programades: + + + + + + + + + + + + + + Disabled + Desactivat + + + + Timer settings + Ajustaments del temporitzador + + + + Waiting time before creating a new restore point: + Temps d'espera abans de crear un nou punt de restauració: + + + + Visible countdown time: + Mostrar compte enrere del Temporitzador: + + + + Pop-up window position on screen: + Posició de la finestra emergent en la pantalla: + + + + Use silent mode + Usar manera silenciosa + + + + + + + More + + + + + + + + Less + + + + + Simple system backup and restore application with extra features + Programa fàcil per a realitzar còpies de seguretat i punts de restauració del sistema + + + + Project homepage: + Pàgina web del projecte: + + + + Contact: + Contacte: + + + + Donate: + Donar: + + + + Systemback version: + Versió de Systemback: + + + + + License + Llicència + + + + Re-read directories + + + + + Writable Linux filesystem! + Sistema d'arxius Linux (Writable)! + + + + + + + Cancel + Cancel·lar + + + + + + + + + + + Maximum number of temporary restore points + + + + + + Include + + + + + + + + + + + + + + + + + + + empty + buit + + + + + + + + + + + not used + no utilitzar + + + + Includable items + + + + + Included items + + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + + Restore points + Punts de restauració + + + + Highlighted restore points + Punts destacats + + + + Point operations + Accions + + + + Highlight + Posar en destacats + + + + Rename + Reanomenar + + + + + + + + + + + + + + + + + + Select restore point + + + + + + + + + + Storage directory + Ruta d'emmagatzematge + + + + Function menu + Menú de funcions + + + + + + System restore + Restaurar sistema + + + + + + + System copy + Copiar sistema + + + + + System install + Instal·lar sistema + + + + + + + Live system create + Crear sistema Live + + + + + System repair + Reparar sistema + + + + System upgrade + Actualitzar el sistema + + + + + Exclude + Excloure arxius + + + + + Schedule + Tasca programada + + + + Excludable items + + + + + + + About + Sobre + + + + + Settings + + + + + Change path + + + + + Restore type + Seleccioni un tipus de restauració + + + + + + + + + Full restore + Restauració completa + + + + + + + + + System files restore + Restaurar arxius del sistema + + + + User(s) configuration files restore + Restaurar arxius de configuració d'usuari(s) + + + + + Keep newly installed configuration files + Mantenir els arxius de configuració recentment instal·lats + + + + Include user(s): + + + + + Do not restore the fstab file + No restaurar l'arxiu fstab + + + + Partition settings + Configuració de discos i particions + + + + Need to set the mount point as '/boot/efi'! + + + + + Window DPI scaling + + + + + Multiplier factor for scaling the window contents + + + + + User interface + + + + + Window always on top + + + + + System + + + + + Disable scheduler daemon starting for the following users: + + + + + Use XZ compressor for squashfs filesystems + + + + + Override auto-detected language: + + + + + Override the used style: + + + + + Disable incremental restore points (do not use hard links between backups) + + + + + Create Live ISO images automatically (faster than the conversion) + + + + + Do not empty memory cache at the end of some processes + + + + + + + + + + + Unmount + Desmuntar + + + + Write to target + + + + + Mount point: + Punt de muntatge: + + + + + + + + + ! Delete ! + + + + + Add new partition + + + + + Create new: + Crear nou: + + + + Filesystem: + Sistema d'arxius: + + + + + + Format + Formatar + + + + + + Reset partitions settings + + + + + Change partition settings + + + + + + + + + Transfer user configuration files + + + + + Copy user data files + Copiar arxius de dades d'usuari + + + + Install GRUB 2 bootloader: + Instal·lar el gestor d'arrencada GRUB 2: + + + + + + + + + Transfer user configuration and data files + + + + + ! Interrupt ! + ! Aturar el procés ! + + + + Creates a scheduled restore point within few seconds. + Crea un punt de restauració programada en uns pocs segons. + + + + + + Start + Inicia + + + + Later + Més endavant + + + + Systemback user authentication + + + + + Administrator: + + + + + Password: + + + + + + Partition + Partició + + + + + Size + + + + + Current mount point + Punto de montaje actual + + + + New mount point + Nou punt de muntatge + + + + Filesystem + Sistema d'arxius + + + + Device + Dispositiu + + + + + + scheduler + tasca programada + + + + + Top left + Superior esquerra + + + + + + Top right + Superior dreta + + + + + + Center + Centre + + + + + + Bottom left + Inferior esquerra + + + + + Bottom right + Inferior dreta + + + + + + day(s) + dia(es) + + + + + + hour(s) + hora(es) + + + + + + + + minute(s) + minut(s) + + + + + + seconds + segons + + + + + + Live image + Imatge Live + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + + + Boot system installer + + + + + + + Currently running system + Sistema actual en execució + + + + Label + + + + + + Creating restore point + Creant punt de restauració + + + + + Restoring the full system + Restauració completa del sistema + + + + + Restoring the system files + Restaurant el sistema d'arxius + + + + Restoring the user(s) configuration files + Restaurant la configuració d'arxius d'usuari(s) + + + + Repairing the system files + Reparant sistema d'arxius + + + + Repairing the full system + Reparant per complet el sistema + + + + Copying the system + Copiant sistema + + + + Installing the system + Instal·lant el sistema + + + + Creating Live system + Creant un sistema Live + + + + + Deleting restore point + Eliminant punt de restauració + + + + Deleting old restore point + Eliminant punt de restauració obsolet + + + + + Deleting incomplete restore point + Eliminant punt de restauració incomplet + + + + + Flushing filesystem buffers + + + + + + + + + + Reboot + Reinicia + + + + + + + X restart + Reprendre X + + + + Repairing the GRUB 2 + Reparant GRUB 2 + + + + + Emptying cache + Buidant caché + + + + + An another Systemback process is currently running, please wait until it finishes. + Altre procés Systemback està funcionant, si us plau, esperar fins que acabi. + + + + Please enter a new name. + Si us plau, introduïu un altre nom. + + + + The specified name contain(s) unsupported character(s)! + El nom especificat conté caràcters no vàlids! + + + + Restore the system files to the following restore point: + Restaurar els arxius de sistema amb el següent punt de restauració: + + + + Repair the system files with the following restore point: + Reparar els arxius de sistema amb el següent punt de restauració: + + + + Repair the complete system with the following restore point: + Reparació completa del sistema amb el següent punt de restauració: + + + + Restore the complete user(s) configuration files to the following restore point: + Restauració completa d'arxius de configuració d'usuari(s) amb el següent punt de restauració: + + + + Restore the user(s) configuration files to the following restore point: + Restaurar els arxius de configuració d'usuari(s) amb el següent punt de restauració: + + + + The user(s) configuration files full restoration are completed. + Completada la restauració total d'arxius de configuració d'usuari(s). + + + + + The X server will restart automatically within 30 seconds. + El servidor X es reiniciarà automàticament en 30 segons. + + + + The user(s) configuration files restoration are completed. + Completada la restauració d'arxius de configuració d'usuari(s). + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Reparació del sistema d'arxius completada, però es va produir un error al reinstal·lar GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + El sistema no podrà arrencar! (Una arquitectura diferent pot estar causant aquest problema.) + + + + The full system repair is completed. + Reparació total del sistema completada. + + + + The system repair is completed. + Reparació del sistema completada. + + + + Copy the system, using the following restore point: + Copiar sistema usant el següent punt de restauració: + + + + Install the system, using the following restore point: + Instal·lar sistema usant el següent punt de restauració: + + + + + + + The restore point creation is aborted! + Creació del punt de restauració avortat! + + + + + + Not enough free disk space to complete the process. + No hi ha suficient espai lliure en el disc per a completar el procés. + + + + + Root privileges are required for running the Systemback! + Es necessiten privilegis root per a executar Systemback! + + + + Restore the complete system to the following restore point: + Restaurar completament el sistema al següent punt de restauració: + + + + + The system files restoration are completed. + Restauració del sistema d'arxius completada. + + + + + + The computer will restart automatically within 30 seconds. + The computer will restart automatically within 30 seconds. + + + + + The full system restoration is completed. + Restauració completa del sistema realitzada. + + + + + + + + The system copy is aborted! + + + + + An error occurred while reinstalling the GRUB. + + + + + Format the %1, and write the following Live system image: + Formatar %1, i escriure la següent imatge del sistema Live: + + + + The selected device does not have enough space to write the Live system. + + + + + + There is not enough free space. + + + + + Interrupting the current process + + + + + The system copy is completed, but an error occurred while installing the GRUB! + Còpia del sistema completada, però es va produir un error durant la instal·lació del GRUB! + + + + + You need to manually install a bootloader. + Serà necessari instal·lar manualment un gestor d'arrencada. + + + + + The system restoration is aborted! + + + + + An error occurred while creating the file system image. + Es va produir un error al crear la imatge del sistema d'arxius. + + + + An error occurred while creating the container file. + Es va produir un error al crear l'arxiu contenidor. + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + La partició especificada no té suficient espai lliure. El sistema instal·lat no funcionarà correctament. + + + + + + The specified partition could not be formatted (in use or unavailable). + No es va poder donar format a la partició especificada (aquesta es troba en ús o no està disponible). + + + + An error occurred while reinstalling the GRUB! + Es va produir un error al reinstal·lar el GRUB! + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Reparació del sistema completada, però es va produir un error al reinstal·lar el GRUB! El sistema no podrà arrencar! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + La partició especificada no té suficient espai lliure. La còpia del sistema no funcionaran correctament. + + + + The system copy is completed. + Còpia del sistema completada. + + + + + + + + The Live system creation is aborted! + + + + + + + The specified partition could not be mounted. + La partició especificada no es va poder muntar. + + + + An error occurred while unpacking the Live system files. + Va ocórrer un error al descomprimir els arxius del sistema Live. + + + + An error occurred while renaming the essential Live files. + Va ocórrer un error al canviar el nom d'arxius essencials del sistema Live. + + + + An error occurred while creating the .iso image. + Es va produir un error durant la creació de la imatge .iso. + + + + An error occurred while reading the .sblive image. + Es va produir un error durant la lectura de la imatge .sblive. + + + + An error occurred while creating the new initramfs image. + + + + + + + The Live image could not be mounted. + + + + + The GRUB 2 repair is completed. + Reparació del GRUB 2 completada. + + + + Writing Live image to the target device + + + + + The Live system creation is completed. + La creació del sistema Live s'ha completat. + + + + The created .sblive file can be written to pendrive. + L'arxiu creat .sblive pot ser escrit a un pendrive. + + + + The system install is completed. + Instal·lació del sistema completat. + + + + The system install is completed, but an error occurred while installing the GRUB! + Instal·lació completada, però es va produir un error durant la instal·lació del GRUB! + + + + + + + + The system installation is aborted! + + + + + + + + + + + There has been critical changes in the file system during this operation. + No han hagut canvis significatius en el sistema d'arxius durant aquesta operació. + + + + Repair the GRUB 2 bootloader. + Reparar el carregador d'arrencada GRUB 2. + + + + + + + + The Live write is aborted! + + + + + The Live system image write is completed. + L'escriptura de la imatge del sistema Live s'ha completat. + + + + + + + The Live conversion is aborted! + + + + + + The restore point deletion is aborted! + + + + + + An error occurred while during the process. + + + + + + The system repair is aborted! + + + + + + + + Everyone + + + + + Upgrading the system + Actualitzat el sistema + + + + + + + + Multiple mount points + + + + + Enabled + Activat + + + + Systemback worker thread is interrupted by the user. + + + + + + process + + + + + Boot Live without xorg.conf file + Arrencar sistema Live sense l'arxiu xorg.conf + + + + + + Boot Live system + Arrencar sistema Live + + + + + + Boot Live in safe graphics mode + Arrencar sistema Live en manera grafica segur + + + + + + Boot Live in debug mode + Arrencar en manera de depuracio + + + + Press 'E' key to edit + Premi la tecla 'E' per a editar + + + + Press TAB key to edit + Premi la tecla TAB per a editar + + + + Converting Live system image + Convertint imatge del sistema Live + + + + + Unable to get exclusive lock! + No s'ha pogut obtenir el bloqueig exclusiu! + + + + + First, close all package manager. + Tanqui qualsevol gestor de paquets que tingui obert. + + + + The specified storage directory path has not been set! + No es va establir un directori per a la ruta d'emmagatzematge! + + + + The restoration is aborted! + Restauració avortada! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Restauració completada, però es va produir un error al reinstal·lar el GRUB! + + + + The restore points storage directory is not available or not writable! + + + + + This stupid terminal does not support color! + + + + + This terminal is too small! + + + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + + + + + An error occurred while creating the following directory: + + + + + An error occurred while removing the following file: + + + + + An error occurred while creating the following hard link: + + + + + Reference file: + + + + + An error occurred while creating the following file: + + + + + An error occurred while renaming the following item: + + + + + New path: + + + + + An error occurred while executing the following command: + + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + + + + + An error occurred while upgrading the system! + Es va produir un error a l'actualitzar el sistema! + + + + Restart upgrade ... + Reiniciant l'actualització ... + + + + This file could not be copied because it does not exist: + + + + + The following partition has no UUID: + + + + + An error occurred while creating a new partition on the following device: + + + + + An error occurred while mounting the following partition/image: + + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + + + + + An error occurred while unmounting the following partition/image/mount point: + + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + + + + + Target file: + + + + + An error occurred while cloning the following directory: + + + + + Target directory: + + + + + An error occurred while deleting the following directory: + + + + + basic restore UI + + + + + Available restore point(s): + + + + + Quit + Sortir + + + + Selected restore point: + + + + + The specified storage directory path is set. + Es va establir un directori per a la ruta d'emmagatzematge. + + + + Deleting old restore point(s) + + + + + Restore with the following restore point: + Restaurar al següent punt de restauració: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + + + + + The Systemback command line interface cannot be used on a Live system! + + + + + Restore with the following restore method: + Realitzar la restauració amb el següent criteri: + + + + Users configuration files restore + Restaurar arxius de configuració d'usuaris + + + + + Complete configuration files restore + Restauració completa de configuració d'arxius + + + + Configuration files restore + Restaurar arxius de configuració + + + + + + You want to keep the current fstab file? + Desitja mantenir l'arxiu actual fstab? + + + + + + + + + + + (Y/N) + (Y/N) + + + + + + + Reinstall the GRUB 2 bootloader? + Reinstal·lar el gestor d'arrencada GRUB 2? + + + + Start the restore? + Start the restore? + + + + Restoring the users configuration files + Restaurant la configuració d'arxius d'usuari + + + + The users configuration files full restoration are completed. + Completada la restauració total d'arxius de configuració d'usuaris. + + + + The users configuration files restoration are completed. + Completada la restauració d'arxius de configuració d'usuaris. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Pressioni 'ENTER' per a reiniciar ordinador, o 'Q' per a sortir. + + + + Press 'ENTER' key to quit. + + + + + An error occurred while changing the access permissions of the following file: + + + + + + Cannot start the Systemback scheduler daemon! + + + + + + Missing, wrong or too much argument(s). + + + + + The process is disabled for this user. + + + + + Root privileges are required. + + + + + This system is a Live. + + + + + Already running. + + + + + Unable to daemonize. + + + + + Cannot start the Systemback graphical user interface! + + + + + Unable to get root permissions. + + + + + Unable to connect to the X server. + + + + + Unsafe X Window authorization! + + + + + Please do not use 'sudo' command. + + + + diff --git a/lang/systemback_cs.ts b/lang/systemback_cs.ts new file mode 100644 index 0000000..75c291c --- /dev/null +++ b/lang/systemback_cs.ts @@ -0,0 +1,1899 @@ + + + + + systemback + + + The specified debug level is invalid! + Zadaná úroveň ladících podrobností není platná! + + + + The default level (1) will be used. + Bude použita výchozí úroveň (1). + + + + Version: + Verze: + + + + Compilation date and time: + Datum a čas sestavení: + + + + + Installed files: + Nainstalované soubory: + + + + Operating system: + Operační systém: + + + + + Mounted filesystems: + Připojené souborové systémy: + + + + System language: + Systémový jazyk: + + + + Translation: + Překlad do dalších jazyků: + + + + An error occurred while opening the following file: + Došlo k chybě při otevírání tohoto souboru: + + + + An error occurred while creating the following directory: + Došlo k chybě při vytváření této složky: + + + + An error occurred while removing the following file: + Došlo k chybě při odebírání tohoto souboru: + + + + An error occurred while creating the following hard link: + Došlo k chybě při vytváření tohoto pevného odkazu: + + + + Reference file: + Soubor, na který je odkazováno: + + + + An error occurred while creating the following file: + Došlo k chybě při vytváření tohoto souboru: + + + + An error occurred while renaming the following item: + Došlo k chybě při přejmenovávání této položky: + + + + New path: + Nové umístění: + + + + An error occurred while executing the following command: + Došlo k chybě při spouštění tohoto příkazu: + + + + Exit code: + Návratový kód: + + + + Failed to detect the device for installing the GRUB! + Nezdařilo se zjistit zařízení pro instalaci zavaděče GRUB! + + + + An error occurred while upgrading the system! + V průběhu přechodu na novější verzi systému došlo k chybě! + + + + Restart upgrade ... + Opakovat pokus o přechod na novější verzi ... + + + + This file could not be copied because it does not exist: + Tento soubor nemůže být zkopírován protože neexistuje: + + + + The following partition has no UUID: + Tento oddíl nemá univerzálně jedinečný identifikátor (UUID): + + + + An error occurred while creating a new partition on the following device: + Došlo k chybě při vytváření nového oddílu na tomto zařízení: + + + + An error occurred while mounting the following partition/image: + Došlo k chybě při připojování tohoto oddílu/obrazu: + + + + An error occurred while setting one or more flags on the following partition: + Došlo k chybě při nastavování jednoho či více příznaků (flag) na tomto oddílu: + + + + Flag(s): + Příznaky (flag): + + + + An error occurred while creating the partition table on the following device: + Došlo k chybě při vytváření tabulky oddílů na tomto zařízení: + + + + An error occurred while unmounting the following partition/image/mount point: + Došlo k chybě při odpojování tohoto oddílu/obrazu / přípojného bodu: + + + + An error occurred while cloning the properties of the following item: + Došlo k chybě při klonování vlastností této položky: + + + + Target item: + Cílová položka: + + + + An error occurred while cloning the following symbolic link: + Došlo k chybě při klonování tohoto symbolického odkazu: + + + + Target symlink: + Cílový symbolický odkaz: + + + + An error occurred while cloning the following file: + Došlo k chybě při klonování tohoto souboru: + + + + Target file: + Cílový soubor: + + + + An error occurred while cloning the following directory: + Došlo k chybě při klonování této složky: + + + + Target directory: + Cílová složka: + + + + An error occurred while deleting the following directory: + Došlo k chybě při mazání této složky: + + + + + Cannot start the Systemback scheduler daemon! + Nedaří se spustit službu plánovače aplikace Systemback! + + + + + Missing, wrong or too much argument(s). + Chybějící, chybné či příliš mnoho argumentů. + + + + The process is disabled for this user. + Plánovač je pro tohoto uživatele vypnutý. + + + + Root privileges are required. + Jsou zapotřebí oprávnění správce systému. + + + + This system is a Live. + Nacházíte se v systému, spuštěném z vyjímatelného média. + + + + Already running. + Je už spuštěno. + + + + Unable to daemonize. + Nedaří se spustit jako službu. + + + + Cannot start the Systemback graphical user interface! + Nedaří se spustit grafické uživatelské rozhraní aplikace Systemback! + + + + Unable to get root permissions. + Nedaří se získat oprávnění správce systému. + + + + Unable to connect to the X server. + Nedaří se připojit ke grafickému serveru X. + + + + Full name of the new user: + Jméno a příjmení nového uživatele: + + + + New username to login: + Nové uživatelské jméno pro přihlašování: + + + + New user account password: + Heslo k novému uživatelskému účtu: + + + + New root password (optional, not recommended for Ubuntu): + Heslo správce nového systému (volitelné, pro distribuci Ubuntu nedoporučeno): + + + + New hostname: + Název nového stroje: + + + + + + + + + + + + + + + + Back + Zpět + + + + + + + + Next + Další + + + + + Working directory + Pracovní složka + + + + Created Live images + Vytvořené obrazy spouštěcích médií + + + + Name of the Live system + Název Live systému + + + + + + + + Options + Možnosti + + + + Write target + Cíl zápisu + + + + Live operations + Spuštěno z vyjímatelného média + + + + Include the user data files + Zahrnout uživatelská data + + + + Redetect devices + Znovu zjistit zařízení + + + + + + Delete + Smazat + + + + Write to target + Zapsat na cíl + + + + Convert to ISO + Převést na ISO + + + + + + Create new + Vytvořit nový + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Připojte oddíly rozbitého systému do složky „/mnt“ dle původní struktury.<br>(„/“ → „/mnt“, „/home“ → „/mnt/home“, atd.) + + + + + Mount + Připojit + + + + Reset mounts + Resetovat připojení (mount) + + + + Repair type + Typ opravy + + + + GRUB 2 repair + Oprava zavaděče GRUB 2 + + + + System files repair + Oprava systémových souborů + + + + + Reinstall GRUB 2 bootloader: + Znovu nainstalovat zavaděč GRUB 2: + + + + + Auto detection + Automatické zjištění + + + + Full repair + Celková oprava + + + + Do not repair the fstab file + Neopravovat soubor fstab + + + + Exclude hidden user files and directories from restore points + Z bodů obnovení vynechat skryté soubory a složky uživatelů + + + + Exclude user data files and directories from Live system + Ze systému pro spouštění z vyjímatelného média vynechat soubory a složky uživatelů + + + + Excludable items + Položky, které je možné vynechat + + + + Excluded items + Vynechané položky + + + + + Remove item from the exclusion list + Odebrat položku ze seznamu vynechaných + + + + + Add item to the exclusion list + Přidat položku na seznam vynechaných + + + + Scheduler state: + Stav plánovače: + + + + + + + + + + + + + + Disabled + Vypnuto + + + + Timer settings + Nastavení časovače + + + + Waiting time before creating a new restore point: + V jakém intervalu vytvářet body obnovení: + + + + Visible countdown time: + Viditelný odpočet: + + + + Pop-up window position on screen: + Pozice vyskakovacího okna na obrazovce: + + + + Use silent mode + Nedávat vědět o průběhu + + + + + + + More + Více + + + + + + + Less + Méně + + + + Simple system backup and restore application with extra features + Jednoduchá aplikace pro zálohování a obnovu systému s dalšími funkcemi + + + + Project homepage: + Domovské stránky projektu: + + + + Contact: + Kontakt: + + + + Donate: + Podpořit vývoj darem: + + + + Systemback version: + Verze aplikace: + + + + + License + Licence + + + + Re-read directories + Znovunačíst složky + + + + Writable Linux filesystem! + Zapisovatelný linuxový souborový systém! + + + + + + + Cancel + Storno + + + + + + + + + + + Maximum number of temporary restore points + Kolik dočasných bodů obnovení uchovávat + + + + Restore points + Body obnovení + + + + Highlighted restore points + Zvýrazněné body obnovení + + + + Point operations + Operace s bodem + + + + Highlight + Zvýraznit + + + + Rename + Přejmenovat + + + + + + + + + + + + + + + + + + Select restore point + Vyberte bod obnovení + + + + + + + + + Storage directory + Kam ukládat + + + + Function menu + Nabídka funkcí + + + + + Schedule + Plán zálohování + + + + + + About + O aplikaci + + + + + Settings + Nastavení + + + + System upgrade + Přejít na novější verzi systému + + + + + System install + Odvodit instalaci + + + + + + + Live system create + Vytvořit spouštěcí médium + + + + + System repair + Opravit systém + + + + + + System restore + Obnovit systém ze zálohy + + + + + + + System copy + Zkopírovat systém + + + + + Exclude + Vynechat ze zálohy + + + + + Include + Zahrnout do zálohy + + + + Change path + Změnit umístění + + + + + + + + + + + + + + + + + + empty + prázdný + + + + + + + + + + + not used + nepoužitý + + + + Restore type + Typ obnovy + + + + + + + + + Full restore + Celková obnova + + + + + + + + + System files restore + Obnovení systémových souborů + + + + User(s) configuration files restore + Obnova souborů s uživatelskými nastaveními + + + + + Keep newly installed configuration files + Ponechat nově nainstalované soubory s nastaveními + + + + Include user(s): + Zahrnout uživatele: + + + + Do not restore the fstab file + Neobnovovat soubor fstab + + + + Partition settings + Nastavení diskového oddílu + + + + + + + + Transfer user configuration files + Přenést soubory s uživatelskými nastaveními + + + + Copy user data files + Kopírovat soubory s uživatelskými daty + + + + Install GRUB 2 bootloader: + Nainstalovat zavaděč GRUB 2: + + + + + + Format + Formátovat + + + + + + Reset partitions settings + Resetovat nastavení diskových oddílů + + + + + + + + + + Unmount + Odpojit + + + + Change partition settings + Změnit nastavení oddílu + + + + Filesystem: + Souborový systém: + + + + Mount point: + Přípojný bod: + + + + + + + + + ! Delete ! + ! Smazat ! + + + + Add new partition + Přidat nový oddíl + + + + Create new: + Vytvořit nový: + + + + Need to set the mount point as '/boot/efi'! + Přípojný bod je třeba nastavit jako „/boot/efi“! + + + + Window DPI scaling + Změna měřítka velikosti okna (vzhledem k rozlišení zobrazení) + + + + Multiplier factor for scaling the window contents + Koeficient změny velikosti obsahu okna + + + + User interface + Uživatelské rozhraní + + + + Window always on top + Okno vždy navrchu + + + + System + Systém + + + + Disable scheduler daemon starting for the following users: + Nespouštět službu plánovače pro tyto uživatele: + + + + Use XZ compressor for squashfs filesystems + Používat XZ kompresi souborového systému squashfs + + + + Override auto-detected language: + Použít jiný než automaticky zjištěný jazyk: + + + + Override the used style: + Použít jiný styl vzhledu: + + + + Disable incremental restore points (do not use hard links between backups) + Vždy vytvářet nezávislé body obnovení (bez pevných odkazů) + + + + Create Live ISO images automatically (faster than the conversion) + Vždy rovnou vytvářet i obrazy spouštěcích médií (rychlejší než převádět dodatečně) + + + + Do not empty memory cache at the end of some processes + Nevyprazdňovat mezipaměť na konci některých procesů + + + + Includable items + Zahrnutelné položky + + + + Included items + Zahrnuté položky + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + Zahrnout do bodu obnovení soubory a složky s daty uživatele +Tyto budou určeny jako obnovitelné soubory s nastaveními! + + + + ! Interrupt ! + ! Přerušit ! + + + + Creates a scheduled restore point within few seconds. + V okamžiku vytvoří naplánovaný bod obnovení. + + + + + + Start + Spustit + + + + Later + Později + + + + Systemback user authentication + Ověření uživatele aplikace Systemback + + + + Administrator: + Správce: + + + + Password: + Heslo: + + + + Unsafe X Window authorization! + Nezabezpečené ověřování okna grafického serveru X! + + + + Please do not use 'sudo' command. + Nepoužívejte v tomto případě příkaz „sudo“. + + + + + + + + + Transfer user configuration and data files + Přenést soubory s uživatelskými nastaveními a daty + + + + + + scheduler + plánovač + + + + + Partition + Diskový oddíl + + + + + Size + Velikost + + + + Label + Popisek + + + + Current mount point + Stávající přípojný bod + + + + New mount point + Nový přípojný bod + + + + Filesystem + Souborový systém + + + + Device + Zařízení + + + + + Top left + Vlevo nahoře + + + + + + Top right + Vpravo nahoře + + + + + + Center + Uprostřed + + + + + + Bottom left + Vlevo dole + + + + + Bottom right + Vpravo dole + + + + + + day(s) + dnů + + + + + + hour(s) + hodin + + + + + + + + minute(s) + minut + + + + + + seconds + sekund + + + + + + + Everyone + Kdokoli + + + + + + Currently running system + Nyní spuštěný systém + + + + + Emptying cache + Vyprazdňování mezipaměti + + + + + Flushing filesystem buffers + Vyprazdňování vyrovnávacích pamětí souborového systému + + + + + Restoring the full system + Obnovování celého systému + + + + + Restoring the system files + Obnovování systémových souborů + + + + Restoring the user(s) configuration files + Obnovování souborů s uživatelskými nastaveními + + + + Repairing the system files + Opravování systémových souborů + + + + Repairing the full system + Opravování celého systému + + + + Repairing the GRUB 2 + Opravování zavaděče GRUB 2 + + + + Copying the system + Kopírování systému + + + + Installing the system + Instalace systému + + + + Writing Live image to the target device + Probíhá zápis obrazu systému na cílové médium + + + + Upgrading the system + Probíhá přechod na novější verzi systému + + + + + Deleting incomplete restore point + Mazání neúplného bodu obnovení + + + + Interrupting the current process + Přerušování nynějšího procesu + + + + Deleting old restore point + Mazání starého bodu obnovení + + + + + Creating restore point + Vytváření bodu obnovení + + + + + Deleting restore point + Mazání bodu obnovení + + + + Converting Live system image + Probíhá převod na obraz spouštěcího média + + + + + process + proces + + + + Creating Live system + Vytváření systému pro spouštění z vyjímatelného média + + + + + + + + + Reboot + Restartovat + + + + + + + X restart + Restart X + + + + + + Live image + Obraz média, ze kterého lze spustit systém + + + + Restore the system files to the following restore point: + Obnovit systémové soubory do stavu, zachyceném v tomto bodu obnovení: + + + + Repair the system files with the following restore point: + Opravit systémové soubory pomocí následujícího bodu obnovení: + + + + Repair the complete system with the following restore point: + Opravit celý systém pomocí následujícího bodu obnovení: + + + + Restore the complete user(s) configuration files to the following restore point: + Obnovit veškeré soubory s uživatelskými nastaveními do stavu, zachyceném v následujícím bodu obnovení: + + + + Restore the user(s) configuration files to the following restore point: + Obnovit soubory s uživatelskými nastaveními do stavu, zachyceném v následujícím bodu obnovení: + + + + Copy the system, using the following restore point: + Zkopírovat systém s použitím tohoto bodu obnovení: + + + + Install the system, using the following restore point: + Nainstalovat systém, odvozený z tohoto bodu obnovení: + + + + Restore the complete system to the following restore point: + Obnovit celý systém do stavu, zachyceném v následujícím bodu: + + + + Format the %1, and write the following Live system image: + Naformátovat %1 a zapsat tam tento obraz systému pro spouštění z vyjímatelného média: + + + + Repair the GRUB 2 bootloader. + Opravit zavaděč GRUB 2. + + + + The user(s) configuration files full restoration are completed. + Celková obnova souborů s uživatelskými nastaveními je dokončena. + + + + + The X server will restart automatically within 30 seconds. + Za 30 sekund bude grafický server X automaticky zrestartován. + + + + The user(s) configuration files restoration are completed. + Obnova souborů s uživatelskými nastaveními je dokončena. + + + + The full system repair is completed. + Celková oprava systému je dokončena. + + + + The system repair is completed. + Oprava systému je dokončena. + + + + + The system files restoration are completed. + Obnova systémových souborů je dokončena. + + + + + + The computer will restart automatically within 30 seconds. + Za 30 sekund bude počítač automaticky zrestartován. + + + + + The full system restoration is completed. + Celková obnova systému je dokončena. + + + + The system copy is completed. + Kopírování systému je dokončeno. + + + + The Live system creation is completed. + Vytváření systému pro spouštění z vyjímatelného média je dokončeno. + + + + The created .sblive file can be written to pendrive. + Vytvořený .sblive soubor je možné zapsat např. na USB flash disk. + + + + The GRUB 2 repair is completed. + Oprava zavaděče GRUB 2 je dokončena. + + + + The system install is completed. + Instalace systému je dokončena. + + + + The Live system image write is completed. + Zápis obrazu systému na spustitelné vyjímatelné médium je dokončen. + + + + + An another Systemback process is currently running, please wait until it finishes. + V tuto chvíli je spuštěný ještě jiný proces aplikace Systemback. Počkejte až skončí. + + + + + Unable to get exclusive lock! + Nedaří se získat výhradní zámek! + + + + + First, close all package manager. + Nejprve ukončete všechny správce balíčků. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + Probíhá aktualizace souborů indexu balíčků – vyčkejte na dokončení. + + + + The specified name contain(s) unsupported character(s)! + Zadaný název obsahuje nepodporované znaky! + + + + Please enter a new name. + Zadejte nový název. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Oprava systémových souborů je dokončena, ale vyskytla se chyba při reinstalaci zavaděče GRUB 2! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + Je možné, že systém nepůjde spustit! (Obecně, problém spočívá v procesoru s jinou, neslučitelnou architekturou.) + + + + + + + The restore point creation is aborted! + Vytváření bodu obnovení bylo přerušeno! + + + + + + Not enough free disk space to complete the process. + Pro dokončení procesu není na disku dostatek volného prostoru. + + + + + Root privileges are required for running the Systemback! + Pro spuštění aplikace Systemback jsou třeba oprávnění na úrovni správce systému! + + + + + + + + The system copy is aborted! + Kopírování systému bylo přerušeno! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + Na zadaných diskových oddílech není k dispozici dostatek volného prostoru pro zkopírování systému. Zkopírovaný systém nebude fungovat správně. + + + + The system copy is completed, but an error occurred while installing the GRUB! + Zkopírování systému je dokončeno, ale došlo k chybě při instalaci zavaděče GRUB 2! + + + + + You need to manually install a bootloader. + Zavaděč bude třeba nainstalovat ručně. + + + + + The system restoration is aborted! + Obnovení systému je přerušeno! + + + + An error occurred while reinstalling the GRUB. + Při reinstalaci zavaděče GRUB 2 došlo k chybě. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Celková oprava systému je dokončena, ale při opětovné instalaci zavaděče GRUB 2 se vyskytla chyba! + + + + + + + + The Live system creation is aborted! + Vytváření systému pro spouštění z vyjímatelného média bylo přerušeno! + + + + An error occurred while creating the file system image. + Při vytváření obrazu souborového systému došlo k chybě. + + + + An error occurred while creating the container file. + Při vytváření souboru kontejneru se vyskytla chyba. + + + + + + The specified partition could not be mounted. + Zadaný diskový oddíl se nezdařilo připojit. + + + + The system install is completed, but an error occurred while installing the GRUB! + Instalace systému je dokončena, ale vyskytla se chyba při instalaci zavaděče GRUB 2! + + + + + + + + The system installation is aborted! + Instalace systému byla přerušena! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + Na zadaných diskových oddílech není k dispozici dostatek volného prostoru pro instalaci systému. Nainstalovaný systém nebude fungovat správně. + + + + + + The specified partition could not be formatted (in use or unavailable). + Na zadaném diskovém oddílu nelze vytvořit souborový systém (je používán nebo není dostupný). + + + + An error occurred while reinstalling the GRUB! + Při opětovné instalaci zavaděče GRUB 2 se vyskytla chyba! + + + + + + + + + + There has been critical changes in the file system during this operation. + Průběh této operace byl narušen něčím, co souběžně s ní provedlo zásadní změny na souborovém systému. + + + + + + + + The Live write is aborted! + Zápis obrazu systému na spustitelné vyjímatelné médium byl zrušen! + + + + The selected device does not have enough space to write the Live system. + Zvolené zařízení nemá dostatečnou kapacitu, aby na něj bylo možné zapsat systém pro spouštění z vyjímatelného média. + + + + An error occurred while unpacking the Live system files. + Při rozbalování souborů systému, určeného pro spouštění z vyjímatelného média, se vyskytla chyba. + + + + + + + The Live conversion is aborted! + Převedení na obraz spustitelného vyjímatelného média bylo zrušeno! + + + + An error occurred while renaming the essential Live files. + Vyskytla se chyba při přejmenovávání zásadních souborů systému pro spouštění z vyjímatelného média. + + + + An error occurred while creating the .iso image. + Při vytváření .iso obrazu došlo k chybě. + + + + An error occurred while reading the .sblive image. + Při načítání .sblive souboru došlo k chybě. + + + + An error occurred while creating the new initramfs image. + Při vytváření nového initramfs obrazu se vyskytla chyba. + + + + + The restore point deletion is aborted! + Mazání bodu obnovení bylo zrušeno! + + + + + An error occurred while during the process. + V průběhu procesu se vyskytla chyba. + + + + + + The Live image could not be mounted. + Obraz spouštěcího média systému se nedaří připojit. + + + + + The system repair is aborted! + Oprava systému je přerušena! + + + + + There is not enough free space. + Není zde dostatek volného místa. + + + + + + + + Multiple mount points + Vícero přípojných bodů + + + + Enabled + Zapnuto + + + + Systemback worker thread is interrupted by the user. + Pracovní vlákno aplikace Systemback bylo přerušeno uživatelem. + + + + Boot Live without xorg.conf file + Zavest system spousteny z vyjimatelneho media bez nastaveni ze souboru xorg.conf + + + + + + Boot Live system + Spustit system z vyjimatelneho media + + + + + + Boot system installer + Instalator zavadeciho systemu + + + + + + Boot Live in safe graphics mode + Spustit system z vyjimatelneho media, v rezimu pro pripad problemu s grafikou + + + + + + Boot Live in debug mode + Zavest system z vyjimatelneho media, v ladicim rezimu + + + + Press 'E' key to edit + Úpravu zahájíte stiskem klávesy „E“ + + + + Press TAB key to edit + Úpravu zahájíte stiskem klávesy TAB + + + + An error occurred while changing the access permissions of the following file: + Došlo k chybě při změně přístupových práv tohoto souboru: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Použití: systemback-cli [předvolba] + + Předvolby: + + -n, --newbackup vytvořit nový bod obnovení + + -s, --storagedir <umisteni> načíst nebo nastavit umístění složky s body + obnovení + + -u, --upgrade přejít ze stávajícího systému na jeho novější verzi + a odebrat zbytečné soubory a balíčky + + -v, --version vypsat číslo verze aplikace Systemback + + -h, --help zobrazit tuto nápovědu + + + + basic restore UI + základní uživatelské rozhraní pro obnovu + + + + The Systemback command line interface cannot be used on a Live system! + Textové rozhraní aplikace Systemback nelze použít v systému, spuštěného z vyjímatelného média (Live)! + + + + This stupid terminal does not support color! + Tento hloupý terminál nepodporuje barvy! + + + + This terminal is too small! + Tento terminál je příliš malý! + + + + The specified storage directory path has not been set! + Zadané umístění úložné složky nebylo nastaveno! + + + + The restoration is aborted! + Proces obnovení byl přerušen! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Obnova je dokončena, ale vyskytla se chyba při opětovné instalaci zavaděče GRUB 2! + + + + The restore points storage directory is not available or not writable! + Složka s body obnovení není dostupná nebo do ní nelze zapisovat! + + + + Available restore point(s): + Body obnovení k dispozici: + + + + Quit + Ukončit + + + + Selected restore point: + Zvolený bod obnovení: + + + + The specified storage directory path is set. + Zadané umístění úložné složky je nastaveno. + + + + Restore with the following restore point: + Obnovit s použitím následujícího bodu obnovení: + + + + Restore with the following restore method: + Obnovit s použitím následující metody obnovení: + + + + Users configuration files restore + Obnovení souborů s uživatelskými nastaveními + + + + + Complete configuration files restore + Úplné obnovení souborů s nastaveními + + + + Configuration files restore + Obnovení souborů s nastaveními + + + + + + You want to keep the current fstab file? + Přejete si ponechat stávající soubor fstab? + + + + + + + + + + + (Y/N) + (A/N) + + + + + + + Reinstall the GRUB 2 bootloader? + Reinstalovat zavaděč GRUB 2? + + + + Start the restore? + Zahájit proces obnovy? + + + + The users configuration files full restoration are completed. + Celková obnova souborů s uživatelskými nastaveními je dokončena. + + + + The users configuration files restoration are completed. + Obnova souborů s uživatelskými nastaveními je dokončena. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Restartujte počítač stiskem klávesy „ENTER“ nebo klávesou „Q“ ukončete tuto aplikaci. + + + + Press 'ENTER' key to quit. + Ukončete stiskem klávesy „ENTER“. + + + + Deleting old restore point(s) + Mazání starých bodů obnovení + + + + Restoring the users configuration files + Obnovování souborů s uživatelskými nastaveními + + + diff --git a/lang/systemback_da_DK.ts b/lang/systemback_da_DK.ts new file mode 100644 index 0000000..8bb1b3f --- /dev/null +++ b/lang/systemback_da_DK.ts @@ -0,0 +1,1900 @@ + + + + + systemback + + + The specified debug level is invalid! + Det angivne undersøgelses niveau er ugyldig! + + + + The default level (1) will be used. + Standardværdien (1) vil blive anvendt. + + + + Version: + Version: + + + + Compilation date and time: + Kompilation, dato og tid: + + + + + Installed files: + Installerede filer: + + + + Operating system: + Styresystem: + + + + + Mounted filesystems: + Monterede filsystemer: + + + + System language: + Systemsprog: + + + + Translation: + Oversættelse: + + + + An error occurred while opening the following file: + Der opstod en fejl under åbning af følgende fil: + + + + An error occurred while creating the following directory: + Der opstod en fejl under oprettelse af følgende mappe: + + + + An error occurred while removing the following file: + Der opstod en fejl under sletning af følgende fil: + + + + An error occurred while creating the following hard link: + Der opstod en fejl under oprettelse af følgende hårde link: + + + + Reference file: + Henvisnings-fil: + + + + An error occurred while creating the following file: + Der opstod en fejl under oprettelse af følgende fil: + + + + An error occurred while renaming the following item: + En fejl opstod under omdøbning af følgende element: + + + + New path: + Ny sti: + + + + An error occurred while executing the following command: + Der opstod en fejl under udførelse af følgende kommando: + + + + Exit code: + Exit-kode: + + + + Failed to detect the device for installing the GRUB! + Det lykkedes ikke at registrere enheden til installation af GRUB! + + + + An error occurred while upgrading the system! + Der opstod en fejl under opgradering af systemet! + + + + Restart upgrade ... + Genstart opgradering … + + + + This file could not be copied because it does not exist: + Denne fil kunne ikke kopieres, da den ikke findes: + + + + The following partition has no UUID: + Den følgende partition har ingen UUID: + + + + An error occurred while creating a new partition on the following device: + Der opstod en fejl under oprettelse af en ny partition på følgende enhed: + + + + An error occurred while mounting the following partition/image: + Der opstod en fejl under montering af følgende partition/aftryk: + + + + An error occurred while setting one or more flags on the following partition: + Der opstod en fejl, da der blev sat en eller flere markeringer, for den + følgende partition: + + + + Flag(s): + Markering: + + + + An error occurred while creating the partition table on the following device: + Der opstod en fejl under oprettelse af partitionstabellen på følgende enhed: + + + + An error occurred while unmounting the following partition/image/mount point: + Der opstod en fejl under afmontering af følgende partition/aftryk/monteringspunkt: + + + + An error occurred while cloning the properties of the following item: + Der opstod en fejl under kloning af egenskaberne for følgende element: + + + + Target item: + Enheds element: + + + + An error occurred while cloning the following symbolic link: + Der opstod en fejl under kloning af følgende symbolsk link: + + + + Target symlink: + Enheds symlink: + + + + An error occurred while cloning the following file: + Der opstod en fejl under kloning af følgende fil: + + + + Target file: + Slut fil: + + + + An error occurred while cloning the following directory: + Der opstod en fejl under kloning af følgende mappe: + + + + Target directory: + Målmappe: + + + + An error occurred while deleting the following directory: + Der opstod en fejl under sletning af følgende mappe: + + + + + Cannot start the Systemback scheduler daemon! + Kan ikke starte Systemback planlægningsservice! + + + + + Missing, wrong or too much argument(s). + Mangler, forkert eller for mange argumenter. + + + + The process is disabled for this user. + Processen er deaktiveret for denne bruger. + + + + Root privileges are required. + Der kræves admin-rettigheder. + + + + This system is a Live. + Dette er et Live system. + + + + Already running. + Kører allerede. + + + + Unable to daemonize. + Kan ikke afvikles som service. + + + + Cannot start the Systemback graphical user interface! + Kan ikke starte Systemback grafiske brugergrænseflade! + + + + Unable to get root permissions. + Kan ikke opnå admin-rettigheder. + + + + Unable to connect to the X server. + Kan ikke forbinde til X serveren. + + + + Full name of the new user: + Fulde navn på den nye bruger: + + + + New username to login: + Nyt Brugernavn til login: + + + + New user account password: + Ny adgangskode til brugerkonto: + + + + New root password (optional, not recommended for Ubuntu): + Ny root password (valgfrit, anbefales ikke til Ubuntu): + + + + New hostname: + Nyt værtsnavn: + + + + + + + + + + + + + + + + Back + Tilbage + + + + + + + + Next + Næste + + + + + Working directory + Arbejdsmappe + + + + Created Live images + Fremstillede Live diskaftryk + + + + Name of the Live system + Navn på Live-systemet + + + + + + + + Options + Indstillinger + + + + Write target + Skriv til + + + + Live operations + Live indstillinger + + + + Include the user data files + Medtag brugerens datafiler + + + + Redetect devices + Genopdag enheder + + + + + + Delete + Slet + + + + Write to target + Skriv til enhed + + + + Convert to ISO + Konverter til ISO + + + + + + Create new + Opret ny + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Monter den/de defekte systempartition(er) i '/mnt' mappe i henhold til den oprindelige struktur.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + + + Mount + Montér + + + + Reset mounts + Nulstil montéringer + + + + Repair type + Reparations type + + + + GRUB 2 repair + GRUB 2 reparation + + + + System files repair + Reparation af systemfiler + + + + + Reinstall GRUB 2 bootloader: + Geninstallere GRUB 2 bootloader: + + + + + Auto detection + Automatisk detektion + + + + Full repair + Fuld reparation + + + + Do not repair the fstab file + Reparere ikke fstab filen + + + + Exclude hidden user files and directories from restore points + Udeluk skjulte brugers filer og mapper fra gendannelsespunkter + + + + Exclude user data files and directories from Live system + Udeluk brugerdatafiler og mapper fra Live-systemet + + + + Excludable items + Ekskluderede emner + + + + Excluded items + Ekskluderede emner + + + + + Remove item from the exclusion list + Fjern element fra Eksklusionslisten + + + + + Add item to the exclusion list + Tilføj element til Eksklusionslisten + + + + Scheduler state: + Planlægnings status: + + + + + + + + + + + + + + Disabled + Deaktiveret + + + + Timer settings + Timer indstillinger + + + + Waiting time before creating a new restore point: + Ventetid før du opretter et nyt gendannelsespunkt: + + + + Visible countdown time: + Synlig nedtællings tid: + + + + Pop-up window position on screen: + Pop-up vindues position på skærmen: + + + + Use silent mode + Brug stille tilstand + + + + + + + More + Mere + + + + + + + Less + Mindre + + + + Simple system backup and restore application with extra features + Simpel system backup og gendannelses program med ekstra funktioner + + + + Project homepage: + Projektets hjemmeside: + + + + Contact: + Kontakt: + + + + Donate: + Donation: + + + + Systemback version: + Systemback version: + + + + + License + Licens + + + + Re-read directories + Genindlæse mapper + + + + Writable Linux filesystem! + Skrivbart Linux filsystem! + + + + + + + Cancel + Annuller + + + + + + + + + + + Maximum number of temporary restore points + Maksimalt antal midlertidige gendannelsespunkter + + + + Restore points + Gendannelsespunkter + + + + Highlighted restore points + Fremhævede punkter + + + + Point operations + Punkt operationer + + + + Highlight + Fremhævet + + + + Rename + Omdøb + + + + + + + + + + + + + + + + + + Select restore point + Vælg gendannelsespunkt + + + + + + + + + Storage directory + Opbevaring mappe + + + + Function menu + Funktionsmenu + + + + + Schedule + Planlægning + + + + + + About + Om + + + + + Settings + Indstillinger + + + + System upgrade + System opgradering + + + + + System install + System installation + + + + + + + Live system create + Fremstil Live system + + + + + System repair + Systemreparation + + + + + + System restore + Systemgendannelse + + + + + + + System copy + System kopi + + + + + Exclude + Ekskluder + + + + + Include + Inkluder + + + + Change path + Ændr sti + + + + + + + + + + + + + + + + + + empty + tom + + + + + + + + + + + not used + anvendes ikke + + + + Restore type + Gendannelses type + + + + + + + + + Full restore + Fuld gendannelse + + + + + + + + + System files restore + Systemgendannelses filer + + + + User(s) configuration files restore + Bruger(e) gendannelses konfigurationer + + + + + Keep newly installed configuration files + Behold nylige installerede konfigurationsfiler + + + + Include user(s): + Inkluder bruger(e): + + + + Do not restore the fstab file + Gendan ikke fstab filen + + + + Partition settings + Partitions indstillinger + + + + + + + + Transfer user configuration files + Overfør bruger konfigurationsfiler + + + + Copy user data files + Kopiér bruger datafiler + + + + Install GRUB 2 bootloader: + Installere GRUB 2 bootloader: + + + + + + Format + Format + + + + + + Reset partitions settings + Nulstil partitions indstillinger + + + + + + + + + + Unmount + Demonter + + + + Change partition settings + Rediger partitions indstillinger + + + + Filesystem: + Filsystem: + + + + Mount point: + Monteringspunkt: + + + + + + + + + ! Delete ! + ! Slet ! + + + + Add new partition + Tilføj ny partition + + + + Create new: + Opret ny: + + + + Need to set the mount point as '/boot/efi'! + Monteringspunktet skal være '/boot/efi'! + + + + Window DPI scaling + Vinduets DPI skalering + + + + Multiplier factor for scaling the window contents + Multiplikationsfaktor for skalering af vinduets indhold + + + + User interface + Bruger interface + + + + Window always on top + Vindue altid øverst + + + + System + System + + + + Disable scheduler daemon starting for the following users: + Deaktiver planlægningsservicen der starter for følgende brugere: + + + + Use XZ compressor for squashfs filesystems + Brug XZ kompression til squashfs filsystemer + + + + Override auto-detected language: + Tilsidesæt automatisk-registreret sprog: + + + + Override the used style: + Tilsidesæt den anvendte stil: + + + + Disable incremental restore points (do not use hard links between backups) + Deaktiver fortløbende gendannelsespunkter (brug ikke hårde links mellem backup) + + + + Create Live ISO images automatically (faster than the conversion) + Opret Live ISO diskaftryk automatisk (hurtigere end konvertering) + + + + Do not empty memory cache at the end of some processes + Tøm ikke cache-hukommelsen til slut for nogen processer + + + + Includable items + Emner der kan tilføjes + + + + Included items + Tilføjede emner + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + Medtag brugerdatafiler og mapper i gendannelsespunktet +Disse vil blive defineret som gendannelesbare konfigurationsfiler! + + + + ! Interrupt ! + ! Afbryd ! + + + + Creates a scheduled restore point within few seconds. + Opretter et planlagt gendannelsespunkt inden for få sekunder. + + + + + + Start + Start + + + + Later + Senere + + + + Systemback user authentication + Systemback brugergodkendelse + + + + Administrator: + Administrator: + + + + Password: + Adgangskode: + + + + Unsafe X Window authorization! + Usikker X Window tilladelse! + + + + Please do not use 'sudo' command. + Undlad venligst at bruge 'sudo' kommando. + + + + + + + + + Transfer user configuration and data files + Overfør bruger konfiguration og datafiler + + + + + + scheduler + opgavestyring + + + + + Partition + Partition + + + + + Size + Størrelse + + + + Label + Etiket + + + + Current mount point + Nuværende monteringspunkt + + + + New mount point + Nyt monterings punkt + + + + Filesystem + Filsystem + + + + Device + Enhed + + + + + Top left + Øverste-venstre + + + + + + Top right + Øverste-højre + + + + + + Center + Centreret + + + + + + Bottom left + Nederste-venstre + + + + + Bottom right + Nederste-højre + + + + + + day(s) + dag(e) + + + + + + hour(s) + time(r) + + + + + + + + minute(s) + minut(ter) + + + + + + seconds + sekunder + + + + + + + Everyone + Alle + + + + + + Currently running system + Aktuelle kørende system + + + + + Emptying cache + Tømmer mellemlageret + + + + + Flushing filesystem buffers + Rydder fil-systemets hukommelse + + + + + Restoring the full system + Gendanner hele systemet + + + + + Restoring the system files + Gendanner systemfilerne + + + + Restoring the user(s) configuration files + Gendanner bruger(e) konfigurationsfiler + + + + Repairing the system files + Reparerer systemets filer + + + + Repairing the full system + Reparerer hele systemet + + + + Repairing the GRUB 2 + Reparation af GRUB 2 + + + + Copying the system + Kopierer systemet + + + + Installing the system + Installerer systemet + + + + Writing Live image to the target device + Skriver Live aftryk til enhed + + + + Upgrading the system + Opgradering af systemet + + + + + Deleting incomplete restore point + Sletter ufuldstændigt gendannelsespunkt + + + + Interrupting the current process + Afbryder den igangværende proces + + + + Deleting old restore point + Sletter gammelt gendannelsespunkt + + + + + Creating restore point + Opretter gendannelsespunkt + + + + + Deleting restore point + Sletter gendannelsespunkt + + + + Converting Live system image + Konverterer Live systemets diskaftryk + + + + + process + behandles + + + + Creating Live system + Fremstiller Live system + + + + + + + + + Reboot + Genstart + + + + + + + X restart + X genstart + + + + + + Live image + Live diskaftryk + + + + Restore the system files to the following restore point: + Gendan systemfilerne til følgende gendannelsespunkt: + + + + Repair the system files with the following restore point: + Reparere systemets filer med følgende gendannelsespunkt: + + + + Repair the complete system with the following restore point: + Reparer hele systemet med følgende gendannelsespunkt: + + + + Restore the complete user(s) configuration files to the following restore point: + Gendan alle bruger(s) konfigurationsfiler til det følgende gendannelsespunkt: + + + + Restore the user(s) configuration files to the following restore point: + Gendan bruger(nes) konfigurationsfiler til det følgende gendannelsespunkt: + + + + Copy the system, using the following restore point: + Kopier systemet, ved hjælp af følgende gendannelsespunkt: + + + + Install the system, using the following restore point: + Installerer systemet, ved hjælp af følgende gendannelsespunk: + + + + Restore the complete system to the following restore point: + Gendan det komplette system, til følgende gendannelsespunkt: + + + + Format the %1, and write the following Live system image: + Formater %1, og skriv det følgende Live system diskaftryk: + + + + Repair the GRUB 2 bootloader. + Reparer GRUB 2 bootloaderen. + + + + The user(s) configuration files full restoration are completed. + Bruger(nes) komplette gendannelse af konfigurationsfiler er udført. + + + + + The X server will restart automatically within 30 seconds. + X-serveren genstarter automatisk indenfor 30 sekunder. + + + + The user(s) configuration files restoration are completed. + Bruger(nes) gendannelse af konfigurationsfiler er udført. + + + + The full system repair is completed. + Komplet system reparation er udført. + + + + The system repair is completed. + System reparationen er udført. + + + + + The system files restoration are completed. + Gendannelse at systemfilerne er udført. + + + + + + The computer will restart automatically within 30 seconds. + Computeren genstarter automatisk indenfor 30 sekunder. + + + + + The full system restoration is completed. + Komplet system gendannelse er udført. + + + + The system copy is completed. + Kopiering af systemet er udført. + + + + The Live system creation is completed. + Oprettelsen af Live systemet er udført. + + + + The created .sblive file can be written to pendrive. + Den oprettede .sblive fil kan skrives til en usb-pen. + + + + The GRUB 2 repair is completed. + GRUB 2 reparationen er udført. + + + + The system install is completed. + Systeminstallationen er udført. + + + + The Live system image write is completed. + Skrivning af Live system aftryk er udført. + + + + + An another Systemback process is currently running, please wait until it finishes. + En anden Systemback proces kører i øjeblikket, vent venligst til denne er færdig. + + + + + Unable to get exclusive lock! + Kan ikke få eksklusiv lås! + + + + + First, close all package manager. + Ført, lukke alle pakke managere. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + The specified name contain(s) unsupported character(s)! + Det angivne navn indeholder ikke understøttede karakter(er)! + + + + Please enter a new name. + Skriv venligst et nyt navn. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Reparationen af systemfilerne er afsluttet, men der opstod en fejl ved geninstallation af GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + Systemet kan muligvis ikke starte op! (generelt er det den anderledes arkitektur der forårsager problemet.) + + + + + + + The restore point creation is aborted! + Oprettelse af gendannelsespunktet er afbrudt! + + + + + + Not enough free disk space to complete the process. + Ikke nok ledig diskplads, til at kunne gennemføre processen. + + + + + Root privileges are required for running the Systemback! + Der kræves admin-rettigheder for at afvikle Systemback! + + + + + + + + The system copy is aborted! + Kopiering af systemet er afbrudt! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + Den/de angivne partition(er) har ikke nok ledig plads til at kunne kopiere systemet. Det kopierede system vil ikke fungere korrekt. + + + + The system copy is completed, but an error occurred while installing the GRUB! + System kopieringen er udført, men der opstod en fejl under installationen af ​​GRUB! + + + + + You need to manually install a bootloader. + Du er nødt til manuelt at installere en bootloader. + + + + + The system restoration is aborted! + Systemgendannelsen blev afbrudt! + + + + An error occurred while reinstalling the GRUB. + Der opstod en fejl ved geninstallering af GRUB. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Den komplette systemreparation er udført, men der opstod en fejl, ved geninstallation af GRUB! + + + + + + + + The Live system creation is aborted! + Oprettelsen at Live systemet blev afbrudt! + + + + An error occurred while creating the file system image. + Der opstod en fejl under oprettelse af fil-systemets diskaftryk. + + + + An error occurred while creating the container file. + Der opstod en fejl under oprettelse af container filen. + + + + + + The specified partition could not be mounted. + Den angivne partition kunne ikke monteres. + + + + The system install is completed, but an error occurred while installing the GRUB! + Systeminstallation er udført, men der opstod en fejl under installationen af ​​GRUB! + + + + + + + + The system installation is aborted! + Systeminstallationen er afbrudt! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + Den/de angivne partition(er) har ikke nok ledig plads til at installere systemet. Det installerede system vil ikke fungere korrekt. + + + + + + The specified partition could not be formatted (in use or unavailable). + Den angivne partition kunne ikke formateres (enten er den i brug eller utilgængelig). + + + + An error occurred while reinstalling the GRUB! + Der opstod en fejl ved geninstallering af GRUB! + + + + + + + + + + There has been critical changes in the file system during this operation. + Der har været kritiske ændringer i fil systemet under denne operation. + + + + + + + + The Live write is aborted! + Skrivning af Live er afbrudt! + + + + The selected device does not have enough space to write the Live system. + Den valgte enhed har ikke plads nok til Live systemet. + + + + An error occurred while unpacking the Live system files. + Der opstod en fejl ved udpakning af Live systemets filer. + + + + + + + The Live conversion is aborted! + Live konverteringen er afbrudt! + + + + An error occurred while renaming the essential Live files. + Der opstod en fejl ved omdøbning af de essentielle Live filer. + + + + An error occurred while creating the .iso image. + Der opstod en fejl under oprettelsen af .iso diskaftrykket. + + + + An error occurred while reading the .sblive image. + Der opstod en fejl under læsning af .sblive aftrykket. + + + + An error occurred while creating the new initramfs image. + Der opstod en fejl under oprettelse af det nye initramfs aftryk. + + + + + The restore point deletion is aborted! + Sletning af gendannelsespunktet er afbrudt! + + + + + An error occurred while during the process. + Der opstod en fejl under processen. + + + + + + The Live image could not be mounted. + Live aftrykket kunne ikke monteres. + + + + + The system repair is aborted! + System reparationen er afbrudt! + + + + + There is not enough free space. + Der er ikke tilstrækkelig ledig plads. + + + + + + + + Multiple mount points + Mange monteringspunkter + + + + Enabled + Aktiveret + + + + Systemback worker thread is interrupted by the user. + Systemback afvikler tråd er afbrudt af brugeren. + + + + Boot Live without xorg.conf file + Opstart Live uden xorg.conf filen + + + + + + Boot Live system + Opstart Live systemet + + + + + + Boot system installer + Opstart system installer + + + + + + Boot Live in safe graphics mode + Opstart live i fejlsikret grafisk tilstand + + + + + + Boot Live in debug mode + Opstart Live i undersøgelses tilstand + + + + Press 'E' key to edit + Tryk på 'E' for at redigere + + + + Press TAB key to edit + Tryk TAB tasten for at redigere + + + + An error occurred while changing the access permissions of the following file: + Der opstod en fejl ved ændring af rettigheder for følgende fil: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Brug: systemback-cli [valg] + + Valg: + + -n, --newbackup opret nyt gendannelsespunkt + + -s, --storagedir <sti> få eller sæt opbevaringssted for gendannelsespunkt + mappe sti + + -u, --upgrade opgrader aktuelle system + fjern unødvendige filer og pakker + + -v, --version vis Systemback versionsnummer + + -h, --help vis denne hjælp + + + + basic restore UI + grundlæggende gendannelses UI + + + + The Systemback command line interface cannot be used on a Live system! + Systemback kommando linje grænseflade, kan ikke bruges på et Live system! + + + + This stupid terminal does not support color! + Denne dumme terminal understøtter ikke farve! + + + + This terminal is too small! + Denne terminal er for lille! + + + + The specified storage directory path has not been set! + Den angivne opbevaring mappe sti er ikke indstillet! + + + + The restoration is aborted! + Gendannelsen er afbrudt! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Gendannelsen er udført, men der opstod en fejl, ved gen-installationen af GRUB! + + + + The restore points storage directory is not available or not writable! + Opbevaring mappe for gendannelsespunkter er ikke tilgængelig eller er ikke skrivebart! + + + + Available restore point(s): + Tilgængelige gendannelsespunkter: + + + + Quit + Afslut + + + + Selected restore point: + Valgte gendannelsespunkt: + + + + The specified storage directory path is set. + Den angivne mappe sti til opbevaring er indstillet. + + + + Restore with the following restore point: + Gendan med den følgende gendannelsespunkt: + + + + Restore with the following restore method: + Gendan med følgende gendannelsesmetode: + + + + Users configuration files restore + Brugernes opbevaringssted for konfigurationsfiler + + + + + Complete configuration files restore + Opbevaringssted for komplette konfigurationsfiler + + + + Configuration files restore + Opbevaringssted for konfigurationsfiler + + + + + + You want to keep the current fstab file? + Vil du beholde den aktuelle fstab fil? + + + + + + + + + + + (Y/N) + (J/N) + + + + + + + Reinstall the GRUB 2 bootloader? + Geninstallere GRUB 2 bootloader? + + + + Start the restore? + Start gendannelsen? + + + + The users configuration files full restoration are completed. + Den komplette gendannelse af brugernes konfigurationsfiler er udført. + + + + The users configuration files restoration are completed. + Gendannelse af brugernes konfigurationsfiler er udført. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Tryk på 'ENTER' for at genstarte computeren, eller 'Q' for at afslutte. + + + + Press 'ENTER' key to quit. + Tryk på 'ENTER' for at afslutte. + + + + Deleting old restore point(s) + Sletter gl. gendannelsespunkt(er) + + + + Restoring the users configuration files + Gendanner brugerens konfigurationsfiler + + + diff --git a/lang/systemback_de.ts b/lang/systemback_de.ts new file mode 100644 index 0000000..4ad1d41 --- /dev/null +++ b/lang/systemback_de.ts @@ -0,0 +1,1898 @@ + + + + + systemback + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + Die angegebene Debug-Stufe ist ungültig! + + + + The default level (1) will be used. + Die Standardebene (1) wird verwendet werden. + + + + An error occurred while opening the following file: + Beim Öffnen der folgenden Datei ist ein Fehler aufgetreten: + + + + An error occurred while creating the following directory: + Beim Erstellen des folgenden Verzeichnisses ist ein Fehler aufgetreten: + + + + An error occurred while removing the following file: + Beim Entfernen der folgenden Datei ist ein Fehler aufgetreten: + + + + An error occurred while creating the following hard link: + Beim Erstellen des folgenden "Hardlink" ist ein Fehler aufgetreten: + + + + Reference file: + Referenzdatei: + + + + An error occurred while creating the following file: + Beim Erstellen der folgenden Datei ist ein Fehler aufgetreten: + + + + An error occurred while renaming the following item: + Beim Umbennen des folgenden Objektes ist ein Fehler aufgetreten: + + + + New path: + Neuer Verzeichnispfad: + + + + An error occurred while executing the following command: + Bei der Ausführung des folgenden Befehls ist ein Fehler aufgetreten: + + + + Exit code: + Exit-Code: + + + + Failed to detect the device for installing the GRUB! + Das Gerät zur Installation von GRUB konnte nicht gefunden werden! + + + + An error occurred while upgrading the system! + Während der Systemaktualisierung ist ein Fehler aufgetreten! + + + + Restart upgrade ... + Aktualisierung erneut starten … + + + + This file could not be copied because it does not exist: + Diese Datei konnte nicht kopiert werden, da sie nicht existiert: + + + + The following partition has no UUID: + Die nachfolgende Partition besitzt keine UUID: + + + + An error occurred while creating a new partition on the following device: + Während der Erstellung einer neuen Partition auf dem folgenden Gerät ist ein Fehler aufgetreten: + + + + An error occurred while mounting the following partition/image: + Während des Mountvorgangs der(s) folgenden Partition/Abbildes ist ein Fehler aufgetreten: + + + + An error occurred while setting one or more flags on the following partition: + Bei Setzen einer oder mehrer Flags auf der folgenden Partition ist ein Fehler aufgetreten: + + + + Flag(s): + Flag(s): + + + + An error occurred while creating the partition table on the following device: + Beim Erstellen einer Partitionstabelle auf dem folgenden Gerät ist ein Fehler aufgetreten: + + + + An error occurred while unmounting the following partition/image/mount point: + Beim Aushängen der(s) folgenden Partition/Abbildes/Einhängepunktes ist ein Fehler aufgetreten: + + + + An error occurred while cloning the properties of the following item: + Beim Klonen der Eigenschaften des folgenden Punktes ist ein Fehler aufgetreten: + + + + Target item: + Zielpunkt: + + + + An error occurred while cloning the following symbolic link: + Beim Klonen der folgenden symbolischen Verknüpfung ist ein Fehler aufgetreten: + + + + Target symlink: + Zielsymlink: + + + + An error occurred while cloning the following file: + Beim Klonen der folgenden Datei ist ein Fehler aufgetreten: + + + + Target file: + Zieldatei: + + + + An error occurred while cloning the following directory: + Beim Klonen des folgenden Verzeichnisses ist ein Fehler aufgetreten: + + + + Target directory: + Zielverzeichnis: + + + + An error occurred while deleting the following directory: + Beim Entfernen des folgenden Verzeichnisses ist ein Fehler aufgetreten: + + + + + Cannot start the Systemback scheduler daemon! + Systembacks Planungsdienst kann nicht gestartet werden! + + + + + Missing, wrong or too much argument(s). + Fehlende(s), falsche(s) oder zu viele Argument(e). + + + + The process is disabled for this user. + Der Prozess ist für diesen Benutzer dekativiert. + + + + Root privileges are required. + Root-Benutzerrechte erforderlich. + + + + This system is a Live. + Dieses ist ein Live-System. + + + + Already running. + Bereits ausgeführt. + + + + Unable to daemonize. + Kann nicht als Dienst laufen. + + + + Cannot start the Systemback graphical user interface! + Systembacks grafische Benutzeroberfläche kann nicht gestartet werden! + + + + Unable to get root permissions. + Keine Root-Rechte verfügbar. + + + + Unable to connect to the X server. + Verbindung zum X-Server fehlgeschlagen. + + + + Full name of the new user: + Vollständiger Name des neuen Benutzers: + + + + New username to login: + Neuer Nutzername zum Anmelden: + + + + New user account password: + Neues Benutzerpasswort: + + + + New root password (optional, not recommended for Ubuntu): + Neues Rootpasswort (optional, für Ubuntu nicht empfohlen): + + + + New hostname: + Neuer Rechnername: + + + + + + + + + + + + + + + + Back + Zurück + + + + + + + + Next + Weiter + + + + + Working directory + Arbeitsverzeichnis + + + + Created Live images + Erstellte Live-Abbilder + + + + Name of the Live system + Name des Live-Systems + + + + + + + + Options + Einstellungen + + + + Write target + Ziel schreiben + + + + Live operations + Live-Vorgänge + + + + Include the user data files + Nutzerdateien einschliessen + + + + Redetect devices + Geräteneuerkennung + + + + + + Delete + Löschen + + + + Write to target + In den Zielort schreiben + + + + Convert to ISO + In eine ISO umwandeln + + + + + + Create new + Neu erstellen + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Die fehlerhafte(n) Systempartition(en) in das Verzeichnis »/mnt« in Übereinstimmung mit der ursprünglichen Struktur einhängen. (»/« → »/mnt«, »/home« → »/mnt/home«, usw.) + + + + + Mount + Einhängen + + + + Reset mounts + Einhängepunkte zurücksetzen + + + + Repair type + Repariertyp + + + + GRUB 2 repair + GRUB-2-Reparatur + + + + System files repair + Systemdateienreparatur + + + + + Reinstall GRUB 2 bootloader: + Neuinstallation des GRUB 2 Bootloaders: + + + + + Auto detection + Automatische Erkennung + + + + Full repair + Vollständige Reparatur + + + + Do not repair the fstab file + FSTAB Datei nicht reparieren + + + + Exclude hidden user files and directories from restore points + Ausschluss von versteckten Dateien und Verzeichnissen von den Wiederherstellungspunkten + + + + Exclude user data files and directories from Live system + Ausschluss von Benutzerdateien und -verzeichnisse vom Live System + + + + Excludable items + Ausschliessbare Elemente + + + + Excluded items + Ausgeschlossene Elemente + + + + + Remove item from the exclusion list + Entfernen Sie das Element aus der Ausschlussliste + + + + + Add item to the exclusion list + Fügen Sie das Element der Ausschlussliste hinzu + + + + Scheduler state: + Zustand des Zeitplanungsmoduls: + + + + + + + + + + + + + + Disabled + Deaktiviert + + + + Timer settings + Timer Einstellungen + + + + Waiting time before creating a new restore point: + Wartezeit vor der Erstellung eine neuen Wiederherstellungspunktes: + + + + Visible countdown time: + Sichtbare Countdown Zeit: + + + + Pop-up window position on screen: + Position des Pop-Up-Fensters auf dem Bildschirm: + + + + Use silent mode + Stumm-Modus nutzen + + + + + + + More + Mehr + + + + + + + Less + Weniger + + + + Simple system backup and restore application with extra features + Einfaches System- und Wiederherstellungsprogramm mit Zusatzfunktionen + + + + Project homepage: + Projekt-Homepage: + + + + Contact: + Kontakt: + + + + Donate: + Spenden: + + + + Systemback version: + Systemback Version: + + + + + License + Lizenz + + + + Re-read directories + Verzeichnisse neu einlesen + + + + Writable Linux filesystem! + Beschreibbares Linux Dateisystem! + + + + + + + Cancel + Abbrechen + + + + + + + + + + + Maximum number of temporary restore points + Maximale Anzahl temporärer Wiederherstellungspunkte + + + + Restore points + Wiederherstellungspunkte + + + + Highlighted restore points + Hervorgehobene Punkte + + + + Point operations + Punktfunktionen + + + + Highlight + Hervorheben + + + + Rename + Umbennenen + + + + + + + + + + + + + + + + + + Select restore point + Wiederherstellungspunkt auswählen + + + + + + + + + Storage directory + Speicherverzeichnis + + + + Function menu + Funktionsmenü + + + + + Schedule + Zeitplan + + + + + + About + Über + + + + + Settings + Einstellungen + + + + System upgrade + Systemaktualisierung + + + + + System install + Systeminstallation + + + + + + + Live system create + Erstelle Live System + + + + + System repair + Reparatur Live System + + + + + + System restore + Systemwiederherstellung + + + + + + + System copy + Systemduplizierung + + + + + Exclude + Ausschliessen + + + + + Include + Einschliessen + + + + Change path + Verändere Pfad + + + + + + + + + + + + + + + + + + empty + leer + + + + + + + + + + + not used + nicht genutzt + + + + Restore type + Typ der Wiederherstellung + + + + + + + + + Full restore + Vollständige Wiederherstellung + + + + + + + + + System files restore + Wiederherstellung der Systemdateien + + + + User(s) configuration files restore + Benutzereinstellung(en) Dateiwiederherstellung + + + + + Keep newly installed configuration files + Kürzlich installierte Konfigurationsdateien behalten + + + + Include user(s): + Benutzer einschliessen: + + + + Do not restore the fstab file + FSTAB Datei nicht wiederherstellen + + + + Partition settings + Partitionseinstellungen + + + + + + + + Transfer user configuration files + Übertrage Nutzerkonfiguration + + + + Copy user data files + Dateien des Benutzers kopieren + + + + Install GRUB 2 bootloader: + GRUB 2 Bootloader installieren: + + + + + + Format + Format + + + + + + Reset partitions settings + Partitionseinstellungen zurücksetzen + + + + + + + + + + Unmount + Aushängen + + + + Change partition settings + Partitionseinstellungen ändern + + + + Filesystem: + Dateisystem: + + + + Mount point: + Einhängepunkt: + + + + + + + + + ! Delete ! + ! Löschen ! + + + + Add new partition + Neue Partition hinzufügen + + + + Create new: + Neu anlegen: + + + + Need to set the mount point as '/boot/efi'! + Einhängepunkt muss als '/boot/efi' gesetzt werden! + + + + Window DPI scaling + Window DPI Skalierung + + + + Multiplier factor for scaling the window contents + Vervielfältigungsfaktor für die Skalierung von Fensterinhalten + + + + User interface + Benuzteroberfläche + + + + Window always on top + Fenster immer im Vordergrund + + + + System + System + + + + Disable scheduler daemon starting for the following users: + Deaktivierung des Zeitplaners für die folgenden Benutzer: + + + + Use XZ compressor for squashfs filesystems + Benutze XZ Kompressor für squashfs Dateisysteme + + + + Override auto-detected language: + Automatisch erkannte Sprache außer Kraft setzen: + + + + Override the used style: + Benutzten Stil außer Kraft setzen: + + + + Disable incremental restore points (do not use hard links between backups) + Deaktiviere inkrementelle Wiederherstellungspunkte (nichts 'hard links') + + + + Create Live ISO images automatically (faster than the conversion) + Automatische Erstellung von Live ISO images (schneller als Konvertierung) + + + + Do not empty memory cache at the end of some processes + Speicher Cache am Ende einiger Prozesse nicht leeren + + + + Includable items + Einbeziehbare Elemente + + + + Included items + Einbezogene Elemtente + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + Ordnen Sie Dateien und Verzeichnisse den Wiederherstellungspunkten zu, +um sie als wiederherstellbare Konfigurationsdateien zu definieren! + + + + ! Interrupt ! + ! Abbruch ! + + + + Creates a scheduled restore point within few seconds. + Erstelle einen zeitplanabhängigen Wiederherstellungspunkt in wenigen Sekunden. + + + + + + Start + Start + + + + Later + Später + + + + Systemback user authentication + Systemback Nutzerauthentifizierung + + + + Administrator: + Administrator: + + + + Password: + Passwort: + + + + Unsafe X Window authorization! + Unsichere X-Window-Legitimierung! + + + + Please do not use 'sudo' command. + Bitte sudo-Befehl nicht benutzen. + + + + + + + + + Transfer user configuration and data files + Übertrage Nutzerkonfiguration und Dateien + + + + + + scheduler + Zeitplaner + + + + + Partition + Partition + + + + + Size + Größe + + + + Label + Bezeichnung + + + + Current mount point + Derzeitiger Einhängepunkt + + + + New mount point + Neuer Einhängepunkt + + + + Filesystem + Dateisystem + + + + Device + Gerät + + + + + Top left + Oben links + + + + + + Top right + Oben rechts + + + + + + Center + Mitte + + + + + + Bottom left + Unten links + + + + + Bottom right + Unten rechts + + + + + + day(s) + Tag(e) + + + + + + hour(s) + Stunde(n) + + + + + + + + minute(s) + Minute(n) + + + + + + seconds + Sekunden + + + + + + + Everyone + Alle Benutzer + + + + + + Currently running system + Zurzeit laufendes System + + + + + Emptying cache + Cache wird geleert + + + + + Flushing filesystem buffers + Dateisystempuffer werden geleert + + + + + Restoring the full system + Wiederherstellung des kompletten Systems + + + + + Restoring the system files + Wiederherstellung der Systemdateien + + + + Restoring the user(s) configuration files + Wiederherstellung der Nutzerkonfigurationsdateien + + + + Repairing the system files + Reparatur der Systemdateien + + + + Repairing the full system + Reparatur des kompletten Systems + + + + Repairing the GRUB 2 + GRUB 2 wird repariert + + + + Copying the system + System wird kopiert + + + + Installing the system + System wird installiert + + + + Writing Live image to the target device + Live Image wird auf das Ziellaufwerk geschrieben + + + + Upgrading the system + System Upgrade + + + + + Deleting incomplete restore point + Unvollständiger Wiederherstellungspunkt wird gelöscht + + + + Interrupting the current process + Der laufende Prozess wird unterbrochen + + + + Deleting old restore point + Alter Wiederherstellungspunktes wird gelöscht + + + + + Creating restore point + Erstelle Wiederherstellungspunkt + + + + + Deleting restore point + Löschen des Wiederherstellungspunktes + + + + Converting Live system image + Konvertierung des Live System Image + + + + + process + Prozess + + + + Creating Live system + Erstellung eines Live System + + + + + + + + + Reboot + Neustart + + + + + + + X restart + X Neustart + + + + Restore the system files to the following restore point: + Wiederherstellung der Systemdateien in den nachfolgenden Wiederherstellungspunkt: + + + + Repair the system files with the following restore point: + Wiederherstellung der Systemdateien mit dem folgenden Wiederherstellungspunkt: + + + + Repair the complete system with the following restore point: + Reparatur des Gesamtsystems mit dem folgenden Wiederherstellungspunkt: + + + + Restore the complete user(s) configuration files to the following restore point: + Wiederherstellung aller Konfigurationsdateien des Nutzers mit dem folgenden Wiederherstellungspunkt: + + + + Restore the user(s) configuration files to the following restore point: + Wiederherstellung der Konfigurationsdateien des Nutzers mit dem folgenden Wiederherstellungspunkt: + + + + Copy the system, using the following restore point: + Systemkopie erstellen unter Verwendung des folgenden Wiederherstellungspunktes: + + + + Install the system, using the following restore point: + Systeminstallation unter Verwendung des folgenden Wiederherstellungspunktes: + + + + Restore the complete system to the following restore point: + Wiederherstellung des Gesamtsystems unter Verwendung des folgenden Wiederherstellungspunktes: + + + + Format the %1, and write the following Live system image: + Formatiere die %1 und erstelle das folgende Live Image: + + + + Repair the GRUB 2 bootloader. + Reparatur des GRUB 2 Bootloaders. + + + + The user(s) configuration files full restoration are completed. + Die vollständige Wiederherstellung der Nutzerkonfigurationsdateien ist abgeschlossen. + + + + + The X server will restart automatically within 30 seconds. + Der X Server wird innerhalb der nächsten 30 Sekunden automatisch neu starten. + + + + The user(s) configuration files restoration are completed. + Die Wiederherstellung der Nutzerkonfigurationsdateien ist abgeschlossen. + + + + The full system repair is completed. + Die vollständige Systemreparatur ist abgeschlossen. + + + + The system repair is completed. + Systemreparatur ist abgeschlossen. + + + + + The system files restoration are completed. + Wiederherstellung der Systemdateien ist abgeschlossen. + + + + + + The computer will restart automatically within 30 seconds. + Der Computer wird innerhalb der nächsten 30 Sekunden neu starten. + + + + + The full system restoration is completed. + Vollständige Systemwiederherstellung abgeschlossen. + + + + The system copy is completed. + Die Erstellung einer Systemkopie ist abgeschlossen. + + + + The Live system creation is completed. + Erstellung des Live Systems wird abgeschlossen. + + + + The created .sblive file can be written to pendrive. + Die erzeugte .sblive Datei kann auf einen USB Stick geschrieben werden. + + + + The GRUB 2 repair is completed. + Die GRUB 2 Reparatur ist abgeschlossen. + + + + The system install is completed. + Die Installation des Systems ist abgeschlossen. + + + + The Live system image write is completed. + Das Schreiben des Live System Images ist abgeschlossen. + + + + + Unable to get exclusive lock! + Exklusive Sperre nicht erhältlich! + + + + + First, close all package manager. + Bitte schliessen Sie zunächst alle Package Manager. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + The specified name contain(s) unsupported character(s)! + Der angegebene Name enthält nicht unterstützte Zeichen! + + + + Please enter a new name. + Bitte geben Sie einen neuen Namen ein. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Die Reparatur der Systemdateien ist abgeschlossen, bei der Neuinstallation von GRUB ist jedoch ein Fehler aufgetreten! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + Das System ist möglicherweise nicht mehr bootfähig! (Möglicherweise ist eine unterschiedliche Architektur dafür verantwortlich.) + + + + + + + The restore point creation is aborted! + Die Erstellung des Wiederherstellungspunktes wurde abgebrochen! + + + + + + Not enough free disk space to complete the process. + Nicht genügend freier Speicherplatz für die Fertigstellung des Prozesses vorhanden. + + + + + Root privileges are required for running the Systemback! + Für die Nutzung von Systemback sind Rootrechte erforderlich! + + + + + + + + The system copy is aborted! + Systemkopiervorgang abgebrochen! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + Die gewählte(n) Partion(en) hat/haben nicht genügend freien Speicherplatz um das Sytem zu kopieren. Die erstellte Kopie wird nicht richtig funktionieren. + + + + The system copy is completed, but an error occurred while installing the GRUB! + Das Kopieren des Systems ist abgeschlossen, aber ein Fehler ist während der GRUB Installation aufgetreten! + + + + + You need to manually install a bootloader. + Bootloader muss manuell installiert werden. + + + + + The system restoration is aborted! + Abbruch der Systemwiederherstellung! + + + + An error occurred while reinstalling the GRUB. + Bei der erneuten Installation von GRUB ist ein Fehler aufgetreten. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Die Reparatur des Gesamtsystems ist abgeschlossen, während der erneuten Installation von GRUB ist jedoch ein Fehler aufgetreten! + + + + + + + + The Live system creation is aborted! + Die Erstellung des Live Systems wurde abgebrochen! + + + + An error occurred while creating the file system image. + Während der Erstellung eines Dateisystemimages ist ein Fehler aufgetreten. + + + + An error occurred while creating the container file. + Bei der Erstellung einer Container Datei ist ein Fehler aufgetreten. + + + + + + The specified partition could not be mounted. + Die gewählte Partition konnte nicht eingehängt werden. + + + + The system install is completed, but an error occurred while installing the GRUB! + Die Installation des Systems ist abgeschlossen, bei der Installation von GRUB ist jedoch ein Fehler aufgetreten! + + + + + + + + The system installation is aborted! + Die Installation des Systems wurde abgebrochen! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + Die gewählte(n) Partion(en) hat/haben nicht genügend freien Speicherplatz um das Sytem zu kopieren. Die erstellte Kopie wird nicht richtig funktionieren. + + + + + + The specified partition could not be formatted (in use or unavailable). + Die gewählte Partion konnte nicht formatiert werden (in Benutzung oder nicht verfügbar). + + + + An error occurred while reinstalling the GRUB! + Bei der erneuten Installation von GRUB ist ein Fehler aufgetreten! + + + + + + + + + + There has been critical changes in the file system during this operation. + Während dieser Operation ist es zu kritischen Veränderungen am Dateisystem gekommen. + + + + + + + + The Live write is aborted! + Das Schreiben des Live Systems wurde abgebrochen! + + + + The selected device does not have enough space to write the Live system. + Das Zielgerät verfügt nicht über ausreichend Speicherplatz um das Live Sytem darauf zu erstellen. + + + + An error occurred while unpacking the Live system files. + Beim Entpacken der Dateien des Live Systems ist ein Fehler aufgetreten. + + + + + + + The Live conversion is aborted! + Die Umwandlung des Live System wurde abgebrochen! + + + + An error occurred while renaming the essential Live files. + Bei der Umbennung wichtiger Dateien des Live Systems ist ein Fehler aufgetreten. + + + + An error occurred while creating the .iso image. + Bei der Erstellung des ISO Images ist ein Fehler aufgetreten. + + + + An error occurred while reading the .sblive image. + Bei dem Versuch, das .sblive Image zu lesen ist ein Fehler aufgetreten. + + + + An error occurred while creating the new initramfs image. + Bei der Erstellung eine neuen initramfs Image ist ein Fehler aufgetreten. + + + + + The restore point deletion is aborted! + Die Löschung des Wiederherstellungspunktes wurde abgebrochen! + + + + + An error occurred while during the process. + Während es Prozesses ist ein Fehler aufgetreten. + + + + + + The Live image could not be mounted. + Das Live Image konnte nicht eingehängt werden. + + + + + The system repair is aborted! + Die Reparatur des Systems wurde abgebrochen! + + + + + There is not enough free space. + Es ist nicht genügend Platz vorhanden. + + + + + + Live image + Live Image + + + + + An another Systemback process is currently running, please wait until it finishes. + Ein anderer Systemback Prozess läuft momentan, bitte warten Sie auf seine Beendigung. + + + + + + + + Multiple mount points + Mehrere Einhängepunkte + + + + Enabled + Aktiviert + + + + Systemback worker thread is interrupted by the user. + Der Systemback Prozess wurde durch den Benutzer unterbrochen. + + + + Boot Live without xorg.conf file + Start des Live Systems ohne die xorg.conf Datei + + + + + + Boot Live system + Start des Live Systems + + + + + + Boot system installer + Start des System-Installationsprogrammes + + + + + + Boot Live in safe graphics mode + Start des Live Systems in sicherem Grafikmodus + + + + + + Boot Live in debug mode + Start des Live Systems im Debug Modus + + + + Press 'E' key to edit + 'E' Taste zum Editieren drücken + + + + Press TAB key to edit + TAB Taste zum Editieren drücken + + + + An error occurred while changing the access permissions of the following file: + Während der Änderung der Zugriffsrechte der folgenden Datei ist ein Fehler aufgetreten: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Verwendung: systemback-cli [option] + + Optionen: + + -n, --newbackup Erstellung eines neuen Wiederherstellungspunktes + + -s, --storagedir <path> Abruf oder Festlegung des Speicherverzeichnispfades + der Wiederherstellungspunkte + + -u, --upgrade Upgrade des derzeitigen Systems + + -v, --version Ausgabe der Systemback Versionsnummer + + -h, --help Hilfe anzeigen + + + + basic restore UI + grundlegendes Wiederherstellungsbenutzerinterface + + + + The Systemback command line interface cannot be used on a Live system! + Die Systemback Befehlszeile kann nicht auf einem Live-System verwendet werden! + + + + This stupid terminal does not support color! + Dieses dumme Terminal unterstützt keine Farben! + + + + This terminal is too small! + Dieses Terminal ist zu klein! + + + + The specified storage directory path has not been set! + Der ausgewählte Speicherverzeichnispfad wurde nicht gesetzt! + + + + The restoration is aborted! + Wiederherstellung wurde abgebrochen! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Wiederherstellung ist vollständig, aber bei der erneuten Installation von GRUB ist ein Fehler aufgetreten! + + + + The restore points storage directory is not available or not writable! + Das Speicherverzeichnis der Wiederherstellungspunkte ist nicht verfügbar oder nicht beschreibbar! + + + + Available restore point(s): + Verfügbare(r) Wiederherstellungspunkt(e): + + + + Quit + Beenden + + + + Selected restore point: + Ausgewählter Wiederherstellungspunkt: + + + + The specified storage directory path is set. + Das ausgewählte Speicherverzeichnis ist eingestellt. + + + + Restore with the following restore point: + Wiederherstellung mit dem folgenden Wiederherstellungspunkt: + + + + Restore with the following restore method: + Wiederherstellung mit der folgenden Wiederherstellungsmethode: + + + + Users configuration files restore + Wiederherstellung der Nutzerkonfigurationdateien + + + + + Complete configuration files restore + Vollständige Wiederherstellung der Konfigurationsdateien + + + + Configuration files restore + Wiederherstellung der Konfigurationsdateien + + + + + + You want to keep the current fstab file? + Wollen Sie die gegenwärtigen fstab-Datei behalten? + + + + + + + + + + + (Y/N) + (J/N) + + + + + + + Reinstall the GRUB 2 bootloader? + GRUB 2 Bootloader erneut installieren? + + + + Start the restore? + Wiederherstellung starten? + + + + The users configuration files full restoration are completed. + Vollständige Wiederherstellung der Nutzerkonfigurationsdateien ist abgeschlossen. + + + + The users configuration files restoration are completed. + Wiederherstellung der Nutzerkonfigurationsdateien ist abgeschlossen. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Betätigen Sie die 'ENTER'-Taste um den Computer neu zu starten oder 'Q' um zu beenden. + + + + Press 'ENTER' key to quit. + Betätigen Sie die 'ENTER'-Taste um zu beenden. + + + + Deleting old restore point(s) + Löschen des/der alten Wiederherstellungspunkte(s) + + + + Restoring the users configuration files + Wiederherstellung der Nutzerkonfigurationsdateien + + + diff --git a/lang/systemback_en_GB.ts b/lang/systemback_en_GB.ts new file mode 100644 index 0000000..6e248c8 --- /dev/null +++ b/lang/systemback_en_GB.ts @@ -0,0 +1,1289 @@ + + + + + systemback + + Full name of the new user: + + + + New username to login: + + + + New user account password: + + + + New root password (optional, not recommended for Ubuntu): + + + + New hostname: + + + + Back + + + + Next + + + + Working directory + + + + Created Live images + + + + Name of the Live system + + + + Options + + + + Write target + + + + Live operations + + + + Include the user data files + + + + Redetect devices + + + + Delete + + + + Write to target + + + + Convert to ISO + + + + Create new + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + + Mount + + + + Reset mounts + + + + Repair type + + + + GRUB 2 repair + + + + System files repair + + + + Reinstall GRUB 2 bootloader: + + + + Auto detection + + + + Full repair + + + + Do not repair the fstab file + + + + Exclude hidden user files and directories from restore points + + + + Exclude user data files and directories from Live system + + + + Excluded items + + + + Remove item from the exclusion list + + + + Add item to the exclusion list + + + + Scheduler state: + + + + Disabled + + + + Timer settings + + + + Waiting time before creating a new restore point: + + + + Visible countdown time: + + + + Pop-up window position on screen: + + + + Use silent mode + + + + More + + + + Less + + + + Simple system backup and restore application with extra features + + + + Project homepage: + + + + Contact: + + + + Donate: + + + + Systemback version: + + + + License + Licence + + + Re-read directories + + + + Writable Linux filesystem! + + + + Cancel + + + + Maximum number of temporary restore points + + + + empty + + + + not used + + + + Restore points + + + + Highlighted restore points + + + + Point operations + + + + Highlight + + + + Rename + + + + Select restore point + + + + Storage directory + + + + Function menu + + + + System restore + + + + System copy + + + + System install + + + + Live system create + + + + System repair + + + + System upgrade + + + + Exclude + + + + Schedule + + + + About + + + + Settings + + + + Change path + + + + Restore type + + + + Full restore + + + + System files restore + + + + User(s) configuration files restore + + + + Keep newly installed configuration files + + + + Include user(s): + + + + Do not restore the fstab file + + + + Partition settings + + + + Transfer user configuration files + + + + Copy user data files + + + + Install GRUB 2 bootloader: + + + + Format + + + + Reset partitions settings + + + + Unmount + + + + Change partition settings + + + + Filesystem: + + + + Mount point: + + + + ! Delete ! + + + + Add new partition + + + + Create new: + + + + Need to set the mount point as '/boot/efi'! + + + + Window DPI scaling + + + + Multiplier factor for scaling the window contents + + + + User interface + + + + Window always on top + + + + System + + + + Disable scheduler daemon starting for the following users: + + + + Use XZ compressor for squashfs filesystems + + + + Override auto-detected language: + + + + Override the used style: + + + + Disable incremental restore points (do not use hard links between backups) + + + + Create Live ISO images automatically (faster than the conversion) + + + + Do not empty memory cache at the end of some processes + + + + ! Interrupt ! + + + + Creates a scheduled restore point within few seconds. + + + + Start + + + + Later + + + + Systemback user authentication + + + + Administrator: + + + + Password: + + + + scheduler + + + + Upgrading the system + + + + Partition + + + + Size + + + + Label + + + + Current mount point + + + + New mount point + + + + Filesystem + + + + Device + + + + Top left + + + + Top right + + + + Center + Centre + + + Bottom left + + + + Bottom right + + + + day(s) + + + + hour(s) + + + + minute(s) + + + + seconds + + + + Everyone + + + + Transfer user configuration and data files + + + + Currently running system + + + + Creating restore point + + + + Restoring the full system + + + + Restoring the system files + + + + Restoring the user(s) configuration files + + + + Repairing the system files + + + + Repairing the full system + + + + Copying the system + + + + Installing the system + + + + Creating Live system + + + + process + + + + Writing Live image to the target device + + + + Converting Live system image + + + + Deleting restore point + + + + Deleting old restore point + + + + Deleting incomplete restore point + + + + Emptying cache + + + + Flushing filesystem buffers + + + + Reboot + + + + X restart + + + + Repairing the GRUB 2 + + + + Restore the system files to the following restore point: + + + + Repair the system files with the following restore point: + + + + Repair the complete system with the following restore point: + + + + Restore the complete user(s) configuration files to the following restore point: + + + + Restore the user(s) configuration files to the following restore point: + + + + Copy the system, using the following restore point: + + + + Install the system, using the following restore point: + + + + Restore the complete system to the following restore point: + + + + Format the %1, and write the following Live system image: + + + + Repair the GRUB 2 bootloader. + + + + The user(s) configuration files full restoration are completed. + + + + The X server will restart automatically within 30 seconds. + + + + The user(s) configuration files restoration are completed. + + + + The full system repair is completed. + + + + The system repair is completed. + + + + The system files restoration are completed. + + + + The computer will restart automatically within 30 seconds. + + + + The full system restoration is completed. + + + + The system copy is completed. + + + + The Live system creation is completed. + + + + The created .sblive file can be written to pendrive. + + + + The GRUB 2 repair is completed. + + + + The system install is completed. + + + + The Live system image write is completed. + + + + An another Systemback process is currently running, please wait until it finishes. + + + + Unable to get exclusive lock! + + + + First, close all package manager. + + + + The specified name contain(s) unsupported character(s)! + + + + Please enter a new name. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + + + + The restore point creation is aborted! + + + + Not enough free disk space to complete the process. + + + + Root privileges are required for running the Systemback! + + + + The system copy is aborted! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + + + + The system copy is completed, but an error occurred while installing the GRUB! + + + + You need to manually install a bootloader. + + + + The system restoration is aborted! + + + + An error occurred while reinstalling the GRUB. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + + + + The Live system creation is aborted! + + + + An error occurred while creating the file system image. + + + + An error occurred while creating the container file. + + + + The specified partition could not be mounted. + + + + The system install is completed, but an error occurred while installing the GRUB! + + + + The system installation is aborted! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + + + + The specified partition could not be formatted (in use or unavailable). + + + + An error occurred while reinstalling the GRUB! + + + + There has been critical changes in the file system during this operation. + + + + The Live write is aborted! + + + + The selected device does not have enough space to write the Live system. + + + + An error occurred while unpacking the Live system files. + + + + The Live conversion is aborted! + + + + An error occurred while renaming the essential Live files. + + + + An error occurred while creating the .iso image. + + + + An error occurred while reading the .sblive image. + + + + An error occurred while creating the new initramfs image. + + + + The restore point deletion is aborted! + + + + An error occurred while during the process. + + + + The Live image could not be mounted. + + + + The system repair is aborted! + + + + There is not enough free space. + + + + Live image + + + + Multiple mount points + + + + Enabled + + + + Interrupting the current process + + + + Systemback worker thread is interrupted by the user. + + + + Boot Live without xorg.conf file + + + + Boot Live system + + + + Boot Live in safe graphics mode + + + + Boot Live in debug mode + + + + Press 'E' key to edit + + + + Press TAB key to edit + + + + (Y/N) + + + + The specified storage directory path has not been set! + + + + The restoration is aborted! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + + + + The restore points storage directory is not available or not writable! + + + + This stupid terminal does not support color! + This stupid terminal does not support colour! + + + This terminal is too small! + + + + An error occurred while upgrading the system! + + + + Restart upgrade ... + + + + basic restore UI + + + + Available restore point(s): + + + + Quit + + + + Selected restore point: + + + + The specified storage directory path is set. + + + + Deleting old restore point(s) + + + + Restore with the following restore point: + + + + Restore with the following restore method: + + + + Users configuration files restore + + + + Complete configuration files restore + + + + Configuration files restore + + + + You want to keep the current fstab file? + + + + Reinstall the GRUB 2 bootloader? + + + + Start the restore? + + + + Restoring the users configuration files + + + + The users configuration files full restoration are completed. + + + + The users configuration files restoration are completed. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + + + + Press 'ENTER' key to quit. + + + + An error occurred while changing the access permissions of the following file: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + + + + An error occurred while opening the following file: + + + + An error occurred while creating the following directory: + + + + An error occurred while removing the following file: + + + + An error occurred while creating the following hard link: + + + + Reference file: + + + + An error occurred while creating the following file: + + + + An error occurred while renaming the following item: + + + + New path: + + + + An error occurred while executing the following command: + + + + Exit code: + + + + Failed to detect the device for installing the GRUB! + + + + This file could not be copied because it does not exist: + + + + The following partition has no UUID: + + + + An error occurred while creating a new partition on the following device: + + + + An error occurred while mounting the following partition/image: + + + + An error occurred while creating the partition table on the following device: + + + + An error occurred while unmounting the following partition/image/mount point: + + + + An error occurred while cloning the properties of the following item: + + + + Target item: + + + + An error occurred while cloning the following symbolic link: + + + + Target symlink: + + + + An error occurred while cloning the following file: + + + + Target file: + + + + An error occurred while cloning the following directory: + + + + Target directory: + + + + An error occurred while deleting the following directory: + + + + Cannot start the Systemback scheduler daemon! + + + + Missing, wrong or too much argument(s). + + + + The process is disabled for this user. + + + + Root privileges are required. + + + + This system is a Live. + + + + Already running. + + + + Unable to daemonize. + Unable to daemonise. + + + Cannot start the Systemback graphical user interface! + + + + Unable to get root permissions. + + + + Unable to connect to the X server. + + + + Unsafe X Window authorization! + Unsafe X Window authorisation! + + + Please do not use 'sudo' command. + + + + An error occurred while setting one or more flags on the following partition: + + + + Flag(s): + + + + Boot system installer + + + + Include + + + + The Systemback command line interface cannot be used on a Live system! + + + + Included items + + + + Excludable items + + + + Includable items + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + The specified debug level is invalid! + + + + The default level (1) will be used. + + + + Version: + + + + Compilation date and time: + + + + Installed files: + + + + Operating system: + + + + Mounted filesystems: + + + + System language: + + + + Translation: + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + The re-synchronisation of package index files currently in progress, please wait until it finishes. + + + diff --git a/lang/systemback_es.ts b/lang/systemback_es.ts new file mode 100644 index 0000000..93ca13f --- /dev/null +++ b/lang/systemback_es.ts @@ -0,0 +1,1885 @@ + + + + + systemback + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + Se usará el nivel por defecto (1). + + + + Version: + Versión: + + + + Compilation date and time: + Fecha y hora de compilación: + + + + + Installed files: + Archivos instalados: + + + + Operating system: + Sistema Operativo: + + + + + Mounted filesystems: + Sistemas de archivos montados: + + + + System language: + Lenguaje del sistema: + + + + Translation: + Traducción: + + + + An error occurred while opening the following file: + Un error ocurrió mientras se abría el siguiente archivo: + + + + An error occurred while creating the following directory: + Un error ocurrió mientras se creaba el siguiente directorio: + + + + An error occurred while removing the following file: + Un error ocurrió cuando se eliminaba el siguiente archivo: + + + + An error occurred while creating the following hard link: + + + + + Reference file: + Archivo de referencia: + + + + An error occurred while creating the following file: + Un error ocurrió mientras se creaba el siguiente archivo: + + + + An error occurred while renaming the following item: + Un error ocurrió mientras se renombraba el siguiente elemento: + + + + New path: + Nueva ruta: + + + + An error occurred while executing the following command: + Un error ocurrió mientras se ejecutaba el siguiente comando: + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + ¡Falló la detección del dispositivo para instalar GRUB! + + + + An error occurred while upgrading the system! + ¡Se produjo un error al actualizar el sistema! + + + + Restart upgrade ... + Reiniciando la actualización ... + + + + This file could not be copied because it does not exist: + Este archivo no puede ser copiado porque no existe: + + + + The following partition has no UUID: + La siguiente partición no tiene UUID: + + + + An error occurred while creating a new partition on the following device: + Un error ocurrió mientras se creaba una nueva partición en el siguiente dispositivo: + + + + An error occurred while mounting the following partition/image: + Un error ocurrió durante el montaje de la siguiente partición/imagen: + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + Un error ocurrió cuando se creaba la tabla de partición en el siguiente dispositivo: + + + + An error occurred while unmounting the following partition/image/mount point: + Un error ocurrió durante el desmontaje de la siguiente partición/imagen/punto de montaje: + + + + An error occurred while cloning the properties of the following item: + Un error ocurrió cuando se clonaban las propiedades del siguiente elemento: + + + + Target item: + Elemento de destino: + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + Un error ocurrió cuando se clonaba el siguiente archivo: + + + + Target file: + Archivo de destino: + + + + An error occurred while cloning the following directory: + Un error ocurrió cuando se clonaba el siguiente directorio: + + + + Target directory: + Directorio destino: + + + + An error occurred while deleting the following directory: + Un error ocurrió cuando se borraba el siguiente directorio: + + + + + Cannot start the Systemback scheduler daemon! + ¡No se puede iniciar el servicio de programación de eventos de Systemback! + + + + + Missing, wrong or too much argument(s). + + + + + The process is disabled for this user. + + + + + Root privileges are required. + Se necesitan permisos administrativos. + + + + This system is a Live. + + + + + Already running. + Ya está en ejecución. + + + + Unable to daemonize. + No se puede convertir en servicio. + + + + Cannot start the Systemback graphical user interface! + + + + + Unable to get root permissions. + + + + + Unable to connect to the X server. + No se puede conectar al servidor X. + + + + Full name of the new user: + Nombre completo del usuario nuevo: + + + + New username to login: + Nombre de usuario para iniciar sesión: + + + + New user account password: + Contraseña de la cuenta de usuario nueva: + + + + New root password (optional, not recommended for Ubuntu): + Nueva contraseña root (opcional, no recomendable para Ubuntu): + + + + New hostname: + Nombre nuevo del equipo: + + + + + + + + + + + + + + + + Back + Atrás + + + + + + + + Next + Siguiente + + + + + Working directory + Directorio de trabajo + + + + Created Live images + Live imágenes disponibles + + + + Name of the Live system + Nombre del sistema Live + + + + + + + + Options + Opciones + + + + Write target + Dispositivos disponibles + + + + Live operations + Opciones Live + + + + Include the user data files + Incluir archivos de datos de usuario + + + + Redetect devices + Volver a detectar dispositivos + + + + + + Delete + Eliminar + + + + Write to target + Escribir en el destino + + + + Convert to ISO + Convertir a ISO + + + + + + Create new + Crear nuevo + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Monte la partición del sistema defectuoso en el directorio '/mnt' según la estructura original.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + + + Mount + Montar + + + + Reset mounts + Restablecer montajes + + + + Repair type + Tipo de reparación + + + + GRUB 2 repair + Reparar el GRUB 2 + + + + System files repair + Reparación del sistema de archivos + + + + + Reinstall GRUB 2 bootloader: + Reinstalación del gestor de arranque GRUB 2: + + + + + Auto detection + Detección automática + + + + Full repair + Reparación completa + + + + Do not repair the fstab file + No reparar el archivo fstab + + + + Exclude hidden user files and directories from restore points + Excluir archivos ocultos de usuario y directorios de puntos de restauración + + + + Exclude user data files and directories from Live system + Excluir archivos de datos del usuario y directorios del sistema Live + + + + Excludable items + Elementos excluibles + + + + Excluded items + Excluir elementos + + + + + Remove item from the exclusion list + Quitar elementos de la lista de exclusión + + + + + Add item to the exclusion list + Agregar elementos a la lista de esclusión + + + + Scheduler state: + Estado de tareas programadas: + + + + + + + + + + + + + + Disabled + Desactivado + + + + Timer settings + Ajustes del temporizador + + + + Waiting time before creating a new restore point: + El tiempo de espera antes de crear un nuevo punto de restauración: + + + + Visible countdown time: + Temporizador de cuenta atrás visible: + + + + Pop-up window position on screen: + Posición de la ventana emergente en la pantalla: + + + + Use silent mode + Utilizar modo silencioso + + + + + + + More + Más + + + + + + + Less + Menos + + + + Simple system backup and restore application with extra features + Programa sencillo para crear copias de seguridad y restaurar el sistema + + + + Project homepage: + Página web del proyecto: + + + + Contact: + Contacto: + + + + Donate: + Donar: + + + + Systemback version: + Versión de Systemback: + + + + + License + Licencia + + + + Re-read directories + Recargar directorios + + + + Writable Linux filesystem! + ¡Sistema de archivos Linux (writable)! + + + + + + + Cancel + Cancelar + + + + + + + + + + + Maximum number of temporary restore points + Número máximo de puntos temporales de restauración + + + + Restore points + Puntos de restauración + + + + Highlighted restore points + Puntos destacados + + + + Point operations + Acciones + + + + Highlight + Poner en destacados + + + + Rename + Renombrar + + + + + + + + + + + + + + + + + + Select restore point + Selecciona punto de restauración + + + + + + + + + Storage directory + Ruta de almacenamiento + + + + Function menu + Menú de funciones + + + + + Schedule + Tareas programadas + + + + + + About + Acerca de + + + + + Settings + Preferencias + + + + System upgrade + Actualizar sistema + + + + + System install + Instalar sistema + + + + + + + Live system create + Crear sistema Live + + + + + System repair + Reparar sistema + + + + + + System restore + Restaurar sistema + + + + + + + System copy + Copiar sistema + + + + + Exclude + Excluir + + + + + Include + Incluir + + + + Change path + Cambiar ruta + + + + + + + + + + + + + + + + + + empty + vacío + + + + + + + + + + + not used + no utilizar + + + + Restore type + Seleccione un tipo de restauración + + + + + + + + + Full restore + Restauración completa + + + + + + + + + System files restore + Restaurar archivos del sistema + + + + User(s) configuration files restore + Restaurar archivos de configuración de usuario(s) + + + + + Keep newly installed configuration files + Mantener los archivos de configuración recientemente instalados + + + + Include user(s): + Incluir usuario(s): + + + + Do not restore the fstab file + No restaurar el archivo fstab + + + + Partition settings + Configuración de discos y particiones + + + + + + + + Transfer user configuration files + Transferir archivos de configuración de usuario + + + + Copy user data files + Copiar archivos de datos de usuario + + + + Install GRUB 2 bootloader: + Instalar el gestor de arranque GRUB 2: + + + + + + Format + Formatear + + + + + + Reset partitions settings + Reiniciar la configuración de particiones + + + + + + + + + + Unmount + Desmontar + + + + Change partition settings + Cambiar la configuración de particiones + + + + Filesystem: + Sistema de archivos: + + + + Mount point: + Punto de montaje: + + + + + + + + + ! Delete ! + ¡ Eliminar ! + + + + Add new partition + Agregar nueva partición + + + + Create new: + Crear nuevo: + + + + Need to set the mount point as '/boot/efi'! + ¡Se necesita establecer el punto de montaje como '/boot/efi'! + + + + Window DPI scaling + Escala de la ventana en DPI + + + + Multiplier factor for scaling the window contents + Factor de multiplicación de escala para el contenido de la ventana + + + + User interface + Interfaz de usuario + + + + Window always on top + Ventana siempre encima + + + + System + Sistema + + + + Disable scheduler daemon starting for the following users: + Desactivar demonio del planificador comenzando por los siguientes usuarios: + + + + Use XZ compressor for squashfs filesystems + Use el compresor XZ para sistema de archivos squashfs + + + + Override auto-detected language: + Sobreescribir lenguaje auto-detectado: + + + + Override the used style: + Sobreescribir el estilo usado: + + + + Disable incremental restore points (do not use hard links between backups) + + + + + Create Live ISO images automatically (faster than the conversion) + Crear imágenes Live ISO automáticamente (más rápido que convertir) + + + + Do not empty memory cache at the end of some processes + No vacíe la caché de memoria al finalizar algún proceso + + + + Includable items + Elementos incluibles + + + + Included items + Elementos incluidos + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + Incluir archivos y directorios del usuario en los puntos de restauración +¡Estos serán definidos como archivos de configuración para restauración! + + + + ! Interrupt ! + ¡ Interrumpir ! + + + + Creates a scheduled restore point within few seconds. + Crea un punto de restauración programado en pocos segundos. + + + + + + Start + Iniciar + + + + Later + Más adelante + + + + Systemback user authentication + Autentificación de usuario de Systemback + + + + Administrator: + Administrador: + + + + Password: + Contraseña: + + + + Unsafe X Window authorization! + + + + + Please do not use 'sudo' command. + Por favor no use el comando 'sudo'. + + + + + + + + + Transfer user configuration and data files + Transferir archivos y datos de configuración de usuario + + + + + + scheduler + tareas programadas + + + + + Partition + Partición + + + + + Size + Tamaño + + + + Label + Etiqueta + + + + Current mount point + Punto de montaje actual + + + + New mount point + Nuevo punto de montaje + + + + Filesystem + sistema de archivos + + + + Device + Dispositivo + + + + + Top left + Arriba a la izquierda + + + + + + Top right + Arriba a la derecha + + + + + + Center + Centrada + + + + + + Bottom left + Abajo a la izquierda + + + + + Bottom right + Abajo a la derecha + + + + + + day(s) + día(s) + + + + + + hour(s) + hora(s) + + + + + + + + minute(s) + minuto(s) + + + + + + seconds + segundos + + + + + + + Everyone + Cualquiera + + + + + + Currently running system + sistema actual en ejecución + + + + + Emptying cache + Vaciando caché + + + + + Flushing filesystem buffers + + + + + + Restoring the full system + Restauración completa del sistema + + + + + Restoring the system files + Restaurando sistema de archivos + + + + Restoring the user(s) configuration files + Restaurando configuración de archivos de usuario(s) + + + + Repairing the system files + Reparando sistema de archivos + + + + Repairing the full system + Reparando por completo el sistema + + + + Repairing the GRUB 2 + Reparación del GRUB 2 + + + + Copying the system + Copiando sistema + + + + Installing the system + Instalando el sistema + + + + Writing Live image to the target device + Escribir la imagen Live en el dispositivo de destino + + + + Upgrading the system + Actualizado el sistema + + + + + Deleting incomplete restore point + Eliminando punto de restauración incompleto + + + + Interrupting the current process + Interrumpiendo el proceso actual + + + + Deleting old restore point + Eliminando punto de restauración obsoleto + + + + + Creating restore point + Creando punto de restauración + + + + + Deleting restore point + Eliminando punto de restauración + + + + Converting Live system image + Convirtiendo imagen del sistema Live + + + + + process + proceso + + + + Creating Live system + Creando sistema Live + + + + + + + + + Reboot + Reiniciar + + + + + + + X restart + Reiniciar X + + + + + + Live image + Imagen Live + + + + Restore the system files to the following restore point: + Restaurar los archivos de sistema al siguiente punto de restauración: + + + + Repair the system files with the following restore point: + Reparación de los archivos de sistema al siguiente punto de restauración: + + + + Repair the complete system with the following restore point: + Reparación completa del sistema al siguiente punto de restauración: + + + + Restore the complete user(s) configuration files to the following restore point: + Restauración completa de archivos de configuración de usuario(s) al siguiente punto de restauración: + + + + Restore the user(s) configuration files to the following restore point: + Restaurar los archivos de configuración de usuario(s) al siguiente punto de restauración: + + + + Copy the system, using the following restore point: + Copiar sistema usando el siguiente punto de restauración: + + + + Install the system, using the following restore point: + Instalar sistema usando el siguiente punto de restauración: + + + + Restore the complete system to the following restore point: + Restaurar completamente el sistema al siguiente punto de restauración: + + + + Format the %1, and write the following Live system image: + Formatear %1, y escribir la siguiente imagen del sistema Live: + + + + Repair the GRUB 2 bootloader. + Reparar el cargador de arranque GRUB 2. + + + + The user(s) configuration files full restoration are completed. + Completada la restauración total de archivos de configuración de usuario(s). + + + + + The X server will restart automatically within 30 seconds. + El servidor X se reiniciará automáticamente en 30 segundos. + + + + The user(s) configuration files restoration are completed. + Completada la restauración de archivos de configuración de usuario(s). + + + + The full system repair is completed. + Reaparación total del sistema completada. + + + + The system repair is completed. + Reaparación del sistema completada. + + + + + The system files restoration are completed. + Restauración del sistema de archivos completada. + + + + + + The computer will restart automatically within 30 seconds. + El equipo se reiniciará automáticamente en 30 segundos. + + + + + The full system restoration is completed. + Restauración completa del sistema realizada. + + + + The system copy is completed. + Copia del sistema completada. + + + + The Live system creation is completed. + La creación del systema Live se ha completado. + + + + The created .sblive file can be written to pendrive. + El archivo .sblive puede ser grabado en una memoria USB. + + + + The GRUB 2 repair is completed. + Reaparación del GRUB 2 completada. + + + + The system install is completed. + instalación del sistema completado. + + + + The Live system image write is completed. + La escritura de la imagen del sistema Live se ha completado. + + + + + An another Systemback process is currently running, please wait until it finishes. + Otro proceso de Systemback se está ejecutando, por favor espere hasta que éste termine. + + + + + Unable to get exclusive lock! + ¡No se pudo obtener el bloqueo exclusivo! + + + + + First, close all package manager. + Cierre cualquier gestor de paquetes que tenga abierto. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + The specified name contain(s) unsupported character(s)! + ¡El nombre especificado contiene caracteres no admitidos! + + + + Please enter a new name. + Por favor introduzca un nombre nuevo. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + ¡Reparación del sistema de archivos completada, pero se produjo un error al reinstalar GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + El sistema no podrá arrancar! (Una arquitectura diferente puede estar causando este problema.) + + + + + + + The restore point creation is aborted! + ¡Creación del punto de restauración abortado! + + + + + + Not enough free disk space to complete the process. + No hay suficiente espacio libre en el disco para completar el proceso. + + + + + Root privileges are required for running the Systemback! + ¡Se necesitan privilegios root para ejecutar Systemback! + + + + + + + + The system copy is aborted! + ¡La copia del sistema se abortó! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + La partición especificada no tiene suficiente espacio libre. La copia del sistema no funcionarán correctamente. + + + + The system copy is completed, but an error occurred while installing the GRUB! + ¡Copia del sistema completada, pero se produjo un error durante la instalación del GRUB! + + + + + You need to manually install a bootloader. + Será necesario instalar manualmente un gestor de arranque. + + + + + The system restoration is aborted! + ¡La restauración del sistema está cancelada! + + + + An error occurred while reinstalling the GRUB. + Un error ocurrió cuando se reinstalaba GRUB. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + ¡Reparación del sistema completada, pero se produjo un error al reinstalar el GRUB! + + + + + + + + The Live system creation is aborted! + ¡La creación del systema Live se ha abortado! + + + + An error occurred while creating the file system image. + Un error ocurrió mientras se creaba la imagen del sistema de archivo. + + + + An error occurred while creating the container file. + Se produjo un error al crear el archivo contenedor. + + + + + + The specified partition could not be mounted. + La partición especificada no se pudo montar. + + + + The system install is completed, but an error occurred while installing the GRUB! + ¡Instalación completada, pero se produjo un error durante la instalación del GRUB! + + + + + + + + The system installation is aborted! + ¡La instalación del sistema se abortó! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + La partición especificada no tiene suficiente espacio libre. El sistema instalado no funcionará correctamente. + + + + + + The specified partition could not be formatted (in use or unavailable). + No se pudo dar formato a la partición especificada (ésta se encuentra en uso o no está disponible). + + + + An error occurred while reinstalling the GRUB! + ¡Se produjo un error al reinstalar el GRUB! + + + + + + + + + + There has been critical changes in the file system during this operation. + No han habido cambios significativos en el sistema de archivos durante esta operación. + + + + + + + + The Live write is aborted! + ¡La escritura de Live ha sido interrumpida! + + + + The selected device does not have enough space to write the Live system. + El dispositivo seleccionado no tiene suficiente espacio para grabar el sistema Live. + + + + An error occurred while unpacking the Live system files. + Ocurrió un error al descomprimir los archivos del sistema Live. + + + + + + + The Live conversion is aborted! + ¡La conversión a Live se ha interrumpido! + + + + An error occurred while renaming the essential Live files. + Ocurrió un error al cambiar el nombre de archivos esenciales del sistema Live. + + + + An error occurred while creating the .iso image. + Se produjo un error durante la creación de la imagen .iso. + + + + An error occurred while reading the .sblive image. + Se produjo un error durante la lectura de la imagen . sblive. + + + + An error occurred while creating the new initramfs image. + Ocurrió un error al crear la nueva imagen initramfs. + + + + + The restore point deletion is aborted! + ¡La eliminación del punto de restauración está cancelada! + + + + + An error occurred while during the process. + Un error ocurrió durante el proceso. + + + + + + The Live image could not be mounted. + La imagen Live no puede ser montada. + + + + + The system repair is aborted! + ¡La reparación del sistema está cancelada! + + + + + There is not enough free space. + No hay suficiente espacio libre. + + + + + + + + Multiple mount points + Múltiples puntos de montaje + + + + Enabled + Activado + + + + Systemback worker thread is interrupted by the user. + + + + + Boot Live without xorg.conf file + Arrancar sistema Live sin el archivo xorg.conf + + + + + + Boot Live system + Arrancar sistema Live + + + + + + Boot system installer + Instalador de sistema de arranque + + + + + + Boot Live in safe graphics mode + Arrancar sistema Live en modo grafico seguro + + + + + + Boot Live in debug mode + Arrancar en modo de depuracion + + + + Press 'E' key to edit + Pulse la tecla 'E' para editar + + + + Press TAB key to edit + Pulse la tecla TAB para editar + + + + An error occurred while changing the access permissions of the following file: + + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + + + + + basic restore UI + + + + + The Systemback command line interface cannot be used on a Live system! + + + + + This stupid terminal does not support color! + ¡Esta estúpida terminal no permite colores! + + + + This terminal is too small! + ¡Esta terminal es muy pequeña! + + + + The specified storage directory path has not been set! + ¡No se estableció un directorio para la ruta de almacenamiento! + + + + The restoration is aborted! + ¡Se interrumpió la restauración! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + ¡Restauración completada, pero se produjo un error al reinstalar el GRUB! + + + + The restore points storage directory is not available or not writable! + ¡El directorio de almacenamiento de puntos de restauración no está disponible o no se puede escribir! + + + + Available restore point(s): + Punto(s) de Restauración disponible(s): + + + + Quit + Salir + + + + Selected restore point: + Punto de restauración seleccionado: + + + + The specified storage directory path is set. + Se estableció un directorio para la ruta de almacenamiento. + + + + Restore with the following restore point: + Restaurar al siguiente punto de restauración: + + + + Restore with the following restore method: + Realizar la restauración con el siguiete criterio: + + + + Users configuration files restore + Restaurar archivos de configuración de usuarios + + + + + Complete configuration files restore + Restauración completa de configuración de archivos + + + + Configuration files restore + Restaurar archivos de configuración + + + + + + You want to keep the current fstab file? + ¿Desea mantener el archivo actual fstab? + + + + + + + + + + + (Y/N) + (Y/N) + + + + + + + Reinstall the GRUB 2 bootloader? + ¿Reinstalar el gestor de arranque GRUB 2? + + + + Start the restore? + ¿Iniciar la restauración? + + + + The users configuration files full restoration are completed. + Completada la restauración total de archivos de configuración de usuarios. + + + + The users configuration files restoration are completed. + Completada la restauración de archivos de configuración de usuarios. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Presione «INTRO» para reiniciar el equipo o «Q» para salir. + + + + Press 'ENTER' key to quit. + Presione la tecla «INTRO» para salir. + + + + Deleting old restore point(s) + Borrando punto(s) de restauración antiguo(s) + + + + Restoring the users configuration files + Restaurando configuración de archivos de usuario + + + diff --git a/lang/systemback_fi.ts b/lang/systemback_fi.ts new file mode 100644 index 0000000..68d4db8 --- /dev/null +++ b/lang/systemback_fi.ts @@ -0,0 +1,1884 @@ + + + + + systemback + + + Full name of the new user: + Uuden käyttäjän koko nimi: + + + + New username to login: + Uusi käyttäjätunnus: + + + + New user account password: + Uuden käyttäjän salasana: + + + + New root password (optional, not recommended for Ubuntu): + Uusi root käyttäjän salasana (valinnainen, ei suositella Ubuntuun): + + + + New hostname: + Uusi hostname: + + + + + + + + + + + + + + + + Back + Edellinen + + + + + + + + Next + Seuraava + + + + + Working directory + Työkansio + + + + Created Live images + Valmistettu Live-kuvat + + + + Name of the Live system + Live järjestelmän nimi + + + + + + + + Options + Asetukset + + + + Write target + Kirjoita kohde + + + + Live operations + + + + + Include the user data files + + + + + Redetect devices + Tunnista laitteet uudelleen + + + + + + Delete + Poista + + + + Convert to ISO + Muutta ISO muotoon + + + + + + Create new + Luo uusi + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Liitta viallinen järjestelmaosio '/mnt' kansioon alkuperäinen rakennen mukaan .<br>('/' -> '/mnt', '/home' -> '/mnt/home', jne.) + + + + + Mount + Liitä + + + + Reset mounts + Nollata liitoskohdat + + + + Repair type + Korjaus tyyppi + + + + GRUB 2 repair + GRUB 2:n korjaus + + + + System files repair + Järjestelmätiedostojen korjaus + + + + + Reinstall GRUB 2 bootloader: + GRUB 2:n uudelleen asennus: + + + + + Auto detection + Automaattinen tunnistus + + + + Full repair + Täydellinen korjaus + + + + Do not repair the fstab file + Älä korjaa fstab:a + + + + Exclude hidden user files and directories from restore points + Ohita käyttäjien piilotetut tiedostot ja kansiot palautuspisteistä + + + + Exclude user data files and directories from Live system + + + + + Excluded items + Ohitetut kohteet + + + + + Remove item from the exclusion list + + + + + + Add item to the exclusion list + + + + + Scheduler state: + + + + + + + + + + + + + + + Disabled + Poistettu käytöstä + + + + Timer settings + Ajastimen asetukset + + + + Waiting time before creating a new restore point: + Odotusaika ennen uuden palautuspisteen luomista: + + + + Visible countdown time: + + + + + Pop-up window position on screen: + Pop-up ikkunan sijainti: + + + + Use silent mode + + + + + + + + More + Lisää + + + + + + + Less + Vähemmän + + + + Simple system backup and restore application with extra features + Yksinkertainen järjestelmän varmuuskopiointi ja palautussovellus joka sisältää lisäominaisuuksia + + + + Project homepage: + Projektin kotisivu: + + + + Contact: + Yhteystiedot: + + + + Donate: + Lahjoita: + + + + Systemback version: + Systemback versio: + + + + + License + Lisenssi + + + + Re-read directories + + + + + Writable Linux filesystem! + Kirjoitettava Linux tiedostojärjestelmä! + + + + + + + Cancel + Keskeytä + + + + + + + + + + + Maximum number of temporary restore points + Väliaikaisen palautuspisteiden enimmäismäärä + + + + + Include + + + + + + + + + + + + + + + + + + + empty + tyhjä + + + + + + + + + + + not used + ei käytetä + + + + Includable items + + + + + Included items + + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + + Restore points + Palautuspisteet + + + + Highlighted restore points + Korostetut palautuspisteet + + + + Point operations + Palautuspiste toiminnot + + + + Highlight + Korosta + + + + Rename + Nimeä uudelleen + + + + + + + + + + + + + + + + + + Select restore point + Valitse palautuspiste + + + + + + + + + Storage directory + Tietohakemisto + + + + Function menu + Toimintovalikko + + + + + + System restore + Järjestelmän palautus + + + + + + + System copy + Kopio järjestelmästä + + + + + System install + Järjestelmän asennus + + + + + + + Live system create + Luo Live järjestelmä + + + + + System repair + Järjestelmän korjaus + + + + System upgrade + Järjestelmän päivitys + + + + + Exclude + Ohita + + + + + Schedule + Ajastin + + + + Excludable items + + + + + + + About + Tietoja + + + + + Settings + + + + + Change path + Muuta polku + + + + Restore type + Palautuksen tapa + + + + + + + + + Full restore + Koko järjestelmän palautus + + + + + + + + + System files restore + Järjestelmän tiedostojen palauttaminen + + + + User(s) configuration files restore + + + + + + Keep newly installed configuration files + Pidä uudet asennustiedostot + + + + Include user(s): + Sisällytä käyttäjä(t): + + + + Do not restore the fstab file + Älä palauta fstab:a + + + + Partition settings + Osion asetukset + + + + Need to set the mount point as '/boot/efi'! + + + + + Window DPI scaling + + + + + Multiplier factor for scaling the window contents + + + + + User interface + + + + + Window always on top + + + + + System + + + + + Disable scheduler daemon starting for the following users: + + + + + Use XZ compressor for squashfs filesystems + + + + + Override auto-detected language: + + + + + Override the used style: + + + + + Disable incremental restore points (do not use hard links between backups) + + + + + Create Live ISO images automatically (faster than the conversion) + + + + + Do not empty memory cache at the end of some processes + + + + + + + + + + + Unmount + Irrota + + + + Write to target + + + + + Mount point: + Liitoskohta: + + + + + + + + + ! Delete ! + + + + + Add new partition + + + + + Create new: + Luo uusi: + + + + Filesystem: + Tiedostojärjestelmä: + + + + + + Format + Alusta + + + + + + Reset partitions settings + + + + + Change partition settings + + + + + + + + + Transfer user configuration files + + + + + Copy user data files + Kopioi käyttäjän tiedostot + + + + Install GRUB 2 bootloader: + Asenna Grub 2 käynnistyslatain: + + + + + + + + + Transfer user configuration and data files + + + + + ! Interrupt ! + ! Keskeytys ! + + + + Creates a scheduled restore point within few seconds. + + + + + + + Start + Aloita + + + + Later + Myöhemmin + + + + Systemback user authentication + + + + + Administrator: + + + + + Password: + + + + + + Partition + Osio + + + + + Size + + + + + Current mount point + Nykyinen liitoskohta + + + + New mount point + Uusi liitoskohta + + + + Filesystem + Tiedostojärjestelmä + + + + Device + Laite + + + + + + scheduler + ajastin + + + + + Top left + Vasen yläreuna + + + + + + Top right + Oikea yläreuna + + + + + + Center + Keskellä + + + + + + Bottom left + Vasen alareuna + + + + + Bottom right + Oikea alareuna + + + + + + day(s) + päivä(ä) + + + + + + hour(s) + tunti(a) + + + + + + + + minute(s) + minuutti(a) + + + + + + seconds + sekunttia + + + + + + Live image + Live levykuva + + + + + + Currently running system + Tällä hetkellä käytössä järjestelmä + + + + + Creating restore point + Luodaan palautuspiste + + + + + Restoring the full system + Palautetaan koko järjestelmä + + + + + Restoring the system files + Palautetaan järjestelmätiedostot + + + + Restoring the user(s) configuration files + Palautetaan käyttäjä(t) asetustiedostot + + + + Repairing the system files + Korjataan järjestelmätiedot + + + + Repairing the full system + Koko järjestelmän korjaus + + + + Copying the system + Järjestelmän kopiointi + + + + Installing the system + Asennetaan järjestelmää + + + + Creating Live system + Luodaan Live järjestelmä + + + + + Deleting restore point + Poistetaan palautuspiste + + + + Deleting old restore point + Poistetaan vanha(t) palautuspiste + + + + + Deleting incomplete restore point + Epätäydellinen palautuspisteen poistaminen + + + + + Flushing filesystem buffers + + + + + + + + + + Reboot + Reboot + + + + + + + X restart + X restart + + + + Repairing the GRUB 2 + GRUB 2:n korjaaminen + + + + + Emptying cache + Tyhjennetään välimuisti + + + + + An another Systemback process is currently running, please wait until it finishes. + Toinen Systemback prosessi on käynnissä, odota kunnes se päättyy. + + + + Please enter a new name. + Anna uusi nimi. + + + + The Live system creation is completed. + + + + + The created .sblive file can be written to pendrive. + + + + + Restore the system files to the following restore point: + Palauta järjestelmän tiedostot seuraavaan palautuspisteen: + + + + Label + + + + + Writing Live image to the target device + + + + + The specified name contain(s) unsupported character(s)! + Nimi sisältää ei tuettuja merkkejä! + + + + Repair the system files with the following restore point: + Korjaa järjestelmätiedostot seuraavan palautuspisten avulla: + + + + Repair the complete system with the following restore point: + Täydellinen järjestelmän korjaus seuraavaan palautuspisteen: + + + + Restore the complete user(s) configuration files to the following restore point: + Täydellinen käyttäjä(t) asetustiedostojen palautus seuraavaan palautuspisteen: + + + + Restore the user(s) configuration files to the following restore point: + Palauttaa käyttäjä(t) asennustiedostot seuraavaan palautuspisteen: + + + + The user(s) configuration files full restoration are completed. + Käyttäjä(t) asetustiedostojen täysi palautuminen on valmis. + + + + + The X server will restart automatically within 30 seconds. + X palvelin käynnistyy automaattisesti 30 sekunnin kuluessa. + + + + The user(s) configuration files restoration are completed. + Käyttäjä(t) asennustiedostojen palauttaminen on valmis. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Järjestelmän korjaus on valmis, mutta tapahtui GRUB:n asennusvirhe! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + Ei voi käynnistää käyttöjärjestelmää! (Yleisesti eri arkkitehtuurin syystä.) + + + + The full system repair is completed. + Koko järjestelmän korjaus on valmis. + + + + The system repair is completed. + Järjestelmän korjaus on valmis. + + + + Copy the system, using the following restore point: + Kopioi järjestelmä, käyttäen palautuspisteen: + + + + Install the system, using the following restore point: + Asentaa järjestelmä, käyttäen palautuspisteen: + + + + + + + The restore point creation is aborted! + Palautuspisteen luominen on keskeytetty! + + + + + + Not enough free disk space to complete the process. + Ei tarpeeksi vapaata levytilaa prosessin suorittamiseen. + + + + + Root privileges are required for running the Systemback! + Systemback tarvitsee pääkäyttäjän oikeudet käynnistyäkseen! + + + + Restore the complete system to the following restore point: + Täydellinen järjestelmän palauttaminen seuraavaan palautuspisteeseen: + + + + + The system files restoration are completed. + Järjestelmätiedostojen palauttaminen on valmis. + + + + + + The computer will restart automatically within 30 seconds. + Tietokone käynnistyy uudelleen automaattisesti 30 sekunnin kuluessa. + + + + + The full system restoration is completed. + Koko järjestelmän palauttaminen on valmis. + + + + + + + + The system copy is aborted! + Järjestelmän kopiointi on keskeytetty! + + + + Format the %1, and write the following Live system image: + + + + + The selected device does not have enough space to write the Live system. + + + + + + There is not enough free space. + + + + + Interrupting the current process + + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + Valitulla osiolla(osioilla) ei ole tarpeeksi tilaa järjestelmän kopioimiseen. Järjestelmä ei saata toimia kunnolla. + + + + The system copy is completed, but an error occurred while installing the GRUB! + Järjestelmän kopiointi on valmis, mutta tapahtui virhe GRUB:n asennuksessa! + + + + + You need to manually install a bootloader. + Asenna käynnistyslatain manuaalisesti. + + + + + The system restoration is aborted! + + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + Osiolla ei ole tarpeeksi vapaata tilaa järjestelmän asentamiseen. Asennettu järjestelmä ei tule toimimaan oikein. + + + + + + The specified partition could not be formatted (in use or unavailable). + Valitun osion alustaminen ei onnistunut (käytössä tai ei saatavilla). + + + + An error occurred while reinstalling the GRUB! + GRUB:n uudelleen asennuksessa tapahtui virhe! + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Järjestelmän korjaus on valmis, mutta tapahtui virhe GRUB:n uudelleen asennuksessa! + + + + The system copy is completed. + Järjestelmän kopiointi on valmis. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + + + + + The Live system creation is aborted! + + + + + An error occurred while creating the file system image. + Virhe luotaessa tiedostojärjestelmän kuva. + + + + An error occurred while creating the container file. + + + + + + + The specified partition could not be mounted. + Valittua osiota ei voida liittää. + + + + An error occurred while unpacking the Live system files. + Live-järjestelmän tiedostojen purkamisesta tapahtui virhe. + + + + An error occurred while renaming the essential Live files. + Tärkeiden Live-tiedostojen uudelleennimeämisessä tapahtui virhe. + + + + An error occurred while creating the .iso image. + .iso kuvan luotaessa tapahtui virhe. + + + + An error occurred while reading the .sblive image. + + + + + An error occurred while creating the new initramfs image. + + + + + + + The Live image could not be mounted. + + + + + + + Boot system installer + + + + + The GRUB 2 repair is completed. + GRUB 2:n korjaus on valmis. + + + + An error occurred while reinstalling the GRUB. + + + + + The system install is completed. + Järjestelmän asennus on valmis. + + + + The system install is completed, but an error occurred while installing the GRUB! + Järjestelmän asennus on valmis, mutta tapahtui virhe käynnistyslataaja GRUB:n asennuksessa! + + + + + + + + The system installation is aborted! + Järjestelmän asennus on keskeytetty! + + + + + + + + + + There has been critical changes in the file system during this operation. + Toimenpiteen aikana tapahtui kriittisiä muutoksia tiedostojärjestelmään. + + + + Repair the GRUB 2 bootloader. + Korja GRUB 2 bootloader. + + + + + + + + The Live write is aborted! + + + + + The Live system image write is completed. + Live-järjestelmän luominen on valmis. + + + + + + + The Live conversion is aborted! + + + + + + The restore point deletion is aborted! + + + + + + An error occurred while during the process. + + + + + + The system repair is aborted! + + + + + + + + Everyone + + + + + Upgrading the system + Järjestelmän päivitys + + + + + + + + Multiple mount points + + + + + Enabled + + + + + Systemback worker thread is interrupted by the user. + + + + + + process + + + + + Boot Live without xorg.conf file + Boot Live-jarjestema ilman xorg.conf tiedostoa + + + + + + Boot Live system + Boot Live-jarjestelma + + + + + + Boot Live in safe graphics mode + Boot Live:n turvallisessa grafiikkatilassa + + + + + + Boot Live in debug mode + Boot Live:n debug-tilassa + + + + Press 'E' key to edit + + + + + Press TAB key to edit + + + + + Converting Live system image + + + + + + Unable to get exclusive lock! + Ei saatu haluttua lukitusta! + + + + + First, close all package manager. + Sulje kaikki pakettienhallintaohjelmaa. + + + + The specified storage directory path has not been set! + Määritelty varastointi hakemistopolkua ei asetettu! + + + + The restoration is aborted! + Palauta keskeytetään! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Palautus on valmis, mutta GRUB:n asennuksessa tapahtui virhe! + + + + The restore points storage directory is not available or not writable! + + + + + This stupid terminal does not support color! + + + + + This terminal is too small! + + + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + + + + + An error occurred while creating the following directory: + + + + + An error occurred while removing the following file: + + + + + An error occurred while creating the following hard link: + + + + + Reference file: + + + + + An error occurred while creating the following file: + + + + + An error occurred while renaming the following item: + + + + + New path: + + + + + An error occurred while executing the following command: + + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + + + + + An error occurred while upgrading the system! + Järjestelmän päivitys on virheellinen! + + + + Restart upgrade ... + Käynnistä uudelleen päivitys ... + + + + This file could not be copied because it does not exist: + + + + + The following partition has no UUID: + + + + + An error occurred while creating a new partition on the following device: + + + + + An error occurred while mounting the following partition/image: + + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + + + + + An error occurred while unmounting the following partition/image/mount point: + + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + + + + + Target file: + + + + + An error occurred while cloning the following directory: + + + + + Target directory: + + + + + An error occurred while deleting the following directory: + + + + + basic restore UI + + + + + Available restore point(s): + + + + + Quit + Lopeta + + + + Selected restore point: + + + + + The specified storage directory path is set. + Määritelty varastointi hakemistopolkua on asetettu. + + + + Deleting old restore point(s) + + + + + Restore with the following restore point: + Palautus seuraavan palautuspisten avulla: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + + + + + The Systemback command line interface cannot be used on a Live system! + + + + + Restore with the following restore method: + Palauttaa seuraavaalla menetelmällä: + + + + Users configuration files restore + Palauta käyttäjien asennustiedostot + + + + + Complete configuration files restore + Täydellinen asetustiedostojen palautus + + + + Configuration files restore + Palautetaan asetustiedostot + + + + + + You want to keep the current fstab file? + Haluatko pitää nykyisen fstab tiedoston? + + + + + + + + + + + (Y/N) + (K/E) + + + + + + + Reinstall the GRUB 2 bootloader? + Asentamaanko GRUB 2:n uudelleen? + + + + Start the restore? + Aloitetaanko palautus? + + + + Restoring the users configuration files + Palautetaan käyttäjien asetustiedostot + + + + The users configuration files full restoration are completed. + Käyttäjien asetustiedostojen täysi palautuminen on valmis. + + + + The users configuration files restoration are completed. + Käyttäjien asennustiedostojen palauttaminen on valmis. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Painaa 'ENTER' käynnistä tietokone uudelleen, tai 'Q' lopettaa. + + + + Press 'ENTER' key to quit. + + + + + An error occurred while changing the access permissions of the following file: + + + + + + Cannot start the Systemback scheduler daemon! + + + + + + Missing, wrong or too much argument(s). + + + + + The process is disabled for this user. + + + + + Root privileges are required. + + + + + This system is a Live. + Tämä järjestelmä on Live. + + + + Already running. + + + + + Unable to daemonize. + + + + + Cannot start the Systemback graphical user interface! + + + + + Unable to get root permissions. + + + + + Unable to connect to the X server. + + + + + Unsafe X Window authorization! + + + + + Please do not use 'sudo' command. + Alä käytä 'sudo' komentoa. + + + diff --git a/lang/systemback_fr.ts b/lang/systemback_fr.ts new file mode 100644 index 0000000..1e6a068 --- /dev/null +++ b/lang/systemback_fr.ts @@ -0,0 +1,1899 @@ + + + + + systemback + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + Le niveau de débogage spécifié est invalide ! + + + + The default level (1) will be used. + Le niveau par défaut (1) sera utilisé. + + + + An error occurred while opening the following file: + Une erreur s'est produite lors de l'ouverture du fichier suivant : + + + + An error occurred while creating the following directory: + Une erreur s'est produite lors de la création du répertoire suivant : + + + + An error occurred while removing the following file: + Une erreur s'est produite lors de la suppression du fichier suivant : + + + + An error occurred while creating the following hard link: + Une erreur s'est produite lors de la création du lien physique suivant : + + + + Reference file: + fichier de référence : + + + + An error occurred while creating the following file: + Une erreur s'est produite lors de la création du fichier suivant : + + + + An error occurred while renaming the following item: + Une erreur s'est produite lors du changement de nom de l'élément suivant : + + + + New path: + Nouveau chemin : + + + + An error occurred while executing the following command: + Une erreur s'est produite lors de l’exécution de la commande suivante : + + + + Exit code: + Code de sortie : + + + + Failed to detect the device for installing the GRUB! + Échec de détection de périphérique pour l'installation de GRUB ! + + + + An error occurred while upgrading the system! + La mise à jour du système a généré une erreur ! + + + + Restart upgrade ... + Effectuer de nouveau la mise à jour du système ... + + + + This file could not be copied because it does not exist: + Ce fichier n'a pas pu être copié car il n'existe pas : + + + + The following partition has no UUID: + La partition suivante n'a pas d'UUID : + + + + An error occurred while creating a new partition on the following device: + Une erreur s'est produite lors de la création d'une nouvelle partition sur le périphérique suivant : + + + + An error occurred while mounting the following partition/image: + Une erreur s'est produite lors du montage de partition/image suivante : + + + + An error occurred while setting one or more flags on the following partition: + Une erreur s'est produite lors du réglage d'un ou plusieurs drapeau(x) sur la partition suivante : + + + + Flag(s): + Drapeau(x) : + + + + An error occurred while creating the partition table on the following device: + Une erreur s'est produite lors de la création de la table de partition sur le périphérique suivant : + + + + An error occurred while unmounting the following partition/image/mount point: + Une erreur s'est produite lors du démontage de partition/image/point de montage suivant : + + + + An error occurred while cloning the properties of the following item: + Une erreur s'est produite lors du clonage des propriétés de l'élément suivant : + + + + Target item: + Élément cible : + + + + An error occurred while cloning the following symbolic link: + Une erreur s'est produite lors du clonage du lien symbolique suivant : + + + + Target symlink: + Lien symbolique cible : + + + + An error occurred while cloning the following file: + Une erreur s'est produite lors du clonage du fichier suivant : + + + + Target file: + Fichier cible : + + + + An error occurred while cloning the following directory: + Une erreur s'est produite lors du clonage du répertoire suivant : + + + + Target directory: + Répertoire cible : + + + + An error occurred while deleting the following directory: + Une erreur s'est produite lors de la suppression du répertoire suivant : + + + + + Cannot start the Systemback scheduler daemon! + Impossible de démarrer le démon de planification de Systemback ! + + + + + Missing, wrong or too much argument(s). + Argument(s) manquant(s), incorrect(s) ou trop nombreux. + + + + The process is disabled for this user. + L'opération est désactivée pour cet utilisateur. + + + + Root privileges are required. + Les droits root sont nécessaires. + + + + This system is a Live. + Ceci est un système Live. + + + + Already running. + Déja en cours d'exécution. + + + + Unable to daemonize. + Impossible de se transformer en démon. + + + + Cannot start the Systemback graphical user interface! + Impossible de lancer l'interface graphique utilisateur de Systemback ! + + + + Unable to get root permissions. + Impossible d'obtenir les autorisations root. + + + + Unable to connect to the X server. + Impossible de se connecter au serveur X. + + + + Full name of the new user: + Nom complet du nouvel utilisateur : + + + + New username to login: + Nouveau nom d'utilisateur pour vous connecter : + + + + New user account password: + Mot de passe du nouveau compte utilisateur : + + + + New root password (optional, not recommended for Ubuntu): + Nouveau mot de passe root (optionnel, déconseillé pour Ubuntu) : + + + + New hostname: + Nouveau hostname : + + + + + + + + + + + + + + + + Back + Retour + + + + + + + + Next + Suivant + + + + + Working directory + Répertoire de travail + + + + Created Live images + Images Live créées + + + + Name of the Live system + Nom du système Live + + + + + + + + Options + Options + + + + Write target + Écrire la cible + + + + Live operations + Opérations Live + + + + Include the user data files + Inclure les fichiers de données utilisateur + + + + Redetect devices + Redétecter les appareils + + + + + + Delete + Supprimer + + + + Write to target + Écrire sur la cible + + + + Convert to ISO + Convertir en ISO + + + + + + Create new + Créer un nouveau + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Monter les partitions système défectueuses dans le répertoire '/mnt' en fonction de la structure originale. ('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + + + Mount + Monter + + + + Reset mounts + Réinitialiser les points de montage + + + + Repair type + Type de réparation + + + + GRUB 2 repair + Réparation de Grub 2 + + + + System files repair + Réparation du système de fichiers + + + + + Reinstall GRUB 2 bootloader: + Réinstaller le chargeur de démarrage de Grub 2 : + + + + + Auto detection + Auto Détection + + + + Full repair + Réparation complète + + + + Do not repair the fstab file + Ne pas réparer le fichier fstab + + + + Exclude hidden user files and directories from restore points + Exclure les fichiers et répertoires cachés de l'utilisateur des points de restauration + + + + Exclude user data files and directories from Live system + Exclure les fichiers et répertoires de données de l'utilisateur du système Live + + + + Excludable items + Éléments pouvant être exclus + + + + Excluded items + Éléments exclus + + + + + Remove item from the exclusion list + Enlever un élément de la liste d'exclusion + + + + + Add item to the exclusion list + Ajouter un élément à la liste d'exclusion + + + + Scheduler state: + État du planificateur : + + + + + + + + + + + + + + Disabled + Désactivé + + + + Timer settings + Paramètres de temporisation + + + + Waiting time before creating a new restore point: + Temps d'attente avant la création d'un nouveau point de restauration : + + + + Visible countdown time: + Compte à rebours visible : + + + + Pop-up window position on screen: + Position de la fenêtre pop-up à l'écran : + + + + Use silent mode + Utiliser le mode silencieux + + + + + + + More + Plus + + + + + + + Less + Moins + + + + Simple system backup and restore application with extra features + Application simple de sauvegarde et de restauration du système + + + + Project homepage: + Page d'accueil du projet : + + + + Contact: + Contact : + + + + Donate: + Faire un don : + + + + Systemback version: + Version de Systemback : + + + + + License + Licence + + + + Re-read directories + Re-parcourir les répertoires + + + + Writable Linux filesystem! + Système de fichier Linux accessible en écriture ! + + + + + + + Cancel + Annuler + + + + + + + + + + + Maximum number of temporary restore points + Nombre maximum de points de restauration temporaire + + + + Restore points + Points de restauration + + + + Highlighted restore points + Points mis en évidence + + + + Point operations + Opérations de points + + + + Highlight + Mise en subrillance + + + + Rename + Renommer + + + + + + + + + + + + + + + + + + Select restore point + Sélectionner un point de restauration + + + + + + + + + Storage directory + Répertoire de stockage + + + + Function menu + Fonction menu + + + + + Schedule + Planifier + + + + + + About + À propos de + + + + + Settings + Paramètres + + + + System upgrade + Mise à niveau du système + + + + + System install + Installation du système + + + + + + + Live system create + Création du Live système + + + + + System repair + Réparation du système + + + + + + System restore + Restauration du système + + + + + + + System copy + Copie du système + + + + + Exclude + Exclure + + + + + Include + Inclure + + + + Change path + Changer le chemin + + + + + + + + + + + + + + + + + + empty + vide + + + + + + + + + + + not used + inutilisé + + + + Restore type + Type de restauration + + + + + + + + + Full restore + Restauration complète + + + + + + + + + System files restore + Restauration des fichiers système + + + + User(s) configuration files restore + Restauration des fichiers de configuration utilisateur(s) + + + + + Keep newly installed configuration files + Conserver les fichiers de la récente configuration + + + + Include user(s): + Inclure le(s) utilisateur(s) : + + + + Do not restore the fstab file + Ne pas restaurer le fichier fstab + + + + Partition settings + Paramètres de partition + + + + + + + + Transfer user configuration files + Transférer les fichiers de configuration des utilisateurs + + + + Copy user data files + Copier les fichiers de données de l'utilisateur + + + + Install GRUB 2 bootloader: + Installer le chargeur d'armorçage GRUB2 : + + + + + + Format + Formater + + + + + + Reset partitions settings + Remettre à zéro les réglages des partitions + + + + + + + + + + Unmount + Démonter + + + + Change partition settings + Changer les réglages des partitions + + + + Filesystem: + Système de fichiers : + + + + Mount point: + Point de montage : + + + + + + + + + ! Delete ! + ! Détruire ! + + + + Add new partition + Ajouter une nouvelle partition + + + + Create new: + Créer un nouveau : + + + + Need to set the mount point as '/boot/efi'! + Besoin de mettre le point de montage à '/boot/efi' ! + + + + Window DPI scaling + Paramètre d'échelle de fenêtre DPI + + + + Multiplier factor for scaling the window contents + Facteur multiplicateur pour agrandir le contenu de la fenêtre + + + + User interface + Interface utilisateur + + + + Window always on top + Fenêtre toujours au-dessus + + + + System + Système + + + + Disable scheduler daemon starting for the following users: + Désactiver le démarrage du démon du planificateur pour les utilisateurs suivants : + + + + Use XZ compressor for squashfs filesystems + Utiliser la compression XZ poure système de fichiers squashfs + + + + Override auto-detected language: + Outrepasser la langue détectée : + + + + Override the used style: + Outrepasser le style utilsé : + + + + Disable incremental restore points (do not use hard links between backups) + Désactiver les points de restauration incrémentale (ne pas utiliser de liens durs) + + + + Create Live ISO images automatically (faster than the conversion) + Créer des images ISO Live automatiquement (plus rapide que la conversion) + + + + Do not empty memory cache at the end of some processes + Ne vide pas le cache mémoire à la fin de certains processus + + + + Includable items + Éléments pouvant être inclus + + + + Included items + Éléments inclus + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + Inclure les données et répertoires utilisateur dans le point de restauration +Ceux-ci seront définis comme fichiers de configuration restituables ! + + + + ! Interrupt ! + ! Arrêt critique ! + + + + Creates a scheduled restore point within few seconds. + Créer un point de restauration planifié en quelques secondes. + + + + + + Start + Démarrer + + + + Later + Plus tard + + + + Systemback user authentication + Authentification de l'utilisateur Systemback + + + + Administrator: + Administrateur : + + + + Password: + Mot de passe : + + + + Unsafe X Window authorization! + Autorisation X Window dangereuse ! + + + + Please do not use 'sudo' command. + Merci de ne pas utiliser la commande 'sudo'. + + + + + + + + + Transfer user configuration and data files + Transférer les fichiers de configuration et de données des utilisateurs + + + + + + scheduler + Planificateur + + + + + Partition + Partition + + + + + Size + Taille + + + + Label + Étiquette + + + + Current mount point + Point de montage courant + + + + New mount point + Nouveau point de montage + + + + Filesystem + Système de fichiers + + + + Device + Périphérique + + + + + Top left + En haut à gauche + + + + + + Top right + En haut à droite + + + + + + Center + Au centre + + + + + + Bottom left + En bas à gauche + + + + + Bottom right + En bas à droite + + + + + + day(s) + jour(s) + + + + + + hour(s) + heure(s) + + + + + + + + minute(s) + minute(s) + + + + + + seconds + secondes + + + + + + + Everyone + Tout le monde + + + + + + Currently running system + Système courant en action + + + + + Emptying cache + Effacement du cache en cours + + + + + Flushing filesystem buffers + Nettoyage des tampons du système de fichiers + + + + + Restoring the full system + Restauration complète du système + + + + + Restoring the system files + Restauration des fichiers système + + + + Restoring the user(s) configuration files + Restauration des fichiers de configuration de(s) utilisateur(s) + + + + Repairing the system files + Réparation des fichiers système + + + + Repairing the full system + Réparer complètement le système + + + + Repairing the GRUB 2 + Réparation de GRUB 2 + + + + Copying the system + Copie du système + + + + Installing the system + Installation du système + + + + Writing Live image to the target device + Écriture de l'image Live sur l'équipement cible + + + + Upgrading the system + Mise à jour du système + + + + + Deleting incomplete restore point + Suppression d'un point de restauration endommagé + + + + Interrupting the current process + Interruption du processus en cours + + + + Deleting old restore point + Suppression d'un ancien point de restauration + + + + + Creating restore point + Création d'un point de restauration + + + + + Deleting restore point + Suppression du point de restauration en cours + + + + Converting Live system image + Conversion de l'image du Live systeme + + + + + process + processus + + + + Creating Live system + Création du Live système + + + + + + + + + Reboot + Redémarrer + + + + + + + X restart + Redémarrage X + + + + + + Live image + Image Live + + + + Restore the system files to the following restore point: + Restaurer les fichiers système avec le point de restauration suivant : + + + + Repair the system files with the following restore point: + Réparer les fichiers système avec le point de restauration suivant : + + + + Repair the complete system with the following restore point: + Réparer le système complet avec le point de restauration suivant : + + + + Restore the complete user(s) configuration files to the following restore point: + Restaurer les fichiers de configuration complets de(s) utilisateur(s) au point de restauration suivant : + + + + Restore the user(s) configuration files to the following restore point: + Restaurer les fichiers de configuration de(s) utilisateur(s) au point de restauration suivant : + + + + Copy the system, using the following restore point: + Copier le système en utilisant le point de restauration suivant : + + + + Install the system, using the following restore point: + Installer le système, en utilisant le point de restauration suivant : + + + + Restore the complete system to the following restore point: + Restaurer le système complet au point de restauration suivant : + + + + Format the %1, and write the following Live system image: + Formatage de %1 et écriture de l'image Live système suivante : + + + + Repair the GRUB 2 bootloader. + Réparation du chargeur d'amorçage GRUB 2. + + + + The user(s) configuration files full restoration are completed. + La restauration complète des fichiers de configuration utilisateur(s) est terminée. + + + + + The X server will restart automatically within 30 seconds. + Le serveur X redémarrera automatiquement dans 30 secondes. + + + + The user(s) configuration files restoration are completed. + La restauration des fichiers de configuration utilisateur(s) est terminée. + + + + The full system repair is completed. + La réparation du système complet est terminée. + + + + The system repair is completed. + La réparation du système est terminée. + + + + + The system files restoration are completed. + La restauration des fichiers système s'est terminée avec succès. + + + + + + The computer will restart automatically within 30 seconds. + L'ordinateur redémarrera automatiquement dans 30 secondes. + + + + + The full system restoration is completed. + La restauration complète du système s'est terminée avec succès. + + + + The system copy is completed. + La copie du système est terminée. + + + + The Live system creation is completed. + La création du Live système est terminée. + + + + The created .sblive file can be written to pendrive. + Le fichier créé .sblive peut être écrit sur clé USB. + + + + The GRUB 2 repair is completed. + La réparation de GRUB2 s'est achevée sans erreur. + + + + The system install is completed. + L'installation du système est complètement terminée. + + + + The Live system image write is completed. + L'écriture de l'image du Live système est complètement terminée. + + + + + An another Systemback process is currently running, please wait until it finishes. + Un autre processus de Systemback est déjà en cours d'exécution, veuillez attendre jusqu'à ce qu'il se termine. + + + + + Unable to get exclusive lock! + Impossible d'obtenir le verrouillage exclusif ! + + + + + First, close all package manager. + Il est impératif de fermer tous les gestionnaires de paquets ouverts. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + The specified name contain(s) unsupported character(s)! + Le(s) nom(s) spécifié(s) contien(nen)t des caractères incompatibles ! + + + + Please enter a new name. + Veuillez entrer un nouveau nom. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + La réparation des fichiers système est terminée, mais une erreur s'est produite lors de la réinstallation de GRUB ! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + Le système peut ne pas démarrer ! (En général, une architecture différente est la cause du problème.) + + + + + + + The restore point creation is aborted! + La création du point de restauration a été annulée ! + + + + + + Not enough free disk space to complete the process. + Espace disque insuffisant pour terminer l'opération. + + + + + Root privileges are required for running the Systemback! + Les privilèges super-utilisateur sont requis pour exécuter Systemback ! + + + + + + + + The system copy is aborted! + La copie du système est annulée ! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + La partition spécifiée ne dispose pas suffisamment d'espace libre pour copier le système. Le système copié ne fonctionnera pas correctement. + + + + The system copy is completed, but an error occurred while installing the GRUB! + La copie du système est terminée, mais une erreur s'est produite lors de l'installation de GRUB ! + + + + + You need to manually install a bootloader. + Il est nécessaire d'installer un chargeur d'amorçage manuellement. + + + + + The system restoration is aborted! + La restauration du système est annulée ! + + + + An error occurred while reinstalling the GRUB. + Une erreur est survenue pendant la réinstallation de GRUB. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + La réparation du système s'est achevée pendant la réinstallation de GRUB ! + + + + + + + + The Live system creation is aborted! + La création du Live système est abandonnée ! + + + + An error occurred while creating the file system image. + Une erreur est intervenue pendant la création du système de fichiers. + + + + An error occurred while creating the container file. + Une erreur est survenue lors de la création fichier conteneur. + + + + + + The specified partition could not be mounted. + La partition spécifiée ne pourra être montée. + + + + The system install is completed, but an error occurred while installing the GRUB! + L'installation du système est terminée, mais une erreur est survenue pendant la réinstallation de GRUB ! + + + + + + + + The system installation is aborted! + L'installation du système est abandonnée ! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + La partition(s) spécifiée(s) ne dispose pas de suffisamment d'espace libre pour installer le système. Le système installé ne fonctionnera pas correctement. + + + + + + The specified partition could not be formatted (in use or unavailable). + La partition spécifiée ne pourrait ne pas être formatée (en cours d’utilisation ou indisponible). + + + + An error occurred while reinstalling the GRUB! + Une erreur est survenue pendant la réinstallation de GRUB ! + + + + + + + + + + There has been critical changes in the file system during this operation. + Cette manipulation a entraîné des modifications critiques dans le système de fichiers. + + + + + + + + The Live write is aborted! + L'écriture du Live est abandonnée ! + + + + The selected device does not have enough space to write the Live system. + L'emplacement sélectionné n'a pas assez de place pour écrire le Live système. + + + + An error occurred while unpacking the Live system files. + Une erreur est survenue pendant le désempaquettage du système de fichiers Live. + + + + + + + The Live conversion is aborted! + La conversion du Live est abandonnée ! + + + + An error occurred while renaming the essential Live files. + Une erreur est survenue pendant le rennomage des fichiers Live essentiels. + + + + An error occurred while creating the .iso image. + Une erreur est survenue pendant la création de l'image .iso. + + + + An error occurred while reading the .sblive image. + Une erreur est survenue pendant la lecture de l'image .sblive. + + + + An error occurred while creating the new initramfs image. + Une erreur est survenue pendant la création de l'image du nouveau initramfs. + + + + + The restore point deletion is aborted! + La destruction du point de restauration est abandonnée ! + + + + + An error occurred while during the process. + Une erreur est survenue pendant la durée du processus. + + + + + + The Live image could not be mounted. + L'image Live ne pourra pas être montée. + + + + + The system repair is aborted! + La réparation du système est abandonnée ! + + + + + There is not enough free space. + Il n'y a pas assez d'espace libre. + + + + + + + + Multiple mount points + Points de montage multiple + + + + Enabled + Activé + + + + Systemback worker thread is interrupted by the user. + Le processus de Systemback a été interrompu par l'utilisateur. + + + + Boot Live without xorg.conf file + Demarrage de Live sans fichier xorg.conf + + + + + + Boot Live system + Demarrage du Live systeme + + + + + + Boot system installer + Demarrage du systeme installeur + + + + + + Boot Live in safe graphics mode + Demarrage du Live en mode graphique minimal + + + + + + Boot Live in debug mode + Demarrage du Live en mode debug + + + + Press 'E' key to edit + Appuyer sur la touche 'E' pour modifier + + + + Press TAB key to edit + Appuyer sur la touche TAB pour modifier + + + + An error occurred while changing the access permissions of the following file: + Une erreur s'est produite lors du changement de permissions d'accès du fichier suivant : + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Utilisez: systemback-cli [option] + + Options: + + -n, --newbackup créer un nouveau point de restauration + + -s, --storagedir <path> obtenir ou définir des points de restauration + chemin du répertoire de stockage + + -u, --upgrade mise à niveau du système actuel + supprimer les fichiers inutiles et forfaits + + -v, --version imprimer le numéro de version de Systemback + + -h, --help montrer cette aide + + + + basic restore UI + IU basique de restauration + + + + The Systemback command line interface cannot be used on a Live system! + Le système en ligne de commande de Systemback ne peut pas être utilisé sur un système Live ! + + + + This stupid terminal does not support color! + Ce stupide terminal ne supporte pas la couleur ! + + + + This terminal is too small! + Ce terminal est trop petit ! + + + + The specified storage directory path has not been set! + Le chemin du répertoire de stockage spécifié n'a pas été attibué ! + + + + The restoration is aborted! + La restauration est annulée ! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + La restauration est terminée, néanmoins une erreur est survenue pendant la réinstallation de GRUB ! + + + + The restore points storage directory is not available or not writable! + Le répertoire de stockage des points de restauration est indisponible ou protégé contre l'écriture ! + + + + Available restore point(s): + Point(s) de restauration disponible(s) : + + + + Quit + Quitter + + + + Selected restore point: + Point de restauration sélectionné : + + + + The specified storage directory path is set. + La configuration du répertoire de sauvegarde a été prise en compte. + + + + Restore with the following restore point: + Effectuer la restauration à l'aide du point de restauration suivant : + + + + Restore with the following restore method: + Sélection de la méthode de restauration : + + + + Users configuration files restore + Restauration des fichiers de configuration utilisateur + + + + + Complete configuration files restore + Restauration complète des fichiers de configuration + + + + Configuration files restore + Restauration des fichiers de restauration + + + + + + You want to keep the current fstab file? + Souhaitez-vous conserver le fichier fstab courant ? + + + + + + + + + + + (Y/N) + (O/N) + + + + + + + Reinstall the GRUB 2 bootloader? + Réinstallation du chargeur d'amorçage GRUB 2 ? + + + + Start the restore? + Souhaitez-vous démarrez la restauration ? + + + + The users configuration files full restoration are completed. + La restauration complète de la configuration utilisateur s'est terminée avec succès. + + + + The users configuration files restoration are completed. + La restauration des fichiers de configuration s'est terminée avec succès. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Appuyez sur la touche <Entrée> pour redémarrer ou <Q> pour quitter. + + + + Press 'ENTER' key to quit. + Appuyez sur la touche <Entrée> pour quitter. + + + + Deleting old restore point(s) + Suppression du (des) point(s) de restauration archivés + + + + Restoring the users configuration files + Restauration des fichiers de configuration utilisateur + + + diff --git a/lang/systemback_gl_ES.ts b/lang/systemback_gl_ES.ts new file mode 100644 index 0000000..dd0acee --- /dev/null +++ b/lang/systemback_gl_ES.ts @@ -0,0 +1,1898 @@ + + + + + systemback + + + Full name of the new user: + Nome completo do novo usuario: + + + + New username to login: + Nome de usuario para iniciar sesión: + + + + New user account password: + Contrasinal da conta do nuevo usuario: + + + + New root password (optional, not recommended for Ubuntu): + Novo contrasinal do root (opcional, non recomendábel para Ubuntu): + + + + New hostname: + Novo nome do equipo: + + + + + + + + + + + + + + + + Back + Atrás + + + + + + + + Next + Seguinte + + + + + Working directory + Directorio de traballo + + + + Created Live images + Imaxes «en vivo» creadas + + + + Name of the Live system + Nome do sistema «en vivo» + + + + + + + + Options + Opcións + + + + Write target + Escribir no destino + + + + Live operations + Opcións para o «en vivo» + + + + Include the user data files + Incluir os ficheiros de datos do usuario + + + + Redetect devices + Volver detectar os dispositivos + + + + + + Delete + Eliminar + + + + Convert to ISO + Converter a ISO + + + + + + Create new + Crear novo + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Montar a partición do sistema defectuoso no directorio «/mnt» segundo a estrutura orixinal.<br>(«/» -> «/mnt», «/home» -> «/mnt/home», etc.) + + + + + Mount + Montar + + + + Reset mounts + Restabelecer as montaxes + + + + Repair type + Tipo de reparación + + + + GRUB 2 repair + Reparar o GRUB 2 + + + + System files repair + Reparación do sistema de ficheiros + + + + + Reinstall GRUB 2 bootloader: + Reinstalar o cargador de arrinque GRUB 2: + + + + + Auto detection + Detección automática + + + + Full repair + Reparación completa + + + + Do not repair the fstab file + Non reparar o ficheiro fstab + + + + Exclude hidden user files and directories from restore points + Excluír os ficheiros agochados do usuario e os directorios dos puntos de restauración + + + + Exclude user data files and directories from Live system + Excluir os ficheiros de datos do usuario e os directorios do sistema «en vivo» + + + + Excluded items + Excluír elementos + + + + + Remove item from the exclusion list + Eliminar elemento da lista de exclusión + + + + + Add item to the exclusion list + Engadir elemento na lista de exclusión + + + + Scheduler state: + Estado das tarefas programadas: + + + + + + + + + + + + + + Disabled + Desactivado + + + + Timer settings + Axustes do temporizador + + + + Waiting time before creating a new restore point: + O tempo de espera antes de crear un novo punto de restauración: + + + + Visible countdown time: + Temporizador de conta atrás visíbel: + + + + Pop-up window position on screen: + Posición na pantalla da xanela emerxente: + + + + Use silent mode + Utilizar o modo silencioso + + + + + + + More + Máis + + + + + + + Less + Menos + + + + Simple system backup and restore application with extra features + Un programa sinxelo para facer copias de seguranza e para a restauración do sistema + + + + Project homepage: + Páxina web do proxecto: + + + + Contact: + Contacto: + + + + Donate: + Facer unha doazón: + + + + Systemback version: + Versión do Systemback: + + + + + License + Licenza + + + + Re-read directories + Volver ler os directorios + + + + Writable Linux filesystem! + Sistema escrbíbel de ficheiros Linux! + + + + + + + Cancel + Cancelar + + + + + + + + + + + Maximum number of temporary restore points + Número máximo de puntos temporais de restauración + + + + + Include + + + + + + + + + + + + + + + + + + + empty + baleiro + + + + + + + + + + + not used + sen uso + + + + Includable items + + + + + Included items + + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + + Restore points + Puntos de restauración + + + + Highlighted restore points + Puntos destacados + + + + Point operations + Accións + + + + Highlight + Destacar + + + + Rename + Cambiar o nome + + + + + + + + + + + + + + + + + + Select restore point + Seleccionar o punto de restauración + + + + + + + + + Storage directory + Ruta de almacenamento + + + + Function menu + Menú de funcións + + + + + + System restore + Restaurar o sistema + + + + + + + System copy + Copiar o sistema + + + + + System install + Instalar o sistema + + + + + + + Live system create + Crear sistema «en vivo» + + + + + System repair + Reparar o sistema + + + + System upgrade + Actualizar o sistema + + + + + Exclude + Excluír + + + + + Schedule + Planificar + + + + Excludable items + + + + + + + About + Sobre + + + + + Settings + + + + + Change path + Cambiar a ruta + + + + Restore type + Tipo de restauración + + + + + + + + + Full restore + Restauración completa + + + + + + + + + System files restore + Restaurar os ficheiros do sistema + + + + User(s) configuration files restore + Restaurar os ficheiros de configuración do(s) usuario(s) + + + + + Keep newly installed configuration files + Manter os ficheiros de configuración instalados recentemente + + + + Include user(s): + Incluír o(s) usuario(s): + + + + Do not restore the fstab file + Non restaurar o ficheiro fstab + + + + Partition settings + Configuración de discos e particións + + + + Need to set the mount point as '/boot/efi'! + + + + + Window DPI scaling + + + + + Multiplier factor for scaling the window contents + + + + + User interface + + + + + Window always on top + + + + + System + + + + + Disable scheduler daemon starting for the following users: + + + + + Use XZ compressor for squashfs filesystems + + + + + Override auto-detected language: + + + + + Override the used style: + + + + + Disable incremental restore points (do not use hard links between backups) + + + + + Create Live ISO images automatically (faster than the conversion) + + + + + Do not empty memory cache at the end of some processes + + + + + + + + + + + Unmount + Desmontar + + + + Write to target + + + + + Mount point: + Ponto de montaxe: + + + + + + + + + ! Delete ! + + + + + Add new partition + + + + + Create new: + Crear novo: + + + + Filesystem: + Sistema de ficheiros: + + + + + + Format + Formatar + + + + + + Reset partitions settings + Restabelecer os axustes das particións + + + + Change partition settings + Cambiar os axustes das particións + + + + + + + + Transfer user configuration files + + + + + Copy user data files + Copiar os ficheiros de datos do usuario + + + + Install GRUB 2 bootloader: + Instalar o cargador de arrinque GRUB 2: + + + + + + + + + Transfer user configuration and data files + + + + + ! Interrupt ! + ! Deter o proceso ! + + + + Creates a scheduled restore point within few seconds. + Crea un punto de restauración programado en poucos segundos. + + + + + + Start + Comezar + + + + Later + Máis adiante + + + + Systemback user authentication + + + + + Administrator: + + + + + Password: + + + + + + Partition + Partición + + + + + Size + + + + + Current mount point + Punto de montaxe actual + + + + New mount point + Novo punto de montaxe + + + + Filesystem + Sistema de ficheiros + + + + Device + Dispositivo + + + + + + scheduler + tarefas programadas + + + + + Top left + Arriba á esquerda + + + + + + Top right + Arriba á dereita + + + + + + Center + Centrada + + + + + + Bottom left + Abaixo á esquerda + + + + + Bottom right + Abaixo á dereita + + + + + + day(s) + día(s) + + + + + + hour(s) + hora(s) + + + + + + + + minute(s) + minuto(s) + + + + + + seconds + segundos + + + + + + Live image + Imaxe «en vivo» + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + + + Boot system installer + + + + + + + Currently running system + Sistema actual en execución + + + + Label + + + + + + Creating restore point + Creando o punto de restauración + + + + + Restoring the full system + Restauración completa do sistema + + + + + Restoring the system files + Restaurando o sistema de ficheiros + + + + Restoring the user(s) configuration files + Restaurando a configuración de ficheiros do(s) usuario(s) + + + + Repairing the system files + Reparando o sistema de ficheiros + + + + Repairing the full system + Reparando por completo o sistema + + + + Copying the system + Copiando o sistema + + + + Installing the system + Instalando o sistema + + + + Creating Live system + Creando o sistema «en vivo» + + + + + Deleting restore point + Eliminando o punto de restauración + + + + Deleting old restore point + Eliminando o punto de restauración obsoleto + + + + + Deleting incomplete restore point + Eliminando o punto de restauración incompleto + + + + + Flushing filesystem buffers + + + + + + + + + + Reboot + Reiniciar + + + + + + + X restart + Reiniciar X + + + + Repairing the GRUB 2 + Reparando o GRUB 2 + + + + + Emptying cache + Baleirando a caché + + + + + An another Systemback process is currently running, please wait until it finishes. + Hai outro proceso de Systemback en execución, agarde ata que remate. + + + + Please enter a new name. + Introduza outro nome. + + + + The specified name contain(s) unsupported character(s)! + O nome especificado conten caracteres non admitidos! + + + + Restore the system files to the following restore point: + Restaurar os ficheiros do sistema ao seguinte punto de restauración: + + + + Repair the system files with the following restore point: + Reparar os ficheiros do sistema usando o seguinte punto de restauración: + + + + Repair the complete system with the following restore point: + Reparación completa do sistema usando o seguinte punto de restauración: + + + + Restore the complete user(s) configuration files to the following restore point: + Restauración completa dos ficheiros de configuración do(s) usuario(s) segundo o seguinte punto de restauración: + + + + Restore the user(s) configuration files to the following restore point: + Restaurar os ficheiros de configuración do(s) usuario(s) segundo o seguinte punto de restauración: + + + + The user(s) configuration files full restoration are completed. + Completouse a restauración total dos ficheiros de configuración do(s) usuario(s). + + + + + The X server will restart automatically within 30 seconds. + O servidor X reiniciarase automaticamente en 30 segundos. + + + + The user(s) configuration files restoration are completed. + Completouse a restauración dos ficheiros de configuración do(s) usuario(s). + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Completouse a reparación do sistema de ficheiros, mais produciuse un erro ao reinstalar o GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + O sistema non poderá arrincar! (Isto pode deberse a unha arquitectura diferente.) + + + + The full system repair is completed. + Completouse a reaparación total do sistema. + + + + The system repair is completed. + Completouse a reaparación do sistema. + + + + Copy the system, using the following restore point: + Copiar o sistema usando o seguinte punto de restauración: + + + + Install the system, using the following restore point: + Instalar o sistema usando o seguinte punto de restauración: + + + + + + + The restore point creation is aborted! + Foi interrompida a creación do punto de restauración! + + + + + + Not enough free disk space to complete the process. + Non hai espazio libre abondo no disco para completar o proceso. + + + + + Root privileges are required for running the Systemback! + Precisanse privilexios de administrador (root) para executar o Systemback! + + + + Restore the complete system to the following restore point: + Restaurar completamente o sistema usando o seguinte punto de restauración: + + + + + The system files restoration are completed. + Completouse a restauración do sistema de ficheiros. + + + + + + The computer will restart automatically within 30 seconds. + O equipo reiniciarase automaticamente en 30 segundos. + + + + + The full system restoration is completed. + Completouse a restauración total do sistema. + + + + + + + + The system copy is aborted! + A copia do sistema foi interrompida! + + + + An error occurred while reinstalling the GRUB. + + + + + Format the %1, and write the following Live system image: + Formatar %1, e gravar a seguinte imaxe do sistema «en vivo»: + + + + The selected device does not have enough space to write the Live system. + + + + + + There is not enough free space. + + + + + Interrupting the current process + + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + A partición especificada non ten espazo libre abondo. A copia do sistema non funcionará correctamente. + + + + The system copy is completed, but an error occurred while installing the GRUB! + Completouse a copia do sistema, mais produciuse un erro durante a instalación do GRUB! + + + + + You need to manually install a bootloader. + É necesario instalar manualmente un cargador de arrinque. + + + + + The system restoration is aborted! + + + + + An error occurred while creating the file system image. + Produciuse un erro ao crear a imaxe do sistema de ficheiros. + + + + An error occurred while creating the container file. + Produciuse un erro ao crear o ficheiro contedor. + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + A(s) partición(s) especificada(s) non ten(teñen) espazo libre abondo. O sistema instalado non funcionará correctamente. + + + + + + The specified partition could not be formatted (in use or unavailable). + Non foi posíbel formatar a partición especificada (ou está a ser usada ou non está dispoñíbel). + + + + An error occurred while reinstalling the GRUB! + Produciuse un erro ao reinstalar o GRUB! + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Completouse a reparación do sistema, mais produciuse un erro ao reinstalar o GRUB! + + + + The system copy is completed. + Completouse a copia do sistema. + + + + + + + + The Live system creation is aborted! + + + + + + + The specified partition could not be mounted. + Non foi posíbel montar a partición especificada. + + + + An error occurred while unpacking the Live system files. + Produciuse un erro ao descomprimir os ficheiros do sistema «en vivo». + + + + An error occurred while renaming the essential Live files. + Produciuse un erro ao cambiarlle o nome a ficheiros esenciais do sistema «en vivo». + + + + An error occurred while creating the .iso image. + Produciuse un erro durante a creación da imaxe .iso. + + + + An error occurred while reading the .sblive image. + Produciuse un erro durante a lectura da imaxe .sblive. + + + + An error occurred while creating the new initramfs image. + + + + + + + The Live image could not be mounted. + + + + + The GRUB 2 repair is completed. + Completouse a reaparación do GRUB 2. + + + + Writing Live image to the target device + + + + + The Live system creation is completed. + Completouse a creación do sistema «en vivo». + + + + The created .sblive file can be written to pendrive. + O ficheiro .sblive creado pode ser transferido a unha memoria USB. + + + + The system install is completed. + Completouse a instalación do sistema. + + + + The system install is completed, but an error occurred while installing the GRUB! + Completouse a instalación, mais produciuse un error durante a instalación do GRUB! + + + + + + + + The system installation is aborted! + A instalación do sistema foi interrompida! + + + + + + + + + + There has been critical changes in the file system during this operation. + Non se fixeron cambios críticos no sistema de ficheiros durante esta operación. + + + + Repair the GRUB 2 bootloader. + Reparar o cargador de arrinque GRUB 2. + + + + + + + + The Live write is aborted! + + + + + The Live system image write is completed. + Completouse a escritura da imaxe do sistema «en vivo». + + + + + + + The Live conversion is aborted! + + + + + + The restore point deletion is aborted! + + + + + + An error occurred while during the process. + + + + + + The system repair is aborted! + + + + + + + + Everyone + + + + + Upgrading the system + Actualizado o sistema + + + + + + + + Multiple mount points + + + + + Enabled + Activado + + + + Systemback worker thread is interrupted by the user. + + + + + + process + + + + + Boot Live without xorg.conf file + Arrinque do sistema «en vivo» sen o ficheiro xorg.conf + + + + + + Boot Live system + Arrinque do sistema «en vivo» + + + + + + Boot Live in safe graphics mode + Arrinque do sistema «en vivo» en modo grafico seguro + + + + + + Boot Live in debug mode + Arrinque en modo de depuracion + + + + Press 'E' key to edit + Prema a tecla «E» para editar + + + + Press TAB key to edit + Prema a tecla TAB para editar + + + + Converting Live system image + Convertendo a imaxe do sistema «en vivo» + + + + + Unable to get exclusive lock! + Non foi posíbel obter o bloqueo exclusivo! + + + + + First, close all package manager. + Peche calquera xestor de paquetes que teña aberto. + + + + The specified storage directory path has not been set! + Non foi estabelecido un directorio para a ruta de almacenamento! + + + + The restoration is aborted! + A restauración foi interrompida! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Completouse a restauración, mais produciuse un erro ao reinstalar o GRUB! + + + + The restore points storage directory is not available or not writable! + O directorio de almacenamento dos puntos de restauración non está dispoñíbel ou non se pode escribir nel! + + + + This stupid terminal does not support color! + + + + + This terminal is too small! + + + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + + + + + An error occurred while creating the following directory: + + + + + An error occurred while removing the following file: + + + + + An error occurred while creating the following hard link: + + + + + Reference file: + + + + + An error occurred while creating the following file: + + + + + An error occurred while renaming the following item: + + + + + New path: + + + + + An error occurred while executing the following command: + + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + + + + + An error occurred while upgrading the system! + Produciuse un erro ao anovar o sistema! + + + + Restart upgrade ... + Reiniciar a anovación ... + + + + This file could not be copied because it does not exist: + + + + + The following partition has no UUID: + + + + + An error occurred while creating a new partition on the following device: + + + + + An error occurred while mounting the following partition/image: + + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + + + + + An error occurred while unmounting the following partition/image/mount point: + + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + + + + + Target file: + + + + + An error occurred while cloning the following directory: + + + + + Target directory: + + + + + An error occurred while deleting the following directory: + + + + + basic restore UI + + + + + Available restore point(s): + Punto(s) de restauración dospoñíbel(eis): + + + + Quit + Saír + + + + Selected restore point: + Punto de restauración seleccionado: + + + + The specified storage directory path is set. + Estabeleceuse un directorio para a ruta de almacenamento. + + + + Deleting old restore point(s) + Eliminando o(s) punto(s) de restauración antigo(s) + + + + Restore with the following restore point: + Restaurar usando o seguinte punto de restauración: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Uso: systemback-cli [opción] + + Opcións: + + -n, --newbackup crear un novo punto de restauración + + -s, --storagedir <ruta> obter ou estabelecer a ruta do directorio de + almacenamento dos puntos de restauración + + -u, --upgrade anovar o sistema actual + retirar os ficheiros e paquetes innecesarios + + -v, --versión saída do número da versión do Systemback + + -h, --help amosa esta axuda + + + + The Systemback command line interface cannot be used on a Live system! + + + + + Restore with the following restore method: + Restaurar usando o seguinte método de restauración: + + + + Users configuration files restore + Restaurar os ficheiros de configuración do(s) usuarios + + + + + Complete configuration files restore + Restauración completa de ficheiros de configuración + + + + Configuration files restore + Restaurar os ficheiros de configuración + + + + + + You want to keep the current fstab file? + Quere manter o actual ficheiro fstab? + + + + + + + + + + + (Y/N) + (Y/N) + + + + + + + Reinstall the GRUB 2 bootloader? + Reinstalar o cargador de arrinque GRUB 2? + + + + Start the restore? + Comezar a restauración? + + + + Restoring the users configuration files + Restaurando a configuración de ficheiros do(s) usuarios + + + + The users configuration files full restoration are completed. + Completouse a restauración total dos ficheiros de configuración do(s) usuarios. + + + + The users configuration files restoration are completed. + Completouse a restauración dos ficheiros de configuración do(s) usuarios. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Prema a tecla «INTRO» para reiniciar o equipo, ou «Q» para saír. + + + + Press 'ENTER' key to quit. + + + + + An error occurred while changing the access permissions of the following file: + + + + + + Cannot start the Systemback scheduler daemon! + + + + + + Missing, wrong or too much argument(s). + + + + + The process is disabled for this user. + + + + + Root privileges are required. + + + + + This system is a Live. + + + + + Already running. + + + + + Unable to daemonize. + + + + + Cannot start the Systemback graphical user interface! + + + + + Unable to get root permissions. + + + + + Unable to connect to the X server. + + + + + Unsafe X Window authorization! + + + + + Please do not use 'sudo' command. + + + + diff --git a/lang/systemback_hu.ts b/lang/systemback_hu.ts new file mode 100644 index 0000000..08d63d6 --- /dev/null +++ b/lang/systemback_hu.ts @@ -0,0 +1,1899 @@ + + + + + systemback + + + Full name of the new user: + Az új felhasználó teljes neve: + + + + New username to login: + A bejelentkezéshez használandó új felhasználói név: + + + + New user account password: + A felhasználói fiókhoz tartozó új jelszó: + + + + New root password (optional, not recommended for Ubuntu): + A root felhasználó új jelszava (opcionális, Ubuntuhoz nem ajánlott): + + + + New hostname: + A számítógép új neve: + + + + + + + + + + + + + + + + Back + Vissza + + + + + + + + Next + Tovább + + + + + Working directory + Munkakönyvtár + + + + Created Live images + Elkészített Live rendszerképek + + + + Name of the Live system + A Live rendszer neve + + + + + + + + Options + Opciók + + + + Write target + Kiírási céleszköz + + + + Live operations + Live műveletek + + + + Include the user data files + Felhasználói adatfájlok belevétele + + + + Redetect devices + Eszközök újrakeresése + + + + + + Delete + Törlés + + + + Convert to ISO + Konvertálás ISO-vá + + + + + + Create new + Új készítése + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + A javítandó rendszer összes partícióját csatold a '/mnt' könyvtár alá az eredeti struktúra szerint.<br>('/' -> '/mnt', '/home' -> '/mnt/home', stb.) + + + + + Mount + Csatolás + + + + Reset mounts + Csatolások újrakezdése + + + + Repair type + Javítás típusa + + + + GRUB 2 repair + GRUB 2 javítása + + + + System files repair + Rendszerfájlok javítása + + + + + Reinstall GRUB 2 bootloader: + GRUB 2 rendszerbetöltő újratelepítése: + + + + + Auto detection + Automatikus beállítások + + + + Full repair + Teljes javítás + + + + Do not repair the fstab file + Ne javítsa az fstab fájlt + + + + Exclude hidden user files and directories from restore points + Visszaállítási pontokból kihagyandó rejtett felhasználói könyvtárak és fájlok + + + + Exclude user data files and directories from Live system + Live rendszerből kihagyandó felhasználói könyvtárak és fájlok + + + + Excluded items + Kihagyott elemek + + + + + Remove item from the exclusion list + Elem eltávolítása a kihagyási listából + + + + + Add item to the exclusion list + Elem hozzáadása a kihagyási listához + + + + Scheduler state: + Ütemező állapota: + + + + + + + + + + + + + + Disabled + Tiltva + + + + Timer settings + Időzítő beállítások + + + + Waiting time before creating a new restore point: + Várakozási idő új visszaállítási pont készítése előtt: + + + + Visible countdown time: + Látható visszaszámlálási idő: + + + + Pop-up window position on screen: + Felugró ablak elhelyezkedése a képernyőn: + + + + Use silent mode + Csendes mód engedélyezése + + + + + + + More + Több + + + + + + + Less + Kevesebb + + + + Simple system backup and restore application with extra features + Egyszerű rendszermentő és visszaállító alkalmazás további extra funkciókkal + + + + Project homepage: + Projekt honlap: + + + + Contact: + Kapcsolat: + + + + Donate: + Anyagi támogatás: + + + + Systemback version: + Systemback verziója: + + + + + License + Licenc + + + + Re-read directories + Könyvtárak újraolvasása + + + + Writable Linux filesystem! + Írható Linux fájlrendszer! + + + + + + + Cancel + Mégsem + + + + + + + + + + + Maximum number of temporary restore points + Átmeneti visszaállítási pontok maxmális száma + + + + + Include + Hozzáadás + + + + + + + + + + + + + + + + + + empty + üres + + + + + + + + + + + not used + nem használt + + + + Includable items + Hozzáadható elemek + + + + Included items + Hozzáadott elemek + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + Felhasználói könyvtárak és fájlok hozzáadása a visszaállítási pontokhoz +Ezek visszaállítható konfigurációs fájloknak lesznek definiálva! + + + + Restore points + Visszaállítási pontok + + + + Highlighted restore points + Kiemelt visszaállítási pontok + + + + Point operations + Pontműveletek + + + + Highlight + Kiemelés + + + + Rename + Átnevezés + + + + + + + + + + + + + + + + + + Select restore point + Visszaállítási pont kiválasztása + + + + + + + + + Storage directory + Tárolási könyvtár + + + + Function menu + Funkciómenü + + + + + + System restore + Rendszer-visszaállítás + + + + + + + System copy + Rendszermásolás + + + + + System install + Rendszertelepítés + + + + + + + Live system create + Live rendszer készítés + + + + + System repair + Rendszerjavítás + + + + System upgrade + Rendszerfrissítés + + + + + Exclude + Kivételek + + + + + Schedule + Ütemezés + + + + Excludable items + Kihagyható elemek + + + + + + About + Névjegy + + + + + Settings + Beállítások + + + + Change path + Útvonal megváltoztatása + + + + Restore type + Visszaállítás típusa + + + + + + + + + Full restore + Teljes visszaállítás + + + + + + + + + System files restore + Rendszerfájlok visszaállítása + + + + User(s) configuration files restore + Felhasználó(k) beállításfájljainak visszaállítása + + + + + Keep newly installed configuration files + Újonnan telepített alkalmazások beállításfájljainak megtartása + + + + Include user(s): + Felhasználó(k) belevétele: + + + + Do not restore the fstab file + Ne állítsa vissza az fstab fájlt + + + + Partition settings + Partíció beállítás + + + + Need to set the mount point as '/boot/efi'! + Be kell állítani a '/boot/efi' csatolási pontot! + + + + Window DPI scaling + Ablak méretezése a képernyőfelbontáshoz + + + + Multiplier factor for scaling the window contents + Szorzási tényező az ablaktartalom méretezéséhez + + + + User interface + Felhasználói felület + + + + Window always on top + Az ablak mindig felül + + + + System + Rendszer + + + + Disable scheduler daemon starting for the following users: + Ütemező démon indításának letiltása a következő felhasználóknál: + + + + Use XZ compressor for squashfs filesystems + XZ tömörítő használata squashfs fájlrendszerekhez + + + + Override auto-detected language: + Automatikusan érzékelt nyelv felülbírálása: + + + + Override the used style: + Használt stílus felülbírálása: + + + + Disable incremental restore points (do not use hard links between backups) + Visszaállítási pontok egymásra építésének tiltása (hard linkek használatának mellőzése) + + + + Create Live ISO images automatically (faster than the conversion) + Live ISO képfájlok automatikus létrehozása (gyorsabb mint a konvertálás) + + + + Do not empty memory cache at the end of some processes + Ne ürítse a memória-gyorsítótárat a folyamatok végén + + + + + + + + + + Unmount + Leválasztás + + + + Write to target + Kiírás céleszközre + + + + Mount point: + Csatolási pont: + + + + + + + + + ! Delete ! + ! Törlés ! + + + + Add new partition + Új partíció hozzáadása + + + + Create new: + Új készítése: + + + + Filesystem: + Fájlrendszer: + + + + + + Format + Formázás + + + + + + Reset partitions settings + Partícióbeállítások újrakezdése + + + + Change partition settings + Partíció beállításainak megváltoztatása + + + + + + + + Transfer user configuration files + Felhasználói beállításfájlok átvitele + + + + Copy user data files + Felhasználói adatfájlok másolása + + + + Install GRUB 2 bootloader: + GRUB 2 rendszerbetöltő telepítése: + + + + + + + + + Transfer user configuration and data files + Felhasználói beállítás- és adatfájlok átvitele + + + + ! Interrupt ! + ! Megszakítás ! + + + + Creates a scheduled restore point within few seconds. + Ütemezett visszaállítási pont készítése néhány másodpercen belül. + + + + + + Start + Indítás + + + + Later + Később + + + + Systemback user authentication + Systemback felhasználó hitelesítés + + + + Administrator: + Adminisztrátor: + + + + Password: + Jelszó: + + + + + Partition + Partíció + + + + + Size + Méret + + + + Current mount point + Jelenlegi csatolási pont + + + + New mount point + Új csatolási pont + + + + Filesystem + Fájlrendszer + + + + Device + Eszköz + + + + + + scheduler + ütemező + + + + + Top left + Balra fent + + + + + + Top right + Jobbra fent + + + + + + Center + Középen + + + + + + Bottom left + Balra lent + + + + + Bottom right + Jobbra lent + + + + + + day(s) + nap + + + + + + hour(s) + óra + + + + + + + + minute(s) + perc + + + + + + seconds + másodperc + + + + + + Live image + Live rendszerkép + + + + + + Currently running system + Jelenleg futó rendszer + + + + + Creating restore point + Új visszaállítási pont készítése + + + + + Restoring the full system + A rendszer teljes visszaállítása + + + + + Restoring the system files + A rendszerfájlok visszaállítása + + + + Restoring the user(s) configuration files + A felhasználó(k) beállításfájljainak visszaállítása + + + + Repairing the system files + Rendszerfájlok javítása + + + + Repairing the full system + A rendszer teljes javítása + + + + Copying the system + A rendszer másolása + + + + Installing the system + A rendszer telepítése + + + + Creating Live system + Live rendszer készítése + + + + + Deleting restore point + Visszaállítási pont törlése + + + + Deleting old restore point + Elöregedett visszaállítási pont törlése + + + + + Deleting incomplete restore point + Befejezetlen visszaállítási pont törlése + + + + + Flushing filesystem buffers + Fájlrendszer puffer kiírása + + + + + + + + + Reboot + Újraindítás + + + + + + + X restart + X újraindítás + + + + Repairing the GRUB 2 + A GRUB 2 javítása + + + + + Emptying cache + Gyorsítótár ürítése + + + + + An another Systemback process is currently running, please wait until it finishes. + Egy másik Systemback folyamat is fut, kérlek várd meg amíg az befejeződik. + + + + Please enter a new name. + Kérlek, adj meg egy új nevet. + + + + The Live system creation is completed. + A Live rendszer készítése befejeződött. + + + + The created .sblive file can be written to pendrive. + A létrehozott .sblive fájl pendrive-ra írható. + + + + Restore the system files to the following restore point: + A rendszerfájlok visszaállítása a következő visszaállítási pontra: + + + + Label + Címke + + + + Writing Live image to the target device + Live rendszerkép kiírása a céleszközre + + + + The specified name contain(s) unsupported character(s)! + A megadott név nem támogatott karakter(eke)t tartalmaz! + + + + Repair the system files with the following restore point: + A rendszerfájlok javítása a következő visszaállítási ponttal: + + + + Repair the complete system with the following restore point: + A rendszer teljes javítása a következő visszaállítási ponttal: + + + + Restore the complete user(s) configuration files to the following restore point: + A felhasználó(k) beállításfájljainak teljes visszaállítása a következő visszaállítási pontra: + + + + Restore the user(s) configuration files to the following restore point: + A felhasználó(k) beállításfájljainak visszaállítása a következő visszaállítási pontra: + + + + The user(s) configuration files full restoration are completed. + A felhasználó(k) beállításfájljainak teljes visszaállítása kész. + + + + + The X server will restart automatically within 30 seconds. + Az X kiszolgáló automatikusan újraindul 30 másodpercen belül. + + + + The user(s) configuration files restoration are completed. + A felhasználó(k) beállításfájljainak visszaállítása kész. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + A rendszerfájlok javítása kész, de a GRUB újratelepítése közben hiba történt! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + A rendszer indíthatósága nem biztosított! (Általában az eltérő architectúra okozza a problémát.) + + + + The full system repair is completed. + A rendszer teljes javítása befejeződött. + + + + The system repair is completed. + A rendszer javítása befejeződött. + + + + Copy the system, using the following restore point: + A rendszer másolása a következő visszaállítási pontot használva: + + + + Install the system, using the following restore point: + A rendszer telepítése a következő visszaállítási pontot használva: + + + + + + + The restore point creation is aborted! + A visszaállítási pont készítése megszakítva! + + + + + + Not enough free disk space to complete the process. + Nincs elég szabad tárhely a folyamat befejezéséhez. + + + + + Root privileges are required for running the Systemback! + A Systemback futtatásához root jogosultság szükséges! + + + + Restore the complete system to the following restore point: + A rendszer teljes visszaállítása a következő visszaállítási pontra: + + + + + The system files restoration are completed. + A rendszerfájlok visszaállítása kész. + + + + + + The computer will restart automatically within 30 seconds. + A számítógép automatikusan újraindul 30 másodpercen belül. + + + + + The full system restoration is completed. + A rendszer teljes visszaállítása kész. + + + + + + + + The system copy is aborted! + A rendszer másolása megszakítva! + + + + Format the %1, and write the following Live system image: + A %1 formázása, és a következő Live rendszerkép kiírása: + + + + The selected device does not have enough space to write the Live system. + A választott eszközön nincs elegendő tárhely a Live rendszer kiírásához. + + + + + There is not enough free space. + Nincs elég szabad hely. + + + + Interrupting the current process + Jelenleg futó folyamat megszakítása + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + A megadott partíció(ko)n nincs elég szabad tárhely. Az átmásolt rendszer nem fog megfelelően működni. + + + + The system copy is completed, but an error occurred while installing the GRUB! + A rendszer átmásolása befejezve, de a GRUB telepítése közben hiba történt! + + + + + You need to manually install a bootloader. + A rendszer indításához telepítsél kézzel egy rendszerbetöltőt. + + + + + The system restoration is aborted! + A rendszer visszaállítása megszakítva! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + A rendszer teljes telepítéséhez nincs elegendő szabad tárhely a megadott partíció(ko)n. A telepített rendszer nem fog megfelelően működni. + + + + + + The specified partition could not be formatted (in use or unavailable). + Az alábbi partíciót nem sikerűlt a megadott fájlrendszerre formázni (használatban van vagy nem elérhető). + + + + An error occurred while reinstalling the GRUB! + A GRUB újratelepítése közben hiba történt! + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + A rendszer teljes javítása befejeződött, de a GRUB újratelepítése közben hiba történt! + + + + The system copy is completed. + A rendszer másolása befejeződött. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + A csomagindexfájlok újraszinkronizálása jelenleg folyamatban van, kérlek várd meg amíg az befejeződik. + + + + + + + + The Live system creation is aborted! + A Live rendszer készítése megszakítva! + + + + An error occurred while creating the file system image. + A rendszerkép készítése közben hiba törént. + + + + An error occurred while creating the container file. + A konténerfájl készítése közben hiba történt. + + + + + + The specified partition could not be mounted. + Az alábbi partíciót nem sikerűlt csatolni. + + + + An error occurred while unpacking the Live system files. + A Live rendszerfájlok kicsomagolása közben hiba történt. + + + + An error occurred while renaming the essential Live files. + A fájlok szükséges átnvezése közben hiba történt. + + + + An error occurred while creating the .iso image. + A .iso képfájl készítése közben hiba történt. + + + + An error occurred while reading the .sblive image. + A .sblive képfájl olvasása közben hiba történt. + + + + An error occurred while creating the new initramfs image. + Az új initramfs kép készítése közben hiba történt. + + + + + + The Live image could not be mounted. + Az Live rendszerképet nem sikerűlt csatolni. + + + + + + Boot system installer + Rendszertelepito inditasa + + + + The GRUB 2 repair is completed. + A GRUB 2 javítása befejeződött. + + + + An error occurred while reinstalling the GRUB. + A GRUB újratelepítése közben hiba történt. + + + + The system install is completed. + A rendszer telepítése befejeződött. + + + + The system install is completed, but an error occurred while installing the GRUB! + A rendszer telepítése befejezve, de a GRUB telepítése közben hiba történt! + + + + + + + + The system installation is aborted! + A rendszer telepítése megszakítva! + + + + + + + + + + There has been critical changes in the file system during this operation. + A folyamat közben kritikus változások következtek be a fájlrendszerben. + + + + Repair the GRUB 2 bootloader. + A GRUB 2 rendszerbetöltő javítása. + + + + + + + + The Live write is aborted! + A Live rendszer kiírása megszakítva! + + + + The Live system image write is completed. + A Live rendszerkép kiírása befejeződött. + + + + + + + The Live conversion is aborted! + A Live rendszer konvertálása megszakítva! + + + + + The restore point deletion is aborted! + A rendszer-visszaállítási pont törlése megszakítva! + + + + + An error occurred while during the process. + A folyamat közben hiba történt. + + + + + The system repair is aborted! + A rendszer javítása megszakítva! + + + + + + + Everyone + Mindenki + + + + Upgrading the system + A rendszer frissítése + + + + + + + + Multiple mount points + Többszörös csatolási pont + + + + Enabled + Engedélyezve + + + + Systemback worker thread is interrupted by the user. + Systemback munkaszál a felhasználó által megszakítva. + + + + + process + folyamat + + + + Boot Live without xorg.conf file + Live inditasa xorg.conf fajl nelkul + + + + + + Boot Live system + Live rendszer inditasa + + + + + + Boot Live in safe graphics mode + Live inditasa csokkentett grafikus modban + + + + + + Boot Live in debug mode + Live inditasa debug modban + + + + Press 'E' key to edit + Szerkeszteshez nyomd le az 'E' billentyut + + + + Press TAB key to edit + Szerkeszteshez nyomd le a TAB billentyut + + + + Converting Live system image + Live rendszerkép konvertálása + + + + + Unable to get exclusive lock! + Nem sikerült kizárólagos zárat szerezni! + + + + + First, close all package manager. + Előbb zárj be minden csomagkezelőt. + + + + The specified storage directory path has not been set! + A megadott tárolási könyvtár nem állítható be! + + + + The restoration is aborted! + A visszaállítás megszakítva! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + A rendszer visszaállítása kész, de a GRUB újratelepítése közben ismeretlen hiba történt! + + + + The restore points storage directory is not available or not writable! + A visszaállítási pontok tárolási könyvtára nem elérhető vagy nem írható! + + + + This stupid terminal does not support color! + Ez a buta terminál nem támogatja a színeket! + + + + This terminal is too small! + Ez a terminál túl kicsi! + + + + Version: + Verzió: + + + + Compilation date and time: + Fordítási dátum és idő: + + + + + Installed files: + Telepített fájlok: + + + + Operating system: + Operációs rendszer: + + + + + Mounted filesystems: + Csatolt fájlrendszerek: + + + + System language: + Rendszernyelv: + + + + Translation: + Fordítás: + + + + The specified debug level is invalid! + A megadott hibakeresési szint érvénytelen! + + + + The default level (1) will be used. + Az alapértelmezett szint (1) lesz használva. + + + + An error occurred while opening the following file: + Az alábbi fájl megnyitása közben hiba történt: + + + + An error occurred while creating the following directory: + Az alábbi könyvtár létrehozása közben hiba történt: + + + + An error occurred while removing the following file: + Az alábbi fájl törlése közben hiba történt: + + + + An error occurred while creating the following hard link: + Az alábbi hard link létrehozása közben hiba történt: + + + + Reference file: + Referencia link: + + + + An error occurred while creating the following file: + Az alábbi fájl létrehozása közben hiba történt: + + + + An error occurred while renaming the following item: + Az alábbi elem átnevezése közben hiba történt: + + + + New path: + Új útvonal: + + + + An error occurred while executing the following command: + Az alábbi parancs végrehajtása közben hiba történt: + + + + Exit code: + Kilépési kód: + + + + Failed to detect the device for installing the GRUB! + Nem sikerült eszközt detektálni a GRUB telepítéséhez! + + + + An error occurred while upgrading the system! + A rendszer frissítése közben hibák léptek fel! + + + + Restart upgrade ... + Frissítés újrakezdése ... + + + + This file could not be copied because it does not exist: + Az alábbi fájl nem másolható, mivel nem létezik: + + + + The following partition has no UUID: + Az alábbi partíció nem rendelkezik UUID-vel: + + + + An error occurred while creating a new partition on the following device: + Az alábbi eszközön nem sikerült új partíciót létrehozni: + + + + An error occurred while mounting the following partition/image: + Az alábbi partíció/kép csatolása közben hiba történt: + + + + An error occurred while setting one or more flags on the following partition: + Az alábbi partíción nem sikerült egy vagy több új jelzőt beállítani: + + + + Flag(s): + Jelző(k): + + + + An error occurred while creating the partition table on the following device: + Az alábbi eszközön nem sikerült partíciós táblát létrehozni: + + + + An error occurred while unmounting the following partition/image/mount point: + Az alábbi partíció/kép/csatolási pont leválasztása közben hiba történt: + + + + An error occurred while cloning the properties of the following item: + Az alábbi elem tulajdonságainak klónozása közben hiba történt: + + + + Target item: + Cél elem: + + + + An error occurred while cloning the following symbolic link: + Az alábbi szimbolikus link klónozása közben hiba történt: + + + + Target symlink: + Cél szimlink: + + + + An error occurred while cloning the following file: + Az alábbi fájl klónozása közben hiba történt: + + + + Target file: + Célfájl: + + + + An error occurred while cloning the following directory: + Az alábbi könyvtár klónozása közben hiba történt: + + + + Target directory: + Célkönyvtár: + + + + An error occurred while deleting the following directory: + Az alábbi könyvtár törlése közben hiba történt: + + + + basic restore UI + alap visszaállítási felület + + + + Available restore point(s): + Elérhető visszaállítási pont(ok): + + + + Quit + Kilépés + + + + Selected restore point: + Választott visszaállítási pont: + + + + The specified storage directory path is set. + A megadott tárolási könyvtár beállítva. + + + + Deleting old restore point(s) + Elöregedett visszaállítási pont(ok) törlése + + + + Restore with the following restore point: + Visszaállítás a következő visszaállítási ponttal: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Használat: systemback-cli [kapcsoló] + + Kapcsolók: + + -n, --newbackup új visszaállítási pont készítése + + -s, --storagedir <útvonal> a visszaállítási pontok tárolására szolgáló + könyvtár útvonalának kiírása vagy beállítása + + -u, --upgrade a rendszer frissítése + felesleges fájlok és csomagok eltávolítása + + -v, --version a telepített Systemback verziószámának kiírása + + -h, --help ezen súgó megjelenítése + + + + The Systemback command line interface cannot be used on a Live system! + A Systemback parancssoros felülete nem használható Live rendszeren! + + + + Restore with the following restore method: + Visszaállítás a következő visszaállítási móddal: + + + + Users configuration files restore + Felhasználók beállításfájljainak visszaállítása + + + + + Complete configuration files restore + Beállításfájlok teljes visszaállítása + + + + Configuration files restore + Beállításfájlok visszaállítása + + + + + + You want to keep the current fstab file? + A jelenleg használt fstab fájlt megkívánod tartani? + + + + + + + + + + + (Y/N) + (I/N) + + + + + + + Reinstall the GRUB 2 bootloader? + A GRUB 2 rendszerbetöltőt újratelepítsem? + + + + Start the restore? + Indulhat a visszaállítás? + + + + Restoring the users configuration files + A felhasználók beállításfájljainak visszaállítása + + + + The users configuration files full restoration are completed. + A felhasználók beállításfájljainak teljes visszaállítása kész. + + + + The users configuration files restoration are completed. + A felhasználók beállításfájljainak visszaállítása kész. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + A számítógép újraindításához nyomd meg az 'Enter' billentyűt, vagy kilépéshez a 'Q'-t. + + + + Press 'ENTER' key to quit. + A kilépéshez nyomd meg az 'ENTER' billentyűt. + + + + An error occurred while changing the access permissions of the following file: + Az alábbi fájl hozzáférési jogosultságainak módosítása közben hiba történt: + + + + + Cannot start the Systemback scheduler daemon! + A Systemback ütemező démon nem indult el! + + + + + Missing, wrong or too much argument(s). + Hiányzó, hibás vagy túl sok argumentum. + + + + The process is disabled for this user. + A folyamat le lett tiltva ennél a felhasználónál. + + + + Root privileges are required. + Root jogosultság szükséges. + + + + This system is a Live. + Ez a rendszer egy Live. + + + + Already running. + Már fut egy példányban. + + + + Unable to daemonize. + Nem sikerült démonizálni. + + + + Cannot start the Systemback graphical user interface! + A Systemback grafikus felülete nem indult el! + + + + Unable to get root permissions. + Nem sikerült root jogosultságot szerezni. + + + + Unable to connect to the X server. + Nem sikerült az X szerverhez csatlakozni. + + + + Unsafe X Window authorization! + Nem biztonságos X Window hitelesítés! + + + + Please do not use 'sudo' command. + Kérlek, ne használd a 'sudo' parancsot. + + + diff --git a/lang/systemback_id.ts b/lang/systemback_id.ts new file mode 100644 index 0000000..cb657cc --- /dev/null +++ b/lang/systemback_id.ts @@ -0,0 +1,1898 @@ + + + + + systemback + + + Full name of the new user: + Nama lengkap untuk pengguna baru: + + + + New username to login: + Nama pengguna baru untuk masuk: + + + + New user account password: + Sandi untuk akun baru: + + + + New root password (optional, not recommended for Ubuntu): + Sandi baru root (opsional, tidak disarankan untuk Ubuntu): + + + + New hostname: + Hostname yang baru: + + + + + + + + + + + + + + + + Back + Kembali + + + + + + + + Next + Berikutnya + + + + + Working directory + Direktori kerja + + + + Created Live images + Menciptakan Live images + + + + Name of the Live system + Nama untuk system Live-nya + + + + + + + + Options + Pilihan + + + + Write target + Tulis target + + + + Live operations + Operasi Live + + + + Include the user data files + Masukkan berkas data-data pengguna + + + + Redetect devices + Mendeteksi ulang perangkat + + + + + + Delete + Hapus + + + + Write to target + Menulis ke tujuan + + + + Convert to ISO + Konversi ke ISO + + + + + + Create new + Buat baru + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Kaitkan partisi sistem yang cacat ke direktori '/mnt' menurut sususan aslinya.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + + + Mount + Kaitkan + + + + Reset mounts + Ulangi mengaitkan + + + + Repair type + Tipe perbaikan + + + + GRUB 2 repair + Perbaikan GRUB 2 + + + + System files repair + Perbaikan berkas sistem + + + + + Reinstall GRUB 2 bootloader: + Pasang ulang bootloader GRUB 2: + + + + + Auto detection + Deteksi otomatis + + + + Full repair + Perbaikan penuh + + + + Do not repair the fstab file + Jangan perbaiki berkas fstab + + + + Exclude hidden user files and directories from restore points + Kecualikan berkas pengguna yang tersembunyi dan direktori-direktori yang berasal dari restore point + + + + Exclude user data files and directories from Live system + Kecualikan berkas data-data pengguna dan direktori yang berasal dari sistem Live + + + + Excluded items + Item-item yang dikecualikan + + + + + Remove item from the exclusion list + Hapus item dari daftar pengecualian + + + + + Add item to the exclusion list + Tambah item kedaftar pengecualian + + + + Scheduler state: + Keadaan penjadwalan: + + + + + + + + + + + + + + Disabled + Tidak berfungsi + + + + Timer settings + Pengaturan waktu + + + + Waiting time before creating a new restore point: + Waktu tunggu sebelum pembuatan restore point yang baru: + + + + Visible countdown time: + Munculkan waktu hitung mundur: + + + + Pop-up window position on screen: + Posisi kemunculan jendela pada layar: + + + + Use silent mode + Gunakan mode senyap + + + + + + + More + Lagi + + + + + + + Less + Kurang + + + + Simple system backup and restore application with extra features + sistem backup yang mudah dan aplikasi pemulihan dengan fitur tambahan + + + + Project homepage: + Homepage proyek: + + + + Contact: + Kontak: + + + + Donate: + Donasi: + + + + Systemback version: + Versi Sytemback: + + + + + License + Lisensi + + + + Re-read directories + Baca ulang direktori + + + + Writable Linux filesystem! + Filesystem Linux yang dapat ditulisi! + + + + + + + Cancel + Batal + + + + + + + + + + + Maximum number of temporary restore points + Jumlah maksimal titik pemulihan sementara + + + + + Include + + + + + + + + + + + + + + + + + + + empty + kosong + + + + + + + + + + + not used + tidak digunakan + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + + Restore points + Titik pemulihan + + + + Highlighted restore points + Titik pemulihan yang ditandai + + + + Point operations + Titik operasi + + + + Highlight + Tanda + + + + Rename + Ubah nama + + + + + + + + + + + + + + + + + + Select restore point + Pilih titik pemulihan + + + + + + + + + Storage directory + Direktori penampungan + + + + Function menu + Menu fungsi + + + + + + System restore + Pemulihan sistem + + + + + + + System copy + Duplikasi sistem + + + + + System install + Pemasangan sistem + + + + + + + Live system create + Membuat Live system + + + + + System repair + Perbaikan sistem + + + + System upgrade + Pembaharuan sistem + + + + + Exclude + Pengecualian + + + + + Schedule + Penjadwalan + + + + Excludable items + + + + + + + About + Tentang + + + + + Settings + Pengaturan + + + + Change path + Ubah jalur + + + + Restore type + Tipe pemulihan + + + + + + + + + Full restore + Pemulihan penuh + + + + + + + + + System files restore + Pemulihan file-file sistem + + + + User(s) configuration files restore + Pemulihan berkas-berkas konfigurasi pengguna + + + + + Keep newly installed configuration files + Tetapkan berkas konfigurasi yang baru terpasang + + + + Include user(s): + Masukkan pengguna: + + + + Do not restore the fstab file + Jangan memulihkan berkas fstab + + + + Partition settings + Pengaturan partisi + + + + + + + + Transfer user configuration files + Transfer konfigurasi berkas-berkas pengguna + + + + Copy user data files + Duplikat berkas-berkas data pengguna + + + + Install GRUB 2 bootloader: + Pasang bootloader GRUB 2: + + + + + + Format + Format + + + + + + Reset partitions settings + Kembalikan pengaturan partisi + + + + + + + + + + Unmount + Lepaskan kaitan + + + + Change partition settings + Ubah pengaturan partisi + + + + Filesystem: + Filesystem: + + + + Mount point: + Titik kait: + + + + + + + + + ! Delete ! + ! Hapus ! + + + + Add new partition + Tambah partisi baru + + + + Create new: + Buat baru: + + + + Need to set the mount point as '/boot/efi'! + Perlu untuk menempatkan titik kait sebagai '/boot/efi'! + + + + Window DPI scaling + Skala jendela DPI + + + + Multiplier factor for scaling the window contents + Faktor pengali untuk penyekalaan isi-isi jendela + + + + User interface + Antarmuka pengguna + + + + Window always on top + Jendela selalu diatas + + + + System + Sistem + + + + Disable scheduler daemon starting for the following users: + Mencegah mulainya daemon terjadwal untuk pengguna berikut: + + + + Use XZ compressor for squashfs filesystems + Gunakan kompresi XZ untuk sistemfile squashfs + + + + Override auto-detected language: + Mencegah deteksi bahasa secara otomatis: + + + + Override the used style: + Mencegah gunakan gaya: + + + + Disable incremental restore points (do not use hard links between backups) + Nonaktifkan penambahan file cadangan (jangan gunakan hardlink ketika mencadangkan) + + + + Create Live ISO images automatically (faster than the conversion) + Membuat file Live ISO secara otomatis (lebih cepat daripada penggantian) + + + + Do not empty memory cache at the end of some processes + + + + + Includable items + + + + + Included items + + + + + ! Interrupt ! + ! Interupsi ! + + + + Creates a scheduled restore point within few seconds. + Buat sebuah jadwal titik pemulihan dalam hitungan detik. + + + + + + Start + Mulai + + + + Later + Nanti + + + + Systemback user authentication + Otentikasi pengguna Systemback + + + + Administrator: + Administrator: + + + + Password: + Sandi: + + + + + + scheduler + Penjadwalan + + + + Upgrading the system + Memperbaharui sistem + + + + + Partition + Partisi + + + + + Size + Ukuran + + + + Label + Label + + + + Current mount point + Titik kait yang sekarang + + + + New mount point + Titik kait yang baru + + + + Filesystem + Filesystem + + + + Device + Perangkat + + + + + Top left + Kiri atas + + + + + + Top right + Kanan atas + + + + + + Center + Tengah + + + + + + Bottom left + Kiri bawah + + + + + Bottom right + Kanan bawah + + + + + + day(s) + hari + + + + + + hour(s) + jam + + + + + + + + minute(s) + menit + + + + + + seconds + detik + + + + + + + Everyone + Semua orang + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + + + Boot system installer + + + + + + + + + + Transfer user configuration and data files + Transfer konfigurasi pengguna dan berkas-berkas data + + + + + + Currently running system + Sistem yang sedang berjalan + + + + + Creating restore point + Membuat titik pemulihan + + + + + Restoring the full system + Memulihkan sistem secara penuh + + + + + Restoring the system files + Memulihkan berkas-berkas sistem + + + + Restoring the user(s) configuration files + Memulihkan berkas-berkas konfigurasi + + + + Repairing the system files + Memperbaiki berkas-berkas sistem + + + + Repairing the full system + Memperbaiki sistem menyeluruh + + + + Copying the system + Menduplikat sistem + + + + Installing the system + Memasang sistem + + + + Creating Live system + Membuat system Live + + + + + process + proses + + + + Converting Live system image + Mengkonversi bekas sistem Live + + + + Writing Live image to the target device + Sedang membuat Live image ke device tujuan + + + + + Deleting restore point + Menghapus titik pemulihan + + + + Deleting old restore point + Menghapus titik pemulihan yang lama + + + + + Deleting incomplete restore point + Menghapus titik pemulihan yang tak sempurna + + + + + Flushing filesystem buffers + + + + + + + + + + Reboot + Muat ulang + + + + + + + X restart + Ulang X + + + + Repairing the GRUB 2 + Memperbaiki GRUB 2 + + + + + Emptying cache + Mengosongkan cache + + + + + An another Systemback process is currently running, please wait until it finishes. + Proses Systemback yang lain sedang berjalan, mohon ditunggu sampai selesai. + + + + + Unable to get exclusive lock! + Tidak mampu untuk mendapatkan kunci ekslusif! + + + + + First, close all package manager. + Pertama, tutuplah semua manajer paket. + + + + The specified name contain(s) unsupported character(s)! + Nama yang dispesifik mengandung karakter-karakter yang tidak didukung! + + + + Please enter a new name. + Silahkan masukkan nama baru. + + + + Restore the system files to the following restore point: + Pulihkan berkas-berkas sistem kedalam titik kait: + + + + Repair the system files with the following restore point: + Perbaiki berkas-berkas sistem dengan titik pemulihan berikut: + + + + Repair the complete system with the following restore point: + Perbaiki sistem keseluruhan dengan menggunakan titik kait berikut: + + + + Restore the complete user(s) configuration files to the following restore point: + Pulihkan berkas-berkas konfigurasi secara keseluruhan dari para pengguna kedalam titik kait berikut: + + + + Restore the user(s) configuration files to the following restore point: + Pulihkan berkas-berkas konfigurasi pengguna kedalam titik kait berikut: + + + + The user(s) configuration files full restoration are completed. + Pemulihan menyeluruh berkas-berkas konfigurasi pengguna sudah selesai. + + + + + The X server will restart automatically within 30 seconds. + X server akan memulai ulang secara otomatis dalam 30 detik. + + + + The user(s) configuration files restoration are completed. + Pemulihan berkas-berkas pengguna sudah selesai. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Perbaikan berkas sistem sudah selesai, akan tetapi ada kesalahan muncul ketika melakukan pemasangan ulang GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + Sistem mungkin tidak bisa dimuat! (Umumnya, perbedaan arsitektur yang menjadi penyebabnya.) + + + + The full system repair is completed. + Perbaikan sistem menyeluruh sudah selesai. + + + + The system repair is completed. + Perbaikan sistem telah selesai. + + + + Copy the system, using the following restore point: + Duplikasi sistem, menggunakan titik pulih berikut: + + + + Install the system, using the following restore point: + Pasang sistem, menggunakan titik pulih berikut: + + + + + + + The restore point creation is aborted! + Pembuatan titik pemulihan digagalkan! + + + + + + Not enough free disk space to complete the process. + Tidak cukup ruang tersisa untuk melanjutkan proses. + + + + + Root privileges are required for running the Systemback! + Hak akses root diperlukan untuk menjalankan Systemback! + + + + Restore the complete system to the following restore point: + Pulihkan keseluruhan sistem kedalam titik pulih berikut: + + + + + The system files restoration are completed. + Pemulihan berkas sistem sudah selesai. + + + + + + The computer will restart automatically within 30 seconds. + Komputer akan menyala ulang secara otomatis dalam 30 detik. + + + + + The full system restoration is completed. + Pemulihan sistem menyeluruh sudah selesai. + + + + + + + + The system copy is aborted! + Duplikasi sistem digagalkan! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + Partisi yang dispesifik tidak mempunyai cukup ruang sisa untuk menduplikasi sistem. Sistem yang terduplikasi tidak akan berfungsi dengan baik. + + + + The system copy is completed, but an error occurred while installing the GRUB! + Duplikasi sistem sudah selesa, akan tetapi ada kesalahan yang muncul ketika memasang GRUB! + + + + + You need to manually install a bootloader. + Perlu untuk melakuakan pemasangan bootloader secara manual. + + + + + The system restoration is aborted! + Pemulihan sistem digagalkan! + + + + An error occurred while reinstalling the GRUB. + Kesalahan muncul ketika pemasangan ulang GRUB. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Perbaikan sistem menyeluruh sudah selesai, akan tetapi ada kesalahan ketika melakukan pemasangan ulang GRUB! + + + + The system copy is completed. + Duplikasi sistem sudah selesai. + + + + + + + + The Live system creation is aborted! + Pembuatan sistem Live digagalkan! + + + + An error occurred while creating the file system image. + Kesalahan terjadi ketika membuat berkas image sistem. + + + + An error occurred while creating the container file. + Kesalahan terjadi ketika pembuatan berkas penampung. + + + + The Live system creation is completed. + Pembuatan system Live sudah selesai. + + + + The created .sblive file can be written to pendrive. + Pembuatan berkas .sblive tidak bisa dituliskan pada USB. + + + + Format the %1, and write the following Live system image: + Format %1, dan tulis kedalam image Live sistem berikut: + + + + + + The specified partition could not be mounted. + Partisi yang dispesifik tidak dapat dikaitkan. + + + + The GRUB 2 repair is completed. + Perbaikan GRUB 2 selesai. + + + + The system install is completed. + Pemasangan sistem telah selesai. + + + + The system install is completed, but an error occurred while installing the GRUB! + Pemasangan sistem selesai, akan tetapi ada kesalahan ketika pemasangan GRUB! + + + + + + + + The system installation is aborted! + Pemasangan sistem digagalkan! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + Partisi yang dispesifik tidak mempunyai cukup ruang sisa untuk menduplikasi sistem. Sistem yang terduplikasi tidak akan berfungsi dengan baik. + + + + + + The specified partition could not be formatted (in use or unavailable). + Partisi yang dispesifik tidak dapat diformat (sedang digunakan atau tidak tersedia). + + + + An error occurred while reinstalling the GRUB! + Kesalahan terjadi ketika melakukan pemasangan ulang GRUB! + + + + + + + + + + There has been critical changes in the file system during this operation. + Ada perubahan yang penting dalam sistem berkas ketika proses operasi berjalan. + + + + Repair the GRUB 2 bootloader. + Memperbaiki bootloader GRUB 2. + + + + + + + + The Live write is aborted! + Penulisan Live digagalkan! + + + + The selected device does not have enough space to write the Live system. + Tujuan yang dipilih tidak memiliki cukup ruang untuk membuat sistem Live. + + + + An error occurred while unpacking the Live system files. + Kesalahan terjadi ketika pembongkaran berkas sistem Live. + + + + The Live system image write is completed. + Penulisan berkas sistem Live sudah selesai. + + + + + + + The Live conversion is aborted! + Konversi Live digagalkan! + + + + An error occurred while renaming the essential Live files. + Kesalahan terjadi ketika merubah nama berkas penting dalam sistem Live. + + + + An error occurred while creating the .iso image. + Kesalahan muncul ketika pembuatan berkas .iso. + + + + An error occurred while reading the .sblive image. + Kesalahan muncul ketika pembacaan berkas .sblive. + + + + An error occurred while creating the new initramfs image. + Kesalahan muncul ketika pembuatan berkas initramfs baru. + + + + + The restore point deletion is aborted! + Penghapusan titik kait digagalkan! + + + + + An error occurred while during the process. + Kesalahan muncul ketika dalam proses. + + + + + + The Live image could not be mounted. + Berkas Live tidak dapat dikaitkan. + + + + + The system repair is aborted! + Perbaikan sistem digagalkan! + + + + + There is not enough free space. + Tak ada cukup ruang sisa. + + + + + + Live image + Image Live + + + + + + + + Multiple mount points + Pengali titik kait + + + + Enabled + Diaktifkan + + + + Interrupting the current process + Menggagalkan proses yang sedang berjalan + + + + Systemback worker thread is interrupted by the user. + Rangkain kerja systemback diinterupsi pengguna. + + + + Boot Live without xorg.conf file + Boot Live tanpa berkas xorg.conf + + + + + + Boot Live system + Boot sistem Live + + + + + + Boot Live in safe graphics mode + Boot Live dalam mode grafis aman + + + + + + Boot Live in debug mode + Boot Live dalam mode debug + + + + Press 'E' key to edit + Tekan 'E' untuk mengubah + + + + Press TAB key to edit + Tekan TAB untuk mengubah + + + + + + + + + + + (Y/N) + (Y/T) + + + + The specified storage directory path has not been set! + Jalur penampungan direktori yg spesifik belum ditetapkan! + + + + The restoration is aborted! + Pemulihan digagalkan! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Pemulihan berhasil, akan tetapi mengalami kesalahan ketika melakukan pemasangan ulang GRUB! + + + + The restore points storage directory is not available or not writable! + Direktori penampungan untuk titik pulih tidak tersedia atau tidak dapat ditulisi! + + + + This stupid terminal does not support color! + Terminal yang konyol ini tidak mendukung pewarnaan! + + + + This terminal is too small! + Terminal ini terlalu kecil! + + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + + + + + An error occurred while creating the following directory: + + + + + An error occurred while removing the following file: + + + + + An error occurred while creating the following hard link: + + + + + Reference file: + + + + + An error occurred while creating the following file: + + + + + An error occurred while renaming the following item: + + + + + New path: + + + + + An error occurred while executing the following command: + + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + + + + + An error occurred while upgrading the system! + Ada kesalahan proses ketika memperbarui sistem! + + + + Restart upgrade ... + Ulangi pembaruan ... + + + + This file could not be copied because it does not exist: + + + + + The following partition has no UUID: + + + + + An error occurred while creating a new partition on the following device: + + + + + An error occurred while mounting the following partition/image: + + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + + + + + An error occurred while unmounting the following partition/image/mount point: + + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + + + + + Target file: + + + + + An error occurred while cloning the following directory: + + + + + Target directory: + + + + + An error occurred while deleting the following directory: + + + + + basic restore UI + pemulihan dasar UI + + + + Available restore point(s): + Titik pulih yang tersedia: + + + + Quit + Hentikan + + + + Selected restore point: + Titik pulih yang dipilih: + + + + The specified storage directory path is set. + Direktori penampungan yang spesifik telah ditetapkan. + + + + Deleting old restore point(s) + Menghapus titik pulih yang lama + + + + Restore with the following restore point: + Pulihkan dengan titik pulih berikut: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Penggunaan: systemback-cli + + Opsi: + + -n, --newbackup membuat sebuah titik pulih + + -s, --storagedir <path> mendapatkan atau menetapkan lokasi direktori titik + pulih + + -u, --upgrade memperbaharui sistem yang berjalan + hapus paket dan berkas yang tidak diperlukan + + -v, --version menampilkan keluaran nomor versi dari Systemback + + -h, --help tunjukkan pesan bantuan ini + + + + The Systemback command line interface cannot be used on a Live system! + + + + + Restore with the following restore method: + Pulihkan dengan metode pemulihan berikut: + + + + Users configuration files restore + Pemulihan konfigurasi berkas-berkas pengguna + + + + + Complete configuration files restore + Pemulihan secara lengkap berkas-berkas konfigurasi + + + + Configuration files restore + Pemulihan berkas-berkas konfigurasi + + + + + + You want to keep the current fstab file? + Apakah anda ingin menyimpan berkas fstab yang sekarang? + + + + + + + Reinstall the GRUB 2 bootloader? + Pasang ulang bootloader GRUB 2? + + + + Start the restore? + Mulai pemulihan? + + + + Restoring the users configuration files + Memulihkan berkas-berkas konfigurasi pengguna + + + + The users configuration files full restoration are completed. + Pemulihan secara utuh berkas-berkas konfigurasi pengguna telah selesai. + + + + The users configuration files restoration are completed. + Pemulihan berkas-berkas konfigurasi pengguna telah selesai. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Tekan tombol 'ENTER' untuk menyalakan ulang komputer, atau 'Q' untuk berhenti. + + + + Press 'ENTER' key to quit. + Tekan tombol 'ENTER' untuk berhenti. + + + + An error occurred while changing the access permissions of the following file: + + + + + + Cannot start the Systemback scheduler daemon! + Tidak mampu memulai penjadwalan daemon Systemback! + + + + + Missing, wrong or too much argument(s). + Hilang, salah atau terlalu banyak argumen. + + + + The process is disabled for this user. + Proses ini terlarang untuk pengguna sekarang. + + + + Root privileges are required. + Hak akses root diperlukan. + + + + This system is a Live. + Sistem ini adalah Live. + + + + Already running. + Sudah berjalan. + + + + Unable to daemonize. + Tidak mampu untuk menghanguskan. + + + + Cannot start the Systemback graphical user interface! + Tidak dapat memulai antar muka grafis Systemback! + + + + Unable to get root permissions. + Tidak mampu memperoleh hak akses root. + + + + Unable to connect to the X server. + Tidak mampu terhubung dengan X server. + + + + Unsafe X Window authorization! + Otorisasi X Window yang tidak aman! + + + + Please do not use 'sudo' command. + Mohon jangan menggunakan perintah 'sudo'. + + + diff --git a/lang/systemback_ko.ts b/lang/systemback_ko.ts new file mode 100644 index 0000000..675b361 --- /dev/null +++ b/lang/systemback_ko.ts @@ -0,0 +1,1290 @@ + + + + + systemback + + Full name of the new user: + 사용자 이름: + + + New username to login: + 로그인 사용자명: + + + New user account password: + 계정 비밀번호: + + + New root password (optional, not recommended for Ubuntu): + root 비밀번호(옵션, 우분투는 추천하지 않음): + + + New hostname: + 호스트명: + + + Back + 이전 + + + Next + 다음 + + + Working directory + 작업 디렉토리 + + + Created Live images + 라이브 이미지를 생성했습니다 + + + Name of the Live system + 라이브 시스템 이름 + + + Options + 옵션 + + + Write target + 저장 디렉토리 + + + Live operations + 라이브 명령들 + + + Include the user data files + 사용자 데이터 포함 + + + Redetect devices + 장치 다시 탐색 + + + Delete + 삭제 + + + Write to target + 디렉토리에 쓰기 + + + Convert to ISO + ISO 로 변환하기 + + + Create new + 새 이미지 생성 + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + 원본 구조대로 /mnt 디렉토리에 결함이 있는 시스템 파티션을 마운트 합니다.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + Mount + 마운트 + + + Reset mounts + 마운트 초기화 + + + Repair type + type 복구 + + + GRUB 2 repair + GRUB 2 복구 + + + System files repair + 시스템 파일 복구 + + + Reinstall GRUB 2 bootloader: + GRUB 2 부트로더 재 설치 + + + Auto detection + 자동 감지 + + + Full repair + 전체 복구 + + + Do not repair the fstab file + fstab 파일을 복구하지 않습니다. + + + Exclude hidden user files and directories from restore points + 복원 지점에서 숨김 파일과 디렉토리를 제외합니다. + + + Exclude user data files and directories from Live system + 라이브 시스템에서 사용자 데이터와 디렉토리를 제외합니다 + + + Excluded items + 제외한 항목들 + + + Remove item from the exclusion list + 예외 목록에서 항목 제거 + + + Add item to the exclusion list + 예외 목록에 항목 추가 + + + Scheduler state: + 예약 작업 상태: + + + Disabled + 선택하지않음 + + + Timer settings + 타이머 설정 + + + Waiting time before creating a new restore point: + 새 복원 포인트 생성 전 대기 시간: + + + Visible countdown time: + 진행 시간 보이기: + + + Pop-up window position on screen: + 화면의 팝업창 위치: + + + Use silent mode + silent 모드 사용 + + + More + 더보기 + + + Less + 감추기 + + + Simple system backup and restore application with extra features + 다양한 기능을 제공하는 시스템 백업 및 복구 프로그램 + + + Project homepage: + 프로젝트 홈페이지: + + + Contact: + 연락처: + + + Donate: + 후원: + + + Systemback version: + Systemback 버전: + + + License + Licence + + + Re-read directories + 디렉토리 다시 읽기 + + + Writable Linux filesystem! + 쓰기 가능한 파일 시스템 + + + Cancel + 취소 + + + Maximum number of temporary restore points + 복원 지점의 최대 수 + + + empty + 비어있음 + + + not used + 사용안함 + + + Restore points + 복원 지점 + + + Highlighted restore points + 중요 표시한 복원 지점 + + + Point operations + 주요 명령어 + + + Highlight + 중요 표시 + + + Rename + 이름 바꾸기 + + + Select restore point + 복원 지점 선택 + + + Storage directory + 결과물 저장 디렉토리 + + + Function menu + 기능 메뉴 + + + System restore + 시스템 복원 + + + System copy + 시스템 복사 + + + System install + 시스템 설치 + + + Live system create + 라이브 시스템 생성 + + + System repair + 시스템 복구 + + + System upgrade + 시스템 업그레이드 + + + Exclude + 예외 + + + Schedule + 예약작업 + + + About + 정보 + + + Settings + 설정 + + + Change path + 경로 변경 + + + Restore type + type 복원 + + + Full restore + 전체 복원 + + + System files restore + 시스템 파일 복원 + + + User(s) configuration files restore + 사용자 설정 파일 복원 + + + Keep newly installed configuration files + 새로 설치한 설정 파일들을 유지 + + + Include user(s): + 포함할 사용자: + + + Do not restore the fstab file + fatab 파일을 복원 하지 않음 + + + Partition settings + 파티션 설정 + + + Transfer user configuration files + 사용자 설정 전송 + + + Copy user data files + 사용자 데이터 복사 + + + Install GRUB 2 bootloader: + GRUB 2 부트로더 설치: + + + Format + 포맷 + + + Reset partitions settings + 파티션 설정 초기화 + + + Unmount + 마운트 해제 + + + Change partition settings + 파티션 설정 변경 + + + Filesystem: + 파일시스템: + + + Mount point: + 마운트 지점: + + + ! Delete ! + ! 삭제 ! + + + Add new partition + 새 파티션 추가 + + + Create new: + 새로 생성: + + + Need to set the mount point as '/boot/efi'! + '/boot/efi'를 마운트 지점으로 설정해야 합니다.! + + + Window DPI scaling + 창 확대(DPI scaling) + + + Multiplier factor for scaling the window contents + 화면 크기 조정을 위한 배율 + + + User interface + 사용자 인터페이스 + + + Window always on top + 항상 최상위에 보이기 + + + System + 시스템 + + + Disable scheduler daemon starting for the following users: + 예약 작업을 제한할 사용자: + + + Use XZ compressor for squashfs filesystems + squashfs 파일시스템 XZ 압축 사용 + + + Override auto-detected language: + 자동 탐지된 언어 재설정: + + + Override the used style: + 사용중인 스타일 재설정: + + + Disable incremental restore points (do not use hard links between backups) + 증분 복원 비활성화(백업에 하드링크를 사용하지 않음) + + + Create Live ISO images automatically (faster than the conversion) + 라이브 ISO 이미지를 자동으로 생성 (변환보다 빠름) + + + Do not empty memory cache at the end of some processes + 동일 프로세스 종료 시 메모리 캐시를 비우지 않음 + + + ! Interrupt ! + ! 작업 중단 ! + + + Creates a scheduled restore point within few seconds. + 몇 초 내에 예약 된 복원 지점을 만듭니다. + + + Start + 시작 + + + Later + 나중에 + + + Systemback user authentication + 프로그램 사용자 인증 + + + Administrator: + 시스템 관리자: + + + Password: + 비밀번호: + + + scheduler + 스케쥴러 + + + Upgrading the system + 시스템 업그레이드 + + + Partition + 파티션 + + + Size + 크기 + + + Label + 레이블 + + + Current mount point + 현재 마운트 지점 + + + New mount point + 새 마운트 지점 + + + Filesystem + 파일시스템 + + + Device + 장치 + + + Top left + 왼쪽 상단 + + + Top right + 오른쪽 상단 + + + Center + 가운데 + + + Bottom left + 왼쪽 하단 + + + Bottom right + 오른쪽 하단 + + + day(s) + + + + hour(s) + + + + minute(s) + + + + seconds + + + + Everyone + 누구나 + + + Transfer user configuration and data files + 사용자 설정 및 데이터 전송 + + + Currently running system + 현재 구동중인 시스템 + + + Creating restore point + 복원 지점 생성 + + + Restoring the full system + 전체 시스템 복원 + + + Restoring the system files + 시스템 파일 복원 + + + Restoring the user(s) configuration files + 사용자 설정 파일 복원 + + + Repairing the system files + 시스템 파일 복구 + + + Repairing the full system + 전체 시스템 복구 + + + Copying the system + 시스템 복사 + + + Installing the system + 시스템 설치 + + + Creating Live system + 라이브 시스템 생성 + + + process + 프로세스 + + + Writing Live image to the target device + 저장 디렉토리에 라이브 이미지 쓰기 + + + Converting Live system image + 라이브 시스템 이미지 변환 + + + Deleting restore point + 복원 지점 삭제 + + + Deleting old restore point + 오래된 복원 지점 삭제 + + + Deleting incomplete restore point + 완료되지 않은 복원 지점 삭제 + + + Emptying cache + 캐시 비우기 + + + Flushing filesystem buffers + 파일시스템 버퍼 비우기 + + + Reboot + 재시작 + + + X restart + 윈도우 재시작 + + + Repairing the GRUB 2 + GRUB 2 복구 + + + Restore the system files to the following restore point: + 다음 복원 지점을 사용하여 시스템 파일을 복원합니다: + + + Repair the system files with the following restore point: + 다음 복원 지점을 사용하여 시스템 파일을 복구합니다: + + + Repair the complete system with the following restore point: + 다음 복원 지점을 사용하여 완전한 시스템을 복구합니다: + + + Restore the complete user(s) configuration files to the following restore point: + 다음 복원 지점을 사용하여 완전한 사용자 설정을 복원합니다: + + + Restore the user(s) configuration files to the following restore point: + 다음 복원 지점을 사용하여 사용자 설정을 복원합니다: + + + Copy the system, using the following restore point: + 다음 복원 지점을 사용하여 시스템을 복사합니다: + + + Install the system, using the following restore point: + 다음 복원 지점을 사용하여 시스템을 설치합니다: + + + Restore the complete system to the following restore point: + 다음 복원 지점을 사용하여 완전한 시스템을 복원합니다: + + + Format the %1, and write the following Live system image: + %1 포멧 후 다음 라이브 시스템 이미지를 사용: + + + Repair the GRUB 2 bootloader. + GRUB 2 부트로더 재설치. + + + The user(s) configuration files full restoration are completed. + 사용자 설정 파일의 전체 복원이 완료되었습니다. + + + The X server will restart automatically within 30 seconds. + 30초후에 윈도우가 자동으로 재시작 됩니다. + + + The user(s) configuration files restoration are completed. + 사용자 설정 파일의 복원이 완료되었습니다. + + + The full system repair is completed. + 전체 시스템 복구가 완료되었습니다. + + + The system repair is completed. + 시스템 복구가 완료되었습니다. + + + The system files restoration are completed. + 시스템 파일 복원이 완료되었습니다. + + + The computer will restart automatically within 30 seconds. + 30초후 시스템이 재시작됩니다. + + + The full system restoration is completed. + 전체 시스템 복원이 완료되었습니다. + + + The system copy is completed. + 시스템 복사가 완료되었습니다. + + + The Live system creation is completed. + 라이브 시스템 생성이 완료되었습니다. + + + The created .sblive file can be written to pendrive. + USB에 작성할 수 있는 .sblive 파일이 생성되었습니다. + + + The GRUB 2 repair is completed. + GRUB 2 부트로더 복구가 완료되었습니다. + + + The system install is completed. + 시스템 설치가 완료되었습니다. + + + The Live system image write is completed. + 라이브 시스템 작성이 완료되었습니다. + + + An another Systemback process is currently running, please wait until it finishes. + 다른 systemback 프로세스가 현재 동작중입니다. 프로세스가 종료될 때까지 기다려 주세요. + + + Unable to get exclusive lock! + + + + First, close all package manager. + 먼저 모든 패키지 관리자를 종료하세요. + + + The specified name contain(s) unsupported character(s)! + 지정한 이름에 지원되지 않는 문자가 있습니다. + + + Please enter a new name. + 새 이름을 입력하세요. + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + 시스템 복구가 완료되었지만 부트로더 GRUB 2 재설치를 하는 동안 오류가 발생하였습니다. + + + The system may not bootable! (In general, the different architecture is causing the problem.) + 시스템이 부팅되지 않을 수 있습니다! (일반적으로 다른 아키텍처로 인해 문제가 발생합니다.) + + + The restore point creation is aborted! + 복구 지점 생성이 중단되었습니다. + + + Not enough free disk space to complete the process. + 디스크 용량 부족으로 프로세스를 완료할 수 없습니다. + + + Root privileges are required for running the Systemback! + 프로그램 구동을 위해 root 권한이 필요합니다. + + + The system copy is aborted! + 시스템 복사가 중단되었습니다. + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + 지정된 파티션에 시스템을 복사할 충분한 여유 공간이 없습니다. 복사된 시스템이 제대로 작동하지 않습니다. + + + The system copy is completed, but an error occurred while installing the GRUB! + 시스템 복사가 완료되었지만 부트로더 GRUB 설치를 하는 동안 오류가 발생하였습니다. + + + You need to manually install a bootloader. + 부트로더를 수동으로 설치해야 합니다. + + + The system restoration is aborted! + 시스템 복원이 중단되었습니다. + + + An error occurred while reinstalling the GRUB. + 부트로더 재설치 도중 오류가 발생하였습니다. + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + 전체 시스템 복구가 완료되었지만 부트로더 GRUB 2 재설치를 하는 동안 오류가 발생하였습니다. + + + The Live system creation is aborted! + 라이브 시스템 생성이 중단되었습니다. + + + An error occurred while creating the file system image. + 파일시스템 이미지 생성 중 오류가 발생하였습니다. + + + An error occurred while creating the container file. + 컨테이너 파일을 만드는 동안 오류가 발생했습니다. + + + The specified partition could not be mounted. + 지정한 파티션을 마운트 할 수 없습니다. + + + The system install is completed, but an error occurred while installing the GRUB! + 시스템 설치가 완료되었지만 부트로더를 설치하는 동안 오류가 발생하였습니다. + + + The system installation is aborted! + 시스템 설치가 중단되었습니다. + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + 지정된 파티션에 시스템을 설치할 충분한 여유 공간이 없습니다. 시스템이 제대로 작동하지 않습니다. + + + The specified partition could not be formatted (in use or unavailable). + 지정한 파티션을 마운트 할 수 없습니다.(사용 중이거나 존재하지 않음) + + + An error occurred while reinstalling the GRUB! + 부트로더 재설치 도중 오류가 발생하였습니다. + + + There has been critical changes in the file system during this operation. + 이 작업 중에 파일 시스템에 중요한 변경이있었습니다. + + + The Live write is aborted! + 라이브 시스템 작성이 중단되었습니다. + + + The selected device does not have enough space to write the Live system. + 선택한 드라이브에 라이브 시스템을 생성할 충분한 공간이 없습니다. + + + An error occurred while unpacking the Live system files. + 라이브 시스템 파일을 해제하는 동안 오류가 발생하였습니다. + + + The Live conversion is aborted! + 라이브 시스템 변환이 중단되었습니다. + + + An error occurred while renaming the essential Live files. + 필요한 라이브 시스템 파일들의 이름을 변경하는 도중 오류가 발생하였습니다. + + + An error occurred while creating the .iso image. + ISO 이미지를 생성하는 도중 오류가 발생하였습니다. + + + An error occurred while reading the .sblive image. + 라이브 시스템 이미지를 읽는 도중 오류가 발생하였습니다. + + + An error occurred while creating the new initramfs image. + 새 부팅 이미지 initramfs 생성 도중 오류가 발생하였습니다. + + + The restore point deletion is aborted! + 복원 지점 삭제가 중단되었습니다. + + + An error occurred while during the process. + 프로세스 실행 도중 오류가 발생하였습니다. + + + The Live image could not be mounted. + 라이브 이미지를 마운트 할 수 없습니다. + + + The system repair is aborted! + 시스템 복구가 중단되었습니다. + + + There is not enough free space. + 충분한 공간이 없습니다. + + + Live image + 라이브 이미지 + + + Multiple mount points + 마운트 지점들 + + + Enabled + 활성화됨 + + + Interrupting the current process + 현재 프로세스 중단 + + + Systemback worker thread is interrupted by the user. + 사용자에 의해 프로세스가 중단되었습니다. + + + Boot Live without xorg.conf file + xorg.conf 파일 없이 라이브 부팅 + + + Boot Live system + 라이브 시스템 부팅 + + + Boot Live in safe graphics mode + 안전 그래픽 모드로 라이브 부팅 + + + Boot Live in debug mode + 디버그 모드로 라이브 부팅 + + + Press 'E' key to edit + 수정하려면 'E' 키를 누르세요 + + + Press TAB key to edit + 수정하려면 TAB 키를 누르세요 + + + (Y/N) + (예/아니오) + + + The specified storage directory path has not been set! + 저장할 디렉토리 경로가 설정되지 않았습니다! + + + The restoration is aborted! + 복원이 중단되었습니다. + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + 복원이 완료되었지만 부트로더 GRUB 2 재설치를 하는 동안 오류가 발생하였습니다. + + + The restore points storage directory is not available or not writable! + 복원 지점이 저장된 디렉토리가 존재하지 않거나 쓰기 권한이 없습니다. + + + This stupid terminal does not support color! + This stupid terminal does not support colour! + + + This terminal is too small! + 터미널이 너무 작습니다 + + + An error occurred while upgrading the system! + 시스템 업그레이드 도중 오류가 발생하였습니다. + + + Restart upgrade ... + 업그레이드를 다시 시작합니다. + + + basic restore UI + 기본 복원 화면 + + + Available restore point(s): + 존재하는 복원 지점 + + + Quit + 종료 + + + Selected restore point: + 선택한 복원 지점: + + + The specified storage directory path is set. + 저장할 디렉토리 경로가 설정되지 않았습니다. + + + Deleting old restore point(s) + 오래된 복원 지점을 삭제합니다. + + + Restore with the following restore point: + 복원할 복원 지점: + + + Restore with the following restore method: + 복원에 사용할 복원 방법: + + + Users configuration files restore + 사용자 설정 파일 복원 + + + Complete configuration files restore + 설정 파일 복원이 완료되었습니다. + + + Configuration files restore + 설정 파일 복원 + + + You want to keep the current fstab file? + 현재의 fstab 파일을 그대로 유지하시겠습니까? + + + Reinstall the GRUB 2 bootloader? + GRUB 2 부트로더를 다시 설치하시겠습니까? + + + Start the restore? + 복원을 시작하시겠습니까? + + + Restoring the users configuration files + 사용자 설정 파일을 복원합니다. + + + The users configuration files full restoration are completed. + 사용자 설정 파일의 전체 복원이 완료되었습니다. + + + The users configuration files restoration are completed. + 사용자 설정 파일의 복원이 완료되었습니다. + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + 시스템 재시작을 위해서 ENTER 키를 누르거나 Q 를 눌러서 프로그램을 종료하세요. + + + Press 'ENTER' key to quit. + ENTER 키를 누르면 종료됩니다. + + + An error occurred while changing the access permissions of the following file: + 접근 권한을 변경하는 도중 중 오류가 발생한 파일: + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + + + + An error occurred while opening the following file: + 파일을 여는 도중 오류가 발생한 파일: + + + An error occurred while creating the following directory: + 디렉토리 생성 도중 오류가 발생한 디렉토리: + + + An error occurred while removing the following file: + 삭제 도중 오류가 발생한 파일: + + + An error occurred while creating the following hard link: + 하드 링크 생성 중 오류가 발생한 링크: + + + Reference file: + 참조 파일: + + + An error occurred while creating the following file: + 파일 생성 도중 오류가 발생한 파일: + + + An error occurred while renaming the following item: + 이름 변경 도중 오류가 발생한 항목: + + + New path: + 새 경로: + + + An error occurred while executing the following command: + 실행 도중 오류가 발생한 명령어: + + + Exit code: + 종료 코드: + + + Failed to detect the device for installing the GRUB! + 부트로더를 설치할 장치를 찾을 수 없습니다. + + + This file could not be copied because it does not exist: + 복사할 수 없는 파일(존재하지 않음): + + + The following partition has no UUID: + UUID 가 존재하지 않는 파티션: + + + An error occurred while creating a new partition on the following device: + 파티션 생성 도중 오류가 발생한 장치: + + + An error occurred while mounting the following partition/image: + 마운트 도중 오류가 발생한 파티션 또는 이미지: + + + An error occurred while creating the partition table on the following device: + 파티션 테이블 생성 도중 오류가 발생한 장치: + + + An error occurred while unmounting the following partition/image/mount point: + 마운트 해제 도중 오류가 발생한 파티션/이미지/마운트 지점: + + + An error occurred while cloning the properties of the following item: + 등록정보 복제 도중 오류가 발생한 항목: + + + Target item: + 대상 항목: + + + An error occurred while cloning the following symbolic link: + 심볼릭 링크 복제 도중 오류가 발생한 링크: + + + Target symlink: + 대상 심볼릭 링크: + + + An error occurred while cloning the following file: + 복제 도중 오류가 발생한 파일: + + + Target file: + 대상 파일: + + + An error occurred while cloning the following directory: + 복제 도중 오류가 발생한 디렉토리: + + + Target directory: + 대상 디렉토리: + + + An error occurred while deleting the following directory: + 삭제 도중 오류가 발생한 디렉토리: + + + Cannot start the Systemback scheduler daemon! + 예약작업을 위한 스케쥴러를 시작할 수 없습니다. + + + Missing, wrong or too much argument(s). + 인수가 없거나 잘못되었거나 너무 많습니다. + + + The process is disabled for this user. + 이 사용자에 대해 이 프로세스는 비활성화되었습니다. + + + Root privileges are required. + root 권한이 필요합니다. + + + This system is a Live. + 이 시스템은 라이브 시스템입니다. + + + Already running. + 이미 구동되고 있습니다. + + + Unable to daemonize. + Unable to daemonise. + + + Cannot start the Systemback graphical user interface! + GUI 모드를 시작할 수 없습니다. + + + Unable to get root permissions. + root 권한을 사용할 수 없습니다. + + + Unable to connect to the X server. + X 서버에 접속할 수 없습니다. + + + Unsafe X Window authorization! + Unsafe X Window authorisation! + + + Please do not use 'sudo' command. + sudo 명령어를 사용하지 마세요. + + + An error occurred while setting one or more flags on the following partition: + 하나 이상의 플래그를 설정하는 동안 오류가 발생한 파티션: + + + Flag(s): + 플래그: + + + Boot system installer + 시스템 설치프로그램 부팅 + + + Include + 포함 + + + The Systemback command line interface cannot be used on a Live system! + 라이브 시스템에서는 CLI를 사용할 수 없습니다. + + + Included items + 포함된 항목 + + + Excludable items + 제외 가능한 항목 + + + Includable items + 포함 가능한 항목 + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + 복원 지점에 사용자 데이터 파일 및 디렉터리 포함 +복원 가능한 구성 파일로 정의됩니다! + + + The specified debug level is invalid! + 지정한 디버그 레벨이 존재하지 않습니다. + + + The default level (1) will be used. + 기본 레벨 (1)을 사용합니다. + + + Version: + 버전: + + + Compilation date and time: + 수정 일시: + + + Installed files: + 설치된 파일: + + + Operating system: + 운영체제: + + + Mounted filesystems: + 마운트 된 파일시스템: + + + System language: + 시스템 언어: + + + Translation: + 번역: + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + 현재 진행중인 패키지 인덱스 파일의 재 동기화가 완료 될 때까지 기다리십시오. + + + diff --git a/lang/systemback_pt_BR.ts b/lang/systemback_pt_BR.ts new file mode 100644 index 0000000..e5b6fb8 --- /dev/null +++ b/lang/systemback_pt_BR.ts @@ -0,0 +1,1898 @@ + + + + + systemback + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + + + + + An error occurred while creating the following directory: + + + + + An error occurred while removing the following file: + + + + + An error occurred while creating the following hard link: + + + + + Reference file: + + + + + An error occurred while creating the following file: + + + + + An error occurred while renaming the following item: + + + + + New path: + + + + + An error occurred while executing the following command: + + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + + + + + An error occurred while upgrading the system! + Ocorreu um erro durante a atualização do sistema! + + + + Restart upgrade ... + Reinicie a atualização ... + + + + This file could not be copied because it does not exist: + + + + + The following partition has no UUID: + + + + + An error occurred while creating a new partition on the following device: + + + + + An error occurred while mounting the following partition/image: + + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + + + + + An error occurred while unmounting the following partition/image/mount point: + + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + + + + + Target file: + + + + + An error occurred while cloning the following directory: + + + + + Target directory: + + + + + An error occurred while deleting the following directory: + + + + + + Cannot start the Systemback scheduler daemon! + + + + + + Missing, wrong or too much argument(s). + + + + + The process is disabled for this user. + + + + + Root privileges are required. + + + + + This system is a Live. + Este sistema é um Live. + + + + Already running. + + + + + Unable to daemonize. + + + + + Cannot start the Systemback graphical user interface! + Não foi possível iniciar a interface gráfica do Systemback! + + + + Unable to get root permissions. + Incapaz de obter permissões de root. + + + + Unable to connect to the X server. + Incapaz de se conectar ao servidor X. + + + + Full name of the new user: + Nome completo do novo usuário: + + + + New username to login: + Novo nome de usuário para logar: + + + + New user account password: + Nova senha da conta de usuário: + + + + New root password (optional, not recommended for Ubuntu): + Nova senha do root (opcional, não recomendado para o Ubuntu): + + + + New hostname: + Novo nome da máquina: + + + + + + + + + + + + + + + + Back + Voltar + + + + + + + + Next + Próximo + + + + + Working directory + Diretório de trabalho + + + + Created Live images + Imagens Live criadas + + + + Name of the Live system + Nome do sistema Live + + + + + + + + Options + Opções + + + + Write target + Escrever no alvo + + + + Live operations + Operações Live + + + + Include the user data files + Incluir arquivos de dados do usuário + + + + Redetect devices + Redetectar dispositivos + + + + + + Delete + Excluir + + + + Write to target + + + + + Convert to ISO + Converter para ISO + + + + + + Create new + Criar nova + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Monte a(s) partição(ões) do sistema defeituoso para o diretório '/mnt' de acordo com a estrutura original. ('/' -> '/mnt', '/home' -> '/mnt /home', etc.) + + + + + Mount + Montar + + + + Reset mounts + Redefinição de montagens + + + + Repair type + Tipo de reparo + + + + GRUB 2 repair + reparo do GRUB 2 + + + + System files repair + Reparar o sistema de arquivos + + + + + Reinstall GRUB 2 bootloader: + Reinstalar o carregador de boot GRUB 2: + + + + + Auto detection + Detecção automática + + + + Full repair + Reparação completa + + + + Do not repair the fstab file + Não reparar o arquivo fstab + + + + Exclude hidden user files and directories from restore points + Excluir arquivos e diretórios ocultos do usuário a partir de pontos de restauração + + + + Exclude user data files and directories from Live system + Excluir arquivo de dados de usuário do sistema Live + + + + Excludable items + + + + + Excluded items + Itens excluídos + + + + + Remove item from the exclusion list + Retirar item da lista de exclusão + + + + + Add item to the exclusion list + Adicionar item a lista de exclusão + + + + Scheduler state: + Estado do agendador: + + + + + + + + + + + + + + Disabled + Desabilitado + + + + Timer settings + Definições de tempo + + + + Waiting time before creating a new restore point: + Tempo de espera antes de criar um novo ponto de restauração: + + + + Visible countdown time: + Contagem regressiva visível: + + + + Pop-up window position on screen: + Posição do pop-up na tela: + + + + Use silent mode + Usar modo silencioso + + + + + + + More + Mais + + + + + + + Less + Menos + + + + Simple system backup and restore application with extra features + Sistema de backup simples e restauração de aplicativos com recursos extras + + + + Project homepage: + Página do projeto: + + + + Contact: + Contato: + + + + Donate: + Doações: + + + + Systemback version: + Versão do Systemback: + + + + + License + Licença + + + + Re-read directories + Reler diretórios + + + + Writable Linux filesystem! + Sistema de arquivos Linux gravável! + + + + + + + Cancel + Cancelar + + + + + + + + + + + Maximum number of temporary restore points + Número máximo de pontos de restaurações temporários + + + + Restore points + Pontos de restauranção + + + + Highlighted restore points + Pontos destaque + + + + Point operations + Ponto de operações + + + + Highlight + Destacar + + + + Rename + Renomear + + + + + + + + + + + + + + + + + + Select restore point + Selecionar ponto de restauração + + + + + + + + + Storage directory + Diretório de armazenamento + + + + Function menu + Menu de funções + + + + + Schedule + Agendamento + + + + + + About + Sobre + + + + + Settings + Configurações + + + + System upgrade + Atualização do sistema + + + + + System install + Instalação do sistema + + + + + + + Live system create + Criar sistema Live + + + + + System repair + Reparo do sistema + + + + + + System restore + Restauração do sistema + + + + + + + System copy + Cópia do sistema + + + + + Exclude + Ignorar + + + + + Include + Incluir + + + + Change path + Alterar caminho + + + + + + + + + + + + + + + + + + empty + vazio + + + + + + + + + + + not used + não utilizado + + + + Restore type + Tipo de restauração + + + + + + + + + Full restore + Restauração completa + + + + + + + + + System files restore + Arquivos de restauração do sistema + + + + User(s) configuration files restore + Restaurar os arquivos de configuração dos usuário(s) + + + + + Keep newly installed configuration files + Manter os arquivos de configuração recém-instalados + + + + Include user(s): + Incluir usuário(s): + + + + Do not restore the fstab file + Impossível restaurar arquivo fstab + + + + Partition settings + Configurações da partição + + + + + + + + Transfer user configuration files + + + + + Copy user data files + Copiar arquivos de dados do usuário + + + + Install GRUB 2 bootloader: + Instalar o bootloader GRUB 2: + + + + + + Format + Formatar + + + + + + Reset partitions settings + Resetar as configurações da partição + + + + + + + + + + Unmount + Desmontar + + + + Change partition settings + Alterar as configurações da partição + + + + Filesystem: + Sistema de arquivos: + + + + Mount point: + Ponto de montagem: + + + + + + + + + ! Delete ! + + + + + Add new partition + Adicionar nova partição + + + + Create new: + Criar nova: + + + + Need to set the mount point as '/boot/efi'! + É preciso definir o ponto de montagem como '/boot/efi'! + + + + Window DPI scaling + + + + + Multiplier factor for scaling the window contents + + + + + User interface + + + + + Window always on top + + + + + System + Sistema + + + + Disable scheduler daemon starting for the following users: + + + + + Use XZ compressor for squashfs filesystems + + + + + Override auto-detected language: + + + + + Override the used style: + + + + + Disable incremental restore points (do not use hard links between backups) + + + + + Create Live ISO images automatically (faster than the conversion) + + + + + Do not empty memory cache at the end of some processes + + + + + Includable items + + + + + Included items + + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + + ! Interrupt ! + ! Interromper ! + + + + Creates a scheduled restore point within few seconds. + Cria um ponto de restauração programada em poucos segundos. + + + + + + Start + Iniciar + + + + Later + Mais tarde + + + + Systemback user authentication + Autenticação do usuário Systemback + + + + Administrator: + Administrador: + + + + Password: + Palavra-passe: + + + + Unsafe X Window authorization! + + + + + Please do not use 'sudo' command. + Por favor não use o comando 'sudo'. + + + + + + + + + Transfer user configuration and data files + + + + + + + scheduler + programar + + + + + Partition + Partição + + + + + Size + + + + + Label + + + + + Current mount point + Ponto de montagem atual + + + + New mount point + Novo ponto de montagem + + + + Filesystem + Sistema de arquivos + + + + Device + Dispositivo + + + + + Top left + Superior esquerda + + + + + + Top right + Superior direita + + + + + + Center + Centro + + + + + + Bottom left + Inferior esquerda + + + + + Bottom right + Inferior direita + + + + + + day(s) + dia(s) + + + + + + hour(s) + hora(s) + + + + + + + + minute(s) + minuto(s) + + + + + + seconds + segundos + + + + + + + Everyone + + + + + + + Currently running system + Rodando atualmente o sistema + + + + + Emptying cache + Limpando o cache + + + + + Flushing filesystem buffers + + + + + + Restoring the full system + Restaurando o sistema completo + + + + + Restoring the system files + Restaurando os arquivos de sistema + + + + Restoring the user(s) configuration files + Restaurando os arquivos de configuração dos usuário(s) + + + + Repairing the system files + Reparando os arquivos de sistema + + + + Repairing the full system + Reparando o sistema completo + + + + Repairing the GRUB 2 + Reparando o GRUB 2 + + + + Copying the system + Copiando o sistema + + + + Installing the system + Instalando o sistema + + + + Writing Live image to the target device + + + + + Upgrading the system + Atualizando o sistema + + + + + Deleting incomplete restore point + Apagando o ponto de restauração imcompleto + + + + Interrupting the current process + + + + + Deleting old restore point + Excluindo ponto(s) de restauração antigo + + + + + Creating restore point + Criando ponto de restauração + + + + + Deleting restore point + Excluindo ponto de restauração + + + + Converting Live system image + Convertendo a imagem do sistema Live + + + + + process + + + + + Creating Live system + Criando sistema Live + + + + + + + + + Reboot + Reiniciar + + + + + + + X restart + Reiniciar o X + + + + + + Live image + Imagem Live + + + + Restore the system files to the following restore point: + Restaurar os arquivos de sistema para o seguinte ponto de restauração: + + + + Repair the system files with the following restore point: + Reparar os arquivos de sistema com o seguinte ponto de restauração: + + + + Repair the complete system with the following restore point: + O reparo completo do sistema foi realizado com o seguinte ponto de restauração: + + + + Restore the complete user(s) configuration files to the following restore point: + Restaurar todos arquivos de configuração dos usuário(s) para o seguinte ponto de restauração: + + + + Restore the user(s) configuration files to the following restore point: + Restaurar os arquivos de configuração dos usuário(s) para o seguinte ponto de restauração: + + + + Copy the system, using the following restore point: + Copie o sistema, usando o seguinte ponto de restauração: + + + + Install the system, using the following restore point: + Instalar o sistema, utilizando o seguinte ponto de restauração: + + + + Restore the complete system to the following restore point: + Restauração completa do sistema para o seguinte ponto de restauração: + + + + Format the %1, and write the following Live system image: + Formate o %1, e grave a imagem do sistema Live existente: + + + + Repair the GRUB 2 bootloader. + Recuperar o inicializador do GRUB2. + + + + The user(s) configuration files full restoration are completed. + A restauração completa dos arquivos de configuração dos usuário(s) está concluída. + + + + + The X server will restart automatically within 30 seconds. + O servidor X irá reiniciar automaticamente em 30 segundos. + + + + The user(s) configuration files restoration are completed. + A restauração dos arquivos de configuração dos usuário(s) foi completada. + + + + The full system repair is completed. + O reparo completo do sistema está concluído. + + + + The system repair is completed. + O reparo do sistema está concluído. + + + + + The system files restoration are completed. + Restauração dos arquivos de sistema foi concluída. + + + + + + The computer will restart automatically within 30 seconds. + O computador irá reiniciar automaticamente em 30 segundos. + + + + + The full system restoration is completed. + Restauração completa do sistema concluída. + + + + The system copy is completed. + A cópia do sistema está concluída. + + + + The Live system creation is completed. + Criação do sistema Live está concluída. + + + + The created .sblive file can be written to pendrive. + O arquivo criado em .sbLive, pode ser gravado no pendrive. + + + + The GRUB 2 repair is completed. + O reparo do GRUB 2 está finalizado. + + + + The system install is completed. + A instalação do sistema está completa. + + + + The Live system image write is completed. + A imagem do sistema Live foi gravada. + + + + + An another Systemback process is currently running, please wait until it finishes. + Outro processo Systemback está sendo executado, por favor aguarde até que ele termine. + + + + + Unable to get exclusive lock! + Não foi possível obter a trava exclusiva! + + + + + First, close all package manager. + Primeiro, feche todo o gerenciador de pacotes. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + The specified name contain(s) unsupported character(s)! + O nome especificado contém caractere(s) não suportáveis! + + + + Please enter a new name. + Por favor, entre com um novo nome. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + O reparo do arquivos de sistema está concluído, mas ocorreu um erro durante a reinstalação do GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + O sistema pode não iniciar! (Em geral, a causa do problema está na arquitetura diferente.) + + + + + + + The restore point creation is aborted! + A restauração do ponto de criação foi cancelada! + + + + + + Not enough free disk space to complete the process. + Não existe espaço livre em disco para completar o procedimento. + + + + + Root privileges are required for running the Systemback! + Privilégios de root são necessários para a execução do Systemback! + + + + + + + + The system copy is aborted! + + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + A partição espeficada não tem espaço livre suficiente para a cópia do sistema. O sistema copiado não irá funcionar perfeitamente. + + + + The system copy is completed, but an error occurred while installing the GRUB! + A cópia do sistema foi concluída, mas ocorreu um erro durante a instalação do GRUB! + + + + + You need to manually install a bootloader. + Necessária instalação manual de um bootloader. + + + + + The system restoration is aborted! + + + + + An error occurred while reinstalling the GRUB. + + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + O reparo completo do sistema foi concluído, mas ocorreu um erro durante a reinstalação do GRUB! + + + + + + + + The Live system creation is aborted! + + + + + An error occurred while creating the file system image. + + + + + An error occurred while creating the container file. + Ocorreu um erro ao criar o arquivo do conteúdo. + + + + + + The specified partition could not be mounted. + A partição especificada não pode ser montada. + + + + The system install is completed, but an error occurred while installing the GRUB! + A instalação do sistema está completa, mas ocorreu um erro durante a instalação do GRUB! + + + + + + + + The system installation is aborted! + Instalação do sistema abortada! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + A partição especificada não tem espaço livre suficiente para instalação do sistema. O sistema instalado não irá funcionar corretamente. + + + + + + The specified partition could not be formatted (in use or unavailable). + A partição especificada não pode ser formatada (em uso ou indisponível). + + + + An error occurred while reinstalling the GRUB! + Ocorreu um erro ao reinstalar o GRUB! + + + + + + + + + + There has been critical changes in the file system during this operation. + Houve mudanças críticas no sistema de arquivos durante esta operação. + + + + + + + + The Live write is aborted! + + + + + The selected device does not have enough space to write the Live system. + + + + + An error occurred while unpacking the Live system files. + Ocorreu um erro ao descompactar os arquivos desse sistema Live. + + + + + + + The Live conversion is aborted! + + + + + An error occurred while renaming the essential Live files. + Um erro ocorreu ao renomear os arquivos essenciais do Live. + + + + An error occurred while creating the .iso image. + Um erro ocorreu ao criar a imagem .iso. + + + + An error occurred while reading the .sblive image. + Um erro ocorreu ao ler a imagem .sblive. + + + + An error occurred while creating the new initramfs image. + + + + + + The restore point deletion is aborted! + + + + + + An error occurred while during the process. + + + + + + + The Live image could not be mounted. + + + + + + The system repair is aborted! + + + + + + There is not enough free space. + + + + + + + + + Multiple mount points + + + + + Enabled + Habilitado + + + + Systemback worker thread is interrupted by the user. + + + + + Boot Live without xorg.conf file + Iniciar Live sem arquivo xorg.conf + + + + + + Boot Live system + Iniciar sistema Live + + + + + + Boot system installer + + + + + + + Boot Live in safe graphics mode + Iniciar Live em modo grafico seguro + + + + + + Boot Live in debug mode + Iniciar Live no modo de depuracao + + + + Press 'E' key to edit + Pressione a tecla 'E' para editar + + + + Press TAB key to edit + Pressione a tecla TAB para editar + + + + An error occurred while changing the access permissions of the following file: + + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Uso: systemback-cli [opção] + + Opção: + + -n, --newback Cria um novo ponto de restauração + + -s, --storagedir <path> Obter ou definir o caminho do ponto de + restauração no diretório de armazenamento + + -u, --upgrade Atualiza o sistema atual + Remover arquivos desnecessários e pacotes + + -v, --version Exibe a versão do Systemback + + -h, --help Mostra esta ajuda + + + + basic restore UI + + + + + The Systemback command line interface cannot be used on a Live system! + + + + + This stupid terminal does not support color! + + + + + This terminal is too small! + + + + + The specified storage directory path has not been set! + O caminho do diretório de armazenamento especificado não está definido! + + + + The restoration is aborted! + Restauração abortada! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + A restauração está concluída, mas ocorreu um erro ao reinstalar GRUB! + + + + The restore points storage directory is not available or not writable! + O diretório de armazenamento que contém os pontos de recuperação, não está disponível ou não pode ser escrito! + + + + Available restore point(s): + Ponto de recuperação disponível: + + + + Quit + Sair + + + + Selected restore point: + Selecionar ponto de restauração: + + + + The specified storage directory path is set. + O caminho do diretório de armazenamento especificado está definido. + + + + Restore with the following restore point: + Restaure com o seguinte ponto de restauração: + + + + Restore with the following restore method: + Restaure com o seguinte método de restauração: + + + + Users configuration files restore + Restaurar os arquivos de configuração dos usuários + + + + + Complete configuration files restore + Restauração completa dos arquivos de configuração + + + + Configuration files restore + Restaura arquivos de configuração + + + + + + You want to keep the current fstab file? + Você deseja manter o arquivo atual do fstab? + + + + + + + + + + + (Y/N) + (S/N) + + + + + + + Reinstall the GRUB 2 bootloader? + Reinstalar o gerenciador de inicialização GRUB2? + + + + Start the restore? + Iniciar a restauração? + + + + The users configuration files full restoration are completed. + A restauração completa dos arquivos de configuração dos usuário está concluída. + + + + The users configuration files restoration are completed. + A restauração dos arquivos de configuração dos usuários foi completada. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Pressione a tecla 'ENTER' para reiniciar o computador, ou 'Q' para sair. + + + + Press 'ENTER' key to quit. + + + + + Deleting old restore point(s) + Apagando pontos de restauração antigos + + + + Restoring the users configuration files + Restaurando os arquivos de configuração dos usuários + + + diff --git a/lang/systemback_ro.ts b/lang/systemback_ro.ts new file mode 100644 index 0000000..8e89482 --- /dev/null +++ b/lang/systemback_ro.ts @@ -0,0 +1,1898 @@ + + + + + systemback + + + The specified debug level is invalid! + Nivelul de depanare specificat este invalid! + + + + The default level (1) will be used. + Nivelul implicit (1) va fi folosit. + + + + Version: + Versiunea: + + + + Compilation date and time: + Data de compilare: + + + + + Installed files: + Fișiere instalate: + + + + Operating system: + Sistem de operare: + + + + + Mounted filesystems: + Sisteme de fișiere montate: + + + + System language: + Limba sistemului: + + + + Translation: + Traducere: + + + + An error occurred while opening the following file: + Eroare la deschiderea următorului fișier: + + + + An error occurred while creating the following directory: + Eroare la crearea dosarului următor: + + + + An error occurred while removing the following file: + Eroare la eliminarea următorul fișier: + + + + An error occurred while creating the following hard link: + Eroare la crearea link-ul hard următor: + + + + Reference file: + Fișier de referință: + + + + An error occurred while creating the following file: + Eroare la crearea următorului fișier: + + + + An error occurred while renaming the following item: + Eroare la redenumirea elementului următor: + + + + New path: + Cale nou: + + + + An error occurred while executing the following command: + Eroare în timpul executării comanda următoare: + + + + Exit code: + Codul de ieșire: + + + + Failed to detect the device for installing the GRUB! + Nu a reușit să detecteze dispozitivul pentru instalare GRUB! + + + + An error occurred while upgrading the system! + Eroare la actualizarea sistemului! + + + + Restart upgrade ... + Reporniți actualizarea ... + + + + This file could not be copied because it does not exist: + Acest fișier nu există, imposibil de copiat: + + + + The following partition has no UUID: + Partiția nu are UUID: + + + + An error occurred while creating a new partition on the following device: + Eroare la crearea partiției nou pe următorul dispozitiv: + + + + An error occurred while mounting the following partition/image: + A apărut o eroare la montarea următoarului partiție/imagine: + + + + An error occurred while setting one or more flags on the following partition: + Eroare în timpul setării una sau mai multe steaguri pe următoarea partiție: + + + + Flag(s): + Steag(uri): + + + + An error occurred while creating the partition table on the following device: + Eroare la crearea tablei de partiții pe următorul dispozitiv: + + + + An error occurred while unmounting the following partition/image/mount point: + Eroare la demontarea următorului partiție/imagine/punct de montare: + + + + An error occurred while cloning the properties of the following item: + Eroare la clonarea proprietățile următorului element: + + + + Target item: + Element țintă: + + + + An error occurred while cloning the following symbolic link: + Eroare la clonarea următorului link simbolic: + + + + Target symlink: + Țintă symlink: + + + + An error occurred while cloning the following file: + Eroare la clonarea următorului fișier: + + + + Target file: + Fișier țintă: + + + + An error occurred while cloning the following directory: + Eroare la clonarea următorului dosar: + + + + Target directory: + Dosar țintă: + + + + An error occurred while deleting the following directory: + Eroare la ștergerea următorul dosar: + + + + + Cannot start the Systemback scheduler daemon! + Nu pot porni demonul planificator! + + + + + Missing, wrong or too much argument(s). + Lipsa, greșit sau prea multe argument(e). + + + + The process is disabled for this user. + Procesul a fost dezactivat pentru acest utilizator. + + + + Root privileges are required. + Sunt necesare privilegii de root. + + + + This system is a Live. + Acest sistem este un Live. + + + + Already running. + În funcțiune. + + + + Unable to daemonize. + Demonizare imposibilă. + + + + Cannot start the Systemback graphical user interface! + Interfață grafică nu a pornit! + + + + Unable to get root permissions. + Nu se poate obține permisiuni de root. + + + + Unable to connect to the X server. + Nu se poate conecta la serverul X. + + + + Full name of the new user: + Numele complet al noului utilizator: + + + + New username to login: + Noul nume de utilizator pentru autentificare: + + + + New user account password: + Parola pentru contul noului utilizator: + + + + New root password (optional, not recommended for Ubuntu): + Noua parolă de root (opțional, nu este recomandată pentru Ubuntu): + + + + New hostname: + Nume nou pentru sistemul gazdă: + + + + + + + + + + + + + + + + Back + Înapoi + + + + + + + + Next + Înainte + + + + + Working directory + Dosar de lucru + + + + Created Live images + Imagini Live create + + + + Name of the Live system + Numele sistemului Live + + + + + + + + Options + Opțiuni + + + + Write target + Destinație scriere + + + + Live operations + operațiuni Live + + + + Include the user data files + Include fișiere de date ale utilizatorului + + + + Redetect devices + Redetectare dispozitive + + + + + + Delete + Șterge + + + + Write to target + Scrie pe dispozitiv + + + + Convert to ISO + Conversie în format ISO + + + + + + Create new + Creare nou + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Montează partițiile sistemului defect sub dosarul '/mnt', în conformitate cu structura inițială.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + + + Mount + Montează + + + + Reset mounts + Resetare mounts + + + + Repair type + Tipul de reparație + + + + GRUB 2 repair + Reparare GRUB 2 + + + + System files repair + Repararea fișierelor de sistem + + + + + Reinstall GRUB 2 bootloader: + Reinstalare încărcător de sisteme GRUB 2: + + + + + Auto detection + Detectare automată + + + + Full repair + Reparare totală + + + + Do not repair the fstab file + Nu repara fișierul fstab + + + + Exclude hidden user files and directories from restore points + Exclude fișierele și dosarele ascunse ale utilizatorului din punctele de restabilire + + + + Exclude user data files and directories from Live system + Exclude fișierele de date și dosarele ale utilizatorului din sistemul Live + + + + Excludable items + Elemente de exclus + + + + Excluded items + Elemente excluse + + + + + Remove item from the exclusion list + Înlăturare elemente din lista de excludere + + + + + Add item to the exclusion list + Adaugă element la lista de excludere + + + + Scheduler state: + Stare programări: + + + + + + + + + + + + + + Disabled + Dezactivat + + + + Timer settings + Setări temporizator + + + + Waiting time before creating a new restore point: + Timp de așteptare înainte de a crea un nou punct de restaurare: + + + + Visible countdown time: + Numărătorul invers vizibil: + + + + Pop-up window position on screen: + Poziția ferestrei Pop-up pe ecran: + + + + Use silent mode + Modul silențios activat + + + + + + + More + Mai mult + + + + + + + Less + Mai puțin + + + + Simple system backup and restore application with extra features + O aplicație simplă pentru crearea de copii de siguranță și restabilirea acestora, cu caracteristici supl + + + + Project homepage: + Pagina web a proiectului: + + + + Contact: + Contact: + + + + Donate: + Donație: + + + + Systemback version: + Versiune Systemback: + + + + + License + Licență + + + + Re-read directories + Recitirea dosarelor + + + + Writable Linux filesystem! + Sistem de fișiere Linux cu drepturi de scriere! + + + + + + + Cancel + Renunță + + + + + + + + + + + Maximum number of temporary restore points + Numărul maxim al punctelor de restabilire temporare + + + + Restore points + Puncte de restaurare + + + + Highlighted restore points + Puncte de restaurare evidențiate + + + + Point operations + Operațiuni cu puncte + + + + Highlight + Evidențiere + + + + Rename + Redenumire + + + + + + + + + + + + + + + + + + Select restore point + Selectează punctul de restaurare + + + + + + + + + Storage directory + Dosarul de salvare + + + + Function menu + Funcție meniu + + + + + Schedule + Programare + + + + + + About + Despre aplicație + + + + + Settings + Setări + + + + System upgrade + Actualizare sistem + + + + + System install + Instalare sistem + + + + + + + Live system create + Creare sistem Live + + + + + System repair + Reparare sistem + + + + + + System restore + Restaurare sistem + + + + + + + System copy + Copiere sistem + + + + + Exclude + Excludere + + + + + Include + Include + + + + Change path + Schimbare cale + + + + + + + + + + + + + + + + + + empty + gol + + + + + + + + + + + not used + neutilizat + + + + Restore type + Tipul de restaurare + + + + + + + + + Full restore + Restaurare completă + + + + + + + + + System files restore + Restaurare fișiere sistem + + + + User(s) configuration files restore + Restaurare fișiere de configurare ale utilizatorului + + + + + Keep newly installed configuration files + Păstrează fișierele de configurare nou instalate + + + + Include user(s): + Include utilizator(i): + + + + Do not restore the fstab file + Nu restaurează fișierul fstab + + + + Partition settings + Configurări partiție + + + + + + + + Transfer user configuration files + Transferul fișierelor de configurare ale utilizatorului + + + + Copy user data files + Copiază fișiere de date ale utilizatorilor + + + + Install GRUB 2 bootloader: + Instalare încărcător de sistem GRUB 2: + + + + + + Format + Formatare + + + + + + Reset partitions settings + Anulează setările partiției + + + + + + + + + + Unmount + Demontează + + + + Change partition settings + Modificarea setărilor partiției + + + + Filesystem: + Sistem de fișiere: + + + + Mount point: + Punct de montare: + + + + + + + + + ! Delete ! + ! Șterge ! + + + + Add new partition + Adăugare partiție nouă + + + + Create new: + Creare nou: + + + + Need to set the mount point as '/boot/efi'! + Trebuie setat punctul de montare ca '/boot/efi'! + + + + Window DPI scaling + Scalarea DPI a ferestrei + + + + Multiplier factor for scaling the window contents + Factor de multiplicare pentru scalarea conținutului al ferestrei + + + + User interface + Interfață utilizator + + + + Window always on top + Fereastră mereu deasupra + + + + System + Sistem + + + + Disable scheduler daemon starting for the following users: + Dezactivare demonul planificator pentru următoarele utilizatorii: + + + + Use XZ compressor for squashfs filesystems + Utilizare XZ compresor pentru sisteme de fișiere SquashFS + + + + Override auto-detected language: + Înlocuire limba autodetectată: + + + + Override the used style: + Înlocuire stilul folosit: + + + + Disable incremental restore points (do not use hard links between backups) + Dezactivare puncte de restaurare incrementale (fără legături directe între puncte de restaurare) + + + + Create Live ISO images automatically (faster than the conversion) + Creare automată a unui Live ISO (mai repede decât conversia) + + + + Do not empty memory cache at the end of some processes + Nu goli memoria cache la sfârșitul unor procese + + + + Includable items + Elemente de introdus + + + + Included items + Elemente incluse + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + Include fișiere de date ale utilizatorului în punctele de restaurare +Acestea vor fi definite ca fișiere de configurare pentru restaurare! + + + + ! Interrupt ! + ! Întrerupe ! + + + + Creates a scheduled restore point within few seconds. + Crează un punct de restaurare programat în câteva secunde. + + + + + + Start + Pornește + + + + Later + Mai târziu + + + + Systemback user authentication + Autentificare utilizator Systemback + + + + Administrator: + Administrator: + + + + Password: + Parolă: + + + + Unsafe X Window authorization! + Autentificare X Window nu este sigur! + + + + Please do not use 'sudo' command. + Va rog să nu folosiți comanda 'sudo'. + + + + + + + + + Transfer user configuration and data files + Transferul fișierelor de configurare și de date ale utilizatorului + + + + + + scheduler + Programator + + + + + Partition + Partiție + + + + + Size + Dimensiune + + + + Label + Label + + + + Current mount point + Punctul actual de montare + + + + New mount point + Punct nou de montare + + + + Filesystem + Sistem de fișiere + + + + Device + Dispozitiv + + + + + Top left + Stânga sus + + + + + + Top right + Dreapta sus + + + + + + Center + În centru + + + + + + Bottom left + Stânga jos + + + + + Bottom right + Dreapta jos + + + + + + day(s) + zi(le) + + + + + + hour(s) + oră(e) + + + + + + + + minute(s) + minut(e) + + + + + + seconds + secunde + + + + + + + Everyone + Toți + + + + + + Currently running system + În prezent sistemul rulează + + + + + Emptying cache + Golire cache + + + + + Flushing filesystem buffers + Golire bufferul sistemului de fișiere + + + + + Restoring the full system + Restaurare sistem complet + + + + + Restoring the system files + Restaurare fișiere sistem + + + + Restoring the user(s) configuration files + Restaurare fișiere de configurare ale utilizatorilor + + + + Repairing the system files + Reparare fișiere de sistem + + + + Repairing the full system + Reparare sistem complet + + + + Repairing the GRUB 2 + Reparare GRUB 2 + + + + Copying the system + Copiere sistem + + + + Installing the system + Instalare sistem + + + + Writing Live image to the target device + Scrierea imagini Live la dispozitivul țintă + + + + Upgrading the system + Actualizare sistem + + + + + Deleting incomplete restore point + Ștergere punct de restaurare incomplet + + + + Interrupting the current process + Întreruperea procesului actual + + + + Deleting old restore point + Ștergere punct vechi de restaurare + + + + + Creating restore point + Creare punct de restaurare + + + + + Deleting restore point + Ștergere punct de restaurare + + + + Converting Live system image + Conversare imagine sistem Live + + + + + process + proces + + + + Creating Live system + Creare sistem Live + + + + + + + + + Reboot + Repornire + + + + + + + X restart + Reporniți X + + + + + + Live image + Imagine Live + + + + Restore the system files to the following restore point: + Restabilire fișiere de sistem folosind următorul punct de restabilire: + + + + Repair the system files with the following restore point: + Reparare fișiere de sistem folsoind următorul punct de restabilire: + + + + Repair the complete system with the following restore point: + Reparare sistem complet folosind următorul punct de restabilire: + + + + Restore the complete user(s) configuration files to the following restore point: + Restabilire completă a fișierelor de configurare folosind următorul punct de restabilire: + + + + Restore the user(s) configuration files to the following restore point: + Restabilire fișiere de configurare ale utilizatorilor folosind următorul punct de restabilire: + + + + Copy the system, using the following restore point: + Copiază sistemul, folosind următorul punct de restabilire: + + + + Install the system, using the following restore point: + Instalează sistemul, folosind următorul punct de restabilire: + + + + Restore the complete system to the following restore point: + Restaurarea sistemului complet folosind următorul punct de restabilire: + + + + Format the %1, and write the following Live system image: + Formatați %1, și scrie următorul imagine de sistem Live: + + + + Repair the GRUB 2 bootloader. + Repararea încărcătorului de sisteme GRUB 2. + + + + The user(s) configuration files full restoration are completed. + Restabilirea completă a fișierelor de configurare este finalizată. + + + + + The X server will restart automatically within 30 seconds. + Serverul X repornește automat într-un interval de 30 de secunde. + + + + The user(s) configuration files restoration are completed. + Restabilirea fișierelor de configurare este finalizată. + + + + The full system repair is completed. + Repararea completă a sistemului este finalizată. + + + + The system repair is completed. + Repararea sistemului este finalizată. + + + + + The system files restoration are completed. + Restabilirea fișierelor de sistem este finalizată. + + + + + + The computer will restart automatically within 30 seconds. + Calculatorul va fi repornit automat în interval de 30 de secunde. + + + + + The full system restoration is completed. + Restabilirea sistemului complet este finalizată. + + + + The system copy is completed. + Copierea sistemului este finalizată. + + + + The Live system creation is completed. + Crearea sistemului Live este completă. + + + + The created .sblive file can be written to pendrive. + Fișierul .sblive creat se poate scrie la stick-ul de memorie. + + + + The GRUB 2 repair is completed. + Repararea GRUB 2 este finalizată. + + + + The system install is completed. + Instalarea sistemului este finalizată. + + + + The Live system image write is completed. + Scrierea este finalizată (imaginea sistemului Live). + + + + + An another Systemback process is currently running, please wait until it finishes. + Un alt proces Systemback se execută în prezent, vă rugăm să așteptați până când se termină. + + + + + Unable to get exclusive lock! + Blocarea exclusivă nu este posibilă! + + + + + First, close all package manager. + Închideți toate programele pentru administrare pachete. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + Resincronizare fișierelor la indexul pachetelor în curs de desfășurare, vă rog să așteptați până când se termină. + + + + The specified name contain(s) unsupported character(s)! + Numele specificat conține caracter(e) neacceptat(e)! + + + + Please enter a new name. + Vă rugăm să introduceți un nume nou. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Repararea fișierelor de sistem este finalizată, dar cu eroare la reinstalarea GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + Pornirea sistemului nu este garantată! (În general, problema este cauzată de diferența de arhitectură.) + + + + + + + The restore point creation is aborted! + Crearea punctului de restabilire este abandonată! + + + + + + Not enough free disk space to complete the process. + Nu este spațiu pentru terminarea procesului. + + + + + Root privileges are required for running the Systemback! + Pentru Systemback sunt necesare privilegii root! + + + + + + + + The system copy is aborted! + Copierea sistemului este abandonată! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + Partiția specificată nu are suficient spațiu liber pentru a copia sistemul. Sistemul copiat nu va funcționa corect. + + + + The system copy is completed, but an error occurred while installing the GRUB! + Copierea sistemului este finalizată, dar cu eroare la instalarea GRUB! + + + + + You need to manually install a bootloader. + Trebuie să instalați manual un încărcător de sisteme. + + + + + The system restoration is aborted! + Restabilirea sistemului este abandonată! + + + + An error occurred while reinstalling the GRUB. + Eroare la reinstalarea GRUB-ului. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Repararea completă a sistemului este finalizată, dar cu eroare la reinstalarea GRUB! + + + + + + + + The Live system creation is aborted! + Crearea sistemului Live este abandonată! + + + + An error occurred while creating the file system image. + Eroare la crearea imagini a sistemului de fișiere. + + + + An error occurred while creating the container file. + Eroare la crearea fișierului container. + + + + + + The specified partition could not be mounted. + Partiția specificată nu se poate monta. + + + + The system install is completed, but an error occurred while installing the GRUB! + Instalarea sistemului este terminată, dar cu eroare la instalarea GRUB-ului! Trebuie să instalați manual încărcătorul de sisteme! + + + + + + + + The system installation is aborted! + Instalarea sistemului este abandonată! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + Partițiile specificate nu au suficient spațiu liber pentru a instala sistemul. Sistemul instalat nu va funcționa corect. + + + + + + The specified partition could not be formatted (in use or unavailable). + Partiția specificată nu se poate formata (este în uz sau nu este disponibilă). + + + + An error occurred while reinstalling the GRUB! + Eroare la reinstalarea GRUB! + + + + + + + + + + There has been critical changes in the file system during this operation. + În sistemul de fișiere au fost schimbări critice in timpul operației. + + + + + + + + The Live write is aborted! + Scriere abandonată la Live! + + + + The selected device does not have enough space to write the Live system. + Dispozitivul selectat nu are suficient spațiu pentru scrierea sistemului Live. + + + + An error occurred while unpacking the Live system files. + Eroare la despachetarea fișiere de sistem Live. + + + + + + + The Live conversion is aborted! + Conversia (in Live) este abandonată! + + + + An error occurred while renaming the essential Live files. + Eroare la redenumirea fișierelor esențiale la Live. + + + + An error occurred while creating the .iso image. + Eroare în timpul creării imaginei .iso. + + + + An error occurred while reading the .sblive image. + Eroare în timpul citirii imaginei .sblive. + + + + An error occurred while creating the new initramfs image. + Eroare la crearea a noi imagini initramfs. + + + + + The restore point deletion is aborted! + Ștergerea punctului de restaurare abandonată! + + + + + An error occurred while during the process. + A apărut o eroare în timpul procesului. + + + + + + The Live image could not be mounted. + Imaginea Live nu este montabil. + + + + + The system repair is aborted! + Repararea sistemului este abandonată! + + + + + There is not enough free space. + Nu există suficient spațiu liber. + + + + + + + + Multiple mount points + Mai multe puncte de montare + + + + Enabled + Activat(ă) + + + + Systemback worker thread is interrupted by the user. + Firul de lucru Systemback este întreruptă de către utilizator. + + + + Boot Live without xorg.conf file + Pornire Live fara fisier xorg.conf + + + + + + Boot Live system + Pornire sistem Live + + + + + + Boot system installer + Pornire sistemul de instalare + + + + + + Boot Live in safe graphics mode + Pornire Live in modul de grafica redusa + + + + + + Boot Live in debug mode + Poenire Live în modul de depanare + + + + Press 'E' key to edit + Apăsați tasta 'E' pentru editare + + + + Press TAB key to edit + Apăsați tasta TAB pentru editare + + + + An error occurred while changing the access permissions of the following file: + Eroare la schimbarea permisiunile de acces ale următorului fișier: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Utilizare: systemback-cli [opțiune] + + Opțiuni: + + -n, --newbackup creare punct nou de restaurare + + -s, --storagedir <cale> setare cale a dosarului pentru punctul de restaurare + + -u, --upgrade upgrade sistem actual + șterge fișierele și pachetele inutile + + -v, --version numărul de versiune Systemback + + -h, --help arată ajutorul + + + + basic restore UI + interfață de bază + + + + The Systemback command line interface cannot be used on a Live system! + Pe sistemul Live nu este utilizabil interfața linie de comandă a programului! + + + + This stupid terminal does not support color! + Acest terminal prost nu suportă culorile! + + + + This terminal is too small! + Acest terminal este prea mic! + + + + The specified storage directory path has not been set! + Calea dosarului de salvare nu a fost setat! + + + + The restoration is aborted! + Restabilirea este abandonată! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Restabilirea este finalizată, dar cu eroare la reinstalare GRUB! + + + + The restore points storage directory is not available or not writable! + Dosarul de salvare nu este accesibil, sau nu este permis scrierea! + + + + Available restore point(s): + Punct(e) de restabilire accesibil(e): + + + + Quit + Închide + + + + Selected restore point: + Punct de restabilire selectat: + + + + The specified storage directory path is set. + Calea dosarului de salvare este setat. + + + + Restore with the following restore point: + Restabilirea se efectuează cu următorul punct de restabilire: + + + + Restore with the following restore method: + Restabilirea se efectuează cu metoda următoare: + + + + Users configuration files restore + Restabilire fișiere de configurare ale utilizatorilor + + + + + Complete configuration files restore + Restabilire completă a fișierelor de configurare + + + + Configuration files restore + Restabilire fișiere de configurare + + + + + + You want to keep the current fstab file? + Doriţi să păstrați fișierul fstab curent? + + + + + + + + + + + (Y/N) + (Y/N) + + + + + + + Reinstall the GRUB 2 bootloader? + Reinstalați încărcătorul de sisteme GRUB 2? + + + + Start the restore? + Începeți restabilirea? + + + + The users configuration files full restoration are completed. + Restabilirea completă a fișierelor de configurare este finalizată. + + + + The users configuration files restoration are completed. + Restabilirea fișierelor de configurare este finalizată. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Apasă pe 'ENTER' pentru reporníre, or 'Q' pentru închidere. + + + + Press 'ENTER' key to quit. + Apăsă pe 'ENTER' pentru a ieși. + + + + Deleting old restore point(s) + Ștergerea punctelor de restabilire vechi + + + + Restoring the users configuration files + Restabilire fișiere de configurare ale utilizatorilor + + + diff --git a/lang/systemback_ru.ts b/lang/systemback_ru.ts new file mode 100644 index 0000000..4f249bb --- /dev/null +++ b/lang/systemback_ru.ts @@ -0,0 +1,1898 @@ + + + + + systemback + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + Произошла ошибка при открытии следующего файла: + + + + An error occurred while creating the following directory: + Произошла ошибка при создании следующего каталога: + + + + An error occurred while removing the following file: + Произошла ошибка при удалении следующего файла: + + + + An error occurred while creating the following hard link: + Произошла ошибка при создании следующей жесткой ссылки: + + + + Reference file: + Ссылка файла: + + + + An error occurred while creating the following file: + Произошла ошибка при создании следующего файла: + + + + An error occurred while renaming the following item: + + + + + New path: + Новый путь: + + + + An error occurred while executing the following command: + Произошла ошибка при выполнении следующей команды: + + + + Exit code: + Код выхода: + + + + Failed to detect the device for installing the GRUB! + Не удалось обнаружить устройство для установки GRUB! + + + + An error occurred while upgrading the system! + Произошла ошибка при обновлении системы! + + + + Restart upgrade ... + Перезапуск обновления ... + + + + This file could not be copied because it does not exist: + Этот файл не может быть скопирован, потому что не существует: + + + + The following partition has no UUID: + Этот раздел не имеет UUID: + + + + An error occurred while creating a new partition on the following device: + Произошла ошибка при создании нового раздела на следующем устройстве: + + + + An error occurred while mounting the following partition/image: + Произошла ошибка при монтировании следующего раздела/образа: + + + + An error occurred while setting one or more flags on the following partition: + Произошла ошибка при установке одного или более флагов на следующий раздел: + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + Произошла ошибка при создании таблицы разделов на следующем устройстве: + + + + An error occurred while unmounting the following partition/image/mount point: + Произошла ошибка при размонтировании следующего раздела/образа/точки монтирования: + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + Произошла ошибка при клонировании следующей символической ссылки: + + + + Target symlink: + + + + + An error occurred while cloning the following file: + Произошла ошибка при клонировании следующего файла: + + + + Target file: + + + + + An error occurred while cloning the following directory: + Произошла ошибка при клонировании следующего каталога: + + + + Target directory: + + + + + An error occurred while deleting the following directory: + Произошла ошибка при удалении следующего каталога: + + + + + Cannot start the Systemback scheduler daemon! + Не удается запустить демон - планировщик Systemback! + + + + + Missing, wrong or too much argument(s). + Параметры отсутствуют или ошибочны (или их слишком много). + + + + The process is disabled for this user. + Процесс запрещен для этого пользователя. + + + + Root privileges are required. + Требуются права root. + + + + This system is a Live. + Эта система является т.н. Live-CD. + + + + Already running. + Уже выполняется. + + + + Unable to daemonize. + Невозможно "демонизировать". + + + + Cannot start the Systemback graphical user interface! + Не удается запустить Systemback GUI! + + + + Unable to get root permissions. + Не удалось получить права root. + + + + Unable to connect to the X server. + Не удалось подключиться к X-серверу. + + + + Full name of the new user: + Полное имя нового пользователя: + + + + New username to login: + Новое имя для входа пользователя: + + + + New user account password: + Новый пароль пользователя: + + + + New root password (optional, not recommended for Ubuntu): + Новый пароль root (не обязательно, для Ubuntu НЕ рекомендовано!): + + + + New hostname: + Новое имя компютера (hostname): + + + + + + + + + + + + + + + + Back + Назад + + + + + + + + Next + Далее + + + + + Working directory + Рабочий каталог + + + + Created Live images + Создание Live-образа + + + + Name of the Live system + Имя Live-системы + + + + + + + + Options + Опции + + + + Write target + Диск для записи + + + + Live operations + Действия с системой Live + + + + Include the user data files + Включить пользовательские файлы + + + + Redetect devices + Переопределить устройства + + + + + + Delete + Удалить + + + + Write to target + Записать на диск + + + + Convert to ISO + Преобразовать в ISO + + + + + + Create new + Создать новую + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Смонтируйте неисправный системный раздел(ы) в каталог '/mnt' в соответствии с оригинальной<br>структурой. ('/' -> '/mnt', '/home' -> '/mnt/home', и т.д.) + + + + + Mount + Монтировать + + + + Reset mounts + + + + + Repair type + Тип восстановления + + + + GRUB 2 repair + Восстановление загрузчика GRUB 2 + + + + System files repair + Восстановление системных файлов + + + + + Reinstall GRUB 2 bootloader: + Переустановка загрузчика GRUB 2: + + + + + Auto detection + Автоматическое определение + + + + Full repair + Полное восстановление + + + + Do not repair the fstab file + Не восстановлен файл fstab + + + + Exclude hidden user files and directories from restore points + Исключить скрытые файлы и каталоги пользоватлей из точки восстановления + + + + Exclude user data files and directories from Live system + Исключить файлы и каталоги пользователя из Live-системы + + + + Excludable items + + + + + Excluded items + Исключенные элементы + + + + + Remove item from the exclusion list + Удалить элемент из списка исключений + + + + + Add item to the exclusion list + Добавить элемент в список исключений + + + + Scheduler state: + Состояние планировщика: + + + + + + + + + + + + + + Disabled + Выключен + + + + Timer settings + Настройки таймера + + + + Waiting time before creating a new restore point: + Время ожидания перед созданием новой точки восстановления: + + + + Visible countdown time: + Показать обратный отсчет времени: + + + + Pop-up window position on screen: + Позиция всплывающего окна на экране: + + + + Use silent mode + Использовать "скрытый" режим + + + + + + + More + Больше + + + + + + + Less + Меньше + + + + Simple system backup and restore application with extra features + Простое резервное копирование системы и восстановление данных + + + + Project homepage: + Домашняя страница проекта: + + + + Contact: + Контактная информация: + + + + Donate: + Пожертвовать: + + + + Systemback version: + Версия Systemback: + + + + + License + Лицензия + + + + Re-read directories + Перечитать каталоги + + + + Writable Linux filesystem! + + + + + + + + Cancel + Отменить + + + + + + + + + + + Maximum number of temporary restore points + Максимальное количество временных точек восстановления + + + + Restore points + Точки восстановления + + + + Highlighted restore points + Выделенные точки + + + + Point operations + Действия + + + + Highlight + Выделить + + + + Rename + Переименовать + + + + + + + + + + + + + + + + + + Select restore point + Выберите точку восстановления + + + + + + + + + Storage directory + Каталог хранения + + + + Function menu + Меню + + + + + Schedule + Расписание + + + + + + About + О программе + + + + + Settings + Настройки + + + + System upgrade + Обновление системы + + + + + System install + Установка системы + + + + + + + Live system create + Создание системы Live + + + + + System repair + Ремонт системы + + + + + + System restore + Восстановление системы + + + + + + + System copy + Копирование системы + + + + + Exclude + Исключить + + + + + Include + + + + + Change path + Изменить путь + + + + + + + + + + + + + + + + + + empty + пустой + + + + + + + + + + + not used + не используется + + + + Restore type + Тип восстановления + + + + + + + + + Full restore + Полное восстановление + + + + + + + + + System files restore + Восстановление системных файлов + + + + User(s) configuration files restore + Восстановление конфигурационных файлов пользователя(ей) + + + + + Keep newly installed configuration files + Сохранить вновь установленные файлы конфигурации + + + + Include user(s): + Включить в состав пользователя(ей): + + + + Do not restore the fstab file + Не восстанавливать файл fstab + + + + Partition settings + Настройки разделов + + + + + + + + Transfer user configuration files + Перенести конфигурационные файлы пользователя + + + + Copy user data files + Копировать файлы данных пользователя + + + + Install GRUB 2 bootloader: + Установить загрузчик GRUB 2: + + + + + + Format + Форматировать + + + + + + Reset partitions settings + Сбросить настройки разделов + + + + + + + + + + Unmount + Отсоединить + + + + Change partition settings + Изменить настройки разделов + + + + Filesystem: + Файловая система: + + + + Mount point: + Точка монтир: + + + + + + + + + ! Delete ! + ! Удалить ! + + + + Add new partition + Добавить новый раздел + + + + Create new: + Создать новый: + + + + Need to set the mount point as '/boot/efi'! + Необходимо установить точку монтирования как '/boot/efi'! + + + + Window DPI scaling + Масшатирование DPI окна + + + + Multiplier factor for scaling the window contents + Коэффициент масштабирования содержания окна + + + + User interface + Интерфейс пользователя + + + + Window always on top + Поверх всех окон + + + + System + Система + + + + Disable scheduler daemon starting for the following users: + Отключить автозапуск планировщика для следующих пользователей: + + + + Use XZ compressor for squashfs filesystems + Использовать сжатие XZ для файловых систем Squashfs + + + + Override auto-detected language: + Переопределить автоматическое определение языка: + + + + Override the used style: + Переопределить используемый стиль: + + + + Disable incremental restore points (do not use hard links between backups) + Отключить инкрементальные точки восстановления + + + + Create Live ISO images automatically (faster than the conversion) + Создать образ iso Live автоматически (быстрее, чем преобразование) + + + + Do not empty memory cache at the end of some processes + Не очищать кэш памяти в конце некоторых процессов + + + + Includable items + + + + + Included items + + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + Включить файлы данных и директории пользователя в точки восстановления +Они будут определены как восстанавливаемые файлы конфигурации! + + + + ! Interrupt ! + ! Прервать ! + + + + Creates a scheduled restore point within few seconds. + Создает точку восстановления по расписанию в течение нескольких секунд. + + + + + + Start + Старт + + + + Later + Позже + + + + Systemback user authentication + Аутентификация пользователя Systemback + + + + Administrator: + Администратор: + + + + Password: + Пароль: + + + + Unsafe X Window authorization! + Небезопасная авторизация X Window!! + + + + Please do not use 'sudo' command. + Пожалуйста, не используйте команду 'sudo'. + + + + + + + + + Transfer user configuration and data files + Перенести файлы данных и конфигурации пользователя + + + + + + scheduler + планировщик + + + + + Partition + Раздел + + + + + Size + Размер + + + + Label + Метка + + + + Current mount point + Текущая точка монтирования + + + + New mount point + Новая точка монтирования + + + + Filesystem + Файловая система + + + + Device + Устройство + + + + + Top left + Сверху слева + + + + + + Top right + Сверху справа + + + + + + Center + В центре + + + + + + Bottom left + Снизу слева + + + + + Bottom right + Снизу справа + + + + + + day(s) + день(дней) + + + + + + hour(s) + ч + + + + + + + + minute(s) + мин + + + + + + seconds + сек + + + + + + + Everyone + Все + + + + + + Currently running system + Текущая работающая система + + + + + Emptying cache + Очистка кеш-памяти + + + + + Flushing filesystem buffers + Сброс буфера файловой системы + + + + + Restoring the full system + Восстановление всей системы + + + + + Restoring the system files + Восстановление системних файлов + + + + Restoring the user(s) configuration files + Восстановление конфигурационных файлов пользователя (ей) + + + + Repairing the system files + Ремонт системных файлов + + + + Repairing the full system + Ремонт всей системы + + + + Repairing the GRUB 2 + Ремонт GRUB 2 + + + + Copying the system + Копирование системы + + + + Installing the system + Установка системы + + + + Writing Live image to the target device + Запись образаLive на носитель + + + + Upgrading the system + Обновление системы + + + + + Deleting incomplete restore point + Удаление незавершенной точки восстановления + + + + Interrupting the current process + Прерывание текущего процесса + + + + Deleting old restore point + Удаление старой точки восстановления + + + + + Creating restore point + Создание точки восстановления + + + + + Deleting restore point + Удаление точки восстановления + + + + Converting Live system image + Преобразование системы Live + + + + + process + процесс + + + + Creating Live system + Создание системы Live + + + + + + + + + Reboot + Перезагрузка + + + + + + + X restart + Перезапуск X + + + + + + Live image + Образ Live + + + + Restore the system files to the following restore point: + Восстановление системных файлов из указанной точки восстановления: + + + + Repair the system files with the following restore point: + Ремонт системных файлов из указанной точки восстановления: + + + + Repair the complete system with the following restore point: + Ремонт всей системы из указанной точки восстановления: + + + + Restore the complete user(s) configuration files to the following restore point: + Полное восстановление конфигурационных файлов пользователя(ей) из указанной точки восстановления: + + + + Restore the user(s) configuration files to the following restore point: + Восстановление конфигурационных файлов пользователя(ей) из указанной точки восстановления: + + + + Copy the system, using the following restore point: + Копирование системы из указанной точки восстановления: + + + + Install the system, using the following restore point: + Установка системы из указанной точки восстановления: + + + + Restore the complete system to the following restore point: + Восстановление системы целиком из указанной точки восстановления: + + + + Format the %1, and write the following Live system image: + Форматирование %1, и запись указаного образа системы Live: + + + + Repair the GRUB 2 bootloader. + Ремонт загрузчика GRUB 2. + + + + The user(s) configuration files full restoration are completed. + Полное восстановление конфигурационных файлов пользователя(ей) завершено. + + + + + The X server will restart automatically within 30 seconds. + Х-сервер автоматически перезапустится в течении 30 секунд. + + + + The user(s) configuration files restoration are completed. + Восстановление конфигурационных файлов пользователя завершено. + + + + The full system repair is completed. + Полный ремонт системы завершён. + + + + The system repair is completed. + Ремонт системы завершён. + + + + + The system files restoration are completed. + Восстановление системных файлов завершено. + + + + + + The computer will restart automatically within 30 seconds. + Компютер будет автоматически перезагружен в течении 30 секунд. + + + + + The full system restoration is completed. + Полное восстановление системы завершено. + + + + The system copy is completed. + Копирование системы завершено. + + + + The Live system creation is completed. + Создание системы Live завершено. + + + + The created .sblive file can be written to pendrive. + Созданный файл .sblive можно записать на флешку. + + + + The GRUB 2 repair is completed. + Ремонт GRUB 2 завершён. + + + + The system install is completed. + Установка системы завершена. + + + + The Live system image write is completed. + Запись образа системы Live завершено. + + + + + An another Systemback process is currently running, please wait until it finishes. + Другой процесс Systemback в настоящее время работает, пожалуйста, подождите, пока он не завершится. + + + + + Unable to get exclusive lock! + Не удалось получить эксклюзивную блокировку! + + + + + First, close all package manager. + Во-первых, закройте все менеджеры пакетов. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + The specified name contain(s) unsupported character(s)! + Указанное имя содержит недопустимый(ые) символ(ы)! + + + + Please enter a new name. + Пожалуйста, введите новое имя. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Ремонт системных файлов завершён, но произошла ошибка при переустановке GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + + + + + + + + The restore point creation is aborted! + Создание точки восстановления было отменено! + + + + + + Not enough free disk space to complete the process. + Не хватает свободного места на диске, чтобы завершить процесс. + + + + + Root privileges are required for running the Systemback! + Для запуска Systemback необходимы права Root! + + + + + + + + The system copy is aborted! + Копирование системы отменено! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + Указанный раздел(ы) не имеет достаточно свободного места для копирования системы. Скопированая система не будет функционировать должным образом. + + + + The system copy is completed, but an error occurred while installing the GRUB! + Копирование системы завершено, но произошла ошибка при установке GRUB! + + + + + You need to manually install a bootloader. + Вы должны вручную установить загрузчик. + + + + + The system restoration is aborted! + Восстановление системы отменено! + + + + An error occurred while reinstalling the GRUB. + Ошибка при переустановке GRUB. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Полный ремонт системы завершён, но произошла ошибка при переустановке GRUB! + + + + + + + + The Live system creation is aborted! + Создание системы Live отменено! + + + + An error occurred while creating the file system image. + Ошибка при создании образа файловой системы. + + + + An error occurred while creating the container file. + Ошибка при создании файла-контейнера. + + + + + + The specified partition could not be mounted. + Указанный раздел не может быть смонтирован. + + + + The system install is completed, but an error occurred while installing the GRUB! + Установка системы завершена, но произошла ошибка при установке GRUB! + + + + + + + + The system installation is aborted! + Установка системы отменена! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + Указанный раздел(ы) не имеет достаточно свободного места для установки системы. Установленная система не будет функционировать должным образом. + + + + + + The specified partition could not be formatted (in use or unavailable). + Указанный раздел не может быть отформатирован (используется или недоступен). + + + + An error occurred while reinstalling the GRUB! + Ошибка при переустановке GRUB! + + + + + + + + + + There has been critical changes in the file system during this operation. + Во время этой операции произошли критические изменения в файловой системе. + + + + + + + + The Live write is aborted! + Запись Live отменена! + + + + The selected device does not have enough space to write the Live system. + На выбранном устройстве недостаточно места для записи системы Live. + + + + An error occurred while unpacking the Live system files. + Произошла ошибка при распаковке файлов системы Live. + + + + + + + The Live conversion is aborted! + Преобразование Live отменено! + + + + An error occurred while renaming the essential Live files. + Ошибка при переименовании основных файлов Live. + + + + An error occurred while creating the .iso image. + Ошибка при создании образа ISO. + + + + An error occurred while reading the .sblive image. + Произошла ошибка при чтении образа .sblive. + + + + An error occurred while creating the new initramfs image. + Ошибка при создании нового образа initramfs. + + + + + The restore point deletion is aborted! + Удаление точки восстановления отменено! + + + + + An error occurred while during the process. + Ошибка во время процесса. + + + + + + The Live image could not be mounted. + Образ Live не может быть смонтирован. + + + + + The system repair is aborted! + Ремонт системы отменен! + + + + + There is not enough free space. + Недостаточно свободного места. + + + + + + + + Multiple mount points + Несколько точек монтирования + + + + Enabled + Включено + + + + Systemback worker thread is interrupted by the user. + Systemback "работа" перервана пользователем. + + + + Boot Live without xorg.conf file + Загрузить Live без файла xorg.conf + + + + + + Boot Live system + Загрузить систему Live + + + + + + Boot system installer + + + + + + + Boot Live in safe graphics mode + Загрузить Live в безопасном графическом режиме + + + + + + Boot Live in debug mode + Загрузить Live в режиме отладки + + + + Press 'E' key to edit + Нажмите клавишу 'E' для редактирования + + + + Press TAB key to edit + Нажмите клавишу TAB для редактирования + + + + An error occurred while changing the access permissions of the following file: + Произошла ошибка при изменении прав доступа следующего файла: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Использование: systemback-cli [опція] + + Опції: + + -n, --newbackup создать новую точку восстановления + + -s, --storagedir <path> путь к каталогу хранения точек восстановления + + -u, --upgrade обновить существующую систему + удалить ненужные файлы и пакеты + + -v, --version версия Systemback + + -h, --help показать эту справку + + + + basic restore UI + основной UI восстановления + + + + The Systemback command line interface cannot be used on a Live system! + Интерфейс командной строки Systemback не может быть использован на Live системе! + + + + This stupid terminal does not support color! + Этот тупой терминал не поддерживает цвет! + + + + This terminal is too small! + Этот терминал слишком мал! + + + + The specified storage directory path has not been set! + Указанный путь каталога хранения не установлен! + + + + The restoration is aborted! + Восстановление отменено! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Восстановление завершено, но возникла ошибка при переустановке GRUB! + + + + The restore points storage directory is not available or not writable! + Каталог хранения точек восстановления недоступен или недоступен для записи! + + + + Available restore point(s): + Доступные точки восстановления: + + + + Quit + Выйти + + + + Selected restore point: + Выбранная точка восстановления: + + + + The specified storage directory path is set. + Указанный путь каталога хранения установлен. + + + + Restore with the following restore point: + Восстановить из указанной точки восстановления: + + + + Restore with the following restore method: + Восстановить указанным способом восстановления: + + + + Users configuration files restore + Восстановить конфигурационные файлы пользователей + + + + + Complete configuration files restore + Восстановить конфигурационные файлы полностью + + + + Configuration files restore + Восстановить конфигурационные файлы + + + + + + You want to keep the current fstab file? + Вы хотите сохранить текущий файл fstab? + + + + + + + + + + + (Y/N) + (Y/N) + + + + + + + Reinstall the GRUB 2 bootloader? + Переустановить загрузчик GRUB 2? + + + + Start the restore? + Начать восстановление? + + + + The users configuration files full restoration are completed. + Полное восстановление конфигурационных файлов пользователей завершено. + + + + The users configuration files restoration are completed. + Восстановление конфигурационных файлов пользователей завершено. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Нажать клавишу 'ENTER', для перезагрузки компютера или 'Q' выхода. + + + + Press 'ENTER' key to quit. + Нажать клавишу 'ENTER' для выхода. + + + + Deleting old restore point(s) + Удаление старых точек восстановления + + + + Restoring the users configuration files + Восстановление конфигурационных файлов пользователей + + + diff --git a/lang/systemback_tr.ts b/lang/systemback_tr.ts new file mode 100644 index 0000000..439d476 --- /dev/null +++ b/lang/systemback_tr.ts @@ -0,0 +1,1884 @@ + + + + + systemback + + + Full name of the new user: + Yeni kullanıcının tam ismi: + + + + New username to login: + Giriş için yeni kullanıcı ismi: + + + + New user account password: + Yeni kullanıcı hesap şifresi: + + + + New root password (optional, not recommended for Ubuntu): + Yeni root şifresi (isteğe bağlı, Ubuntu/Linux Mint için tavsiye edilmez): + + + + New hostname: + Yeni ana makine: + + + + + + + + + + + + + + + + Back + Geri + + + + + + + + Next + İleri + + + + + Working directory + Çalışma dizini + + + + Created Live images + Oluşturulan çalışan kalıplar + + + + Name of the Live system + Çalışan sistemin adı + + + + + + + + Options + Seçenekler + + + + Write target + Yazma hedefi + + + + Live operations + + + + + Include the user data files + Kullanıcı veri dosyalarını içer + + + + Redetect devices + Aygıtları tekrar algıla + + + + + + Delete + Sil + + + + Convert to ISO + ISO'ya dönüştür + + + + + + Create new + Yeni oluştur + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + + + + Mount + Bağla + + + + Reset mounts + Bağlı aygıtları sıfırla + + + + Repair type + Onarım türü + + + + GRUB 2 repair + GRUB 2 onarımı + + + + System files repair + Sistem dosyaları onarımı + + + + + Reinstall GRUB 2 bootloader: + GRUB 2 önyükleyiciyi tekrar kur: + + + + + Auto detection + Otomatik algılama + + + + Full repair + Tam onarım + + + + Do not repair the fstab file + Fstab dosyasını onarma + + + + Exclude hidden user files and directories from restore points + Gizli kullanıcı dosyaları ve dizinlerini geri yükleme noktası haricinde tut + + + + Exclude user data files and directories from Live system + Kullanıcı veri dosyaları ve dizinlerini Çalışan sistem haricinde tut + + + + Excluded items + Dışlanan öğeler + + + + + Remove item from the exclusion list + Dışlananlar listesinden öğeyi çıkar + + + + + Add item to the exclusion list + Dışlananlar listesine öğe ekle + + + + Scheduler state: + Zamanlayıcı durumu: + + + + + + + + + + + + + + Disabled + Devre dışı + + + + Timer settings + Zamanlayıcı ayarları + + + + Waiting time before creating a new restore point: + Yeni geri yükleme noktası oluşturma öncesi bekleme süresi: + + + + Visible countdown time: + + + + + Pop-up window position on screen: + Açılır pencere ekran pozisyonu: + + + + Use silent mode + Sessiz kipi kullan + + + + + + + More + Daha fazla + + + + + + + Less + Daha az + + + + Simple system backup and restore application with extra features + + + + + Project homepage: + Proje anasayfası: + + + + Contact: + İletişim: + + + + Donate: + Bağış yap: + + + + Systemback version: + Systemback sürümü: + + + + + License + Lisans + + + + Re-read directories + Dizinleri tekrar oku + + + + Writable Linux filesystem! + Yazılabilir Linux dosya sistemi! + + + + + + + Cancel + İptal + + + + + + + + + + + Maximum number of temporary restore points + Geçici geri yükleme noktaları için maksiumum sayı + + + + + Include + + + + + + + + + + + + + + + + + + + empty + boş + + + + + + + + + + + not used + kullanılmaz + + + + Includable items + + + + + Included items + + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + + Restore points + Geri yükleme noktaları + + + + Highlighted restore points + Vurgulanmış noktaları + + + + Point operations + Nokta işlemleri + + + + Highlight + Vurgula + + + + Rename + Yeniden adlandır + + + + + + + + + + + + + + + + + + Select restore point + Geri yükleme noktası seç + + + + + + + + + Storage directory + Depolama dizini + + + + Function menu + İşlev menüsü + + + + + + System restore + Sistem geri yükleme + + + + + + + System copy + Sistem kopyalama + + + + + System install + Sistem kurulum + + + + + + + Live system create + Çalışan sistem oluşturma + + + + + System repair + Sistem onarımı + + + + System upgrade + Sistem yükseltme + + + + + Exclude + Hariç tut + + + + + Schedule + Zamanlama + + + + Excludable items + + + + + + + About + Hakkında + + + + + Settings + + + + + Change path + Yolu değiştir + + + + Restore type + Geri yükleme türü + + + + + + + + + Full restore + Tam geri yükleme + + + + + + + + + System files restore + Sistem dosyaları geri yükleme + + + + User(s) configuration files restore + Kullanıcı ayar dosyaları geri yükleme + + + + + Keep newly installed configuration files + Yeni yüklenmiş yapılandırma dosyalarını koru + + + + Include user(s): + Kullanıcıları içer: + + + + Do not restore the fstab file + Fstab dosyasını geri yüklememe + + + + Partition settings + Disk bölümleme ayarları + + + + Need to set the mount point as '/boot/efi'! + + + + + Window DPI scaling + + + + + Multiplier factor for scaling the window contents + + + + + User interface + + + + + Window always on top + + + + + System + + + + + Disable scheduler daemon starting for the following users: + + + + + Use XZ compressor for squashfs filesystems + + + + + Override auto-detected language: + + + + + Override the used style: + + + + + Disable incremental restore points (do not use hard links between backups) + + + + + Create Live ISO images automatically (faster than the conversion) + + + + + Do not empty memory cache at the end of some processes + + + + + + + + + + + Unmount + Çıkart + + + + Write to target + + + + + Mount point: + Bağlama noktası: + + + + + + + + + ! Delete ! + ! Sil ! + + + + Add new partition + Yeni bir disk bölümü ekle + + + + Create new: + Yeni oluştur: + + + + Filesystem: + Dosya sistemi: + + + + + + Format + Biçimlendir + + + + + + Reset partitions settings + Disk bölümleme ayarlarını sıfırla + + + + Change partition settings + Disk bölümleme ayarlarını değiştir + + + + + + + + Transfer user configuration files + Kullanıcı yapılandırma dosyalarını aktar + + + + Copy user data files + Kullanıcı veri dosyalarını kopyala + + + + Install GRUB 2 bootloader: + Grub 2 önyükleyiciyi kur: + + + + + + + + + Transfer user configuration and data files + Kullanıcı yapılandırma ve veri dosyalarını aktar + + + + ! Interrupt ! + + + + + Creates a scheduled restore point within few seconds. + + + + + + + Start + Başlat + + + + Later + Daha sonra + + + + Systemback user authentication + + + + + Administrator: + Yönetici: + + + + Password: + Şifre: + + + + + Partition + Disk Bölümü + + + + + Size + Boyut + + + + Current mount point + Geçerli bağlama noktası + + + + New mount point + Yeni bağlama noktası + + + + Filesystem + Dosya sistemi + + + + Device + Aygıt + + + + + + scheduler + + + + + + Top left + Üst sol + + + + + + Top right + Üst sağ + + + + + + Center + Orta + + + + + + Bottom left + Alt sol + + + + + Bottom right + Alt sağ + + + + + + day(s) + gün + + + + + + hour(s) + saat + + + + + + + + minute(s) + dakika + + + + + + seconds + saniye + + + + + + Live image + Çalışan kalıp + + + + + + Currently running system + + + + + + Creating restore point + + + + + + Restoring the full system + + + + + + Restoring the system files + + + + + Restoring the user(s) configuration files + + + + + Repairing the system files + + + + + Repairing the full system + + + + + Copying the system + + + + + Installing the system + + + + + Creating Live system + + + + + + Deleting restore point + + + + + Deleting old restore point + + + + + + Deleting incomplete restore point + + + + + + Flushing filesystem buffers + + + + + + + + + + Reboot + Yeniden başlat + + + + + + + X restart + X şarj + + + + Repairing the GRUB 2 + + + + + + Emptying cache + + + + + + An another Systemback process is currently running, please wait until it finishes. + + + + + Please enter a new name. + + + + + The Live system creation is completed. + + + + + The created .sblive file can be written to pendrive. + + + + + Restore the system files to the following restore point: + + + + + Label + + + + + Writing Live image to the target device + + + + + The specified name contain(s) unsupported character(s)! + + + + + Repair the system files with the following restore point: + + + + + Repair the complete system with the following restore point: + Aşağıdaki geri yükleme noktası ile tüm sistemi onar: + + + + Restore the complete user(s) configuration files to the following restore point: + Aşağıdaki geri yükleme noktası ile tüm kullanıcı ayar dosyalarını geri yükle: + + + + Restore the user(s) configuration files to the following restore point: + Aşağıdaki geri yükleme noktası ile kullanıcı ayar dosyalarını geri yükle: + + + + The user(s) configuration files full restoration are completed. + + + + + + The X server will restart automatically within 30 seconds. + + + + + The user(s) configuration files restoration are completed. + + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + + + + + The full system repair is completed. + + + + + The system repair is completed. + + + + + Copy the system, using the following restore point: + + + + + Install the system, using the following restore point: + + + + + + + + The restore point creation is aborted! + + + + + + + Not enough free disk space to complete the process. + + + + + + Root privileges are required for running the Systemback! + + + + + Restore the complete system to the following restore point: + + + + + + The system files restoration are completed. + + + + + + + The computer will restart automatically within 30 seconds. + + + + + + The full system restoration is completed. + + + + + + + + + The system copy is aborted! + + + + + Format the %1, and write the following Live system image: + + + + + The selected device does not have enough space to write the Live system. + + + + + + There is not enough free space. + + + + + Interrupting the current process + + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + + + + + The system copy is completed, but an error occurred while installing the GRUB! + + + + + + You need to manually install a bootloader. + + + + + + The system restoration is aborted! + + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + + + + + + + The specified partition could not be formatted (in use or unavailable). + + + + + An error occurred while reinstalling the GRUB! + + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + + + + + The system copy is completed. + + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + + + + + The Live system creation is aborted! + + + + + An error occurred while creating the file system image. + + + + + An error occurred while creating the container file. + + + + + + + The specified partition could not be mounted. + + + + + An error occurred while unpacking the Live system files. + + + + + An error occurred while renaming the essential Live files. + + + + + An error occurred while creating the .iso image. + + + + + An error occurred while reading the .sblive image. + + + + + An error occurred while creating the new initramfs image. + + + + + + + The Live image could not be mounted. + + + + + + + Boot system installer + + + + + The GRUB 2 repair is completed. + + + + + An error occurred while reinstalling the GRUB. + + + + + The system install is completed. + + + + + The system install is completed, but an error occurred while installing the GRUB! + + + + + + + + + The system installation is aborted! + + + + + + + + + + + There has been critical changes in the file system during this operation. + + + + + Repair the GRUB 2 bootloader. + + + + + + + + + The Live write is aborted! + + + + + The Live system image write is completed. + + + + + + + + The Live conversion is aborted! + + + + + + The restore point deletion is aborted! + + + + + + An error occurred while during the process. + + + + + + The system repair is aborted! + + + + + + + + Everyone + + + + + Upgrading the system + + + + + + + + + Multiple mount points + + + + + Enabled + + + + + Systemback worker thread is interrupted by the user. + + + + + + process + + + + + Boot Live without xorg.conf file + + + + + + + Boot Live system + + + + + + + Boot Live in safe graphics mode + + + + + + + Boot Live in debug mode + + + + + Press 'E' key to edit + + + + + Press TAB key to edit + + + + + Converting Live system image + + + + + + Unable to get exclusive lock! + + + + + + First, close all package manager. + + + + + The specified storage directory path has not been set! + + + + + The restoration is aborted! + + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + + + + + The restore points storage directory is not available or not writable! + + + + + This stupid terminal does not support color! + + + + + This terminal is too small! + + + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + + + + + An error occurred while creating the following directory: + + + + + An error occurred while removing the following file: + + + + + An error occurred while creating the following hard link: + + + + + Reference file: + + + + + An error occurred while creating the following file: + + + + + An error occurred while renaming the following item: + + + + + New path: + + + + + An error occurred while executing the following command: + + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + + + + + An error occurred while upgrading the system! + Sistem yükseltilirken bir hata oluştu! + + + + Restart upgrade ... + Yükseltmeyi yeniden başlat ... + + + + This file could not be copied because it does not exist: + + + + + The following partition has no UUID: + + + + + An error occurred while creating a new partition on the following device: + + + + + An error occurred while mounting the following partition/image: + + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + + + + + An error occurred while unmounting the following partition/image/mount point: + + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + + + + + Target file: + + + + + An error occurred while cloning the following directory: + + + + + Target directory: + + + + + An error occurred while deleting the following directory: + + + + + basic restore UI + + + + + Available restore point(s): + + + + + Quit + + + + + Selected restore point: + + + + + The specified storage directory path is set. + + + + + Deleting old restore point(s) + + + + + Restore with the following restore point: + Aşağıdaki geri yükleme noktası ile Geri Yükle: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + + + + + The Systemback command line interface cannot be used on a Live system! + + + + + Restore with the following restore method: + Aşağıdaki geri yükleme türü ile Geri Yükle: + + + + Users configuration files restore + Kullanıcı ayar dosyaları geri yüklemesi + + + + + Complete configuration files restore + Tüm ayar dosyaları geri yüklemesi + + + + Configuration files restore + Ayar dosyaları geri yükleme + + + + + + You want to keep the current fstab file? + Mevcut fstab dosyasını korumak istiyor musunuz? + + + + + + + + + + + (Y/N) + (E/H) + + + + + + + Reinstall the GRUB 2 bootloader? + + + + + Start the restore? + Geri yükleme başlasın mı? + + + + Restoring the users configuration files + Kullanıcı ayar dosyaları geri yükleniyor + + + + The users configuration files full restoration are completed. + + + + + The users configuration files restoration are completed. + + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Bilgisayarı yeniden başlatmak için 'ENTER' tuşuna ya da çıkmak için 'Q' tuşuna basınız. + + + + Press 'ENTER' key to quit. + Çıkmak için 'ENTER' tuşuna basınız. + + + + An error occurred while changing the access permissions of the following file: + + + + + + Cannot start the Systemback scheduler daemon! + Systemback zamanlayıcısı arkaplan hizmeti başlatılamadı! + + + + + Missing, wrong or too much argument(s). + Eksik, hatalı ya da çok fazla değişken. + + + + The process is disabled for this user. + + + + + Root privileges are required. + Yönetici ayrıcalıkları gerekli. + + + + This system is a Live. + Bu bir çalışan sistem. + + + + Already running. + Zaten çalışıyor. + + + + Unable to daemonize. + + + + + Cannot start the Systemback graphical user interface! + Systemback grafik kullanıcı arayüzü başlatılamadı! + + + + Unable to get root permissions. + Root izinleri alınamıyor. + + + + Unable to connect to the X server. + X Sunucusu ile bağlantı kurulamıyor. + + + + Unsafe X Window authorization! + Güvensiz X Pencere yetkilendirmesi! + + + + Please do not use 'sudo' command. + Lütfen 'sudo' komutunu kullanmayın. + + + diff --git a/lang/systemback_uk.ts b/lang/systemback_uk.ts new file mode 100644 index 0000000..e392d67 --- /dev/null +++ b/lang/systemback_uk.ts @@ -0,0 +1,1898 @@ + + + + + systemback + + + Full name of the new user: + Повне ім'я нового користувача: + + + + New username to login: + Нове ім'я користувача для входу: + + + + New user account password: + Новий пароль користувача: + + + + New root password (optional, not recommended for Ubuntu): + Новий пароль root (не обов'язково, для Ubuntu НЕ рекомендовано!): + + + + New hostname: + Нове ім'я комп'ютера (hostname): + + + + + + + + + + + + + + + + Back + Повернутися + + + + + + + + Next + Далі + + + + + Working directory + Робочий каталог + + + + Created Live images + Створені "Live"-образи + + + + Name of the Live system + Ім'я Live-системи + + + + + + + + Options + Налаштування + + + + Write target + Цільовий диск для запису + + + + Live operations + Дії з системою "Live" + + + + Include the user data files + Включити користувацькі файли + + + + Redetect devices + Перевизначити пристрої + + + + + + Delete + Вилучити + + + + Write to target + Записати на диск + + + + Convert to ISO + Перетворити в ISO + + + + + + Create new + Створити нову + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + Змонтувати несправний системний розділ(и) в каталог '/mnt' відповідно до оригінальної структури. ('/' -> '/mnt', '/home' -> '/mnt/home', і т.д.) + + + + + Mount + Змонтувати + + + + Reset mounts + + + + + Repair type + Тип відновлення + + + + GRUB 2 repair + Відновлення завантажувача "GRUB 2" + + + + System files repair + Відновлення системних файлів + + + + + Reinstall GRUB 2 bootloader: + Перевстановлення завантажувача "GRUB 2": + + + + + Auto detection + Автовиявлення + + + + Full repair + Повне відновлення + + + + Do not repair the fstab file + Не відновлювати файл fstab + + + + Exclude hidden user files and directories from restore points + Вилучити приховані файли і каталоги користувачів з точок відновлення + + + + Exclude user data files and directories from Live system + Вилучити файли даних і каталогі користувача з Live-системи + + + + Excludable items + + + + + Excluded items + Вилучені елементи + + + + + Remove item from the exclusion list + Видалити елемент зі списку винятків + + + + + Add item to the exclusion list + Додати елемент до списку винятків + + + + Scheduler state: + Стан планувальника: + + + + + + + + + + + + + + Disabled + Вимкнено + + + + Timer settings + Налаштування таймера + + + + Waiting time before creating a new restore point: + Час очікування перед створенням нової точки відновлення: + + + + Visible countdown time: + Видимий відлік часу: + + + + Pop-up window position on screen: + Позиція спливаючого вікна на екрані: + + + + Use silent mode + Використовуйте "прихований" режим + + + + + + + More + Більше + + + + + + + Less + Менше + + + + Simple system backup and restore application with extra features + Застосунок простого резервного копіювання системи і відновлення + + + + Project homepage: + Домашня сторінка проекту: + + + + Contact: + Контактна інформація: + + + + Donate: + Пожертвувати: + + + + Systemback version: + Версія Systemback: + + + + + License + Ліцензія + + + + Re-read directories + Перечитати каталогі + + + + Writable Linux filesystem! + + + + + + + + Cancel + Скасувати + + + + + + + + + + + Maximum number of temporary restore points + Максимальна кількість тимчасових точок відновлення + + + + Restore points + Точки відновлення + + + + Highlighted restore points + Виділені кольором + + + + Point operations + Дії з точками відновлення + + + + Highlight + Підсвічування + + + + Rename + Перейменувати + + + + + + + + + + + + + + + + + + Select restore point + Виберіть точку відновлення + + + + + + + + + Storage directory + Каталог зберігання + + + + Function menu + Меню функцій + + + + + Schedule + Розклад + + + + + + About + Про проґраму + + + + + Settings + Налаштування + + + + System upgrade + Оновлення системи + + + + + System install + Встановлення системи + + + + + + + Live system create + Створення системи "Live" + + + + + System repair + Ремонт системи + + + + + + System restore + Відновлення системи + + + + + + + System copy + Копіювання системи + + + + + Exclude + Вилучити + + + + + Include + + + + + Change path + Змінити шлях + + + + + + + + + + + + + + + + + + empty + порожньо + + + + + + + + + + + not used + не використовується + + + + Restore type + Тип відновлення + + + + + + + + + Full restore + Повне відновлення + + + + + + + + + System files restore + Відновлення системних файлів + + + + User(s) configuration files restore + Відновлення файлів конфігурації користувача(ів) + + + + + Keep newly installed configuration files + Зберегти знов встановлені файли конфігурації + + + + Include user(s): + Включити до складу користувача(ів): + + + + Do not restore the fstab file + Не відновлювати файл fstab + + + + Partition settings + Налаштування розділу + + + + + + + + Transfer user configuration files + Перенести конфігураційні файли користувача + + + + Copy user data files + Копіювати файли даних користувача + + + + Install GRUB 2 bootloader: + Встановити завантажувач GRUB 2: + + + + + + Format + Форматувати + + + + + + Reset partitions settings + Скинути налаштування розділів + + + + + + + + + + Unmount + Демонтувати + + + + Change partition settings + Змінити налаштування розділу + + + + Filesystem: + Файлова система: + + + + Mount point: + Точка монтування: + + + + + + + + + ! Delete ! + ! Видалити ! + + + + Add new partition + Додати новий розділ + + + + Create new: + Створити новий: + + + + Need to set the mount point as '/boot/efi'! + Необхідно встановити точку монтування як '/boot/efi'! + + + + Window DPI scaling + Масшатбування DPI вікна + + + + Multiplier factor for scaling the window contents + Фактор множення для масштабування змісту вікна + + + + User interface + Інтерфейс користувача + + + + Window always on top + Вікно завжди поверх + + + + System + Системні + + + + Disable scheduler daemon starting for the following users: + Відключити автозапуск планувальника для наступних користувачів: + + + + Use XZ compressor for squashfs filesystems + Використання компресії XZ для файлових систем Squashfs + + + + Override auto-detected language: + Замістити автоматично визначену мову: + + + + Override the used style: + Замістити використаний стиль: + + + + Disable incremental restore points (do not use hard links between backups) + Відключити інкрементальні точки відновлення (не використовувати жорсткі посилання) + + + + Create Live ISO images automatically (faster than the conversion) + Створювати образи iso "Live" автоматично (швидше, ніж перетворення) + + + + Do not empty memory cache at the end of some processes + Не очищати кеш пам'яті в кінці деяких процесів + + + + Includable items + + + + + Included items + + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + + + ! Interrupt ! + ! Перервано ! + + + + Creates a scheduled restore point within few seconds. + Створює точку відновлення за розкладом протягом декількох секунд. + + + + + + Start + Почати + + + + Later + Пізніше + + + + Systemback user authentication + Аутентифікація користувача Systemback + + + + Administrator: + Адміністратор: + + + + Password: + Пароль: + + + + + + scheduler + планувальник + + + + + Partition + Розділ + + + + + Size + Розмір + + + + Label + Мітка + + + + Current mount point + Поточна точка монтування + + + + New mount point + Нова точка монтування + + + + Filesystem + Файлова система + + + + Device + Пристрій + + + + + Top left + Згори зліва + + + + + + Top right + Згори справа + + + + + + Center + У центрі + + + + + + Bottom left + Знизу зліва + + + + + Bottom right + Знизу справа + + + + + + day(s) + день(днів) + + + + + + hour(s) + год + + + + + + + + minute(s) + хв + + + + + + seconds + секунд + + + + + + + Everyone + Усі + + + + + + + + + Transfer user configuration and data files + Перенести файли даних та конфігурації користувача + + + + + + Currently running system + Поточна працююча система + + + + + Emptying cache + Очищення кеш-пам'яті + + + + + Flushing filesystem buffers + Зливаємо буфери файлової системи + + + + + Restoring the full system + Відновлення системи цілком + + + + + Restoring the system files + Відновлення системних файлів + + + + Restoring the user(s) configuration files + Відновлення конфігураційних файлів користувача(ів) + + + + Repairing the system files + Ремонт системних файлів + + + + Repairing the full system + Ремонт системи цілком + + + + Repairing the GRUB 2 + Ремонт GRUB 2 + + + + Copying the system + Копіювання системи + + + + Installing the system + Встановлення системи + + + + Writing Live image to the target device + Записуємо образ "Live" на цільовий пристрій + + + + Upgrading the system + Оновлюємо систему + + + + + Deleting incomplete restore point + Видалення незавершеної точки відновлення + + + + Interrupting the current process + Перериваємо поточний процес + + + + Deleting old restore point + Видалення старої точки відновлення + + + + + Creating restore point + Створення точки відновлення + + + + + Deleting restore point + Видалення точки відновлення + + + + Converting Live system image + Перетворення системи "Live" + + + + + process + процес + + + + Creating Live system + Створення системи "Live" + + + + + + + + + Reboot + Перезавант + + + + + + + X restart + Перезавант X + + + + Restore the system files to the following restore point: + Відновлення системних файлів до наступної точки відновлення: + + + + Repair the system files with the following restore point: + Ремонт системних файлів з наступної точки відновлення: + + + + Repair the complete system with the following restore point: + Ремонт системи цілком з наступної точки відновлення: + + + + Restore the complete user(s) configuration files to the following restore point: + Повне відновлення конфігураційних файлів користувача(ів) з наступної точки відновлення: + + + + Restore the user(s) configuration files to the following restore point: + Відновлення конфігураційних файлів користувача(ів) з наступної точки відновлення: + + + + Copy the system, using the following restore point: + Копіюємо систему з наступної точки відновлення: + + + + Install the system, using the following restore point: + Встановлюємо систему з наступної точки відновлення: + + + + Restore the complete system to the following restore point: + Відновити систему цілком до наступної точки відновлення: + + + + Format the %1, and write the following Live system image: + Форматуємо %1, та записуємо наступний образ системи "Live": + + + + Repair the GRUB 2 bootloader. + Ремонт завантажувача GRUB 2. + + + + The user(s) configuration files full restoration are completed. + Повне відновлення конфігураційних файлів користувача(ів) завершено. + + + + + The X server will restart automatically within 30 seconds. + X-сервер буде автоматично перезапущений протягом 30 сек. + + + + The user(s) configuration files restoration are completed. + Відновлення конфігураційних файлів користувача завершено. + + + + The full system repair is completed. + Повний ремонт системи завершений. + + + + The system repair is completed. + Ремонт системи завершений. + + + + + The system files restoration are completed. + Відновлення системних файлів завершено. + + + + + + The computer will restart automatically within 30 seconds. + Комп'ютер буде автоматично перезавантажено протягом 30 секунд. + + + + + The full system restoration is completed. + Повне відновлення системи завершено. + + + + The system copy is completed. + Копіювання системи завершено. + + + + The Live system creation is completed. + Створення системи "Live" завершено. + + + + The created .sblive file can be written to pendrive. + Створений файл .sblive можна записати на флешку. + + + + The GRUB 2 repair is completed. + Ремонт GRUB завершено. + + + + The system install is completed. + Встановлення системи завершено. + + + + The Live system image write is completed. + Запис образу системи "Live" завершено. + + + + + An another Systemback process is currently running, please wait until it finishes. + Інший процес Systemback в даний час працює, будь ласка, почекайте, поки він не закінчить. + + + + + Unable to get exclusive lock! + Не вдалося ексклюзивне блокування! + + + + + First, close all package manager. + По-перше, закрийте усі менеджери пакетів. + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + The specified name contain(s) unsupported character(s)! + Зазначене ім'я містить непідтримуваний символ(и)! + + + + Please enter a new name. + Будь ласка, введіть нове ім'я. + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + Ремонт системних файлів завершено, але сталася помилка під час перевстановлення GRUB! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + + + + + + + + The restore point creation is aborted! + Створення точки відновлення було скасовано! + + + + + + Not enough free disk space to complete the process. + Бракує вільного місця на диску, щоб завершити процес. + + + + + Root privileges are required for running the Systemback! + Для запуску Systemback необхідні права Root! + + + + + + + + The system copy is aborted! + Копіювання системи скасовано! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + Зазначений розділ(и) не має достатньо вільного місця для копіювання системи. Скопійована система не буде функціонувати належним чином. + + + + The system copy is completed, but an error occurred while installing the GRUB! + Копіювання системи завершено, але сталася помилка при установці GRUB! + + + + + You need to manually install a bootloader. + Потрібно вручну встановити завантажувач. + + + + + The system restoration is aborted! + Відновлення системи скасовано! + + + + An error occurred while reinstalling the GRUB. + Сталася помилка при перевстановленні GRUB. + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + Повний ремонт системи завершено, але сталася помилка під час перевстановлення GRUB! + + + + + + + + The Live system creation is aborted! + Створення системи "Live" скасовано! + + + + An error occurred while creating the file system image. + Сталася помилка при створенні образу файлової системи. + + + + An error occurred while creating the container file. + Сталася помилка при створенні файла-контейнера. + + + + + + The specified partition could not be mounted. + Зазначений розділ не може бути змонтований. + + + + The system install is completed, but an error occurred while installing the GRUB! + Встановлення системи завершено, але сталася помилка при встановленні GRUB! + + + + + + + + The system installation is aborted! + Встановлення системи скасовано! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + Зазначений розділ(и) не має достатньо вільного місця для встановлення системи. Встановлена система не буде функціонувати належним чином. + + + + + + The specified partition could not be formatted (in use or unavailable). + Зазначений розділ не може бути відформатований (використовується або недійсний). + + + + An error occurred while reinstalling the GRUB! + Сталася помилка під час перевстановлення GRUB! + + + + + + + + + + There has been critical changes in the file system during this operation. + Під час цієї операції сталися критичні зміни в файлової системі. + + + + + + + + The Live write is aborted! + Запис "Live" скасовано! + + + + The selected device does not have enough space to write the Live system. + На вибраному пристрої не достатньо місця для запису системи "Live". + + + + An error occurred while unpacking the Live system files. + Сталася помилка при розпакуванні файлів системи "Live". + + + + + + + The Live conversion is aborted! + Перетворення "Live" скасовано! + + + + An error occurred while renaming the essential Live files. + Сталася помилка при перейменуванні основних файлів "Live". + + + + An error occurred while creating the .iso image. + Сталася помилка при створенні образу ISO. + + + + An error occurred while reading the .sblive image. + Сталася помилка при читанні образу .sblive. + + + + An error occurred while creating the new initramfs image. + Сталася помилка при створенні нового образу initramfs. + + + + + The restore point deletion is aborted! + Видалення точки відновлення скасовано! + + + + + An error occurred while during the process. + Сталася помилка під час процесу. + + + + + + The Live image could not be mounted. + Образ "Live" не може бути змонтований. + + + + + The system repair is aborted! + Ремонт системи скасовано! + + + + + There is not enough free space. + Не достатньо вільного місця. + + + + + + Live image + Образ "Live" + + + + + + + + Multiple mount points + Декілька точок монтування + + + + Enabled + Увімкнено + + + + Systemback worker thread is interrupted by the user. + Systemback "worker thread" перервано користувачем. + + + + Boot Live without xorg.conf file + Завантажити "Live" без файлу xorg.conf + + + + + + Boot Live system + Завантажити систему "Live" + + + + + + Boot Live in safe graphics mode + Завантажити "Live" у безпечному графічному режимі + + + + + + Boot Live in debug mode + Завантажити "Live" в режимі налагодження + + + + + + Boot system installer + + + + + Press 'E' key to edit + Натисніть клавішу 'E' для редагування + + + + Press TAB key to edit + Натисніть клавішу TAB для редагування + + + + Version: + + + + + Compilation date and time: + + + + + + Installed files: + + + + + Operating system: + + + + + + Mounted filesystems: + + + + + System language: + + + + + Translation: + + + + + The specified debug level is invalid! + + + + + The default level (1) will be used. + + + + + An error occurred while opening the following file: + + + + + An error occurred while creating the following directory: + + + + + An error occurred while removing the following file: + + + + + An error occurred while creating the following hard link: + + + + + Reference file: + + + + + An error occurred while creating the following file: + + + + + An error occurred while renaming the following item: + + + + + New path: + + + + + An error occurred while executing the following command: + + + + + Exit code: + + + + + Failed to detect the device for installing the GRUB! + + + + + An error occurred while upgrading the system! + Під час оновлення системи виникла помилка! + + + + Restart upgrade ... + Перезапуск оновлення ... + + + + This file could not be copied because it does not exist: + + + + + The following partition has no UUID: + + + + + An error occurred while creating a new partition on the following device: + + + + + An error occurred while mounting the following partition/image: + + + + + An error occurred while setting one or more flags on the following partition: + + + + + Flag(s): + + + + + An error occurred while creating the partition table on the following device: + + + + + An error occurred while unmounting the following partition/image/mount point: + + + + + An error occurred while cloning the properties of the following item: + + + + + Target item: + + + + + An error occurred while cloning the following symbolic link: + + + + + Target symlink: + + + + + An error occurred while cloning the following file: + + + + + Target file: + + + + + An error occurred while cloning the following directory: + + + + + Target directory: + + + + + An error occurred while deleting the following directory: + + + + + basic restore UI + Початковий UI відновлення + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + Використання: systemback-cli [опція] + + Опції: + + -n, --newbackup створити нову точку відновлення + + -s, --storagedir <path> отримати або встановити шлях до каталогу зберігання + точок відновлення + + -u, --upgrade оновити існуючу систему + видалити непотрібні файли і пакети + + -v, --version номер версії Systemback + + -h, --help показати цю довідку + + + + The specified storage directory path has not been set! + Зазначений шлях каталогу зберігання не встановлено! + + + + The restoration is aborted! + Відновлення скасовано! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + Відновлення завершено, але виникла помилка при перевстановленні GRUB! + + + + The restore points storage directory is not available or not writable! + Каталог зберігання точок відновлення недоступний або недоступний для запису! + + + + This stupid terminal does not support color! + Цей дурний термінал не підтримує колір! + + + + The Systemback command line interface cannot be used on a Live system! + + + + + This terminal is too small! + Цей термінал занадто малий! + + + + Available restore point(s): + Доступні точки відновлення: + + + + Quit + Вийти + + + + Selected restore point: + Обрана точка відновлення: + + + + The specified storage directory path is set. + Зазначений шлях каталогу зберігання встановлено. + + + + Restore with the following restore point: + Відновити з наступної точки відновлення: + + + + Restore with the following restore method: + Відновити з наступним способом відновлення: + + + + Users configuration files restore + Відновити конфігураційні файли користувачів + + + + + Complete configuration files restore + Відновити конфігураційні файли повністю + + + + Configuration files restore + Відновити конфігураційні файли + + + + + + You want to keep the current fstab file? + Ви хочете зберегти поточний файл fstab? + + + + + + + + + + + (Y/N) + (T/H) + + + + + + + Reinstall the GRUB 2 bootloader? + Перевстановити завантажувач GRUB 2? + + + + Start the restore? + Почати відновлення? + + + + The users configuration files full restoration are completed. + Повне відновлення конфігураційних файлів користувачів завершено. + + + + The users configuration files restoration are completed. + Відновлення конфігураційних файлів користувачів завершено. + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + Натисніть клавішу "ENTER", щоб перезавантажити комп'ютер, або 'Q', щоб вийти. + + + + Press 'ENTER' key to quit. + Натисніть клавішу "ENTER", щоб вийти. + + + + Deleting old restore point(s) + Видалення старих точок відновлення + + + + Restoring the users configuration files + Відновлюємо конфігураційні файли користувачів + + + + An error occurred while changing the access permissions of the following file: + + + + + + Cannot start the Systemback scheduler daemon! + Не можу запустити планувальник Systemback! + + + + + Missing, wrong or too much argument(s). + Не вистачає, чи помилкові параметри (або їх занадто багато). + + + + The process is disabled for this user. + Процесс заборонений для цього користувача. + + + + Root privileges are required. + Потрібні права root. + + + + This system is a Live. + Ця система є т.з. "Live-CD". + + + + Already running. + Вже виконується. + + + + Unable to daemonize. + Не в змозі "демонізувати". + + + + Cannot start the Systemback graphical user interface! + Не можу запустити Systemback GUI! + + + + Unable to get root permissions. + Не можу отримати права root. + + + + Unable to connect to the X server. + Не можу підключитися до X-серверу. + + + + Unsafe X Window authorization! + Небезпечна авторізація X Window! + + + + Please do not use 'sudo' command. + Будь ласка, не використовуйте команду "sudo". + + + diff --git a/lang/systemback_zh_CN.ts b/lang/systemback_zh_CN.ts new file mode 100644 index 0000000..5c7dd45 --- /dev/null +++ b/lang/systemback_zh_CN.ts @@ -0,0 +1,1898 @@ + + + + + systemback + + + The specified debug level is invalid! + 特定的调试等级无效! + + + + The default level (1) will be used. + 默认等级(1)将被使用。 + + + + Version: + 版本: + + + + Compilation date and time: + 编译日期和时间: + + + + + Installed files: + 已安装的文件: + + + + Operating system: + 操作系统: + + + + + Mounted filesystems: + 挂载文件系统: + + + + System language: + 系统语言: + + + + Translation: + 翻译: + + + + An error occurred while opening the following file: + 在打开以下文件时发生了一个错误: + + + + An error occurred while creating the following directory: + 在创建以下目录时发生了一个错误: + + + + An error occurred while removing the following file: + 在移除以下目录时发生了一个错误: + + + + An error occurred while creating the following hard link: + 在创建以下硬链接时发生了一个错误: + + + + Reference file: + 参考文件: + + + + An error occurred while creating the following file: + 在创建以下文件时发生了一个错误: + + + + An error occurred while renaming the following item: + 在重命名以下条目时发生了一个错误: + + + + New path: + 新路径: + + + + An error occurred while executing the following command: + 在执行以下命令时发生了一个错误: + + + + Exit code: + 退出代码: + + + + Failed to detect the device for installing the GRUB! + 为安装GRUB探测设备失败! + + + + An error occurred while upgrading the system! + 进行系统更新出现错误! + + + + Restart upgrade ... + 重新更新…… + + + + This file could not be copied because it does not exist: + 这个文件由于不存在而无法被复制: + + + + The following partition has no UUID: + 以下分区没有UUID: + + + + An error occurred while creating a new partition on the following device: + 在以下设备上新建分区时发生了一个错误: + + + + An error occurred while mounting the following partition/image: + 在挂载以下分区/镜像时发生了一个错误: + + + + An error occurred while setting one or more flags on the following partition: + 在以下分区上设置一个或多个标志位时发生了一个错误: + + + + Flag(s): + 标志位: + + + + An error occurred while creating the partition table on the following device: + 在以下设备上新建分区表时发生了一个错误: + + + + An error occurred while unmounting the following partition/image/mount point: + 在卸载以下分区/镜像/挂载点时发生了一个错误: + + + + An error occurred while cloning the properties of the following item: + 在克隆以下条目的属性时发生了一个错误: + + + + Target item: + 目标条目: + + + + An error occurred while cloning the following symbolic link: + 在克隆以下符号链接时发生了一个错误: + + + + Target symlink: + 目标链接: + + + + An error occurred while cloning the following file: + 在克隆以下文件时发生了一个错误: + + + + Target file: + 目标文件: + + + + An error occurred while cloning the following directory: + 在克隆以下目录时发生了一个错误: + + + + Target directory: + 目标目录: + + + + An error occurred while deleting the following directory: + 在删除以下目录时发生了一个错误: + + + + + Cannot start the Systemback scheduler daemon! + 无法启动Systemback计划任务守护进程! + + + + + Missing, wrong or too much argument(s). + 太少、错误或太多的参数。 + + + + The process is disabled for this user. + 这个用户无法使用该进程。 + + + + Root privileges are required. + 需要root权限。 + + + + This system is a Live. + 这个系统有Live模式。 + + + + Already running. + 已经在运行。 + + + + Unable to daemonize. + 无法创建守护进程。 + + + + Cannot start the Systemback graphical user interface! + 无法启动Systemback的图形界面! + + + + Unable to get root permissions. + 无法获得root权限。 + + + + Unable to connect to the X server. + 无法连接到X服务。 + + + + Full name of the new user: + 新用户全名: + + + + New username to login: + 新用户登录名: + + + + New user account password: + 新用户密码: + + + + New root password (optional, not recommended for Ubuntu): + 新管理员密码(可选,Ubuntu里不建议使用): + + + + New hostname: + 新主机名: + + + + + + + + + + + + + + + + Back + 返回 + + + + + + + + Next + 下一步 + + + + + Working directory + 工作目录 + + + + Created Live images + 创建支持Live模式的镜像 + + + + Name of the Live system + Live模式系统名称 + + + + + + + + Options + 选项 + + + + Write target + 写入目标设备 + + + + Live operations + Live模式选项 + + + + Include the user data files + 包含用户数据文件 + + + + Redetect devices + 重新检测设备 + + + + + + Delete + 删除 + + + + Write to target + 向目标设备写入 + + + + Convert to ISO + 转存为光盘镜像 + + + + + + Create new + 创建新的 + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + 请按照原来的结构把错误的系统分区挂载于'/mnt'文件夹。<br>(如 '/' -> '/mnt','/home' -> '/mnt/home',等。) + + + + + Mount + 挂载 + + + + Reset mounts + 挂载重置 + + + + Repair type + 修复类型 + + + + GRUB 2 repair + GRUB2修复 + + + + System files repair + 系统文件修复 + + + + + Reinstall GRUB 2 bootloader: + 重装GRUB2引导程序: + + + + + Auto detection + 自动检测 + + + + Full repair + 全面修复 + + + + Do not repair the fstab file + 别修复fstab文件 + + + + Exclude hidden user files and directories from restore points + 从还原点排除隐藏用户文件和文件夹 + + + + Exclude user data files and directories from Live system + 从Live模式系统中排除用户数据文件及文件夹 + + + + Excludable items + 可被排除条目 + + + + Excluded items + 排除项目 + + + + + Remove item from the exclusion list + 从排除列表中清除条目 + + + + + Add item to the exclusion list + 向排除列表中添加条目 + + + + Scheduler state: + 进程状态: + + + + + + + + + + + + + + Disabled + 禁用 + + + + Timer settings + 定时器设置 + + + + Waiting time before creating a new restore point: + 创建一个新的还原点的等待时间: + + + + Visible countdown time: + 倒计时可见: + + + + Pop-up window position on screen: + 屏幕中弹出窗口位置: + + + + Use silent mode + 使用静默模式 + + + + + + + More + 更多 + + + + + + + Less + 收起 + + + + Simple system backup and restore application with extra features + 简单系统备份和还原程序,新增更多功能 + + + + Project homepage: + 项目主页: + + + + Contact: + 联系: + + + + Donate: + 捐赠: + + + + Systemback version: + 系统版本: + + + + + License + 许可协议 + + + + Re-read directories + 重新读取目录 + + + + Writable Linux filesystem! + 可写Linux文件系统! + + + + + + + Cancel + 取消 + + + + + + + + + + + Maximum number of temporary restore points + 最多还原点数目 + + + + Restore points + 还原点 + + + + Highlighted restore points + 高亮还原点 + + + + Point operations + 还原点操作 + + + + Highlight + 高亮 + + + + Rename + 重命名 + + + + + + + + + + + + + + + + + + Select restore point + 选择还原点 + + + + + + + + + Storage directory + 存储文件夹 + + + + Function menu + 功能菜单 + + + + + Schedule + 进度表 + + + + + + About + 关于 + + + + + Settings + 设置 + + + + System upgrade + 系统升级 + + + + + System install + 系统安装 + + + + + + + Live system create + 创建Live系统 + + + + + System repair + 系统修复 + + + + + + System restore + 系统还原 + + + + + + + System copy + 系统复制 + + + + + Exclude + 排除 + + + + + Include + 包含目录 + + + + Change path + 变更路径 + + + + + + + + + + + + + + + + + + empty + + + + + + + + + + + + not used + 未被使用 + + + + Restore type + 还原方式 + + + + + + + + + Full restore + 齐全还原 + + + + + + + + + System files restore + 系统文件还原 + + + + User(s) configuration files restore + 用户配置文件还原 + + + + + Keep newly installed configuration files + 保留新安装的配置文件 + + + + Include user(s): + 包括用户: + + + + Do not restore the fstab file + 别还原fstab文件 + + + + Partition settings + 分区设置 + + + + + + + + Transfer user configuration files + 传递用户配置文件 + + + + Copy user data files + 复制用户数据文件 + + + + Install GRUB 2 bootloader: + 安装GRUB2引导程序: + + + + + + Format + 格式 + + + + + + Reset partitions settings + 重置分区设置 + + + + + + + + + + Unmount + 卸载 + + + + Change partition settings + 变更分区设置 + + + + Filesystem: + 文件系统: + + + + Mount point: + 挂载点: + + + + + + + + + ! Delete ! + !删除! + + + + Add new partition + 新建分区 + + + + Create new: + 新建: + + + + Need to set the mount point as '/boot/efi'! + 需要将挂载点设为'/boot/efi'! + + + + Window DPI scaling + 窗口DPI缩放 + + + + Multiplier factor for scaling the window contents + 缩放窗口内容的乘积因子 + + + + User interface + 用户界面 + + + + Window always on top + 窗口始终置顶 + + + + System + 系统 + + + + Disable scheduler daemon starting for the following users: + 禁用以下用户启动进度表进程守护: + + + + Use XZ compressor for squashfs filesystems + 在squashfs文件系统中使用XZ压缩 + + + + Override auto-detected language: + 覆盖自动检测的语言: + + + + Override the used style: + 覆盖已使用的风格: + + + + Disable incremental restore points (do not use hard links between backups) + 禁用增量还原点(不使用备份之间的硬链接) + + + + Create Live ISO images automatically (faster than the conversion) + 自动生成Live模式的ISO光盘镜像(比转换要快) + + + + Do not empty memory cache at the end of some processes + 在一些步骤结束后不清空缓存 + + + + Includable items + 可包含条目 + + + + Included items + 已包含条目 + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + 包含用户数据文件及文件夹至还原点 +它们会被作为可还原的配置文件! + + + + ! Interrupt ! + !打断! + + + + Creates a scheduled restore point within few seconds. + 在几秒钟内创建一个计划任务还原点。 + + + + + + Start + 开始 + + + + Later + 稍后再说 + + + + Systemback user authentication + Systemback用户认证 + + + + Administrator: + 管理员: + + + + Password: + 密码: + + + + Unsafe X Window authorization! + 不安全的X Window授权! + + + + Please do not use 'sudo' command. + 请不要使用'sudo'命令。 + + + + + + + + + Transfer user configuration and data files + 传递用户配置文件及用户数据 + + + + + + scheduler + 计划表 + + + + + Partition + 分区 + + + + + Size + 大小 + + + + Label + 标签 + + + + Current mount point + 当前挂载点 + + + + New mount point + 新挂载点 + + + + Filesystem + 文件系统 + + + + Device + 设备 + + + + + Top left + 左上 + + + + + + Top right + 右上 + + + + + + Center + 居中 + + + + + + Bottom left + 左下 + + + + + Bottom right + 右下 + + + + + + day(s) + + + + + + + hour(s) + 小时 + + + + + + + + minute(s) + 分钟 + + + + + + seconds + + + + + + + + Everyone + 所有人 + + + + + + Currently running system + 当前的系统 + + + + + Emptying cache + 正在删除缓存 + + + + + Flushing filesystem buffers + 清除文件系统缓冲区 + + + + + Restoring the full system + 正在做全系统还原 + + + + + Restoring the system files + 正在还原系统文件 + + + + Restoring the user(s) configuration files + 正在还原用户配置文件 + + + + Repairing the system files + 正在修复系统文件 + + + + Repairing the full system + 正在进行全系统修复 + + + + Repairing the GRUB 2 + 正在修复GRUB2 + + + + Copying the system + 正在复制系统 + + + + Installing the system + 正在安装系统 + + + + Writing Live image to the target device + 将Live镜像写入目标设备 + + + + Upgrading the system + 正在升级系统 + + + + + Deleting incomplete restore point + 正在删除未完成还原点 + + + + Interrupting the current process + 终止当前进程 + + + + Deleting old restore point + 正在删除旧还原点 + + + + + Creating restore point + 正在创建还原点 + + + + + Deleting restore point + 正在删除还原点 + + + + Converting Live system image + 转换Live系统镜像 + + + + + process + 进程 + + + + Creating Live system + 正在创建Live系统 + + + + + + + + + Reboot + 重启 + + + + + + + X restart + 重新启动X + + + + + + Live image + Live映像 + + + + Restore the system files to the following restore point: + 还原系统文件用下面还原点: + + + + Repair the system files with the following restore point: + 修复系统文件用下面还原点: + + + + Repair the complete system with the following restore point: + 全面系统修复用下面还原点: + + + + Restore the complete user(s) configuration files to the following restore point: + 还原所有用户配置文件用下面还原点: + + + + Restore the user(s) configuration files to the following restore point: + 还原用户配置文件用下面还原点: + + + + Copy the system, using the following restore point: + 是有下面还原点复制系统: + + + + Install the system, using the following restore point: + 是有下面还原点安装系统: + + + + Restore the complete system to the following restore point: + 进行全面系统还原用下面还原点: + + + + Format the %1, and write the following Live system image: + 格式化%1,并且写入一下系统镜像: + + + + Repair the GRUB 2 bootloader. + 修复GRUB2引导程序。 + + + + The user(s) configuration files full restoration are completed. + 用户配置文件全面还原已完成。 + + + + + The X server will restart automatically within 30 seconds. + X服务器30秒内会自动重启。 + + + + The user(s) configuration files restoration are completed. + 用户配置文件还原已完成。 + + + + The full system repair is completed. + 全面系统修复已完成。 + + + + The system repair is completed. + 系统修复已完成。 + + + + + The system files restoration are completed. + 系统文件还原已完成。 + + + + + + The computer will restart automatically within 30 seconds. + 计算机将在30秒内开始自动重启。 + + + + + The full system restoration is completed. + 全面系统还原已完成。 + + + + The system copy is completed. + 复杂系统已完成。 + + + + The Live system creation is completed. + 支持Live模式的系统创建完成。 + + + + The created .sblive file can be written to pendrive. + 创建的.sblive文件可以被写入随身碟。 + + + + The GRUB 2 repair is completed. + GRUB2修复已完成。 + + + + The system install is completed. + 安装系统已完成。 + + + + The Live system image write is completed. + Live系统镜像写入完成。 + + + + + An another Systemback process is currently running, please wait until it finishes. + 另一个Systemback程序正在运行,请等待结束。 + + + + + Unable to get exclusive lock! + 没法得到独占锁! + + + + + First, close all package manager. + 请先关闭所有包管理程序。 + + + + + The re-synchronization of package index files currently in progress, please wait until it finishes. + + + + + The specified name contain(s) unsupported character(s)! + 指定的名称有非支持字母! + + + + Please enter a new name. + 请选择新名称。 + + + + The system files repair are completed, but an error occurred while reinstalling the GRUB! + 系统文件修复已完成,不过安装GRUB的过程当中出现错误! + + + + + + The system may not bootable! (In general, the different architecture is causing the problem.) + 系统有可能无法启动!(基本原因是不同体系结构。) + + + + + + + The restore point creation is aborted! + 创建还原点已中止! + + + + + + Not enough free disk space to complete the process. + 磁盘没有足够自由空间。 + + + + + Root privileges are required for running the Systemback! + Systemback需要管理员权利才可以运行! + + + + + + + + The system copy is aborted! + 系统复制已中止! + + + + The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly. + 指定的分区空间不够。已复制的系统会出现错误。 + + + + The system copy is completed, but an error occurred while installing the GRUB! + 复制系统已完成,不过安装GRUB的过程当中出现错误! + + + + + You need to manually install a bootloader. + 请手动安装引导程序。 + + + + + The system restoration is aborted! + 系统还原被中止! + + + + An error occurred while reinstalling the GRUB. + 重新安装GRUB时发生了一个错误。 + + + + The full system repair is completed, but an error occurred while reinstalling the GRUB! + 全面系统修复已完成,不过安装GRUB的过程当中出现错误! + + + + + + + + The Live system creation is aborted! + Live系统创建被中止! + + + + An error occurred while creating the file system image. + 创建文件系统图像出现错误。 + + + + An error occurred while creating the container file. + 在创建容器文件时发生了一个错误。 + + + + + + The specified partition could not be mounted. + 指定的分区无法挂载。 + + + + The system install is completed, but an error occurred while installing the GRUB! + 安装系统已完成,不够安装GRUB的过程当中出现错误! + + + + + + + + The system installation is aborted! + 安装系统已中止! + + + + The specified partition(s) does not have enough free space to install the system. The installed system will not function properly. + 指定的分区空间安装系统不够用。已安装的系统运行会出现问题。 + + + + + + The specified partition could not be formatted (in use or unavailable). + 指定的分区无法格式化(因正在使用或不可用)。 + + + + An error occurred while reinstalling the GRUB! + 重装GRUB的过程当中出现错误! + + + + + + + + + + There has been critical changes in the file system during this operation. + 进行的过程当中文件系统发生了严重变化。 + + + + + + + + The Live write is aborted! + Live镜像写入被中止! + + + + The selected device does not have enough space to write the Live system. + 被选中的设备空间不足以写入Live系统。 + + + + An error occurred while unpacking the Live system files. + 解压Live系统文件时发生了一个错误。 + + + + + + + The Live conversion is aborted! + Live镜像转换被中止! + + + + An error occurred while renaming the essential Live files. + 重命名基本文件时发生了一个错误。 + + + + An error occurred while creating the .iso image. + 创建.iso镜像时发生了一个错误。 + + + + An error occurred while reading the .sblive image. + 读取.sblive镜像时发生了一个错误。 + + + + An error occurred while creating the new initramfs image. + 创建initramfs镜像时发生了一个错误。 + + + + + The restore point deletion is aborted! + 还原点删除被中止! + + + + + An error occurred while during the process. + 在处理的过程中发生了一个错误。 + + + + + + The Live image could not be mounted. + 无法挂载Live镜像。 + + + + + The system repair is aborted! + 系统修复被中止! + + + + + There is not enough free space. + 剩余空间不足。 + + + + + + + + Multiple mount points + 多个挂载点 + + + + Enabled + 已启用 + + + + Systemback worker thread is interrupted by the user. + Systemback工作进程被用户中止。 + + + + Boot Live without xorg.conf file + 不使用xorg.conf文件启动Live系统 + + + + + + Boot Live system + 启动Live系统 + + + + + + Boot system installer + 启动系统安装器 + + + + + + Boot Live in safe graphics mode + 在安全图像模式下启动Live系统 + + + + + + Boot Live in debug mode + 在调试模式下启动Live系统 + + + + Press 'E' key to edit + 按'E'键编辑 + + + + Press TAB key to edit + 按TAB键编辑 + + + + An error occurred while changing the access permissions of the following file: + 在更改以下文件的访问权限时发生了一个错误: + + + + Usage: systemback-cli [option] + + Options: + + -n, --newbackup create a new restore point + + -s, --storagedir <path> get or set the restore points storage directory path + + -u, --upgrade upgrade the current system + remove the unnecessary files and packages + + -v, --version output the Systemback version number + + -h, --help show this help + 用法:systemback-cli [选项] + + 选项: + + -n, --newbackup 新建一个还原点 + + -s, --storagedir <路径> 获得或设置花园典储存目录路径 + + -u, --upgrade 升级当前系统 + 移除不需要的文件和包 + + -v, --version 输出Systemback的版本号 + + -h, --help 显示本帮助 + + + + basic restore UI + 基本还原用户界面 + + + + The Systemback command line interface cannot be used on a Live system! + Systemback的命令行用户界面无法在Live系统上使用! + + + + This stupid terminal does not support color! + 这傻X终端不支持彩色显示! + + + + This terminal is too small! + 这终端太小了! + + + + The specified storage directory path has not been set! + 指定的存储文件夹路径还未设定! + + + + The restoration is aborted! + 还原被中止! + + + + The restoration is completed, but an error occurred while reinstalling the GRUB! + 还原已完成,不过安装GRUB的时候出现错误! + + + + The restore points storage directory is not available or not writable! + 储存还原点的文件夹不可用或不可写入! + + + + Available restore point(s): + 可用的还原点: + + + + Quit + 退出 + + + + Selected restore point: + 已选择的还原点: + + + + The specified storage directory path is set. + 指定的存储文件夹路径已设定。 + + + + Restore with the following restore point: + 使用下面还原点进行还原: + + + + Restore with the following restore method: + 使用下面的方式进行还原: + + + + Users configuration files restore + 还原用户配置文件 + + + + + Complete configuration files restore + 还原全部配置文件 + + + + Configuration files restore + 还原配置文件 + + + + + + You want to keep the current fstab file? + 保留当前的fstab文件? + + + + + + + + + + + (Y/N) + (Y/N) + + + + + + + Reinstall the GRUB 2 bootloader? + 重新安装GRUB2引导程序? + + + + Start the restore? + 开始还原? + + + + The users configuration files full restoration are completed. + 用户配置文件全面还原已完成。 + + + + The users configuration files restoration are completed. + 用户配置文件还原已完成。 + + + + Press 'ENTER' key to reboot the computer, or 'Q' to quit. + 请按ENTER重新启动电脑,或者按Q退出程序。 + + + + Press 'ENTER' key to quit. + 按'ENTER'键退出。 + + + + Deleting old restore point(s) + 删除旧的还原点 + + + + Restoring the users configuration files + 正在还原用户配置文件 + + + diff --git a/libsystemback/bstr.hpp b/libsystemback/bstr.hpp new file mode 100644 index 0000000..ca65a91 --- /dev/null +++ b/libsystemback/bstr.hpp @@ -0,0 +1,51 @@ +/* + * Copyright(C) 2015-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef BSTR_HPP +#define BSTR_HPP + +#include "sbtypedef.hpp" + +class bstr +{ +private: + QBA ba; + +public: + inline bstr() {} + inline bstr(cchar *txt) : data(txt) {} + inline bstr(cQBA &txt) : data(txt.constData()) {} + inline bstr(cQStr &txt) : ba(txt.toUtf8()), data(ba.constData()) {} + operator cchar *() const; + + cchar *data; + + cchar *rplc(cchar *bef, cchar *aft); +}; + +inline bstr::operator cchar *() const +{ + return data; +} + +inline cchar *bstr::rplc(cchar *bef, cchar *aft) +{ + return ba.replace(bef, aft); +} + +#endif diff --git a/libsystemback/lcheck.sh b/libsystemback/lcheck.sh new file mode 100755 index 0000000..eab33af --- /dev/null +++ b/libsystemback/lcheck.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# +# Copyright(C) 2015-2016, Krisztián Kende +# +# This file is part of the Systemback. +# +# The Systemback is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 3 of the License, or (at your option) any later +# version. +# +# The Systemback is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with the +# Systemback. If not, see . +# + +grep "*new)" /usr/include/libmount/libmount.h >/dev/null && sed "s/*new)/*new_table)/g" /usr/include/libmount/libmount.h > libmount.hpp diff --git a/libsystemback/libsystemback.pro b/libsystemback/libsystemback.pro new file mode 100644 index 0000000..f6fc07f --- /dev/null +++ b/libsystemback/libsystemback.pro @@ -0,0 +1,53 @@ +QT -= gui + +TARGET = systemback + +CONFIG += c++11 \ + exceptions_off + +TEMPLATE = lib + +DEFINES += SYSTEMBACK_LIBRARY \ + _FILE_OFFSET_BITS=64 + +system(./lcheck.sh):exists(libmount.hpp) { + DEFINES += C_MNT_LIB +} + +SOURCES += sblib.cpp + +HEADERS += sblib.hpp \ + sblib_global.hpp \ + sbtypedef.hpp \ + bstr.hpp + +RESOURCES += version.qrc + +QMAKE_CXXFLAGS += -g \ + -fno-rtti \ + -fvisibility=hidden \ + -fvisibility-inlines-hidden \ + -fno-asynchronous-unwind-tables + +QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-result + +CONFIG(debug, debug|release) { + QMAKE_CXXFLAGS_WARN_ON += -Wextra \ + -Wshadow \ + -Werror +} + +QMAKE_LFLAGS += -g \ + -Wl,-Bsymbolic-functions \ + -Wl,--as-needed \ + -fuse-ld=gold \ + -Wl,-z,relro + +! equals(QMAKE_CXX, clang++) { + QMAKE_CXXFLAGS += -flto + QMAKE_LFLAGS += -flto +} + +LIBS += -lmount \ + -lblkid \ + -lparted diff --git a/libsystemback/sblib.cpp b/libsystemback/sblib.cpp new file mode 100644 index 0000000..dcee66a --- /dev/null +++ b/libsystemback/sblib.cpp @@ -0,0 +1,4243 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "sblib.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef C_MNT_LIB +#include "libmount.hpp" +#else +#include +#endif + +#ifdef bool +#undef bool +#endif + +sb sb::SBThrd; +QTrn *sb::SBtr(nullptr); +QSL *sb::ThrdSlst; +QStr sb::ThrdStr[3], sb::eout, sb::sdir[3], sb::schdlr[2], sb::pnames[15], sb::lang, sb::style, sb::wsclng; +ullong sb::ThrdLng[]{0, 0}; +int sb::sblock[4]; +uchar sb::ThrdType, sb::ThrdChr, sb::dbglev, sb::pnumber(0), sb::ismpnt(sb::Empty), sb::schdle[]{sb::Empty, sb::Empty, sb::Empty, sb::Empty, sb::Empty, sb::Empty}, sb::waot(sb::Empty), sb::incrmtl(sb::Empty), sb::xzcmpr(sb::Empty), sb::autoiso(sb::Empty), sb::ecache(sb::Empty); +schar sb::Progress(-1); +bool sb::ThrdBool, sb::ExecKill(true), sb::ThrdKill(true), sb::ThrdRslt; + +sb::sb() +{ + qputenv("PATH", "/usr/lib/systemback:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"), + setlocale(LC_ALL, "C.UTF-8"), chdir("/"), umask(0); + + dbglev = qEnvironmentVariableIsEmpty("DBGLEV") ? Nulldbg : [] { + bool ok; + + switch(qgetenv("DBGLEV").toUShort(&ok)) { + case Errdbg: + return Nulldbg; + case Alldbg: + return Alldbg; + case Extdbg: + return Extdbg; + case Nodbg: + if(ok) return Nodbg; + default: + return Falsedbg; + } + }(); +} + +sb::~sb() +{ + if(SBtr) delete SBtr; +} + +void sb::ldtltr() +{ + QTrn *tltr(new QTrn); + cfgread(); + + if(lang == "auto") + { + if(QLocale::system().name() != "en_EN") tltr->load(QLocale::system(), "systemback", "_", "/usr/share/systemback/lang"); + } + else if(lang != "en_EN") + tltr->load("systemback_" % lang, "/usr/share/systemback/lang"); + + if(tltr->isEmpty()) + delete tltr; + else + qApp->installTranslator(SBtr = tltr); + + switch(dbglev) { + case Falsedbg: + error("\n " % tr("The specified debug level is invalid!") % "\n\n " % tr("The default level (1) will be used.") % "\n\n"), + dbglev = Nulldbg; + break; + case Extdbg: + QTS(stderr) << (isatty(fileno(stderr)) ? "\033[1;31m" % dbginf() % "\033[0m" : right(dbginf().replace("\n ", "\n"), -1)); + } +} + +void sb::print(cQStr &txt) +{ + QTS(stdout) << (isatty(fileno(stdout)) ? "\033[1m" % txt % "\033[0m" : QStr(txt).replace("\n ", "\n")); +} + +bool sb::error(QStr txt, bool dbg) +{ + auto splt([](cQStr &stxt) { + if(stxt.length() > 80) + { + QStr ftxt; + QSL llst(stxt.split('\n')); + + for(uchar a(1) ; a < llst.count() ; ++a) + { + cQStr &line(llst.at(a)); + ftxt.append('\n' % (line.length() > 79 && ! like(line, {"*: /*", "*: /*"}) ? llst.value(a).replace(line.left(79).lastIndexOf(' '), 0, '\n') : line)); + } + + return ftxt; + } + else + return stxt; + }); + + auto pfix([&txt]{ if(txt.contains("\n\n ./")) txt.replace("\n\n ./", "\n\n /"); }); + if(! dbg) goto print; + + switch(dbglev) { + case Errdbg: + case Cextdbg: + pfix(), eout.append(isatty(fileno(stderr)) ? splt(txt) : splt(txt).replace("\n ", "\n")); + break; + case Alldbg: + case Extdbg: + pfix(); +print: + QTS(stderr) << (isatty(fileno(stderr)) ? "\033[1;31m" % splt(txt) % "\033[0m" : splt(txt).replace("\n ", "\n")); + } + + return false; +} + +QStr sb::appver() +{ + QFile file(":version"); + fopen(file); + QStr vrsn(qVersion()); + + return file.readLine().trimmed() % "_Qt" % (vrsn == QT_VERSION_STR ? vrsn : vrsn % '(' % QT_VERSION_STR % ')') % '_' % +#ifdef __clang__ + "Clang" % QStr::number(__clang_major__) % '.' % QStr::number(__clang_minor__) % '.' % QStr::number(__clang_patchlevel__) +#elif defined(__INTEL_COMPILER) || ! defined(__GNUC__) + "compiler?" +#elif defined(__GNUC__) + "GCC" % QStr::number(__GNUC__) % '.' % QStr::number(__GNUC_MINOR__) % '.' % QStr::number(__GNUC_PATCHLEVEL__) +#endif + % '_' % +#ifdef __amd64__ + "amd64"; +#elif defined(__i386__) + "i386"; +#else + "arch?"; +#endif +} + +QStr sb::dbginf() +{ + QStr txt("\n Systemback\n\n " % tr("Version:") % ' ' % appver() % "\n " % tr("Compilation date and time:") % ' ' % __DATE__ % ' ' % __TIME__ % "\n " % tr("Installed files:") % [] { + QStr fls; + QSL lst{"/etc/xdg/autostart/sbschedule-kde.desktop", "/etc/xdg/autostart/sbschedule.desktop", "/usr/bin/systemback", "/usr/bin/systemback-cli", "/usr/bin/systemback-sustart", "/usr/lib/systemback/libsystemback.so", "/usr/lib/systemback/libsystemback.so.1", "/usr/lib/systemback/libsystemback.so.1.0", "/usr/lib/systemback/libsystemback.so.1.0.0", "/usr/lib/systemback/sbscheduler", "/usr/lib/systemback/sbsustart", "/usr/lib/systemback/sbsysupgrade", "/usr/share/applications/systemback-kde.desktop", "/usr/share/applications/systemback.desktop", "/usr/share/systemback/efi-amd64.bootfiles"}; + uchar ind(tr("Installed files:").length() + 2); + + if(isdir("/usr/share/systemback/lang")) + for(cQStr &file : QDir("/usr/share/systemback/lang").entryList(QDir::Files)) + if(file.endsWith(".qm")) lst.append("/usr/share/systemback/lang/" % file); + + for(cQStr &file : lst) + if(isfile(file)) fls.append((fls.isEmpty() ? " " : QStr('\n' % QStr(ind, ' '))) % file); + + return fls; + }() % "\n " % tr("Operating system:") % []() -> QStr { + QFile file("/etc/os-release"); + + if(fopen(file)) + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + if(cline.startsWith("PRETTY_NAME=\"")) return ' ' % mid(cline, 14, cline.length() - 14); + } + + return nullptr; + }() % "\n " % tr("Mounted filesystems:") % [] { + uchar ind(tr("Mounted filesystems:").length() + 2); + QStr mpts, spcs('\n' % QStr(ind++, ' ')); + QBA mnts(fload("/proc/self/mounts")); + QTS in(&mnts, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + + if(cline.startsWith("/dev/")) mpts.append((mpts.isEmpty() ? " " : spcs) % [&, ind] { + if((cline.contains("\\040") ? cline.replace("\\040", " ") : cline).length() > 81 - ind && isatty(fileno(stderr))) + { + ushort clen(cline.length()); + uchar mlen(80 - ind); + for(struct{ushort a; uchar b;} a{mlen, 0} ; a.a < clen ; a.a += mlen, ++a.b) cline.replace(a.a + a.b * ind, 0, spcs); + } + + return cline; + }()); + } + + return mpts; + }() % "\n " % tr("System language:") % ' ' % QLocale::system().name() % "\n " % tr("Translation:") % ' ' % (SBtr ? lang : QStr('-')) % "\n\n"); + + return txt; +} + +QStr sb::fdbg(cQStr &path1, cQStr &path2) +{ + switch(dbglev) { + default: + return "\n\n"; + case Extdbg: + case Cextdbg: + QStr path, txt; + int cerrno(errno); + + for(uchar a(0) ; a < 2 && ! (a && path2.isEmpty()) ; ++a) + { + txt.append('\n'), path = a ? path2 : path1; + bool cut(false); + + do { + txt.append("\n " % (cut ? path = path.left(rinstr(path, "/") - 1) : path) % "\n "); + struct stat istat; + + if(lstat(bstr(path), &istat)) + txt.append('-'); + else + { + auto perm([&istat] { + QStr prm, rwx("rwxrwxrwx"); + ushort ugo[]{S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH}; + for(uchar b(0) ; b < 9 ; ++b) prm.append((istat.st_mode & ugo[b]) ? rwx.at(b) : '-'); + if(istat.st_mode & S_ISUID) prm.replace(2, 1, (prm.at(2) == '-' ? 'S' : 's')); + if(istat.st_mode & S_ISGID) prm.replace(5, 1, (prm.at(5) == '-' ? 'S' : 's')); + if(istat.st_mode & S_ISVTX) prm.replace(8, 1, (prm.at(8) == '-' ? 'T' : 't')); + return prm; + }); + + switch(istat.st_mode & S_IFMT) { + case S_IFREG: + txt.append("f " % perm() % ' ' % QStr::number(istat.st_nlink) % ' ' % QStr::number(istat.st_uid) % ' ' % QStr::number(istat.st_gid) % ' ' % QStr::number(istat.st_dev) % ' ' % hunit(istat.st_size).replace(' ', nullptr)); + break; + case S_IFDIR: + txt.append("d " % perm() % " - " % QStr::number(istat.st_uid) % ' ' % QStr::number(istat.st_gid) % ' ' % QStr::number(istat.st_dev) % " -"); + break; + case S_IFLNK: + { + QStr lpath(rlink(path, istat.st_size)); + + txt.append("l " % perm() % ' ' % QStr::number(istat.st_nlink) % ' ' % QStr::number(istat.st_uid) % ' ' % QStr::number(istat.st_gid) % ' ' % QStr::number(istat.st_dev) % " -\n " % lpath % "\n " % [&lpath]() -> QStr { + switch(stype(lpath)) { + case Notexist: + return "-"; + case Isfile: + return "f"; + case Isdir: + return "d"; + case Islink: + return "l / " % [&lpath]() -> QChar { + switch(stype(lpath, true)) { + case Notexist: + return '-'; + case Isfile: + return 'f'; + case Isdir: + return 'd'; + case Isblock: + return 'b'; + default: + return '?'; + } + }(); + case Isblock: + return "b"; + default: + return "?"; + } + }()); + + break; + } + case S_IFBLK: + txt.append("b " % perm() % " - " % QStr::number(istat.st_uid) % ' ' % QStr::number(istat.st_gid) % ' ' % QStr::number(istat.st_dev) % ' ' % hunit(devsize(path)).replace(' ', nullptr)); + break; + default: + txt.append('?'); + } + } + + if(! cut) cut = true; + } while(path.count('/') > 1); + } + + return (txt.contains("\n ./") ? txt.replace("\n ./", "\n /") : txt) % "\n\n Errno: " % QStr::number(cerrno) % "\n\n"; + } +} + +bool sb::fopen(QFile &file) +{ + return file.open(QIODevice::ReadOnly) ? true : error("\n " % tr("An error occurred while opening the following file:") % "\n\n " % file.fileName() % fdbg(file.fileName()), true); +} + +bool sb::like(cQStr &txt, cQSL &lst, uchar mode) +{ + switch(mode) { + default: + for(cQStr &stxt : lst) + if(stxt.startsWith('*')) + { + if(stxt.endsWith('*')) + { + if(txt.contains(stxt.mid(1, stxt.length() - 2))) return true; + } + else if(txt.endsWith(stxt.mid(1, stxt.length() - 2))) + return true; + } + else if(stxt.endsWith('*')) + { + if(txt.startsWith(stxt.mid(1, stxt.length() - 2))) return true; + } + else if(txt == stxt.mid(1, stxt.length() - 2)) + return true; + + return false; + case All: + for(cQStr &stxt : lst) + if(stxt.startsWith('*')) + { + if(stxt.endsWith('*')) + { + if(! txt.contains(stxt.mid(1, stxt.length() - 2))) return false; + } + else if(! txt.endsWith(stxt.mid(1, stxt.length() - 2))) + return false; + } + else if(stxt.endsWith('*')) + { + if(! txt.startsWith(stxt.mid(1, stxt.length() - 2))) return false; + } + else if(txt != stxt.mid(1, stxt.length() - 2)) + return false; + + return true; + case Mixed: + QSL alst, nlst; + + for(cQStr &stxt : lst) + switch(stxt.at(0).toLatin1()) { + case '+': + alst.append(right(stxt, -1)); + break; + case '-': + nlst.append(right(stxt, -1)); + break; + default: + return false; + } + + return like(txt, alst, All) && like(txt, nlst); + } +} + +QStr sb::rndstr(uchar vlen) +{ + QStr val, chrs("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./"); + val.reserve(vlen), qsrand(QTime::currentTime().msecsSinceStartOfDay()); + uchar clen(vlen == 16 ? 64 : 62), num(255); + + do { + uchar prev(num); + while((num = qrand() % clen) == prev); + val.append(chrs.at(num)); + } while(val.length() < vlen); + + return val; +} + +bool sb::access(cQStr &path, uchar mode) +{ + switch(mode) { + case Read: + return QFileInfo(path).isReadable(); + case Write: + return QFileInfo(path).isWritable(); + case Exec: + return QFileInfo(path).isExecutable(); + default: + return false; + } +} + +QStr sb::fload(cQStr &path, bool ascnt) +{ + QBA ba; + { QFile file(path); + if(! fopen(file)) return nullptr; + ba = file.readAll(); } + if(! ascnt || ba.isEmpty()) return ba; + QSL lst; + lst.reserve(100); + QTS in(&ba, QIODevice::ReadOnly); + while(! in.atEnd()) lst.append(in.readLine()); + QStr str; + str.reserve(ba.size() + 1), ba.clear(); + for(ushort a(lst.count()) ; a ; --a) str.append(lst.at(a - 1) % '\n'); + return str; +} + +QBA sb::fload(cQStr &path) +{ + QFile file(path); + if(! fopen(file)) return nullptr; + return file.readAll(); +} + +bool sb::islnxfs(cQStr &path) +{ + QTemporaryFile file(path % "/.sbdirtestfile_" % rndstr()); + return file.open() && file.setPermissions(QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner | QFile::ReadGroup | QFile::ExeGroup | QFile::ReadOther) && file.permissions() == 30548; +} + +bool sb::cerr(uchar type, cQStr &str1, cQStr &str2) +{ + return error("\n " % [&, type]() -> QStr { + switch(type) { + case Crtdir: + return tr("An error occurred while creating the following directory:"); + case Rmfile: + return tr("An error occurred while removing the following file:"); + default: + return tr("An error occurred while creating the following hard link:") % "\n\n " % str2 % "\n\n " % tr("Reference file:"); + } + }() % "\n\n " % str1 % fdbg(str1, str2), true); +} + +bool sb::crtfile(cQStr &path, cQStr &txt) +{ + auto err([&] { return error("\n " % tr("An error occurred while creating the following file:") % "\n\n " % path % fdbg(path), true); }); + uchar otp(stype(path)); + if(! (like(otp, {Notexist, Isfile}) && isdir(left(path, rinstr(path, "/") - 1)))) return err(); + QFile file(path); + if(! file.open(QFile::WriteOnly | QFile::Truncate) || file.write(txt.toUtf8()) == -1) return err(); + file.flush(); + return otp == Isfile || file.setPermissions(QFile::ReadOwner | QFile::WriteOwner | QFile::ReadGroup | QFile::ReadOther) ? true : err(); +} + +bool sb::rename(cQStr &opath, cQStr &npath) +{ + return QFile::rename(opath, npath) ? true : error("\n " % tr("An error occurred while renaming the following item:") % "\n\n " % opath % "\n\n " % tr("New path:") % "\n\n " % npath % fdbg(opath, npath), true); +} + +template inline bool sb::crthlnk(const T1 &srclnk, const T2 &newlnk) +{ + return link(bstr(srclnk), bstr(newlnk)) ? cerr(Crthlnk, srclnk, newlnk) : true; +} + +bool sb::lock(uchar type) +{ + return (sblock[type] = open([type] { + switch(type) { + case Sblock: + return isdir("/run") ? "/run/systemback.lock" : "/var/run/systemback.lock"; + case Dpkglock: + return "/var/lib/dpkg/lock"; + case Aptlock: + return "/var/lib/apt/lists/lock"; + default: + return isdir("/run") ? "/run/sbscheduler.lock" : "/var/run/sbscheduler.lock"; + } + }(), O_RDWR | O_CREAT, 0644)) > -1 && ! lockf(sblock[type], F_TLOCK, 0); +} + +void sb::unlock(uchar type) +{ + close(sblock[type]); +} + +void sb::delay(ushort msec) +{ + QTime time; + time.start(); + do msleep(10), qApp->processEvents(); + while(ushort(time.elapsed()) < msec); +} + +void sb::thrdelay() +{ + while(SBThrd.isRunning()) msleep(10), qApp->processEvents(); +} + +bool sb::cfgwrite(cQStr &file) +{ + QStr cdir(file.startsWith("/.") ? isdir("/.sbsystemcopy" % sdir[0]) ? sdir[0] : "/home" : nullptr); + + return crtfile(file, "# Restore points settings\n# storage_directory=\n# storage_dir_is_mount_point=[true/false]\n# max_temporary_restore_points=[3-10]\n# use_incremental_backup_method=[true/false]\n\n" + "storage_directory=" % (cdir.isEmpty() ? sdir[0] : cdir) % + "\nstorage_dir_is_mount_point=" % (cdir.isEmpty() ? ismpnt ? "true" : "false" : issmfs("/.sbsystemcopy" % cdir, cdir.count('/') == 1 ? "/.sbsystemcopy" : QStr("/.sbsystemcopy" % left(cdir, rinstr(cdir, "/") - 1))) ? "false" : "true") % + "\nmax_temporary_restore_points=" % QStr::number(pnumber) % + "\nuse_incremental_backup_method=" % (incrmtl ? "true" : "false") % + "\n\n\n# Live system settings\n# working_directory=\n# use_xz_compressor=[true/false]\n# auto_iso_images=[true/false]\n\n" + "working_directory=" % sdir[2] % + "\nuse_xz_compressor=" % (xzcmpr ? "true" : "false") % + "\nauto_iso_images=" % (autoiso ? "true" : "false") % + "\n\n\n# Scheduler settigns\n# enabled=[true/false]\n# schedule=[0-7]:[0-23]:[0-59]:[10-99]\n# silent=[true/false]\n# window_position=[topleft/topright/center/bottomleft/bottomright]\n# disable_starting_for_users=[false/everyone/:]\n\n" + "enabled=" % (cdir.isEmpty() && schdle[0] ? "true" : "false") % + "\nschedule=" % QStr::number(schdle[1]) % ':' % QStr::number(schdle[2]) % ':' % QStr::number(schdle[3]) % ':' % QStr::number(schdle[4]) % + "\nsilent=" % (schdle[5] ? "true" : "false") % + "\nwindow_position=" % schdlr[0] % + "\ndisable_starting_for_users=" % schdlr[1] % + "\n\n\n# User interface settings\n# language=[auto/]\n\n" + "language=" % lang % + "\n\n\n# Graphical user interface settings\n# style=[auto/]\n# window_scaling_factor=[auto/1/1.5/2]\n# always_on_top=[true/false]\n\n" + "style=" % style % + "\nwindow_scaling_factor=" % wsclng % + "\nalways_on_top=" % (waot ? "true" : "false") % + "\n\n\n# Host system settings\n# disable_cache_emptying=[true/false]\n\n" % + "disable_cache_emptying=" % (ecache ? "false" : "true") % '\n'); +} + +void sb::cfgread() +{ + if(! isdir("/etc/systemback")) + crtdir("/etc/systemback"); + else if(isfile(cfgfile)) + { + QFile file(cfgfile); + + if(fopen(file)) + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()), cval(right(cline, -instr(cline, "="))); + + if(! (cval.isEmpty() || cval.startsWith('#'))) + { + if(cline.startsWith("storage_directory=")) + sdir[0] = cval; + else if(cline.startsWith("storage_dir_is_mount_point=")) + { + if(cval == "true") + ismpnt = True; + else if(cval == "false") + ismpnt = False; + } + else if(cline.startsWith("max_temporary_restore_points=")) + pnumber = cval.toUShort(); + else if(cline.startsWith("use_incremental_backup_method=")) + { + if(cval == "true") + incrmtl = True; + else if(cval == "false") + incrmtl = False; + } + else if(cline.startsWith("working_directory=")) + sdir[2] = cval; + else if(cline.startsWith("use_xz_compressor=")) + { + if(cval == "true") + xzcmpr = True; + else if(cval == "false") + xzcmpr = False; + } + else if(cline.startsWith("auto_iso_images=")) + { + if(cval == "true") + autoiso = True; + else if(cval == "false") + autoiso = False; + } + else if(cline.startsWith("enabled=")) + { + if(cval == "true") + schdle[0] = True; + else if(cval == "false") + schdle[0] = False; + } + else if(cline.startsWith("schedule=")) + { + QSL vals(cval.split(':')); + + if(vals.count() == 4) + for(uchar a(0) ; a < 4 ; ++a) + { + bool ok; + uchar num(vals.at(a).toUShort(&ok)); + if(ok) schdle[a + 1] = num; + } + } + else if(cline.startsWith("silent=")) + { + if(cval == "true") + schdle[5] = True; + else if(cval == "false") + schdle[5] = False; + } + else if(cline.startsWith("window_position=")) + schdlr[0] = cval; + else if(cline.startsWith("disable_starting_for_users=")) + schdlr[1] = cval; + else if(cline.startsWith("language=")) + lang = cval; + else if(cline.startsWith("style=")) + style = cval; + else if(cline.startsWith("window_scaling_factor=")) + wsclng = cval; + else if(cline.startsWith("always_on_top=")) + { + if(cval == "true") + waot = True; + else if(cval == "false") + waot = False; + } + else if(cline.startsWith("disable_cache_emptying=")) + { + if(cval == "true") + ecache = False; + else if(cval == "false") + ecache = True; + } + } + } + } + + bool cfgupdt(false); + + if(sdir[0].isEmpty()) + { + sdir[0] = "/home", cfgupdt = true; + if(ismpnt != Empty) ismpnt = Empty; + if(! isdir("/home/Systemback")) crtdir("/home/Systemback"); + if(! isfile("/home/Systemback/.sbschedule")) crtfile("/home/Systemback/.sbschedule"); + } + else + { + if(! isdir(sdir[0] % "/Systemback") && isdir(sdir[0]) && ! (ismpnt == True && issmfs(sdir[0], sdir[0].count('/') == 1 ? "/" : left(sdir[0], rinstr(sdir[0], "/") - 1))) && crtdir(sdir[0] % "/Systemback")) crtfile(sdir[0] % "/Systemback/.sbschedule"); + QStr cpath(QDir::cleanPath(sdir[0])); + if(sdir[0] != cpath) sdir[0] = cpath, cfgupdt = true; + } + + if(sdir[2].isEmpty()) + { + sdir[2] = "/home"; + if(! cfgupdt) cfgupdt = true; + } + else + { + QStr cpath(QDir::cleanPath(sdir[2])); + + if(sdir[2] != cpath) + { + sdir[2] = cpath; + if(! cfgupdt) cfgupdt = true; + } + } + + if(ismpnt == Empty) + { + QStr pdir(sdir[0].count('/') == 1 ? "/" : left(sdir[0], rinstr(sdir[0], "/") - 1)); + ismpnt = sdir[0] != pdir && isdir(pdir) && ! issmfs(sdir[0], pdir); + if(! cfgupdt) cfgupdt = true; + } + + if(incrmtl == Empty) + { + incrmtl = True; + if(! cfgupdt) cfgupdt = true; + } + + if(xzcmpr == Empty) + { + xzcmpr = False; + if(! cfgupdt) cfgupdt = true; + } + + if(autoiso == Empty) + { + autoiso = False; + if(! cfgupdt) cfgupdt = true; + } + + if(schdle[0] == Empty) + { + schdle[0] = False; + if(! cfgupdt) cfgupdt = true; + } + + if(schdle[1] > 7 || schdle[2] > 23 || schdle[3] > 59 || schdle[4] < 10 || schdle[4] > 99) + { + schdle[1] = 1, schdle[2] = schdle[3] = 0, schdle[4] = 10; + if(! cfgupdt) cfgupdt = true; + } + else if(schdle[3] < 30 && ! (schdle[1] || schdle[2])) + { + schdle[3] = 30; + if(! cfgupdt) cfgupdt = true; + } + + if(schdle[5] == Empty) + { + schdle[5] = False; + if(! cfgupdt) cfgupdt = true; + } + + if(! like(schdlr[0], {"_topleft_", "_topright_", "_center_", "_bottomleft_", "_bottomright_"})) + { + schdlr[0] = "topright"; + if(! cfgupdt) cfgupdt = true; + } + + if(! like(schdlr[1], {"_false_", "_everyone_", "_:*"})) + { + schdlr[1] = "false"; + if(! cfgupdt) cfgupdt = true; + } + + if(pnumber < 3 || pnumber > 10) + { + pnumber = 5; + if(! cfgupdt) cfgupdt = true; + } + + if(lang.isEmpty() || ! (lang == "auto" || (lang.length() == 5 && lang.at(2) == '_' && lang.at(0).isLower() && lang.at(1).isLower() && lang.at(3).isUpper() && lang.at(4).isUpper()))) + { + lang = "auto"; + if(! cfgupdt) cfgupdt = true; + } + + if(style.isEmpty() || style.contains(' ')) + { + style = "auto"; + if(! cfgupdt) cfgupdt = true; + } + + if(! like(wsclng, {"_auto_", "_1_", "_1.5_", "_2_"})) + { + wsclng = "auto"; + if(! cfgupdt) cfgupdt = true; + } + + if(waot == Empty) + { + waot = False; + if(! cfgupdt) cfgupdt = true; + } + + if(ecache == Empty) + { + ecache = True; + if(! cfgupdt) cfgupdt = true; + } + + sdir[1] = sdir[0] % "/Systemback"; + if(cfgupdt) cfgwrite(); + + for(cQStr &file : {excfile, incfile}) + if(! isfile(file)) crtfile(file); +} + +bool sb::execsrch(cQStr &fname, cQStr &ppath) +{ + for(cQStr &path : qgetenv("PATH").split(':')) + { + QStr fpath(ppath % path % '/' % fname); + if(isfile(fpath)) return access(fpath, Exec); + } + + return false; +} + +uchar sb::exec(cQStr &cmd, uchar flag, cQStr &envv) +{ + auto exit([&cmd](uchar rv) -> uchar { + if(! ExecKill && rv && ! like(cmd, {"_apt*", "_dpkg*", "_sbscheduler*"})) error("\n " % tr("An error occurred while executing the following command:") % "\n\n " % cmd % "\n\n " % tr("Exit code:") % ' ' % QStr::number(rv) % "\n\n", true); + return rv; + }); + + if(ExecKill) ExecKill = false; + bool silent, bckgrnd, wait; + uchar rprcnt; + + if(flag == Noflag) + silent = bckgrnd = wait = false, rprcnt = 0; + else + { + silent = flag != (flag & ~Silent), wait = flag != (flag & ~Wait); + if((rprcnt = (bckgrnd = flag != (flag & ~Bckgrnd)) || wait || flag == (flag & ~Prgrss) ? 0 : cmd.startsWith("mksquashfs") ? 1 : cmd.startsWith("genisoimage") ? 2 : cmd.startsWith("tar -cf") ? 3 : cmd.startsWith("tar -xf") ? 4 : 0)) Progress = 0; + } + + QProcess proc; + + if(silent) + proc.setStandardOutputFile("/dev/null"), proc.setStandardErrorFile("/dev/null"); + else if(! rprcnt) + proc.setProcessChannelMode(QProcess::ForwardedChannels), proc.setInputChannelMode(QProcess::ForwardedInputChannel); + + if(! envv.isEmpty()) + { + QProcessEnvironment env(QProcessEnvironment::systemEnvironment()); + env.insert(left(envv, instr(envv, "=") - 1), right(envv, envv.length() - instr(envv, "="))), proc.setProcessEnvironment(env); + } + + if(bckgrnd) return proc.startDetached(cmd) ? 0 : exit(255); + proc.start(cmd, QProcess::ReadOnly); + while(proc.state() == QProcess::Starting) msleep(10), qApp->processEvents(); + if(proc.error() == QProcess::FailedToStart) return exit(255); + + if(wait) + proc.waitForFinished(-1); + else + { + if(rprcnt == 1) setpriority(0, proc.pid(), 10); + ullong inum(0); + uchar cperc; + + while(proc.state() == QProcess::Running) + { + msleep(10), qApp->processEvents(); + if(ExecKill) proc.kill(); + + switch(rprcnt) { + case 1: + if(Progress < (cperc = ((inum += proc.readAllStandardOutput().count('\n')) * 100 + 50) / ThrdLng[0])) Progress = cperc; + QTS(stderr) << proc.readAllStandardError(); + + if(dfree(sdir[2]) < 104857600) + { + proc.kill(); + return exit(255); + } + + break; + case 2: + { + QStr pout(proc.readAllStandardError()); + if(Progress < (cperc = mid(pout, rinstr(pout, "%") - 5, 2).toUShort())) Progress = cperc; + break; + } + case 3: + if(! ThrdLng[0]) + { + QBA itms; + QUCL itmst; + itms.reserve(10000), itmst.reserve(500); + ushort lcnt(0); + rodir(itms, itmst, sdir[2] % "/.sblivesystemcreate"); + + if(! itmst.isEmpty()) + { + QTS in(&itms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()); + if(itmst.at(lcnt++) == Isfile) ThrdLng[0] += fsize(sdir[2] % "/.sblivesystemcreate/" % item); + } + } + } + else if(isfile(ThrdStr[0]) && Progress < (cperc = (fsize(ThrdStr[0]) * 100 + 50) / ThrdLng[0])) + Progress = cperc; + + break; + case 4: + QBA itms; + QUCL itmst; + itms.reserve(10000), itmst.reserve(500); + ushort lcnt(0); + rodir(itms, itmst, ThrdStr[0]); + + if(! itmst.isEmpty()) + { + QTS in(&itms, QIODevice::ReadOnly); + ullong size(0); + + while(! in.atEnd()) + { + QStr item(in.readLine()); + if(itmst.at(lcnt++) == Isfile) size += fsize(ThrdStr[0] % '/' % item); + } + + if(Progress < (cperc = (size * 100 + 50) / ThrdLng[0])) Progress = cperc; + } + } + } + } + + return exit(proc.exitStatus() == QProcess::CrashExit ? 255 : proc.exitCode()); +} + +uchar sb::exec(cQSL &cmds) +{ + uchar rv; + + for(cQStr &cmd : cmds) + if((rv = exec(cmd))) return rv; + + return 0; +} + +bool sb::mcheck(cQStr &item, cQStr &mnts) +{ + cQStr &itm(item.contains(' ') ? bstr(item).rplc(" ", "\\040") : item); + + if(! itm.startsWith("/dev/")) + return itm.endsWith('/') && itm.length() > 1 ? like(mnts, {"* " % left(itm, -1) % " *", "* " % itm % "*"}) : mnts.contains(' ' % itm % ' '); + else if(QStr('\n' % mnts).contains('\n' % itm % (itm.length() > (item.contains("mmc") ? 12 : 8) ? " " : nullptr))) + return true; + else + { + blkid_probe pr(blkid_new_probe_from_filename(bstr(itm))); + cchar *val(nullptr); + blkid_do_probe(pr), blkid_probe_lookup_value(pr, "UUID", &val, nullptr); + QStr uuid(val); + blkid_free_probe(pr); + return ! uuid.isEmpty() && QStr('\n' % mnts).contains("\n/dev/disk/by-uuid/" % uuid % ' '); + } +} + +QStr sb::gdetect(cQStr rdir) +{ + QStr mnts(fload("/proc/self/mounts", true)); + QTS in(&mnts, QIODevice::ReadOnly); + QSL incl[]{{"* " % rdir % " *", "* " % rdir % (rdir.endsWith('/') ? nullptr : "/") % "boot *"}, {"_/dev/sd*", "_/dev/hd*", "_/dev/vd*"}}; + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + + if(like(cline, incl[0])) + { + if(like(cline, incl[1])) + return left(cline, 8); + else if(cline.startsWith("/dev/mmcblk")) + return left(cline, 12); + else if(cline.startsWith("/dev/disk/by-uuid")) + { + QStr uid(right(left(cline, instr(cline, " ") - 1), -18)); + + if(islink("/dev/disk/by-uuid/" % uid)) + { + QStr dev(QFile("/dev/disk/by-uuid/" % uid).readLink()); + return left(dev, dev.contains("mmc") ? 12 : 8); + } + } + + break; + } + } + + error("\n " % tr("Failed to detect the device for installing the GRUB!") % "\n\n", true); + return nullptr; +} + +void sb::pupgrade() +{ + bool rerun; + + do { + rerun = false; + + for(uchar a(0) ; a < 15 ; ++a) + if(! pnames[a].isEmpty()) pnames[a].clear(); + + if(isdir(sdir[1]) && access(sdir[1], Write)) + { + for(cQStr &item : QDir(sdir[1]).entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + if(! item.contains(' ')) + { + QStr pre(left(item, 4)); + + if(pre.at(1).isDigit() && pre.at(2).isDigit() && pre.at(3) == '_') + { + if(pre.at(0) == 'S') + { + if(pre.at(1) == '0' || mid(pre, 2, 2) == "10") pnames[mid(pre, 2, 2).toUShort() - 1] = right(item, -4); + } + else if(pre.at(0) == 'H' && pre.at(1) == '0' && like(pre.at(2), {"_1_", "_2_", "_3_", "_4_", "_5_"})) + pnames[9 + mid(pre, 3, 1).toUShort()] = right(item, -4); + } + } + + for(uchar a(14) ; a ; --a) + if(! (a == 10 || pnames[a].isEmpty()) && pnames[a - 1].isEmpty()) + { + rename(sdir[1] % (a > 10 ? QStr("/H0" % QStr::number(a - 9)) : (a < 9 ? "/S0" : "/S") % QStr::number(a + 1)) % '_' % pnames[a], sdir[1] % (a > 10 ? ("/H0" % QStr::number(a - 10)) : "/S0" % QStr::number(a)) % '_' % pnames[a]); + if(! rerun) rerun = true; + } + } + } while(rerun); +} + +void sb::supgrade() +{ + exec("apt-get update"); + + QStr fyes([] { + QProcess proc; + proc.start("apt -v", QProcess::ReadOnly), proc.waitForFinished(-1); + QStr sout(proc.readAllStandardOutput()); + return sout.length() < 7 || mid(sout, 5, 3).replace('.', nullptr).toUShort() < 12 ? "--force-yes" : "--allow-downgrades --allow-change-held-packages"; + }()); + + forever + { + if(! exec({"apt-get install -fym " % fyes, "dpkg --configure -a", "apt-get dist-upgrade --no-install-recommends -ym " % fyes, "apt-get autoremove --purge -y"})) + { + QStr rklist; + + { + QSL dlst(QDir("/boot").entryList(QDir::Files, QDir::Reversed)); + + for(cQStr &item : dlst) + if(item.startsWith("vmlinuz-")) + { + QStr vmlinuz(right(item, -8)), kernel(left(vmlinuz, instr(vmlinuz, "-") - 1)), kver(mid(vmlinuz, kernel.length() + 2, instr(vmlinuz, "-", kernel.length() + 2) - kernel.length() - 2)); + + if(isnum(kver) && vmlinuz.startsWith(kernel % '-' % kver % '-') && ! rklist.contains(kernel % '-' % kver % "-*")) + { + for(ushort a(1) ; a < 101 ; ++a) + { + QStr subk(kernel % '-' % QStr::number(kver.toUShort() - a)); + + for(cQStr &ritem : dlst) + if(ritem.startsWith("vmlinuz-" % subk % '-') && ! rklist.contains(' ' % subk % "-*")) rklist.append(' ' % subk % "-*"); + } + } + } + } + + uchar cproc(rklist.isEmpty() ? 0 : exec("apt-get autoremove --purge " % rklist)); + + if(like(cproc, {0, 1})) + { + { + QProcess proc; + proc.start("dpkg -l", QProcess::ReadOnly), proc.waitForFinished(-1); + QBA sout(proc.readAllStandardOutput()); + QStr iplist; + QTS in(&sout, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + if(cline.startsWith("rc")) iplist.append(' ' % mid(cline, 5, instr(cline, " ", 5) - 5)); + } + + if(! iplist.isEmpty()) exec("dpkg --purge " % iplist); + } + + exec("apt-get clean"); + + { + QSL dlst(QDir("/var/cache/apt").entryList(QDir::Files)); + + for(uchar a(0) ; a < dlst.count() ; ++a) + { + cQStr &item(dlst.at(a)); + if(item.contains(".bin.")) rmfile("/var/cache/apt/" % item); + } + } + + for(cQStr &item : QDir("/lib/modules").entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + if(! exist("/boot/vmlinuz-" % item)) QDir("/lib/modules/" % item).removeRecursively(); + + break; + } + } + else + exec("dpkg --configure -a"); + + exec({"tput reset", "tput civis"}); + + for(uchar a(3) ; a ; --a) error("\n " % tr("An error occurred while upgrading the system!") % '\n'), + print("\n " % tr("Restart upgrade ...") % ' ' % QStr::number(a)), + sleep(1), exec("tput cup 0 0"); + + exec("tput reset"); + } +} + +ullong sb::devsize(cQStr &dev) +{ + ullong bsize; + int odev; + bool err; + + if(! (err = (odev = open(bstr(dev), O_RDONLY)) == -1)) + { + if(ioctl(odev, BLKGETSIZE64, &bsize) == -1) err = true; + close(odev); + } + + return err ? 0 : bsize; +} + +bool sb::copy(cQStr &srcfile, cQStr &newfile) +{ + if(! isfile(srcfile)) return error("\n " % tr("This file could not be copied because it does not exist:") % "\n\n " % srcfile % fdbg(srcfile), true); + ThrdType = Copy, + ThrdStr[0] = srcfile, + ThrdStr[1] = newfile, + SBThrd.start(), thrdelay(); + return ThrdRslt; +} + +QStr sb::ruuid(cQStr &part) +{ + ThrdType = Ruuid, + ThrdStr[0] = part, + SBThrd.start(), thrdelay(); + if(ThrdStr[1].isEmpty()) error("\n " % tr("The following partition has no UUID:") % "\n\n " % part % "\n\n", true); + return ThrdStr[1]; +} + +bool sb::srestore(uchar mthd, cQStr &usr, cQStr &srcdir, cQStr &trgt, bool sfstab) +{ + ThrdType = Srestore, + ThrdChr = mthd, + ThrdStr[0] = usr, + ThrdStr[1] = srcdir, + ThrdStr[2] = trgt, + ThrdBool = sfstab, + SBThrd.start(), thrdelay(); + return ThrdRslt; +} + +bool sb::mkpart(cQStr &dev, ullong start, ullong len, uchar type) +{ + auto err([&dev] { return error("\n " % tr("An error occurred while creating a new partition on the following device:") % "\n\n " % dev % fdbg(dev), true); }); + if(dev.length() > (dev.contains("mmc") ? 12 : 8) || stype(dev) != Isblock) return err(); + ThrdType = Mkpart, + ThrdStr[0] = dev, + ThrdLng[0] = start, + ThrdLng[1] = len, + ThrdChr = type, + SBThrd.start(), thrdelay(); + return ThrdRslt ? true : err(); +} + +bool sb::mount(cQStr &dev, cQStr &mpoint, cQStr &moptns) +{ + auto err([&dev] { return error("\n " % tr("An error occurred while mounting the following partition/image:") % "\n\n " % dev % fdbg(dev), true); }); +#ifdef C_MNT_LIB + if(moptns == "loop") return exec("mount -o loop " % dev % ' ' % mpoint) ? err() : true; +#endif + ThrdType = Mount, + ThrdStr[0] = dev, + ThrdStr[1] = mpoint, + ThrdStr[2] = moptns, + SBThrd.start(), thrdelay(); + return ThrdRslt ? true : err(); +} + +bool sb::scopy(uchar mthd, cQStr &usr, cQStr &srcdir) +{ + ThrdType = Scopy, + ThrdChr = mthd, + ThrdStr[0] = usr, + ThrdStr[1] = srcdir, + SBThrd.start(), thrdelay(); + return ThrdRslt; +} + +bool sb::crtrpoint(cQStr &pname) +{ + ThrdType = Crtrpoint, + ThrdStr[0] = "/.S00_" % pname, + SBThrd.start(), thrdelay(); + return ThrdRslt; +} + +bool sb::setpflag(cQStr &part, cQStr &flags) +{ + auto err([&] { return error("\n " % tr("An error occurred while setting one or more flags on the following partition:") % "\n\n " % part % "\n\n " % tr("Flag(s):") % ' ' % flags % fdbg(part), true); }); + { bool ismmc(part.contains("mmc")); + if(part.length() < (ismmc ? 14 : 9) || stype(part) != Isblock || stype(left(part, (ismmc ? 12 : 8))) != Isblock) return err(); } + ThrdType = Setpflag, + ThrdStr[0] = part, + ThrdStr[1] = flags, + SBThrd.start(), thrdelay(); + return ThrdRslt ? true : err(); +} + +bool sb::lvprpr(bool iudata) +{ + ThrdType = Lvprpr, + ThrdBool = iudata, + SBThrd.start(), thrdelay(); + return ThrdRslt; +} + +bool sb::mkptable(cQStr &dev, cQStr &type) +{ + auto err([&dev] { return error("\n " % tr("An error occurred while creating the partition table on the following device:") % "\n\n " % dev % fdbg(dev), true); }); + if(dev.length() > (dev.contains("mmc") ? 12 : 8) || stype(dev) != Isblock) return err(); + ThrdType = Mkptable, + ThrdStr[0] = dev, + ThrdStr[1] = type, + SBThrd.start(), thrdelay(); + return ThrdRslt ? true : err(); +} + +bool sb::remove(cQStr &path) +{ + ThrdType = Remove, + ThrdStr[0] = path, + SBThrd.start(), thrdelay(); + return ThrdRslt; +} + +bool sb::umount(cQStr &dev) +{ + ThrdType = Umount, + ThrdStr[0] = dev, + SBThrd.start(), thrdelay(); + return ThrdRslt ? true : error("\n " % tr("An error occurred while unmounting the following partition/image/mount point:") % "\n\n " % dev % fdbg(dev), true); +} + +void sb::readlvdevs(QSL &strlst) +{ + ThrdType = Readlvdevs, + ThrdSlst = &strlst, + SBThrd.start(), thrdelay(); +} + +void sb::readprttns(QSL &strlst) +{ + ThrdType = Readprttns, + ThrdSlst = &strlst, + SBThrd.start(), thrdelay(); +} + +void sb::fssync() +{ + ThrdType = Sync, + SBThrd.start(), thrdelay(); +} + +void sb::delpart(cQStr &part) +{ + if(stype(part) == Isblock) + { + ThrdType = Delpart, + ThrdStr[0] = part, + SBThrd.start(), thrdelay(); + } +} + +inline QStr sb::rlink(cQStr &path, ushort blen) +{ + char rpath[blen]; + short rlen(readlink(bstr(path), rpath, blen)); + return rlen > 0 ? QStr(rpath).left(rlen) : nullptr; +} + +uchar sb::fcomp(cQStr &file1, cQStr &file2) +{ + struct stat fstat[2]; + + return stat(bstr(file1), &fstat[0]) || stat(bstr(file2), &fstat[1]) ? 0 + : fstat[0].st_size == fstat[1].st_size && fstat[0].st_mtim.tv_sec == fstat[1].st_mtim.tv_sec ? fstat[0].st_mode == fstat[1].st_mode && fstat[0].st_uid == fstat[1].st_uid && fstat[0].st_gid == fstat[1].st_gid ? 2 : 1 : 0; +} + +bool sb::cpertime(cQStr &srcitem, cQStr &newitem, bool skel) +{ + auto err([&] { return error("\n " % tr("An error occurred while cloning the properties of the following item:") % "\n\n " % srcitem % "\n\n " % tr("Target item:") % "\n\n " % newitem % fdbg(srcitem, newitem), true); }); + struct stat istat[2]; + if(stat(bstr(srcitem), &istat[0])) return err(); + bstr nitem(newitem); + if(stat(nitem, &istat[1])) return err(); + + if(skel) + { + struct stat ustat; + if(stat(bstr(left(newitem, instr(newitem, "/", 21) - 1)), &ustat)) return err(); + istat[0].st_uid = ustat.st_uid, istat[0].st_gid = ustat.st_gid; + } + + if(istat[0].st_uid != istat[1].st_uid || istat[0].st_gid != istat[1].st_gid) + { + if(chown(nitem, istat[0].st_uid, istat[0].st_gid) || ((istat[0].st_mode != (istat[0].st_mode & ~(S_ISUID | S_ISGID)) || istat[0].st_mode != istat[1].st_mode) && chmod(nitem, istat[0].st_mode))) return err(); + } + else if(istat[0].st_mode != istat[1].st_mode && chmod(nitem, istat[0].st_mode)) + return err(); + + if(istat[0].st_atim.tv_sec != istat[1].st_atim.tv_sec || istat[0].st_mtim.tv_sec != istat[1].st_mtim.tv_sec) + { + utimbuf sitimes; + sitimes.actime = istat[0].st_atim.tv_sec, sitimes.modtime = istat[0].st_mtim.tv_sec; + if(utime(nitem, &sitimes)) return err(); + } + + return true; +} + +bool sb::cplink(cQStr &srclink, cQStr &newlink) +{ + auto err([&] { return error("\n " % tr("An error occurred while cloning the following symbolic link:") % "\n\n " % srclink % "\n\n " % tr("Target symlink:") % "\n\n " % newlink % fdbg(srclink, newlink), true); }); + struct stat sistat; + if(lstat(bstr(srclink), &sistat) || ! S_ISLNK(sistat.st_mode)) return err(); + QStr path(rlink(srclink, sistat.st_size)); + bstr nlink(newlink); + if(path.isEmpty() || symlink(bstr(path), nlink)) return err(); + timeval sitimes[2]; + sitimes[0].tv_sec = sistat.st_atim.tv_sec, sitimes[1].tv_sec = sistat.st_mtim.tv_sec, sitimes[0].tv_usec = sitimes[1].tv_usec = 0; + return lutimes(nlink, sitimes) ? err() : true; +} + +bool sb::cpfile(cQStr &srcfile, cQStr &newfile, bool skel) +{ + auto err([&] { return error("\n " % tr("An error occurred while cloning the following file:") % "\n\n " % srcfile % "\n\n " % tr("Target file:") % "\n\n " % newfile % fdbg(srcfile, newfile), true); }); + int src, dst; + struct stat fstat; + { bstr sfile(srcfile); + if(stat(sfile, &fstat) || (src = open(sfile, O_RDONLY | O_NOATIME)) == -1) return err(); } + bstr nfile(newfile); + bool herr; + + if(! (herr = (dst = creat(nfile, fstat.st_mode)) == -1)) + { + if(fstat.st_size) + { + llong size(0); + + do { + llong csize(size) +#ifdef __i386__ + , rsize(fstat.st_size - size) +#endif + ; + if((size += sendfile(dst, src, nullptr, +#ifdef __i386__ + rsize < 2147483648 ? rsize : 2147483647 +#else + fstat.st_size - size +#endif + )) <= csize) herr = true; + } while(! herr && size < fstat.st_size); + } + + close(dst); + } + + close(src); + if(herr) return err(); + + if(skel) + { + struct stat ustat; + if(stat(bstr(left(newfile, instr(newfile, "/", 21) - 1)), &ustat)) return err(); + fstat.st_uid = ustat.st_uid, fstat.st_gid = ustat.st_gid; + } + + if(fstat.st_uid + fstat.st_gid && (chown(nfile, fstat.st_uid, fstat.st_gid) || (fstat.st_mode != (fstat.st_mode & ~(S_ISUID | S_ISGID)) && chmod(nfile, fstat.st_mode)))) return err(); + utimbuf sftimes; + sftimes.actime = fstat.st_atim.tv_sec, sftimes.modtime = fstat.st_mtim.tv_sec; + return utime(nfile, &sftimes) ? err() : true; +} + +bool sb::cpdir(cQStr &srcdir, cQStr &newdir) +{ + auto err([&] { return error("\n " % tr("An error occurred while cloning the following directory:") % "\n\n " % srcdir % "\n\n " % tr("Target directory:") % "\n\n " % newdir % fdbg(srcdir, newdir), true); }); + struct stat dstat; + if(stat(bstr(srcdir), &dstat) || ! S_ISDIR(dstat.st_mode)) return err(); + bstr ndir(newdir); + if(mkdir(ndir, dstat.st_mode) || (dstat.st_uid + dstat.st_gid && (chown(ndir, dstat.st_uid, dstat.st_gid) || (dstat.st_mode != (dstat.st_mode & ~(S_ISUID | S_ISGID)) && chmod(ndir, dstat.st_mode))))) return err(); + utimbuf sdtimes; + sdtimes.actime = dstat.st_atim.tv_sec, sdtimes.modtime = dstat.st_mtim.tv_sec; + return utime(ndir, &sdtimes) ? err() : true; +} + +void sb::edetect(QSL &elst, bool spath) +{ + QSL mpts; + + { + QBA mnts(fload("./proc/self/mounts")); + QTS in(&mnts, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + if(cline.contains(" /var/lib/")) mpts.append(cline.split(' ').at(1) % '/'); + } + } + + if(! mpts.isEmpty()) + { + if(isfile("./etc/fstab")) + { + QFile file("./etc/fstab"); + + if(fopen(file)) + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + if(! cline.startsWith('#')) + { + cline.replace('\t', ' '); + + for(uchar a(0) ; a < mpts.count() ; ++a) + if(cline.contains(' ' % left(mpts.at(a), -1) % ' ')) + { + if(mpts.count() == 1) return; + mpts.removeAt(a); + break; + } + } + } + } + + if(spath) + for(cQStr &mpt : mpts) elst.append(right(mpt, -5)); + else + elst.append(mpts); + } +} + +bool sb::exclcheck(cQSL &elist, cQStr &item) +{ + for(cQStr &excl : elist) + if(excl.endsWith('/')) + { + if(item.startsWith(excl)) return true; + } + else if(excl.endsWith('*')) + { + if(item.startsWith(left(excl, -1))) return true; + } + else if(like(item, {'_' % excl % '_', '_' % excl % "/*"})) + return true; + + return false; +} + +bool sb::inclcheck(cQSL &ilist, cQStr &item) +{ + for(cQStr &ixcl : ilist) + if(ixcl.length() >= item.length()) + { + if(like(ixcl, {'_' % item % '_', '_' % item % "/*"})) return true; + } + else if(item.startsWith(ixcl % '/')) + return true; + + return false; +} + +bool sb::lcomp(cQStr &link1, cQStr &link2) +{ + struct stat istat[2]; + if(lstat(bstr(link1), &istat[0]) || lstat(bstr(link2), &istat[1]) || ! (S_ISLNK(istat[0].st_mode) && S_ISLNK(istat[1].st_mode)) || istat[0].st_mtim.tv_sec != istat[1].st_mtim.tv_sec) return false; + QStr lnk(rlink(link1, istat[0].st_size)); + return ! lnk.isEmpty() && lnk == rlink(link2, istat[1].st_size); +} + +bool sb::rodir(QBA &ba, QUCL &ucl, cQStr &path, uchar hidden, cQSL &ilist, uchar oplen) +{ + DIR *dir(opendir(bstr(path))); + + if(dir) + { + dirent *ent; + QStr ppath(ba.isEmpty() ? nullptr : QStr(right(path, -(oplen == 1 ? 1 : oplen + 1)) % '/')); + QSL dd{"_._", "_.._"}; + + while(! ThrdKill && (ent = readdir(dir))) + { + QStr iname(ent->d_name), npath(ppath % iname); + + if(! like(iname, dd) && [&, hidden] { + switch(hidden) { + case False: + return true; + case True: + return like(iname, {"_.*", "_snap_"}) || (! ilist.isEmpty() && inclcheck(ilist, iname)); + default: + return like(npath, {"_.*", "_snap/*"}) || inclcheck(ilist, npath); + } + }()) + { + uchar type([&]() -> uchar { + switch(ent->d_type) { + case DT_LNK: + return Islink; + case DT_DIR: + return Isdir; + case DT_REG: + return Isfile; + case DT_UNKNOWN: + return stype(path % '/' % iname); + default: + return Unknown; + } + }()); + + switch(type) { + case Islink: + case Isfile: + ucl.append(type), ba.append(npath % '\n'); + break; + case Isdir: + rodir(ba.append(npath % '\n'), ucl << Isdir, path % '/' % iname, hidden == True ? ilist.isEmpty() ? uchar(False) : uchar(Include) : hidden, ilist, (oplen ? oplen : path.length())); + } + } + } + + closedir(dir); + if(! (ThrdKill || oplen)) ba.squeeze(); + } + + return ! ThrdKill; +} + +bool sb::rodir(cQStr &path, QBA &ba, QUCL &ucl, ullong id, uchar oplen) +{ + DIR *dir(opendir(bstr(path))); + + if(dir) + { + if(! oplen) + { + struct stat dstat; + if(! stat(bstr(path), &dstat)) id = dstat.st_dev; + } + + dirent *ent; + QStr ppath(ba.isEmpty() ? nullptr : QStr(right(path, -(oplen == 1 ? 1 : oplen + 1)) % '/')); + QSL dd{"_._", "_.._"}; + + while(! ThrdKill && (ent = readdir(dir))) + { + QStr iname(ent->d_name), npath(ppath % iname); + + if(! like(iname, dd)) + { + uchar type([&]() -> uchar { + switch(ent->d_type) { + case DT_LNK: + return Islink; + case DT_DIR: + return Isdir; + case DT_REG: + return Isfile; + case DT_UNKNOWN: + return stype(path % '/' % iname); + default: + return Unknown; + } + }()); + + switch(type) { + case Islink: + case Isfile: + ucl.append(type), ba.append(npath % '\n'); + break; + case Isdir: + QStr fpath(path % '/' % iname); + struct stat dstat; + + if(! stat(bstr(fpath), &dstat) && dstat.st_dev == id) + rodir(fpath, ba.append(npath % '\n'), ucl << Isdir, id, (oplen ? oplen : path.length())); + else + ucl.append(Isdir), ba.append(npath % '\n'); + } + } + } + + closedir(dir); + if(! (ThrdKill || oplen)) ba.squeeze(); + } + + return ! ThrdKill; +} + +bool sb::rodir(QBA &ba, cQStr &path, uchar oplen) +{ + DIR *dir(opendir(bstr(path))); + + if(dir) + { + dirent *ent; + QStr ppath(ba.isEmpty() ? nullptr : QStr(right(path, -(oplen == 1 ? 1 : oplen + 1)) % '/')); + QSL dd{"_._", "_.._"}; + + while(! ThrdKill && (ent = readdir(dir))) + { + QStr iname(ent->d_name); + + if(! like(iname, dd)) + switch([&]() -> uchar { + switch(ent->d_type) { + case DT_LNK: + case DT_REG: + return Isfile; + case DT_DIR: + return Isdir; + case DT_UNKNOWN: + return stype(path % '/' % iname); + default: + return Unknown; + } + }()) { + case Islink: + case Isfile: + ba.append(ppath % iname % '\n'); + break; + case Isdir: + rodir(ba.append(ppath % iname % '\n'), path % '/' % iname, (oplen ? oplen : path.length())); + } + } + + closedir(dir); + if(! (ThrdKill || oplen)) ba.squeeze(); + } + + return ! ThrdKill; +} + +bool sb::rodir(QUCL &ucl, cQStr &path, uchar oplen) +{ + DIR *dir(opendir(bstr(path))); + + if(dir) + { + dirent *ent; + QSL dd{"_._", "_.._"}; + + while(! ThrdKill && (ent = readdir(dir))) + { + QStr iname(ent->d_name); + + if(! like(iname, dd)) + switch([&]() -> uchar { + switch(ent->d_type) { + case DT_LNK: + case DT_REG: + return Isfile; + case DT_DIR: + return Isdir; + case DT_UNKNOWN: + return stype(path % '/' % iname); + default: + return Unknown; + } + }()) { + case Islink: + case Isfile: + ucl.append(0); + break; + case Isdir: + rodir(ucl << 0, path % '/' % iname, (oplen ? oplen : path.length())); + } + } + + closedir(dir); + } + + return ! ThrdKill; +} + +bool sb::odir(QBAL &balst, cQStr &path, uchar hidden, cQSL &ilist, cQStr &ppath) +{ + DIR *dir(opendir(bstr(path))); + + if(dir) + { + balst.reserve(1000); + dirent *ent; + QSL dd{"_._", "_.._"}; + + while(! ThrdKill && (ent = readdir(dir))) + { + QStr iname(ent->d_name); + + if(! like(iname, dd) && [&, hidden] { + switch(hidden) { + case False: + return true; + case True: + return like(iname, {"_.*", "_snap_"}) || (! ilist.isEmpty() && inclcheck(ilist, iname)); + default: + return inclcheck(ilist, ppath % '/' % iname); + } + }()) balst.append(QBA(ent->d_name)); + } + + closedir(dir); + } + + return ! ThrdKill; +} + +bool sb::recrmdir(cbstr &path, bool slimit) +{ + DIR *dir(opendir(path)); + + if(dir) + { + auto size([](cbstr &spath) -> ullong { + struct stat fstat; + if(stat(spath, &fstat)) return 8000001; + return fstat.st_size; + }); + + dirent *ent; + QSL dd{"_._", "_.._"}; + + while(! ThrdKill && (ent = readdir(dir))) + { + QBA iname(ent->d_name); + + if(! like(iname, dd)) + { + QBA fpath(QBA(path) % '/' % iname); + + switch(ent->d_type) { + case DT_UNKNOWN: + switch(stype(fpath)) { + case Isfile: + if(slimit && size(fpath) > 8000000) continue; + default: + rmfile(fpath); + continue; + case Isdir:; + } + case DT_DIR: + if(! recrmdir(fpath, slimit)) + { + closedir(dir); + return false; + } + + break; + case DT_REG: + if(slimit && size(fpath) > 8000000) break; + default: + rmfile(fpath); + } + } + } + + closedir(dir); + } + + return ! ThrdKill && (! rmdir(path) || slimit || (errno == ENOTEMPTY ? false : error("\n " % tr("An error occurred while deleting the following directory:") % "\n\n " % QStr(path) % fdbg(QStr(path)), true))); +} + +void sb::run() +{ + if(ThrdKill) ThrdKill = false; + + auto psalign([](ullong pstart, ushort ssize) -> ullong { + if(pstart <= 1048576 / ssize) return 1048576 / ssize; + ushort rem(pstart % (1048576 / ssize)); + return rem ? pstart + 1048576 / ssize - rem : pstart; + }); + + auto pealign([](ullong end, ushort ssize) -> ullong { + ushort rem(end % (1048576 / ssize)); + return rem ? rem < (1048576 / ssize) - 1 ? end - rem - 1 : end : end - 1; + }); + + switch(ThrdType) { + case Remove: + ThrdRslt = [this] { + switch(stype(ThrdStr[0])) { + case Isdir: + return recrmdir(ThrdStr[0]); + default: + return rmfile(ThrdStr[0]); + } + }(); + + break; + case Copy: + ThrdRslt = cpfile(ThrdStr[0], ThrdStr[1]); + break; + case Sync: + return sync(); + case Mount: + { + libmnt_context *mcxt(mnt_new_context()); + mnt_context_set_source(mcxt, bstr(ThrdStr[0])), + mnt_context_set_target(mcxt, bstr(ThrdStr[1])), + mnt_context_set_options(mcxt, ! ThrdStr[2].isEmpty() ? bstr(ThrdStr[2]).data : isdir(ThrdStr[0]) ? "bind" : "noatime"), + ThrdRslt = ! mnt_context_mount(mcxt); + return mnt_free_context(mcxt); + } + case Umount: + ThrdRslt = umnt(ThrdStr[0]); + return; + case Readprttns: + { + ThrdSlst->reserve(25); + QSL dlst{"_/dev/sd*", "_/dev/hd*", "_/dev/vd*", "_/dev/mmcblk*"}; + + for(cQStr &spath : QDir("/dev").entryList(QDir::System)) + { + QStr path("/dev/" % spath); + + if(like(path.length(), {8, 12}) && like(path, dlst) && devsize(path) > 536870911) + { + PedDevice *dev(ped_device_get(bstr(path))); + PedDisk *dsk(ped_disk_new(dev)); + + uchar type(dsk ? [&dsk] { + QStr name(dsk->type->name); + return name == "gpt" ? GPT : name == "msdos" ? MSDOS : Clear; + }() : Clear); + + ThrdSlst->append(path % '\n' % QStr::number(dev->length * dev->sector_size) % '\n' % QStr::number(type)); + + if(type != Clear) + { + PedPartition *prt(nullptr); + QLIL egeom; + + while((prt = ped_disk_next_partition(dsk, prt))) + if(prt->geom.length >= 1048576 / dev->sector_size) + { + if(prt->num > 0) + { + QStr ppath(path % (path.length() == 12 ? "p" : nullptr) % QStr::number(prt->num)); + + if(stype(ppath) == Isblock) + { + if(prt->type == PED_PARTITION_EXTENDED) + ThrdSlst->append(ppath % '\n' % QStr::number(prt->geom.length * dev->sector_size) % '\n' % QStr::number(Extended) % '\n' % QStr::number(prt->geom.start * dev->sector_size)), + egeom.append({prt->geom.start, prt->geom.end}); + else + { + if(egeom.count() > 2) + { + ullong pstart(psalign(egeom.at(2), dev->sector_size)); + ThrdSlst->append(path % "?\n" % QStr::number((pealign(egeom.at(3), dev->sector_size) - pstart + 1) * dev->sector_size - (prt->type == PED_PARTITION_LOGICAL ? 2097152 : 1048576 - dev->sector_size)) % '\n' % QStr::number(Emptyspace) % '\n' % QStr::number(pstart * dev->sector_size + 1048576)); + for(uchar a(3) ; a > 1 ; --a) egeom.removeAt(a); + } + + blkid_probe pr(blkid_new_probe_from_filename(bstr(ppath))); + blkid_do_probe(pr); + cchar *uuid(nullptr), *fstype("?"), *label(nullptr); + + if(! blkid_probe_lookup_value(pr, "UUID", &uuid, nullptr)) blkid_probe_lookup_value(pr, "TYPE", &fstype, nullptr), + blkid_probe_lookup_value(pr, "LABEL", &label, nullptr); + + ThrdSlst->append(ppath % '\n' % QStr::number(prt->geom.length * dev->sector_size) % '\n' % QStr::number(prt->type == PED_PARTITION_LOGICAL ? Logical : Primary) % '\n' % QStr::number(prt->geom.start * dev->sector_size) % '\n' % fstype % '\n' % label % '\n' % uuid), + blkid_free_probe(pr); + } + } + } + else if(prt->type == PED_PARTITION_FREESPACE) + { + if(egeom.count() > 2) + { + ullong pstart(psalign(egeom.at(2), dev->sector_size)); + ThrdSlst->append(path % "?\n" % QStr::number((pealign(egeom.at(3), dev->sector_size) - pstart + 1) * dev->sector_size - 1048576) % '\n' % QStr::number(Emptyspace) % '\n' % QStr::number(pstart * dev->sector_size + 1048576)), + egeom.clear(); + } + + llong fgeom[]{llong(prt->geom.start < 1048576 / dev->sector_size ? 1048576 / dev->sector_size : psalign(prt->geom.start, dev->sector_size)), llong(prt->next && prt->next->type == PED_PARTITION_METADATA ? type == MSDOS ? prt->next->geom.end : prt->next->geom.end - (34816 / dev->sector_size * 10 + 5) / 10 : pealign(prt->geom.end, dev->sector_size))}; + if(fgeom[1] - fgeom[0] > 1048576 / dev->sector_size - 2) ThrdSlst->append(path % "?\n" % QStr::number((fgeom[1] - fgeom[0] + 1) * dev->sector_size) % '\n' % QStr::number(Freespace) % '\n' % QStr::number(fgeom[0] * dev->sector_size)); + } + else if(! egeom.isEmpty()) + { + if(prt->geom.end <= egeom.at(1)) + switch(egeom.count()) { + case 2: + if(prt->geom.length >= 3145728 / dev->sector_size) egeom.append({(prt->geom.start - egeom.at(0) < 1048576 / dev->sector_size ? egeom.at(0) : prt->geom.start), prt->geom.end + (prt->geom.end == egeom.at(1) ? 1 : 0)}); + break; + default: + egeom.replace(3, prt->geom.end + (prt->geom.end == egeom.at(1) ? 1 : 0)); + } + else + egeom.clear(); + } + } + + if(egeom.count() > 2) + { + ullong pstart(psalign(egeom.at(2), dev->sector_size)); + ThrdSlst->append(path % "?\n" % QStr::number((pealign(egeom.at(3), dev->sector_size) - pstart + 1) * dev->sector_size - 1048576) % '\n' % QStr::number(Emptyspace) % '\n' % QStr::number(pstart * dev->sector_size + 1048576)); + } + } + else if(! dsk) + goto next_1; + + ped_disk_destroy(dsk); + next_1: + ped_device_destroy(dev); + } + } + + break; + } + case Readlvdevs: + { + ThrdSlst->reserve(10); + QBA fstab(fload("/etc/fstab")); + QSL dlst[]{{"_usb-*", "_mmc-*"}, {"_/dev/sd*", "_/dev/mmcblk*"}}; + + for(cQStr &item : QDir("/dev/disk/by-id").entryList(QDir::Files)) + { + if(like(item, dlst[0]) && islink("/dev/disk/by-id/" % item)) + { + QStr path(rlink("/dev/disk/by-id/" % item, 14)); + + if(! path.isEmpty() && like((path = "/dev" % right(path, -5)).length(), {8, 12}) && like(path, dlst[1])) + { + ullong size(devsize(path)); + + if(size > 536870911) + { + if(! fstab.isEmpty()) + { + QSL fchk('_' % path % '*'); + + { + PedDevice *dev(ped_device_get(bstr(path))); + PedDisk *dsk(ped_disk_new(dev)); + + if(dsk) + { + PedPartition *prt(nullptr); + + while((prt = ped_disk_next_partition(dsk, prt))) + if(prt->num > 0 && prt->type != PED_PARTITION_EXTENDED) + { + QStr ppath(path % (path.length() == 12 ? "p" : nullptr) % QStr::number(prt->num)); + + if(stype(ppath) == Isblock) + { + blkid_probe pr(blkid_new_probe_from_filename(bstr(ppath))); + blkid_do_probe(pr); + cchar *uuid(nullptr); + if(! blkid_probe_lookup_value(pr, "UUID", &uuid, nullptr) && uuid) fchk.append("_UUID=" % QStr(uuid) % '*'); + blkid_free_probe(pr); + } + } + + ped_disk_destroy(dsk); + } + + ped_device_destroy(dev); + } + + QTS in(&fstab, QIODevice::ReadOnly); + + while(! in.atEnd()) + if(like(in.readLine().trimmed(), fchk)) goto next_2; + } + + ThrdSlst->append(path % '\n' % mid(item, 5, rinstr(item, "_") - 5).replace('_', ' ') % '\n' % QStr::number(size)); + } + } + } + + next_2:; + } + + return ThrdSlst->sort(); + } + case Ruuid: + { + blkid_probe pr(blkid_new_probe_from_filename(bstr(ThrdStr[0]))); + blkid_do_probe(pr); + cchar *uuid(nullptr); + blkid_probe_lookup_value(pr, "UUID", &uuid, nullptr), + ThrdStr[1] = uuid; + return blkid_free_probe(pr); + } + case Setpflag: + { + PedDevice *dev(ped_device_get(bstr(left(ThrdStr[0], (ThrdStr[0].contains("mmc") ? 12 : 8))))); + PedDisk *dsk(ped_disk_new(dev)); + PedPartition *prt(nullptr); + if(ThrdRslt) ThrdRslt = false; + + while(! ThrdKill && (prt = ped_disk_next_partition(dsk, prt))) + if(QStr(ped_partition_get_path(prt)) == ThrdStr[0]) + { + for(cQStr &flag : ThrdStr[1].split(' ')) + if(! ped_partition_set_flag(prt, ped_partition_flag_get_by_name(bstr(flag)), 1)) goto err; + + if(ped_disk_commit_to_dev(dsk)) ThrdRslt = true; + err: + ped_disk_commit_to_os(dsk); + break; + } + + return ped_disk_destroy(dsk), ped_device_destroy(dev); + } + case Mkptable: + { + PedDevice *dev(ped_device_get(bstr(ThrdStr[0]))); + PedDisk *dsk(ped_disk_new_fresh(dev, ped_disk_type_get(bstr(ThrdStr[1])))); + ThrdRslt = ped_disk_commit_to_dev(dsk); + return ped_disk_commit_to_os(dsk), ped_disk_destroy(dsk), ped_device_destroy(dev); + } + case Mkpart: + { + PedDevice *dev(ped_device_get(bstr(ThrdStr[0]))); + PedDisk *dsk(ped_disk_new(dev)); + PedPartition *prt(nullptr); + if(ThrdRslt) ThrdRslt = false; + + if(ThrdLng[0] && ThrdLng[1]) + { + PedPartition *crtprt(ped_partition_new(dsk, ThrdChr == Primary ? PED_PARTITION_NORMAL : ThrdChr == Extended ? PED_PARTITION_EXTENDED : PED_PARTITION_LOGICAL, ped_file_system_type_get("ext2"), psalign(ThrdLng[0] / dev->sector_size, dev->sector_size), ullong(dev->length - 1048576 / dev->sector_size) >= (ThrdLng[0] + ThrdLng[1]) / dev->sector_size - 1 ? pealign((ThrdLng[0] + ThrdLng[1]) / dev->sector_size - 1, dev->sector_size) : (ThrdLng[0] + ThrdLng[1]) / dev->sector_size - 1)); + if(ped_disk_add_partition(dsk, crtprt, ped_constraint_exact(&crtprt->geom)) && ped_disk_commit_to_dev(dsk)) ThrdRslt = true; + ped_disk_commit_to_os(dsk); + } + else + while(! ThrdKill && (prt = ped_disk_next_partition(dsk, prt))) + if(prt->type == PED_PARTITION_FREESPACE && prt->geom.length >= 1048576 / dev->sector_size) + { + PedPartition *crtprt(ped_partition_new(dsk, PED_PARTITION_NORMAL, ped_file_system_type_get("ext2"), ThrdLng[0] ? psalign(ThrdLng[0] / dev->sector_size, dev->sector_size) : psalign(prt->geom.start, dev->sector_size), ThrdLng[1] ? pealign((ThrdLng[0] + ThrdLng[1]) / dev->sector_size - 1, dev->sector_size) : prt->next && prt->next->type == PED_PARTITION_METADATA ? prt->next->geom.end : pealign(prt->geom.end, dev->sector_size))); + if(ped_disk_add_partition(dsk, crtprt, ped_constraint_exact(&crtprt->geom)) && ped_disk_commit_to_dev(dsk)) ThrdRslt = true; + ped_disk_commit_to_os(dsk); + break; + } + + return ped_disk_destroy(dsk), ped_device_destroy(dev); + } + case Delpart: + { + bool ismmc(ThrdStr[0].contains("mmc")); + PedDevice *dev(ped_device_get(bstr(left(ThrdStr[0], ismmc ? 12 : 8)))); + PedDisk *dsk(ped_disk_new(dev)); + if(ped_disk_delete_partition(dsk, ped_disk_get_partition(dsk, right(ThrdStr[0], -(ismmc ? 13 : 8)).toUShort()))) ped_disk_commit_to_dev(dsk), ped_disk_commit_to_os(dsk); + return ped_disk_destroy(dsk), ped_device_destroy(dev); + } + case Crtrpoint: + ThrdRslt = thrdcrtrpoint(ThrdStr[0]); + break; + case Srestore: + ThrdRslt = thrdsrestore(ThrdChr, ThrdStr[0], ThrdStr[1], ThrdStr[2], ThrdBool); + break; + case Scopy: + ThrdRslt = thrdscopy(ThrdChr, ThrdStr[0], ThrdStr[1]); + break; + case Lvprpr: + ThrdRslt = thrdlvprpr(ThrdBool); + } +} + +bool sb::umnt(cbstr &dev) +{ + libmnt_context *ucxt(mnt_new_context()); + mnt_context_set_target(ucxt, dev), + mnt_context_enable_force(ucxt, true), + mnt_context_enable_lazy(ucxt, true); +#ifndef C_MNT_LIB + mnt_context_enable_loopdel(ucxt, true); +#endif + bool rv(! mnt_context_umount(ucxt)); + mnt_free_context(ucxt); + return rv; +} + +bool sb::thrdcrtrpoint(cQStr &trgt) +{ + QStr rsdir('.' % QDir(sdir[1]).canonicalPath()); + if(chroot(bstr(sdir[1]))) return false; + + auto out([](bool val = false) { + chroot(bstr("./")); + return val; + }); + + QStr rtrgt(rsdir % trgt); + uint lcnt; + + { + QBA sysitms[13]; + QUCL sysitmst[13]; + + { + QStr dirs[]{"./bin", "./boot", "./etc", "./lib", "./lib32", "./lib64", "./opt", "./sbin", "./selinux", "./srv", "./usr", "./var"}; + uint bbs[]{10000, 20000, 100000, 500000, 10000, 10000, 100000, 10000, 10000, 10000, 10000000, 1000000}, ibs[]{500, 1000, 10000, 20000, 500, 500, 5000, 1000, 500, 500, 500000, 50000}; + + for(uchar a(0) ; a < 12 ; ++a) + if(isdir(dirs[a])) + { + sysitms[a].reserve(bbs[a]), sysitmst[a].reserve(ibs[a]); + if(! rodir(sysitms[a], sysitmst[a], dirs[a])) return out(); + } + } + + if(isdir("./snap")) + { + sysitms[12].reserve(10000), sysitmst[12].reserve(500); + if(! rodir("./snap", sysitms[12], sysitmst[12])) return out(); + } + + uint anum(0), cnum(0); + for(uchar a(0) ; a < 12 ; ++a) anum += sysitmst[a].count(); + QSL rplst; + QBA *cditms; + QUCL *cditmst; + uchar cperc; + + { + QSL usrs; + QBAL homeitms; + QUCLL homeitmst; + + { + QFile file("./etc/passwd"); + if(! fopen(file)) return out(); + + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + + if(usr.contains(":/home/") && isdir("./home/" % (usr = left(usr, instr(usr, ":") -1)))) usrs.append(usr), + homeitms.append(nullptr), + homeitmst.append(QUCL()); + } + } + + { + QSL ilst; + + { + QFile file("." incfile); + if(! fopen(file)) return out(); + + while(! file.atEnd()) + { + QStr cline(left(file.readLine(), -1)); + if(! cline.isEmpty()) ilst.append(cline); + if(ThrdKill) return out(); + } + } + + if(! (usrs << (isdir("./root") ? "" : nullptr)).last().isNull()) + { + homeitms.append(nullptr), homeitms.last().reserve(50000), + homeitmst.append(QUCL()), homeitmst.last().reserve(1000); + if(! rodir(homeitms.last(), homeitmst.last(), "./root", True, ilst)) return out(); + } + + for(schar a(usrs.count() - 2) ; a > -1 ; --a) + { + homeitms[a].reserve(5000000), homeitmst[a].reserve(100000); + if(! rodir(homeitms[a], homeitmst[a], "./home/" % usrs.at(a), True, ilst)) return out(); + } + } + + for(cQUCL &cucl : homeitmst) anum += cucl.count(); + Progress = 0; + if(! crtdir(rtrgt) || (isdir("./home") && ! crtdir(rtrgt % "/home"))) return out(); + + if(incrmtl) + { + rplst.reserve(15); + QSL incl{"_S01_*", "_S02_*", "_S03_*", "_S04_*", "_S05_*", "_S06_*", "_S07_*", "_S08_*", "_S09_*", "_S10_*", "_H01_*", "_H02_*", "_H03_*", "_H04_*", "_H05_*"}; + + for(cQStr &item : QDir("/").entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + { + if(like(item, incl)) rplst.append(item); + if(ThrdKill) return out(); + } + } + + QSL elst{".sbuserdata", ".cache/gvfs", ".local/share/Trash/files/", ".local/share/Trash/info/", ".Xauthority", ".ICEauthority"}; + + { + QFile file("." excfile); + if(! fopen(file)) return out(); + + while(! file.atEnd()) + { + QStr cline(left(file.readLine(), -1)); + if(like(cline, {"_.*", "_snap_", "_snap/*"})) elst.append(cline); + if(ThrdKill) return out(); + } + } + + QSL excl{"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*", "*~_", "*~/*"}; + + for(uchar a(0) ; a < usrs.count() ; ++a) + { + cQStr &usr(usrs.at(a)); + + if(! usr.isNull()) + { + QStr srcd(usr.isEmpty() ? QStr("/root") : "/home/" % usr); + if(! crtdir(rtrgt % srcd)) return out(); + + if(! (cditmst = &homeitmst[a])->isEmpty()) + { + lcnt = 0; + QTS in(cditms = &homeitms[a], QIODevice::ReadOnly); + + while(! in.atEnd()) + { + if(Progress < (cperc = (++cnum * 100 + 50) / anum)) Progress = cperc; + QStr item(in.readLine()); + + if(! (like(item, excl) || (like(item, {"_.*", "_snap_", "_snap/*"}) && exclcheck(elst, item)))) + { + QStr srci(srcd % '/' % item), rsrci('.' % srci); + + if(exist(rsrci)) + { + QStr nrpi(rtrgt % srci); + + switch(cditmst->at(lcnt)) { + case Islink: + for(cQStr &pname : rplst) + { + QStr orpi(rsdir % '/' % pname % srci); + + if(stype(orpi) == Islink && lcomp(rsrci, orpi)) + { + if(! crthlnk(orpi, nrpi)) return out(); + goto nitem_1; + } + + if(ThrdKill) return out(); + } + + if(! cplink(rsrci, nrpi)) return out(); + break; + case Isdir: + if(! crtdir(nrpi)) return out(); + break; + case Isfile: + if(fsize(rsrci) <= 8000000) + { + for(cQStr &pname : rplst) + { + QStr orpi(rsdir % '/' % pname % srci); + + if(stype(orpi) == Isfile && fcomp(rsrci, orpi) == 2) + { + if(! crthlnk(orpi, nrpi)) return out(); + goto nitem_1; + } + + if(ThrdKill) return out(); + } + + if(! cpfile(rsrci, nrpi)) return out(); + } + } + } + } + + nitem_1: + if(ThrdKill) return out(); + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(cditmst->at(lcnt++) == Isdir) + { + QStr srci(srcd % '/' % item), nrpi(rtrgt % srci); + if(exist(nrpi) && ! cpertime('.' % srci, nrpi)) return out(); + } + + if(ThrdKill) return out(); + } + + cditms->clear(), cditmst->clear(); + } + + if(! cpertime('.' % srcd, rtrgt % srcd)) return out(); + } + } + } + + if(isdir(rtrgt % "/home") && ! cpertime("./home", rtrgt % "/home")) return out(); + + { + QSL incl{"_initrd.img_", "_initrd.img.old_", "_vmlinuz_", "_vmlinuz.old_"}; + + for(cQStr &item : QDir("./").entryList(QDir::Files)) + { + if(like(item, incl)) + { + QStr srci('/' % item), rsrci('.' % srci); + + if(islink(rsrci)) + { + QStr nrpi(rtrgt % srci); + + for(cQStr &pname : rplst) + { + QStr orpi(rsdir % '/' % pname % srci); + + if(stype(orpi) == Islink && lcomp(rsrci, orpi)) + { + if(! crthlnk(orpi, nrpi)) return out(); + goto nitem_2; + } + + if(ThrdKill) return out(); + } + + if(! cplink(rsrci, nrpi)) return out(); + } + } + + nitem_2: + if(ThrdKill) return out(); + } + } + + for(cQStr &cdir : {"/cdrom", "/dev", "/mnt", "/proc", "/run", "/sys", "/tmp"}) + { + QStr rcdir('.' % cdir); + if(isdir(rcdir) && ! cpdir(rcdir, rtrgt % cdir)) return out(); + if(ThrdKill) return out(); + } + + QSL elst{"/etc/mtab", "/snap/.sblvtmp", "/var/.sblvtmp", "/var/cache/fontconfig/", "/var/lib/dpkg/lock", "/var/lib/udisks2/", "/var/lib/ureadahead/", "/var/log/", "/var/run/", "/var/tmp/"}, dlst{"/bin", "/boot", "/etc", "/lib", "/lib32", "/lib64", "/opt", "/sbin", "/selinux", "/srv", "/usr", "/var", "/snap"}, excl[]{{"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*", "*.dpkg-old_", "*~_", "*~/*"}, {"+_/var/cache/apt/*", "-*.bin_", "-*.bin.*"}, {"_/var/cache/apt/archives/*", "*.deb_"}}; + edetect(elst); + + for(uchar a(0) ; a < dlst.count() ; ++a) + { + cQStr &cdir(dlst.at(a)), rcdir('.' % cdir); + + if(isdir(rcdir)) + { + if(! crtdir(rtrgt % cdir)) return out(); + + if(! (cditmst = &sysitmst[a])->isEmpty()) + { + lcnt = 0; + QTS in(cditms = &sysitms[a], QIODevice::ReadOnly); + + while(! in.atEnd()) + { + if(Progress < (cperc = (++cnum * 100 + 50) / anum)) Progress = cperc; + QStr item(in.readLine()); + + if(! like(item, excl[0])) + { + QStr srci(cdir % '/' % item), rsrci; + + if(! (like(srci, excl[1], Mixed) || like(srci, excl[2], All) || exclcheck(elst, srci)) && exist(rsrci = '.' % srci)) + { + QStr nrpi(rtrgt % srci); + + switch(cditmst->at(lcnt)) { + case Islink: + for(cQStr &pname : rplst) + { + QStr orpi(rsdir % '/' % pname % srci); + + if(stype(orpi) == Islink && lcomp(rsrci, orpi)) + { + if(! crthlnk(orpi, nrpi)) return out(); + goto nitem_3; + } + + if(ThrdKill) return out(); + } + + if(! cplink(rsrci, nrpi)) return out(); + break; + case Isdir: + if(! crtdir(nrpi)) return out(); + break; + case Isfile: + for(cQStr &pname : rplst) + { + QStr orpi(rsdir % '/' % pname % srci); + + if(stype(orpi) == Isfile && fcomp(rsrci, orpi) == 2) + { + if(! crthlnk(orpi, nrpi)) return out(); + goto nitem_3; + } + + if(ThrdKill) return out(); + } + + if(! cpfile(rsrci, nrpi)) return out(); + } + } + } + + nitem_3: + if(ThrdKill) return out(); + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(cditmst->at(lcnt++) == Isdir) + { + QStr srci(cdir % '/' % item), nrpi(rtrgt % srci); + if(exist(nrpi) && ! cpertime('.' % srci, nrpi)) return out(); + } + + if(ThrdKill) return out(); + } + + cditms->clear(), cditmst->clear(); + } + + if(! cpertime(rcdir, rtrgt % cdir)) return out(); + } + } + } + + if(isdir("./media")) + { + if(! crtdir(rtrgt % "/media")) return out(); + + if(isfile("./etc/fstab")) + { + QSL dlst(QDir("./media").entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)); + QFile file("./etc/fstab"); + if(! fopen(file)) return out(); + + for(uchar a(0) ; a < dlst.count() ; ++a) + { + cQStr &item(dlst.at(a)); + if(a && ! fopen(file)) return out(); + QSL incl{"* /media/" % item % " *", "* /media/" % item % "/*"}; + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()), fdir; + + if(! cline.startsWith('#') && like(cline.replace('\t', ' ').contains("\\040") ? QStr(cline).replace("\\040", " ") : cline, incl)) + for(cQStr cdname : mid(cline, instr(cline, "/media/") + 7, instr(cline, " ", instr(cline, "/media/")) - instr(cline, "/media/") - 7).split('/')) + if(! cdname.isEmpty()) + { + QStr nrpi(rtrgt % "/media" % fdir.append('/' % (cdname.contains("\\040") ? QStr(cdname).replace("\\040", " ") : cdname))); + if(! (isdir(nrpi) || cpdir("./media" % fdir, nrpi))) return out(); + } + + if(ThrdKill) return out(); + } + + file.close(); + } + } + + if(! cpertime("./media", rtrgt % "/media")) return out(); + } + + if(isdir("./var/log")) + { + QBA logitms; + QUCL logitmst; + logitms.reserve(20000), logitmst.reserve(1000); + if(! rodir(logitms, logitmst, "./var/log")) return out(); + + if(! logitmst.isEmpty()) + { + QSL excl{"*.gz_", "*.old_"}; + lcnt = 0; + QTS in(&logitms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + switch(logitmst.at(lcnt++)) { + case Isdir: + if(! crtdir(rtrgt % "/var/log/" % item)) return out(); + break; + case Isfile: + if(! (like(item, excl) || (item.contains('.') && isnum(right(item, -rinstr(item, ".")))))) + { + QStr srci("/var/log/" % item), nrpi(rtrgt % srci); + crtfile(nrpi); + if(! cpertime('.' % srci, nrpi)) return out(); + } + } + + if(ThrdKill) return out(); + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(logitmst.at(lcnt++) == Isdir) + { + QStr srci("/var/log/" % item), nrpi(rtrgt % srci); + if(exist(nrpi) && ! cpertime('.' % srci, nrpi)) return out(); + } + + if(ThrdKill) return out(); + } + } + + if(! (cpertime("./var/log", rtrgt % "/var/log") && cpertime("./var", rtrgt % "/var"))) return out(); + } + + return out(true); +} + +bool sb::thrdsrestore(uchar mthd, cQStr &usr, cQStr &srcdir, cQStr &trgt, bool sfstab) +{ + QSL usrs, ilst; + QBAL homeitms; + QUCLL homeitmst; + uint anum(0); + + if(mthd != 2) + { + if(! like(mthd, {4, 6})) + { + if(isdir(srcdir % "/home")) + for(cQStr &cusr : QDir(srcdir % "/home").entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) usrs.append(cusr), + homeitms.append(nullptr), + homeitmst.append(QUCL()); + + usrs.append(isdir(srcdir % "/root") ? "" : nullptr); + } + else if(usr == "root") + usrs.append(isdir(srcdir % "/root") ? "" : nullptr); + else if(isdir(srcdir % "/home/" % usr)) + usrs = QSL{usr, nullptr}, homeitms.append(nullptr), homeitmst.append(QUCL()); + else + usrs.append(nullptr); + + if(isfile(srcdir % incfile)) + { + QFile file(srcdir % incfile); + if(! fopen(file)) return false; + + while(! file.atEnd()) + { + QStr cline(left(file.readLine(), -1)); + if(! cline.isEmpty()) ilst.append(cline); + if(ThrdKill) return false; + } + } + + if(! usrs.last().isNull()) + { + homeitms.append(nullptr), homeitms.last().reserve(50000), + homeitmst.append(QUCL()), homeitmst.last().reserve(1000); + if(! rodir(homeitms.last(), homeitmst.last(), srcdir % "/root", True, ilst)) return false; + } + + for(schar a(usrs.count() - 2) ; a > -1 ; --a) + { + homeitms[a].reserve(5000000), homeitmst[a].reserve(100000); + if(! rodir(homeitms[a], homeitmst[a], srcdir % "/home/" % usrs.at(a), True, ilst)) return false; + } + + for(cQUCL &cucl : homeitmst) anum += cucl.count(); + } + + QBA *cditms; + QUCL *cditmst; + uint cnum(0), lcnt; + uchar cperc; + auto fspchk([&trgt] { return dfree(trgt.isEmpty() ? "/" : trgt) > 10485760; }); + + if(mthd < 3) + { + { + QBA sysitms[13]; + QUCL sysitmst[13]; + + { + QStr dirs[]{srcdir % "/bin", srcdir % "/boot", srcdir % "/etc", srcdir % "/lib", srcdir % "/lib32", srcdir % "/lib64", srcdir % "/opt", srcdir % "/sbin", srcdir % "/selinux", srcdir % "/snap", srcdir % "/srv", srcdir % "/usr", srcdir % "/var"}; + uint bbs[]{10000, 20000, 100000, 500000, 10000, 10000, 100000, 10000, 10000, 10000, 10000, 10000000, 1000000}, ibs[]{500, 1000, 10000, 20000, 500, 500, 5000, 1000, 500, 500, 500, 500000, 50000}; + + for(uchar a(0) ; a < 13 ; ++a) + if(isdir(dirs[a])) + { + sysitms[a].reserve(bbs[a]), sysitmst[a].reserve(ibs[a]); + if(! rodir(sysitms[a], sysitmst[a], dirs[a])) return false; + } + } + + for(uchar a(0) ; a < 12 ; ++a) anum += sysitmst[a].count(); + Progress = 0; + + { + QSL incl{"_initrd.img_", "_initrd.img.old_", "_vmlinuz_", "_vmlinuz.old_"}; + + for(cQStr &item : QDir(trgt.isEmpty() ? "/" : trgt).entryList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::Files | QDir::System)) + { + if(like(item, incl)) + { + QStr trgi(trgt % '/' % item); + + switch(stype(trgi)) { + case Islink: + { + QStr srci(srcdir % '/' % item); + if(exist(srci) && lcomp(srci, trgi)) break; + } + case Isfile: + rmfile(trgi); + break; + case Isdir: + recrmdir(trgi); + } + } + + if(ThrdKill) return false; + } + + for(cQStr &item : QDir(srcdir).entryList(QDir::Files | QDir::System)) + { + if(like(item, incl)) + { + QStr trgi(trgt % '/' % item); + if(! exist(trgi)) cplink(srcdir % '/' % item, trgi); + } + + if(ThrdKill) return false; + } + } + + for(cQStr &cdir : {"/cdrom", "/dev", "/home", "/mnt", "/root", "/proc", "/run", "/sys", "/tmp"}) + { + QStr srci(srcdir % cdir), trgi(trgt % cdir); + + if(! isdir(srci)) + { + if(exist(trgi)) stype(trgi) == Isdir ? recrmdir(trgi) : rmfile(trgi); + } + else if(isdir(trgi)) + cpertime(srci, trgi); + else + { + if(exist(trgi)) rmfile(trgi); + if(! (cpdir(srci, trgi) || fspchk())) return false; + } + + if(ThrdKill) return false; + } + + QSL elst; + if(trgt.isEmpty()) elst = QSL{"/etc/mtab", "/var/cache/fontconfig/", "/var/lib/dpkg/lock", "/var/lib/udisks2/", "/var/run/", "/var/tmp/"}; + if(trgt.isEmpty() || (isfile("/mnt/etc/xdg/autostart/sbschedule.desktop") && isfile("/mnt/etc/xdg/autostart/sbschedule-kde.desktop") && isfile("/mnt/usr/bin/systemback") && isfile("/mnt/usr/lib/systemback/libsystemback.so.1.0.0") && isfile("/mnt/usr/lib/systemback/sbscheduler") && isfile("/mnt/usr/lib/systemback/sbsustart") && isfile("/mnt/usr/lib/systemback/sbsysupgrade")&& isdir("/mnt/usr/share/systemback/lang") && isfile("/mnt/usr/share/systemback/efi.tar.gz") && isfile("/mnt/usr/share/systemback/splash.png") && isfile("/mnt/var/lib/dpkg/info/systemback.list") && isfile("/mnt/var/lib/dpkg/info/systemback.md5sums"))) elst.append({"/etc/systemback", "/etc/xdg/autostart/sbschedule*", "/usr/bin/systemback*", "/usr/lib/systemback/", "/usr/share/systemback/", "/var/lib/dpkg/info/systemback*"}); + if(sfstab) elst.append("/etc/fstab"); + edetect(elst); + QSL dlst{"/bin", "/boot", "/etc", "/lib", "/lib32", "/lib64", "/opt", "/sbin", "/selinux", "/snap", "/srv", "/usr", "/var"}, excl[]{{"_lost+found_", "_Systemback_"}, {"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*"}}; + QStr mnts; + + auto mchk([&](cQStr &dir) { + if(mcheck(dir % '/', mnts.isEmpty() ? mnts = fload("/proc/self/mounts", true) : mnts)) + { + cQStr &mpt(dir.contains(' ') ? bstr(dir).rplc(" ", "\\040") : dir); + QTS in(&mnts, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + if(like(cline, {"* " % mpt % " *", "* " % mpt % "/*"})) umnt(cline.split(' ').value(1).replace("\\040", " ")); + } + } + }); + + for(uchar a(0) ; a < dlst.count() ; ++a) + { + cQStr &cdir(dlst.at(a)); + QStr srcd(srcdir % cdir), trgd(trgt % cdir); + + if(isdir(srcd)) + { + if(isdir(trgd)) + { + QBAL sdlst; + if(! odir(sdlst, trgd)) return false; + + for(cQStr &item : sdlst) + { + if(! (like(item, excl[0]) || exclcheck(elst, cdir % '/' % item) || exist(srcd % '/' % item))) + { + QStr trgi(trgd % '/' % item); + if(a == 9) mchk(trgi); + stype(trgi) == Isdir ? recrmdir(trgi) : rmfile(trgi); + } + + if(ThrdKill) return false; + } + } + else + { + if(exist(trgd)) rmfile(trgd); + if(! (crtdir(trgd) || fspchk())) return false; + } + + if(! (cditmst = &sysitmst[a])->isEmpty()) + { + lcnt = 0; + QTS in(cditms = &sysitms[a], QIODevice::ReadOnly); + + while(! in.atEnd()) + { + if(Progress < (cperc = (++cnum * 100 + 50) / anum)) Progress = cperc; + QStr item(in.readLine()); + + if(! (like(item, excl[1]) || exclcheck(elst, cdir % '/' % item))) + { + QStr srci(srcd % '/' % item), trgi(trgd % '/' % item); + + switch(cditmst->at(lcnt)) { + case Islink: + switch(stype(trgi)) { + case Islink: + if(lcomp(srci, trgi)) goto nitem_1; + case Isfile: + rmfile(trgi); + break; + case Isdir: + if(a == 9) mchk(trgi); + recrmdir(trgi); + } + + if(! (cplink(srci, trgi) || fspchk())) return false; + break; + case Isdir: + switch(stype(trgi)) { + case Isdir: + { + if(a == 9) mchk(trgi); + QBAL sdlst; + if(! odir(sdlst, trgi)) return false; + + for(cQStr &sitem : sdlst) + { + if(! (like(sitem, excl[0]) || exclcheck(elst, cdir % '/' % item % '/' % sitem) || exist(srci % '/' % sitem))) + { + QStr strgi(trgi % '/' % sitem); + if(a == 9) mchk(strgi); + stype(strgi) == Isdir ? recrmdir(strgi) : rmfile(strgi); + } + + if(ThrdKill) return false; + } + + goto nitem_1; + } + case Islink: + case Isfile: + rmfile(trgi); + } + + if(! (crtdir(trgi) || fspchk())) return false; + break; + case Isfile: + switch(stype(trgi)) { + case Isfile: + switch(fcomp(srci, trgi)) { + case 1: + cpertime(srci, trgi); + case 2: + goto nitem_1; + } + case Islink: + rmfile(trgi); + break; + case Isdir: + if(a == 9) mchk(trgi); + recrmdir(trgi); + } + + if(! (cpfile(srci, trgi) || fspchk())) return false; + } + } + + nitem_1: + if(ThrdKill) return false; + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(cditmst->at(lcnt++) == Isdir) + { + QStr trgi(trgd % '/' % item); + if(exist(trgi)) cpertime(srcd % '/' % item, trgi); + } + + if(ThrdKill) return false; + } + + cditms->clear(), cditmst->clear(); + } + + cpertime(srcd, trgd); + } + else if(exist(trgd)) + { + if(a == 9) mchk(trgd); + stype(trgd) == Isdir ? recrmdir(trgd) : rmfile(trgd); + } + } + } + + { + QStr srcd(srcdir % "/media"), trgd(trgt % "/media"); + + if(isdir(srcd)) + { + if(isdir(trgd)) + for(cQStr &item : QDir(trgd).entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + { + if(! exist(srcd % '/' % item)) + { + QStr trgi(trgd % '/' % item); + if(! mcheck(trgi % '/')) recrmdir(trgi); + } + + if(ThrdKill) return false; + } + else + { + if(exist(trgd)) rmfile(trgd); + if(! (crtdir(trgd) || fspchk())) return false; + } + + QBA mediaitms; + mediaitms.reserve(10000); + if(! rodir(mediaitms, srcd)) return false; + + if(! mediaitms.isEmpty()) + { + QTS in(&mediaitms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()), trgi(trgd % '/' % item); + + if(exist(trgi)) + { + if(stype(trgi) != Isdir) + { + rmfile(trgi); + if(! (crtdir(trgi) || fspchk())) return false; + } + + cpertime(srcd % '/' % item, trgi); + } + else if(! (cpdir(srcd % '/' % item, trgi) || fspchk())) + return false; + + if(ThrdKill) return false; + } + } + + cpertime(srcd, trgd); + } + else if(exist(trgd)) + stype(trgd) == Isdir ? recrmdir(trgd) : rmfile(trgd); + } + + if(srcdir == "/.systembacklivepoint" && isdir("/.systembacklivepoint/.systemback")) + { + QBA sbitms; + QUCL sbitmst; + sbitms.reserve(10000), sbitmst.reserve(500); + if(! rodir(sbitms, sbitmst, "/.systembacklivepoint/.systemback")) return false; + lcnt = 0; + QTS in(&sbitms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + switch(sbitmst.at(lcnt++)) { + case Islink: + if(! ((sfstab && item == "etc/fstab") || cplink("/.systembacklivepoint/.systemback/" % item, trgt % '/' % item) || fspchk())) return false; + break; + case Isfile: + if(! ((sfstab && item == "etc/fstab") || cpfile("/.systembacklivepoint/.systemback/" % item, trgt % '/' % item) || fspchk())) return false; + break; + } + + if(ThrdKill) return false; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + if(sbitmst.at(lcnt++) == Isdir) cpertime("/.systembacklivepoint/.systemback/" % item, trgt % '/' % item); + if(ThrdKill) return false; + } + } + } + else + Progress = 0; + + if(mthd != 2) + { + QSL elst{".cache/gvfs", ".gvfs", ".local/share/Trash/files/", ".local/share/Trash/info/", ".Xauthority", ".ICEauthority"}; + + { + QFile file(srcdir % excfile); + if(! fopen(file)) return false; + + while(! file.atEnd()) + { + QStr cline(left(file.readLine(), -1)); + if(like(cline, {"_.*", "_snap_", "_snap/*"})) elst.append(cline); + if(ThrdKill) return false; + } + } + + bool skppd; + QSL excl[]{{"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*", "*~_", "*~/*"}, {"_lost+found_", "_Systemback_", "*~_"}}; + + for(schar a(usrs.count() - 1) ; a > -1 ; --a) + { + cQStr &cusr(usrs.at(a)); + + if(! cusr.isNull()) + { + QStr srcd(srcdir), trgd(trgt); + + if(cusr.isEmpty()) + for(QStr *dir : {&srcd, &trgd}) dir->append("/root"); + else + { + QStr hdir("/home/" % cusr); + for(QStr *dir : {&srcd, &trgd}) dir->append(hdir); + } + + { + if(! isdir(trgd)) + { + if(exist(trgd)) rmfile(trgd); + if(! (crtdir(trgd) || fspchk())) return false; + } + else if(! like(mthd, {3, 4})) + { + QBAL sdlst; + if(! odir(sdlst, trgd, True, ilst)) return false; + + for(cQStr &item : sdlst) + { + bool inc(! (ilst.isEmpty() || like(item, {"_.*", "_snap_"}))); + + if((inc || ! (item.endsWith('~') || exclcheck(elst, item))) && ! exist(srcd % '/' % item)) + { + QStr trgi(trgd % '/' % item); + + switch(stype(trgi)) { + case Isdir: + recrmdir(trgi, true); + break; + case Isfile: + if(! inc && fsize(trgi) > 8000000) break; + case Islink: + rmfile(trgi); + } + } + + if(ThrdKill) return false; + } + } + } + + if(! (cditmst = &homeitmst[a])->isEmpty() && anum) + { + lcnt = 0; + QTS in(cditms = &homeitms[a], QIODevice::ReadOnly); + + while(! in.atEnd()) + { + if(Progress < (cperc = (++cnum * 100 + 50) / anum)) Progress = cperc; + QStr item(in.readLine()); + bool inc; + + if(! like(item, excl[0]) && ((inc = ! (ilst.isEmpty() || like(item, {"_.*", "_snap_", "_snap/*"}))) || ! exclcheck(elst, item))) + { + QStr srci(srcd % '/' % item), trgi(trgd % '/' % item); + + switch(cditmst->at(lcnt)) { + case Islink: + switch(stype(trgi)) { + case Islink: + if(lcomp(srci, trgi)) goto nitem_2; + case Isfile: + rmfile(trgi); + break; + case Isdir: + recrmdir(trgi); + } + + if(! (cplink(srci, trgi) || fspchk())) return false; + break; + case Isdir: + switch(stype(trgi)) { + case Isdir: + if(! like(mthd, {3, 4})) + { + QBAL sdlst; + if(! (inc ? odir(sdlst, trgi, Include, ilst, item) : odir(sdlst, trgi))) return false; + + for(cQStr &sitem : sdlst) + { + if(! (like(sitem, excl[1]) || exclcheck(elst, item % '/' % sitem) || exist(srci % '/' % sitem))) + { + QStr strgi(trgi % '/' % sitem); + + switch(stype(strgi)) { + case Isdir: + recrmdir(strgi, true); + break; + case Isfile: + if(! inc && fsize(strgi) > 8000000) break; + case Islink: + rmfile(strgi); + } + } + + if(ThrdKill) return false; + } + } + + goto nitem_2; + case Islink: + case Isfile: + rmfile(trgi); + } + + if(! (crtdir(trgi) || fspchk())) return false; + break; + case Isfile: + skppd = ! inc && fsize(srci) > 8000000; + + switch(stype(trgi)) { + case Isfile: + switch(fcomp(trgi, srci)) { + case 1: + cpertime(srci, trgi); + case 2: + goto nitem_2; + } + + if(skppd) goto nitem_2; + case Islink: + rmfile(trgi); + break; + case Isdir: + recrmdir(trgi); + } + + if(! (skppd || cpfile(srci, trgi) || fspchk())) return false; + } + } + + nitem_2: + if(ThrdKill) return false; + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(cditmst->at(lcnt++) == Isdir) + { + QStr trgi(trgd % '/' % item); + if(exist(trgi)) cpertime(srcd % '/' % item, trgi); + } + + if(ThrdKill) return false; + } + + cditms->clear(), cditmst->clear(); + } + + cpertime(srcd, trgd); + } + } + } + + return true; +} + +bool sb::thrdscopy(uchar mthd, cQStr &usr, cQStr &srcdir) +{ + uint lcnt; + + { + QBA sysitms[13]; + QUCL sysitmst[13]; + + { + QStr dirs[]{srcdir % "/bin", srcdir % "/boot", srcdir % "/etc", srcdir % "/lib", srcdir % "/lib32", srcdir % "/lib64", srcdir % "/opt", srcdir % "/sbin", srcdir % "/selinux", srcdir % "/srv", srcdir % "/usr", srcdir % "/var"}; + uint bbs[]{10000, 20000, 100000, 500000, 10000, 10000, 100000, 10000, 10000, 10000, 10000000, 1000000}, ibs[]{500, 1000, 10000, 20000, 500, 500, 5000, 1000, 500, 500, 500000, 50000}; + + for(uchar a(0) ; a < 12 ; ++a) + if(isdir(dirs[a])) + { + sysitms[a].reserve(bbs[a]), sysitmst[a].reserve(ibs[a]); + if(! rodir(sysitms[a], sysitmst[a], dirs[a])) return false; + } + } + + if(isdir(srcdir % "/snap")) + { + sysitms[12].reserve(10000), sysitmst[12].reserve(500); + if(! rodir("./snap", sysitms[12], sysitmst[12])) return false; + } + + uint anum(0), cnum(0); + for(uchar a(0) ; a < 12 ; ++a) anum += sysitmst[a].count(); + QStr macid; + QBA *cditms; + QUCL *cditmst; + uchar cperc; + + { + QSL usrs; + QBAL homeitms; + QUCLL homeitmst; + + if(mthd > 2) + { + if(isdir(srcdir % "/home/" % usr)) usrs.append(usr); + homeitms.append(nullptr), homeitmst.append(QUCL()); + } + else if(mthd && isdir(srcdir % "/home")) + { + if(srcdir.isEmpty()) + { + QFile file("/etc/passwd"); + if(! fopen(file)) return false; + + while(! file.atEnd()) + { + QStr cusr(file.readLine().trimmed()); + + if(cusr.contains(":/home/") && isdir("/home/" % (cusr = left(cusr, instr(cusr, ":") -1)))) usrs.append(cusr), + homeitms.append(nullptr), + homeitmst.append(QUCL()); + } + } + else + for(cQStr &cusr : QDir(srcdir % "/home").entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) usrs.append(cusr), + homeitms.append(nullptr), + homeitmst.append(QUCL()); + + if(ThrdKill) return false; + } + + usrs.append(isdir(srcdir % "/root") ? "" : nullptr); + + if(mthd == 5) + { + homeitms[0].reserve(10000), homeitmst[0].reserve(500); + if(! rodir(homeitms[0], homeitmst[0], srcdir % "/etc/skel")) return false; + } + else + { + if(! usrs.last().isNull()) + { + homeitms.append(nullptr), homeitms.last().reserve(50000), + homeitmst.append(QUCL()), homeitmst.last().reserve(1000); + if(! rodir(homeitms.last(), homeitmst.last(), srcdir % "/root", like(mthd, {2, 3}) ? True : False)) return false; + } + + for(schar a(usrs.count() - 2) ; a > -1 ; --a) + { + homeitms[a].reserve(5000000), homeitmst[a].reserve(100000); + if(! rodir(homeitms[a], homeitmst[a], srcdir % "/home/" % usrs.at(a), like(mthd, {2, 3}) ? True : False)) return false; + } + } + + for(cQUCL &cucl : homeitmst) anum += cucl.count(); + Progress = 0; + + if(isdir(srcdir % "/home") && ! (isdir("/.sbsystemcopy/home") || crtdir("/.sbsystemcopy/home"))) + { + QFile::rename("/.sbsystemcopy/home", "/.sbsystemcopy/home_" % rndstr()); + if(! crtdir("/.sbsystemcopy/home")) return false; + } + + if(mthd > 2) + { + QStr mfile(isfile(srcdir % "/var/lib/dbus/machine-id") ? "/var/lib/dbus/machine-id" : isfile(srcdir % "/etc/machine-id") ? "/etc/machine-id" : nullptr); + + if(! mfile.isEmpty()) + { + QFile file(srcdir % mfile); + if(! fopen(file)) return false; + QStr cline(file.readLine().trimmed()); + if(cline.length() == 32) macid = cline; + } + } + + QSL elst{".cache/gvfs", ".gvfs", ".local/share/Trash/files/", ".local/share/Trash/info/", ".Xauthority", ".ICEauthority"}; + + { + QFile file(srcdir % excfile); + if(! fopen(file)) return false; + + while(! file.atEnd()) + { + QStr cline(left(file.readLine(), -1)); + if(like(cline, {"_.*", "_snap_", "_snap/*"})) elst.append(cline); + if(ThrdKill) return false; + } + } + + bool skppd; + QSL excl{"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*", "*~_", "*~/*"}; + + for(uchar a(0) ; a < usrs.count() ; ++a) + { + cQStr &cusr(usrs.at(a)); + + if(! cusr.isNull()) + { + QStr srcd[2], trgd; + cusr.isEmpty() ? (srcd[0] = srcdir % "/root", trgd = "/.sbsystemcopy/root") : (srcd[0] = srcdir % "/home/" % cusr, trgd = "/.sbsystemcopy/home/" % cusr); + srcd[1] = mthd == 5 ? srcdir % "/etc/skel" : srcd[0]; + + if(! isdir(trgd)) + { + if(exist(trgd)) rmfile(trgd); + if(! cpdir(srcd[0], trgd)) return false; + } + + if(! (cditmst = &homeitmst[mthd == 5 ? 0 : a])->isEmpty()) + { + lcnt = 0; + QTS in(cditms = &homeitms[mthd == 5 ? 0 : a], QIODevice::ReadOnly); + + while(! in.atEnd()) + { + if(Progress < (cperc = (++cnum * 100 + 50) / anum)) Progress = cperc; + QStr item(in.readLine()); + + if((mthd == 5 || (! (like(item, excl) || exclcheck(elst, item)) && (macid.isEmpty() || ! item.contains(macid)))) && (! srcdir.isEmpty() || exist(srcd[1] % '/' % item))) + { + QStr trgi(trgd % '/' % item); + + switch(cditmst->at(lcnt)) { + case Islink: + { + QStr srci(srcd[1] % '/' % item); + + switch(stype(trgi)) { + case Islink: + if(! lcomp(srci, trgi)) goto nitem_1; + case Isfile: + rmfile(trgi); + break; + case Isdir: + recrmdir(trgi); + } + + if(! cplink(srci, trgi)) return false; + break; + } + case Isdir: + switch(stype(trgi)) { + case Isdir: + goto nitem_1; + case Islink: + case Isfile: + rmfile(trgi); + } + + if(! crtdir(trgi)) return false; + break; + case Isfile: + QStr srci(srcd[1] % '/' % item); + skppd = like(mthd, {2, 3}) && fsize(srci) > 8000000; + + switch(stype(trgi)) { + case Isfile: + if(mthd == 5) + switch(fcomp(trgi, srci)) { + case 1: + if(! cpertime(srci, trgi, ! cusr.isEmpty())) return false; + case 2: + goto nitem_1; + } + else + { + switch(fcomp(trgi, srci)) { + case 1: + if(! cpertime(srci, trgi)) return false; + case 2: + goto nitem_1; + } + + if(skppd) goto nitem_1; + } + case Islink: + rmfile(trgi); + break; + case Isdir: + recrmdir(trgi); + } + + if(mthd == 5) + { + if(! cpfile(srci, trgi, ! cusr.isEmpty())) return false; + } + else if(! (skppd || cpfile(srci, trgi))) + return false; + } + } + + nitem_1: + if(ThrdKill) return false; + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(cditmst->at(lcnt++) == Isdir) + { + QStr trgi(trgd % '/' % item); + if(exist(trgi) && ! cpertime(srcd[1] % '/' % item, trgi, mthd == 5 && ! cusr.isEmpty())) return false; + } + + if(ThrdKill) return false; + } + + if(mthd < 5) cditms->clear(), cditmst->clear(); + } + + if(! cusr.isEmpty()) + { + if(isfile(srcd[0] % "/.config/user-dirs.dirs")) + { + QFile file(srcd[0] % "/.config/user-dirs.dirs"); + if(! fopen(file)) return false; + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()), dir; + + if(! cline.startsWith('#') && cline.contains("$HOME") && (dir = left(right(cline, -instr(cline, "/")), -1)).length()) + { + QStr trgi(trgd % '/' % dir); + + if(! isdir(trgi)) + { + QStr srci(srcd[0] % '/' % dir); + + if(isdir(srci)) + { + if(! cpdir(srci, trgi)) return false; + } + else if(srcdir.startsWith(sdir[1]) && ! (crtdir(trgi) && cpertime(trgd, trgi))) + return false; + } + } + + if(ThrdKill) return false; + } + } + + if(! cpertime(srcd[0], trgd)) return false; + } + } + } + } + + { + QSL incl{"_initrd.img_", "_initrd.img.old_", "_vmlinuz_", "_vmlinuz.old_"}; + + for(cQStr &item : QDir("/.sbsystemcopy").entryList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::Files | QDir::System)) + { + if(like(item, incl)) + { + QStr trgi("/.sbsystemcopy/" % item); + + switch(stype(trgi)) { + case Islink: + { + QStr srci(srcdir % '/' % item); + if(islink(srci) && lcomp(srci, trgi)) break; + } + case Isfile: + if(! rmfile(trgi)) return false; + break; + case Isdir: + if(! recrmdir(trgi)) return false; + } + } + + if(ThrdKill) return false; + } + + for(cQStr &item : QDir(srcdir.isEmpty() ? "/" : srcdir).entryList(QDir::Files | QDir::System)) + { + if(like(item, incl)) + { + QStr srci(srcdir % '/' % item); + + if(islink(srci)) + { + QStr trgi("/.sbsystemcopy/" % item); + if(! (exist(trgi) || cplink(srci, trgi))) return false; + } + } + + if(ThrdKill) return false; + } + } + + for(cQStr &cdir : {"/cdrom", "/dev", "/home", "/mnt", "/root", "/proc", "/run", "/sys", "/tmp"}) + { + QStr trgd("/.sbsystemcopy" % cdir); + + if(! isdir(srcdir % cdir)) + { + if(exist(trgd)) stype(trgd) == Isdir ? recrmdir(trgd) : rmfile(trgd); + } + else if(! isdir(trgd)) + { + if(exist(trgd)) rmfile(trgd); + if(! cpdir(srcdir % cdir, trgd)) return false; + } + else if(! cpertime(srcdir % cdir, trgd)) + return false; + + if(ThrdKill) return false; + } + + QSL elst{"/boot/efi", "/etc/crypttab", "/etc/mtab", "/snap/.sblvtmp", "/var/.sblvtmp", "/var/cache/fontconfig/", "/var/lib/dpkg/lock", "/var/lib/udisks2/", "/var/log", "/var/run/", "/var/tmp/"}; + if(mthd > 2) elst.append({"/etc/machine-id", "/var/lib/dbus/machine-id"}); + + if(srcdir.isEmpty()) + elst.append(cfgfile); + else + { + elst.append("/etc/systemback/"); + if(srcdir == "/.systembacklivepoint" && fload("/proc/cmdline").contains("noxconf")) elst.append({"/etc/X11/xorg.conf", "/etc/X11/xorg.conf.d/"}); + } + + edetect(elst); + + for(cQStr &cdir : {"/etc/rc0.d", "/etc/rc1.d", "/etc/rc2.d", "/etc/rc3.d", "/etc/rc4.d", "/etc/rc5.d", "/etc/rc6.d", "/etc/rcS.d"}) + { + QStr srcd(srcdir % cdir); + + if(isdir(srcd)) + for(cQStr &item : QDir(srcd).entryList(QDir::Files)) + if(item.contains("cryptdisks")) elst.append(cdir % '/' % item); + } + + QSL dlst{"/bin", "/boot", "/etc", "/lib", "/lib32", "/lib64", "/opt", "/sbin", "/selinux", "/srv", "/usr", "/var", "/snap"}, excl[]{{"_lost+found_", "_Systemback_"}, {"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*"}, {"_/etc/udev/rules.d*", "*-persistent-*"}}; + + for(uchar a(0) ; a < dlst.count() ; ++a) + { + cQStr &cdir(dlst.at(a)); + QStr srcd(srcdir % cdir), trgd("/.sbsystemcopy" % cdir); + + if(isdir(srcd)) + { + if(isdir(trgd)) + { + QBAL sdlst; + if(! odir(sdlst, trgd)) return false; + + for(cQStr &item : sdlst) + { + bool exc; + + if(! like(item, excl[0]) && ((exc = exclcheck(elst, cdir % '/' % item)) || ! exist(srcd % '/' % item))) + { + QStr trgi(trgd % '/' % item); + + switch(stype(trgi)) { + case Isdir: + if(! exc) recrmdir(trgi); + break; + default: + rmfile(trgi); + } + } + + if(ThrdKill) return false; + } + } + else + { + if(exist(trgd)) rmfile(trgd); + if(! crtdir(trgd)) return false; + } + + if(! (cditmst = &sysitmst[a])->isEmpty()) + { + lcnt = 0; + QTS in(cditms = &sysitms[a], QIODevice::ReadOnly); + + while(! in.atEnd()) + { + if(Progress < (cperc = (++cnum * 100 + 50) / anum)) Progress = cperc; + QStr item(in.readLine()); + + if(! like(item, excl[1])) + { + QStr pdi(cdir % '/' % item); + + if(! exclcheck(elst, pdi) && (macid.isEmpty() || ! item.contains(macid)) && (mthd < 3 || ! like(pdi, excl[2], All)) && (! srcdir.isEmpty() || exist(pdi))) + { + QStr srci(srcd % '/' % item), trgi(trgd % '/' % item); + + switch(cditmst->at(lcnt)) { + case Islink: + switch(stype(trgi)) { + case Islink: + if(lcomp(srci, trgi)) goto nitem_2; + case Isfile: + rmfile(trgi); + break; + case Isdir: + recrmdir(trgi); + } + + if(! cplink(srci, trgi)) return false; + break; + case Isdir: + switch(stype(trgi)) { + case Isdir: + { + QBAL sdlst; + if(! odir(sdlst, trgi)) return false; + + for(cQStr &sitem : sdlst) + { + bool exc; + + if(! like(sitem, excl[0]) && ((exc = exclcheck(elst, pdi % '/' % sitem)) || ! exist(srci % '/' % sitem))) + { + QStr strgi(trgi % '/' % sitem); + + switch(stype(strgi)) { + case Isdir: + if(! exc) recrmdir(strgi); + break; + default: + rmfile(strgi); + } + } + + if(ThrdKill) return false; + } + + goto nitem_2; + } + case Islink: + case Isfile: + rmfile(trgi); + } + + if(! crtdir(trgi)) return false; + break; + case Isfile: + switch(stype(trgi)) { + case Isfile: + switch(fcomp(trgi, srci)) { + case 1: + if(! cpertime(srci, trgi)) return false; + case 2: + goto nitem_2; + } + case Islink: + rmfile(trgi); + break; + case Isdir: + recrmdir(trgi); + } + + if(! cpfile(srci, trgi)) return false; + } + } + } + + nitem_2: + if(ThrdKill) return false; + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(cditmst->at(lcnt++) == Isdir) + { + QStr trgi(trgd % '/' % item); + if(exist(trgi) && ! cpertime(srcd % '/' % item, trgi)) return false; + } + + if(ThrdKill) return false; + } + + cditms->clear(), cditmst->clear(); + } + + if(! cpertime(srcd, trgd)) return false; + } + else if(exist(trgd)) + stype(trgd) == Isdir ? recrmdir(trgd) : rmfile(trgd); + } + } + + { + QStr srcd(srcdir % "/media"), trgd("/.sbsystemcopy/media"); + + if(isdir(srcd)) + { + if(isdir(trgd)) + for(cQStr &item : QDir(trgd).entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + { + QStr trgi(trgd % '/' % item); + if(! (exist(srcdir % '/' % item) || mcheck(trgi % '/'))) recrmdir(trgi); + if(ThrdKill) return false; + } + else + { + if(exist(trgd)) rmfile(trgd); + if(! crtdir(trgd)) return false; + } + + if(! srcdir.isEmpty()) + { + QBA mediaitms; + mediaitms.reserve(10000); + if(! rodir(mediaitms, srcd)) return false; + + if(! mediaitms.isEmpty()) + { + QTS in(&mediaitms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()), trgi(trgd % '/' % item); + + if(exist(trgi)) + { + if(stype(trgi) != Isdir) + { + rmfile(trgi); + if(! crtdir(trgi)) return false; + } + + if(! cpertime(srcdir % "/media/" % item, trgi)) return false; + } + else if(! cpdir(srcdir % "/media/" % item, trgi)) + return false; + + if(ThrdKill) return false; + } + } + } + else if(isfile("/etc/fstab")) + { + QSL dlst(QDir(srcd).entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)); + QFile file("/etc/fstab"); + if(! fopen(file)) return false; + + for(uchar a(0) ; a < dlst.count() ; ++a) + { + cQStr &item(dlst.at(a)); + if(a && ! fopen(file)) return false; + QSL incl{"* /media/" % item % " *", "* /media/" % item % "/*"}; + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()), fdir; + + if(! cline.startsWith('#') && like(cline.replace('\t', ' ').contains("\\040") ? QStr(cline).replace("\\040", " ") : cline, incl)) + for(cQStr cdname : mid(cline, instr(cline, "/media/") + 7, instr(cline, " ", instr(cline, "/media/")) - instr(cline, "/media/") - 7).split('/')) + if(! cdname.isEmpty()) + { + QStr trgi(trgd % fdir.append('/' % (cdname.contains("\\040") ? QStr(cdname).replace("\\040", " ") : cdname))); + if(! (isdir(trgi) || cpdir("/media" % fdir, trgi))) return false; + } + + if(ThrdKill) return false; + } + + file.close(); + } + } + + if(! cpertime(srcd, trgd)) return false; + } + else if(exist(trgd)) + stype(trgd) == Isdir ? recrmdir(trgd) : rmfile(trgd); + } + + if(exist("/.sbsystemcopy/var/log")) stype("/.sbsystemcopy/var/log") == Isdir ? recrmdir("/.sbsystemcopy/var/log") : rmfile("/.sbsystemcopy/var/log"); + + if(isdir(srcdir % "/var/log")) + { + if(! crtdir("/.sbsystemcopy/var/log")) return false; + QBA logitms; + QUCL logitmst; + logitms.reserve(20000), logitmst.reserve(1000); + if(! rodir(logitms, logitmst, srcdir % "/var/log")) return false; + + if(! logitmst.isEmpty()) + { + QSL excl{"*.gz_", "*.old_"}; + lcnt = 0; + QTS in(&logitms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + switch(logitmst.at(lcnt++)) { + case Isdir: + if(! crtdir("/.sbsystemcopy/var/log/" % item)) return false; + break; + case Isfile: + if(! like(item, excl) && ! (item.contains('.') && isnum(right(item, -rinstr(item, "."))))) + { + QStr trgi("/.sbsystemcopy/var/log/" % item); + crtfile(trgi); + if(! cpertime(srcdir % "/var/log/" % item, trgi)) return false; + } + } + + if(ThrdKill) return false; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + if((logitmst.at(lcnt++) == Isdir && ! cpertime(srcdir % "/var/log/" % item, "/.sbsystemcopy/var/log/" % item)) || ThrdKill) return false; + } + } + + if(! (cpertime(srcdir % "/var/log", "/.sbsystemcopy/var/log") && cpertime(srcdir % "/var", "/.sbsystemcopy/var"))) return false; + } + + if(srcdir == "/.systembacklivepoint" && isdir("/.systembacklivepoint/.systemback")) + { + QBA sbitms; + QUCL sbitmst; + sbitms.reserve(10000), sbitmst.reserve(500); + if(! rodir(sbitms, sbitmst, "/.systembacklivepoint/.systemback")) return false; + lcnt = 0; + QTS in(&sbitms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + switch(sbitmst.at(lcnt++)) { + case Islink: + if(! (item == "etc/fstab" || cplink("/.systembacklivepoint/.systemback/" % item, "/.sbsystemcopy/" % item))) return false; + break; + case Isfile: + if(! (item == "etc/fstab" || cpfile("/.systembacklivepoint/.systemback/" % item, "/.sbsystemcopy/" % item))) return false; + } + + if(ThrdKill) return false; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + if((sbitmst.at(lcnt++) == Isdir && ! cpertime("/.systembacklivepoint/.systemback/" % item, "/.sbsystemcopy/" % item)) || ThrdKill) return false; + } + } + + return true; +} + +bool sb::thrdlvprpr(bool iudata) +{ + if(ThrdLng[0]) ThrdLng[0] = 0; + + { + QUCL sitmst; + sitmst.reserve(1000000); + + for(cQStr &item : {"/bin", "/boot", "/etc", "/lib", "/lib32", "/lib64", "/opt", "/sbin", "/selinux", "/usr", "/initrd.img", "/initrd.img.old", "/vmlinuz", "/vmlinuz.old"}) + if(isdir(item)) + { + if(! rodir(sitmst, item)) return false; + ++ThrdLng[0]; + } + else if(exist(item)) + ++ThrdLng[0]; + + ThrdLng[0] += sitmst.count(); + } + + if(! (crtdir(sdir[2] % "/.sblivesystemcreate/.systemback") && crtdir(sdir[2] % "/.sblivesystemcreate/.systemback/etc"))) return false; + + if(isdir("/etc/udev")) + { + if(! crtdir(sdir[2] % "/.sblivesystemcreate/.systemback/etc/udev")) return false; + + if(isdir("/etc/udev/rules.d") && (! crtdir(sdir[2] % "/.sblivesystemcreate/.systemback/etc/udev/rules.d") || + (isfile("/etc/udev/rules.d/70-persistent-cd.rules") && ! cpfile("/etc/udev/rules.d/70-persistent-cd.rules", sdir[2] % "/.sblivesystemcreate/.systemback/etc/udev/rules.d/70-persistent-cd.rules")) || + (isfile("/etc/udev/rules.d/70-persistent-net.rules") && ! cpfile("/etc/udev/rules.d/70-persistent-net.rules", sdir[2] % "/.sblivesystemcreate/.systemback/etc/udev/rules.d/70-persistent-net.rules")) || + ! cpertime("/etc/udev/rules.d", sdir[2] % "/.sblivesystemcreate/.systemback/etc/udev/rules.d"))) return false; + + if(! cpertime("/etc/udev", sdir[2] % "/.sblivesystemcreate/.systemback/etc/udev")) return false; + } + + if((isfile("/etc/fstab") && ! cpfile("/etc/fstab", sdir[2] % "/.sblivesystemcreate/.systemback/etc/fstab")) || ! cpertime("/etc", sdir[2] % "/.sblivesystemcreate/.systemback/etc")) return false; + if(exist("/.sblvtmp")) stype("/.sblvtmp") == Isdir ? recrmdir("/.sblvtmp") : rmfile("/.sblvtmp"); + if(! crtdir("/.sblvtmp")) return false; + + for(cQStr &cdir : {"/cdrom", "/dev", "/mnt", "/proc", "/run", "/srv", "/sys", "/tmp"}) + if(isdir(cdir)) + { + if(! cpdir(cdir, "/.sblvtmp" % cdir)) return false; + ++ThrdLng[0]; + } + + if(ThrdKill) return false; + + if(! isdir("/media")) + { + if(! crtdir("/media")) return false; + } + else if(exist("/media/.sblvtmp")) + stype("/media/.sblvtmp") == Isdir ? recrmdir("/media/.sblvtmp") : rmfile("/media/.sblvtmp"); + + if(! (crtdir("/media/.sblvtmp") && crtdir("/media/.sblvtmp/media"))) return false; + ++ThrdLng[0]; + if(ThrdKill) return false; + + if(isfile("/etc/fstab")) + { + QFile file("/etc/fstab"); + if(! fopen(file)) return false; + QSL dlst(QDir("/media").entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)); + + for(uchar a(0) ; a < dlst.count() ; ++a) + { + cQStr &item(dlst.at(a)); + if(a && ! fopen(file)) return false; + QSL incl{"* /media/" % item % " *", "* /media/" % item % "/*"}; + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()), fdir; + + if(! cline.startsWith('#') && like(cline.replace('\t', ' ').contains("\\040") ? QStr(cline).replace("\\040", " ") : cline, incl)) + for(cQStr cdname : mid(cline, instr(cline, "/media/") + 7, instr(cline, " ", instr(cline, "/media/")) - instr(cline, "/media/") - 7).split('/')) + if(! cdname.isEmpty()) + { + QStr sbli("/media/.sblvtmp/media" % fdir.append('/' % (cdname.contains("\\040") ? QStr(cdname).replace("\\040", " ") : cdname))); + + if(! isdir(sbli)) + { + if(! cpdir("/media" % fdir, sbli)) return false; + ++ThrdLng[0]; + } + } + + if(ThrdKill) return false; + } + + file.close(); + } + } + + if(exist("/var/.sblvtmp")) stype("/var/.sblvtmp") == Isdir ? recrmdir("/var/.sblvtmp") : rmfile("/var/.sblvtmp"); + if(ThrdKill) return false; + uint lcnt; + + { + QBA varitms; + QUCL varitmst; + varitms.reserve(1000000), varitmst.reserve(50000); + if(! rodir(varitms, varitmst, "/var")) return false; + if(! (crtdir("/var/.sblvtmp") && crtdir("/var/.sblvtmp/var"))) return false; + ++ThrdLng[0]; + QSL elst{"lib/dpkg/lock", "lib/udisks/mtab", "lib/ureadahead/", "log/", "run/", "tmp/"}; + edetect(elst, true); + + if(! varitmst.isEmpty()) + { + QSL excl[]{{"+_cache/apt/*", "-*.bin_", "-*.bin.*"}, {"_cache/apt/archives/*", "*.deb_"}, {"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*", "*.dpkg-old_", "*~_", "*~/*"}, {"*.gz_", "*.old_"}}; + lcnt = 0; + QTS in(&varitms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()), srci("/var/" % item); + + if(exist(srci)) + { + if(! (like(item, excl[0], Mixed) || like(item, excl[1], All) || like(item, excl[2]) || exclcheck(elst, item))) + switch(varitmst.at(lcnt)) { + case Islink: + if(! cplink(srci, "/var/.sblvtmp/var/" % item)) return false; + ++ThrdLng[0]; + break; + case Isdir: + if(! crtdir("/var/.sblvtmp/var/" % item)) return false; + ++ThrdLng[0]; + break; + case Isfile: + if(issmfs("/var/.sblvtmp", srci) && ! crthlnk(srci, "/var/.sblvtmp/var/" % item)) return false; + ++ThrdLng[0]; + } + else if(item.startsWith("log")) + switch(varitmst.at(lcnt)) { + case Isdir: + if(! crtdir("/var/.sblvtmp/var/" % item)) return false; + ++ThrdLng[0]; + break; + case Isfile: + if(! (like(item, excl[3]) || (item.contains('.') && isnum(right(item, -rinstr(item, ".")))))) + { + QStr sbli("/var/.sblvtmp/var/" % item); + crtfile(sbli); + if(! cpertime(srci, sbli)) return false; + ++ThrdLng[0]; + } + } + } + + if(ThrdKill) return false; + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(varitmst.at(lcnt++) == Isdir) + { + QStr sbli("/var/.sblvtmp/var/" % item); + if(exist(sbli) && ! cpertime("/var/" % item, sbli)) return false; + } + + if(ThrdKill) return false; + } + } + } + + if(! cpertime("/var", "/var/.sblvtmp/var")) return false; + + if(isdir("/snap")) + { + if(exist("/snap/.sblvtmp")) stype("/snap/.sblvtmp") == Isdir ? recrmdir("/snap/.sblvtmp") : rmfile("/snap/.sblvtmp"); + if(ThrdKill) return false; + QBA snapitms; + QUCL snapitmst; + snapitms.reserve(10000), snapitmst.reserve(500); + if(! rodir("/snap", snapitms, snapitmst)) return false; + if(! (crtdir("/snap/.sblvtmp") && crtdir("/snap/.sblvtmp/snap"))) return false; + ++ThrdLng[0]; + + if(! snapitmst.isEmpty()) + { + QSL excl{"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*", "*.dpkg-old_", "*~_", "*~/*"}; + lcnt = 0; + QTS in(&snapitms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()), srci("/snap/" % item); + + if(exist(srci) && ! like(item, excl)) + switch(snapitmst.at(lcnt)) { + case Islink: + case Isfile: + if(! crthlnk(srci, "/snap/.sblvtmp/snap/" % item)) return false; + ++ThrdLng[0]; + break; + case Isdir: + if(! crtdir("/snap/.sblvtmp/snap/" % item)) return false; + ++ThrdLng[0]; + } + + if(ThrdKill) return false; + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(snapitmst.at(lcnt++) == Isdir) + { + QStr sbli("/snap/.sblvtmp/snap/" % item); + if(exist(sbli) && ! cpertime("/snap/" % item, sbli)) return false; + } + + if(ThrdKill) return false; + } + } + + if(! cpertime("/snap", "/snap/.sblvtmp/snap")) return false; + } + + QSL usrs; + + { + QFile file("/etc/passwd"); + if(! fopen(file)) return false; + + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + if(usr.contains(":/home/") && isdir("/home/" % (usr = left(usr, instr(usr, ":") -1)))) usrs.prepend(usr); + } + } + + usrs.prepend(isdir("/root") ? "" : nullptr); + if(ThrdKill) return false; + + bool uhl(dfree("/home") > 104857600 && dfree("/root") > 104857600 && [&usrs] { + QStr mnts(fload("/proc/self/mounts")); + + for(uchar a(1) ; a < usrs.count() ; ++a) + if(mnts.contains(" /home/" % usrs.at(a) % '/') || ! issmfs("/home", "/home/" % usrs.at(a))) return false; + + return true; + }()); + + if(ThrdKill) return false; + + if(uhl) + { + if(exist("/home/.sbuserdata")) stype("/home/.sbuserdata") == Isdir ? recrmdir("/home/.sbuserdata") : rmfile("/home/.sbuserdata"); + if(! (crtdir("/home/.sbuserdata") && cpdir("/home", "/home/.sbuserdata/home"))) return false; + } + else if(! (crtdir(sdir[2] % "/.sblivesystemcreate/userdata") && cpdir("/home", sdir[2] % "/.sblivesystemcreate/userdata/home"))) + return false; + + ++ThrdLng[0]; + if(ThrdKill) return false; + QSL elst{".sbuserdata", ".cache/gvfs", ".local/share/Trash/files/", ".local/share/Trash/info/", ".Xauthority", ".ICEauthority"}; + + { + QFile file(excfile); + if(! fopen(file)) return false; + + while(! file.atEnd()) + { + QStr cline(left(file.readLine(), -1)); + if(! cline.isEmpty()) elst.append(cline); + if(ThrdKill) return false; + } + } + + QSL excl{"_lost+found_", "_lost+found/*", "*/lost+found_", "*/lost+found/*", "_Systemback_", "_Systemback/*", "*/Systemback_", "*/Systemback/*", "*~_", "*~/*"}; + + for(cQStr &usr : usrs) + if(! usr.isNull()) + { + QStr usdir; + + if(uhl) + { + if(usr.isEmpty()) + { + usdir = "/root/.sbuserdata"; + if(exist(usdir)) stype(usdir) == Isdir ? recrmdir(usdir) : rmfile(usdir); + if(! (crtdir(usdir) && crtdir(usdir.append("/root")))) return false; + } + else + { + usdir = "/home/.sbuserdata/home/" % usr; + if(! crtdir(usdir)) return false; + } + } + else + { + usdir = sdir[2] % (usr.isEmpty() ? "/.sblivesystemcreate/userdata/root" : QStr("/.sblivesystemcreate/userdata/home/" % usr)); + if(! crtdir(usdir)) return false; + } + + ++ThrdLng[0]; + QStr srcd(usr.isEmpty() ? "/root" : QStr("/home/" % usr)); + QBA useritms; + QUCL useritmst; + useritms.reserve(usr.isEmpty() ? 50000 : 5000000), useritmst.reserve(usr.isEmpty() ? 1000 : 100000); + if(! rodir(useritms, useritmst, srcd, ! iudata ? True : False)) return false; + + if(! useritmst.isEmpty()) + { + lcnt = 0; + QTS in(&useritms, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(! (like(item, excl) || exclcheck(elst, item))) + { + QStr srci(srcd % '/' % item); + + if(exist(srci)) + { + switch(useritmst.at(lcnt)) { + case Islink: + if(uhl) + { + if(! crthlnk(srci, usdir % '/' % item)) return false; + } + else if(! cplink(srci, usdir % '/' % item)) + return false; + + ++ThrdLng[0]; + break; + case Isdir: + if(! crtdir(usdir % '/' % item)) return false; + ++ThrdLng[0]; + break; + case Isfile: + if(iudata || fsize(srci) <= 8000000) + { + if(uhl) + { + if(! crthlnk(srci, usdir % '/' % item)) return false; + } + else if(! cpfile(srci, usdir % '/' % item)) + return false; + + ++ThrdLng[0]; + } + } + } + } + + if(ThrdKill) return false; + ++lcnt; + } + + in.seek(0), lcnt = 0; + + while(! in.atEnd()) + { + QStr item(in.readLine()); + + if(useritmst.at(lcnt++) == Isdir) + { + QStr sbli(usdir % '/' % item); + if(exist(sbli) && ! cpertime(srcd % '/' % item, sbli)) return false; + } + + if(ThrdKill) return false; + } + } + + if(! (iudata || usr.isEmpty()) && isfile(srcd % "/.config/user-dirs.dirs")) + { + QFile file(srcd % "/.config/user-dirs.dirs"); + if(! fopen(file)) return false; + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()), dir; + + if(! cline.startsWith('#') && cline.contains("$HOME") && (dir = left(right(cline, -instr(cline, "/")), -1)).length()) + { + QStr srci(srcd % '/' % dir); + + if(isdir(srci)) + { + QStr sbld(usdir % '/' % dir); + + if(! isdir(sbld)) + { + if(! cpdir(srci, sbld)) return false; + ++ThrdLng[0]; + } + } + } + + if(ThrdKill) return false; + continue; + } + + file.close(); + } + + if(! cpertime(srcd, usdir)) return false; + } + + return true; +} diff --git a/libsystemback/sblib.hpp b/libsystemback/sblib.hpp new file mode 100644 index 0000000..3b70fd9 --- /dev/null +++ b/libsystemback/sblib.hpp @@ -0,0 +1,290 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef SBLIB_HPP +#define SBLIB_HPP + +#include "sblib_global.hpp" +#include "bstr.hpp" +#include +#include +#include +#include +#include +#include +#include +#include + +#define fnln __attribute__((always_inline)) +#define cfgfile "/etc/systemback/systemback.conf" +#define excfile "/etc/systemback/systemback.excludes" +#define incfile "/etc/systemback/systemback.includes" + +class SHARED_EXPORT_IMPORT sb : public QThread +{ + Q_DECLARE_TR_FUNCTIONS(systemback) + +public: + enum { Remove = 0, Copy = 1, Sync = 2, Mount = 3, Umount = 4, Readprttns = 5, Readlvdevs = 6, Ruuid = 7, Setpflag = 8, Mkptable = 9, Mkpart = 10, Delpart = 11, Crtrpoint = 12, Srestore = 13, Scopy = 14, Lvprpr = 15, + MSDOS = 0, GPT = 1, Clear = 2, Primary = 3, Extended = 4, Logical = 5, Freespace = 6, Emptyspace = 7, + Nodbg = 0, Errdbg = 1, Alldbg = 2, Extdbg = 3, Cextdbg = 4, Nulldbg = 5, Falsedbg = 6, + Notexist = 0, Isfile = 1, Isdir = 2, Islink = 3, Isblock = 4, Unknown = 5, + Noflag = 0, Silent = 1, Bckgrnd = 2, Prgrss = 4, Wait = 8, + Sblock = 0, Dpkglock = 1, Aptlock = 2, Schdlrlock = 3, + False = 0, True = 1, Empty = 2, Include = 3, + Crtdir = 0, Rmfile = 1, Crthlnk = 2, + Read = 0, Write = 1, Exec = 2, + Norm = 0, All = 1, Mixed = 2 }; + + static sb SBThrd; + static QStr ThrdStr[3], eout, sdir[3], schdlr[2], pnames[15], lang, style, wsclng; + static ullong ThrdLng[2]; + static uchar dbglev, pnumber, ismpnt, schdle[6], waot, incrmtl, xzcmpr, autoiso, ecache; + static schar Progress; + static bool ExecKill, ThrdKill; + + static fnln QStr hunit(ullong size); + + static QStr mid(cQStr &txt, ushort start, ushort len), + fload(cQStr &path, bool ascnt), + right(cQStr &txt, short len), + left(cQStr &txt, short len), + gdetect(cQStr rdir = "/"), + rndstr(uchar vlen = 10), + ruuid(cQStr &part), + appver(), + dbginf(); + + static QBA fload(cQStr &path); + template static ullong dfree(const T &path); + static fnln ullong fsize(cQStr &path); + + static fnln ushort instr(cQStr &txt, cQStr &stxt, ushort start = 1), + rinstr(cQStr &txt, cQStr &stxt); + + template static uchar stype(const T &path, bool flink = false); + + static uchar exec(cQStr &cmd, uchar flag = Noflag, cQStr &envv = nullptr), + exec(cQSL &cmds); + + template static bool issmfs(const T1 &item1, const T2 &item2); + template static fnln bool crtdir(const T &path); + template static fnln bool rmfile(const T &file); + template static bool exist(const T &path); + + static fnln bool islink(cQStr &path), + isfile(cQStr &path), + isdir(cQStr &path); + + static bool srestore(uchar mthd, cQStr &usr, cQStr &srcdir, cQStr &trgt, bool sfstab = false), + mkpart(cQStr &dev, ullong start = 0, ullong len = 0, uchar type = Primary), + mcheck(cQStr &item, cQStr &mnts = fload("/proc/self/mounts")), + mount(cQStr &dev, cQStr &mpoint, cQStr &moptns = nullptr), + like(cQStr &txt, cQSL &lst, uchar mode = Norm), + execsrch(cQStr &fname, cQStr &ppath = nullptr), + scopy(uchar mthd, cQStr &usr, cQStr &srcdir), + mkptable(cQStr &dev, cQStr &type = "msdos"), + crtfile(cQStr &path, cQStr &txt = nullptr), + like(int num, cSIL &lst, bool all = false), + access(cQStr &path, uchar mode = Read), + copy(cQStr &srcfile, cQStr &newfile), + setpflag(cQStr &part, cQStr &flags), + rename(cQStr &opath, cQStr &npath), + error(QStr txt, bool dbg = false), + cfgwrite(cQStr &file = cfgfile), + crtrpoint(cQStr &pname), + islnxfs(cQStr &path), + remove(cQStr &path), + lvprpr(bool iudata), + fopen(QFile &file), + umount(cQStr &dev), + isnum(cQStr &txt), + lock(uchar type); + + static void readprttns(QSL &strlst), + readlvdevs(QSL &strlst), + delpart(cQStr &part), + unlock(uchar type), + delay(ushort msec), + print(cQStr &txt), + supgrade(), + pupgrade(), + thrdelay(), + cfgread(), + fssync(), + ldtltr(); + +protected: + void run(); + +private: + sb(); + ~sb(); + + static QTrn *SBtr; + static QSL *ThrdSlst; + static int sblock[4]; + static uchar ThrdType, ThrdChr; + static bool ThrdBool, ThrdRslt; + + static QStr fdbg(cQStr &path1, cQStr &path2 = nullptr), + rlink(cQStr &path, ushort blen); + + static ullong devsize(cQStr &dev); + + static bool rodir(QBA &ba, QUCL &ucl, cQStr &path, uchar hidden = False, cQSL &ilist = QSL(), uchar oplen = 0), + rodir(cQStr &path, QBA &ba, QUCL &ucl, ullong id = 0, uchar oplen = 0), + cerr(uchar type, cQStr &str1, cQStr &str2 = nullptr), + rodir(QUCL &ucl, cQStr &path, uchar oplen = 0), + rodir(QBA &ba, cQStr &path, uchar oplen = 0), + inclcheck(cQSL &ilist, cQStr &item); + + uchar fcomp(cQStr &file1, cQStr &file2); + template fnln bool crthlnk(const T1 &srclnk, const T2 &newlnk); + + bool odir(QBAL &balst, cQStr &path, uchar hidden = False, cQSL &ilist = QSL(), cQStr &ppath = nullptr), + thrdsrestore(uchar mthd, cQStr &usr, cQStr &srcdir, cQStr &trgt, bool sfstab), + cpertime(cQStr &srcitem, cQStr &newitem, bool skel = false), + cpfile(cQStr &srcfile, cQStr &newfile, bool skel = false), + thrdscopy(uchar mthd, cQStr &usr, cQStr &srcdir), + recrmdir(cbstr &path, bool slimit = false), + cplink(cQStr &srclink, cQStr &newlink), + cpdir(cQStr &srcdir, cQStr &newdir), + exclcheck(cQSL &elist, cQStr &item), + lcomp(cQStr &link1, cQStr &link2), + thrdcrtrpoint(cQStr &trgt), + thrdlvprpr(bool iudata), + umnt(cbstr &dev); + + void edetect(QSL &elst, bool spath = false); +}; + +inline QStr sb::left(cQStr &txt, short len) +{ + return txt.length() > qAbs(len) ? txt.left(len > 0 ? len : txt.length() + len) : len > 0 ? txt : nullptr; +} + +inline QStr sb::right(cQStr &txt, short len) +{ + return txt.length() > qAbs(len) ? txt.right(len > 0 ? len : txt.length() + len) : len > 0 ? txt : nullptr; +} + +inline QStr sb::mid(cQStr &txt, ushort start, ushort len) +{ + return txt.length() >= start ? txt.length() - start + 1 > len ? txt.mid(start - 1, len) : txt.right(txt.length() - start + 1) : nullptr; +} + +inline ushort sb::instr(cQStr &txt, cQStr &stxt, ushort start) +{ + return txt.indexOf(stxt, start - 1) + 1; +} + +inline ushort sb::rinstr(cQStr &txt, cQStr &stxt) +{ + return txt.lastIndexOf(stxt) + 1; +} + +inline bool sb::like(int num, cSIL &lst, bool all) +{ + for(int val : lst) + if(all ? num != val : num == val) return ! all; + + return all; +} + +template inline bool sb::exist(const T &path) +{ + struct stat istat; + return ! lstat(bstr(path), &istat); +} + +inline bool sb::islink(cQStr &path) +{ + return QFileInfo(path).isSymLink(); +} + +inline bool sb::isfile(cQStr &path) +{ + return QFileInfo(path).isFile(); +} + +inline bool sb::isdir(cQStr &path) +{ + return QFileInfo(path).isDir(); +} + +template inline uchar sb::stype(const T &path, bool flink) +{ + struct stat istat; + if(flink ? stat(bstr(path), &istat) : lstat(bstr(path), &istat)) return Notexist; + + switch(istat.st_mode & S_IFMT) { + case S_IFREG: + return Isfile; + case S_IFDIR: + return Isdir; + case S_IFLNK: + return Islink; + case S_IFBLK: + return Isblock; + default: + return Unknown; + } +} + +inline ullong sb::fsize(cQStr &path) +{ + return QFileInfo(path).size(); +} + +template ullong sb::dfree(const T &path) +{ + struct statvfs dstat; + return statvfs(bstr(path), &dstat) ? 0 : dstat.f_bavail * dstat.f_bsize; +} + +inline QStr sb::hunit(ullong size) +{ + return size < 1024 ? QStr(QStr::number(size) % " B") : size < 1048576 ? QStr::number(qRound64(size * 100.0 / 1024.0) / 100.0) % " KiB" : size < 1073741824 ? QStr::number(qRound64(size * 100.0 / 1024.0 / 1024.0) / 100.0) % " MiB" : size < 1073741824000 ? QStr::number(qRound64(size * 100.0 / 1024.0 / 1024.0 / 1024.0) / 100.0) % " GiB" : QStr::number(qRound64(size * 100.0 / 1024.0 / 1024.0 / 1024.0 / 1024.0) / 100.0) % " TiB"; +} + +template inline bool sb::issmfs(const T1 &item1, const T2 &item2) +{ + struct stat istat[2]; + return ! (stat(bstr(item1), &istat[0]) || stat(bstr(item2), &istat[1])) && istat[0].st_dev == istat[1].st_dev; +} + +template inline bool sb::crtdir(const T &path) +{ + return mkdir(bstr(path), 0755) ? cerr(Crtdir, path) : true; +} + +template inline bool sb::rmfile(const T &file) +{ + return unlink(bstr(file)) ? cerr(Rmfile, file) : true; +} + +inline bool sb::isnum(cQStr &txt) +{ + for(uchar a(0) ; a < txt.length() ; ++a) + if(! txt.at(a).isDigit()) return false; + + return ! txt.isEmpty(); +} + +#endif diff --git a/libsystemback/sblib_global.hpp b/libsystemback/sblib_global.hpp new file mode 100644 index 0000000..10c6be5 --- /dev/null +++ b/libsystemback/sblib_global.hpp @@ -0,0 +1,30 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef SBLIB_GLOBAL_HPP +#define SBLIB_GLOBAL_HPP + +#include + +#ifdef SYSTEMBACK_LIBRARY +#define SHARED_EXPORT_IMPORT Q_DECL_EXPORT +#else +#define SHARED_EXPORT_IMPORT Q_DECL_IMPORT +#endif + +#endif diff --git a/libsystemback/sbtypedef.hpp b/libsystemback/sbtypedef.hpp new file mode 100644 index 0000000..7bbc86b --- /dev/null +++ b/libsystemback/sbtypedef.hpp @@ -0,0 +1,75 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef SBTYPEDEF_HPP +#define SBTYPEDEF_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class bstr; + +typedef QTranslator QTrn; +typedef QCursor *QCr; +typedef QDesktopWidget *QDW; +typedef QWidget *QWdt; +typedef QTableWidget *QTblW; +typedef QListWidget *QLW; +typedef QPushButton *QPB; +typedef QLineEdit *QLE; +typedef QComboBox *QCbB; +typedef QRadioButton *QRB; +typedef QCheckBox *QCB; +typedef QLabel *QLbl; +typedef QTextStream QTS; +typedef QList QWL; +typedef QList QCbBL; +typedef QList QLbL; +typedef const QStringList cQSL; +typedef QStringList QSL; +typedef QList QBAL; +typedef QList> QUCLL; +typedef QList QLIL; +typedef const QList cQUCL; +typedef QList QUCL; +typedef const std::initializer_list cSIL; +typedef const QString cQStr; +typedef QString QStr; +typedef const QByteArray cQBA; +typedef QByteArray QBA; +typedef const QChar cQChar; +typedef const QRect cQRect; +typedef const QSize cQSize; +typedef const QPoint cQPoint; +typedef const bstr cbstr; +typedef unsigned long long ullong; +typedef long long llong; +typedef const char cchar; +typedef signed char schar; + +#endif diff --git a/libsystemback/version b/libsystemback/version new file mode 100644 index 0000000..5321956 --- /dev/null +++ b/libsystemback/version @@ -0,0 +1 @@ +1.8.402_05.16.2016 diff --git a/libsystemback/version.qrc b/libsystemback/version.qrc new file mode 100644 index 0000000..eee6075 --- /dev/null +++ b/libsystemback/version.qrc @@ -0,0 +1,5 @@ + + + version + + diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1a5a6b7164fbd9c0ef431da830d53d647429eedb GIT binary patch literal 348236 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

    }^cqdUA=X33C-1Rb@;7 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 z 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

    !?_7?jdV)4ddL`KnV1-k# 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 + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "sbscheduler.hpp" +#include + +QDateTime scheduler::cfglmd; + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + sb::ldtltr(); + scheduler s; + + QTimer::singleShot(0, &s, +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + SLOT(main()) +#else + &scheduler::main +#endif + ); + + uchar rv(a.exec()); + return rv; +} diff --git a/sbscheduler/sbscheduler.cpp b/sbscheduler/sbscheduler.cpp new file mode 100644 index 0000000..dbfc738 --- /dev/null +++ b/sbscheduler/sbscheduler.cpp @@ -0,0 +1,145 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "sbscheduler.hpp" +#include + +void scheduler::main() +{ + { + QSL args(qApp->arguments()); + + uchar rv(args.count() != 2 ? 1 + : sb::schdlr[1] != "false" && (sb::schdlr[1] == "everyone" || sb::right(sb::schdlr[1], -1).split(',').contains(args.at(1))) ? 2 + : getuid() + getgid() ? 3 + : sb::isfile("/cdrom/casper/filesystem.squashfs") || sb::isfile("/lib/live/mount/medium/live/filesystem.squashfs") ? 4 + : ! sb::lock(sb::Schdlrlock) ? 5 + : daemon(0, 0) ? 6 + : [&]() -> uchar { + sb::delay(100); + return sb::lock(sb::Schdlrlock) && sb::crtfile(*(pfile = new QStr(sb::isdir("/run") ? "/run/sbscheduler.pid" : "/var/run/sbscheduler.pid")), QStr::number(qApp->applicationPid())) ? 0 : 255; + }()); + + if(rv) + { + if(rv < 255) sb::error("\n " % sb::tr("Cannot start the Systemback scheduler daemon!") % "\n\n " % [rv] { + switch(rv) { + case 1: + return sb::tr("Missing, wrong or too much argument(s)."); + case 2: + return sb::tr("The process is disabled for this user."); + case 3: + return sb::tr("Root privileges are required."); + case 4: + return sb::tr("This system is a Live."); + case 5: + return sb::tr("Already running."); + default: + return sb::tr("Unable to daemonize."); + } + }() % "\n\n"); + + return qApp->exit(rv); + } + } + + QDateTime pflmd(QFileInfo(*pfile).lastModified()); + sleep(290); + + forever + { + sleep(10); + + if(! sb::isfile(*pfile) || (pflmd != QFileInfo(*pfile).lastModified() && sb::fload(*pfile) != QBA::number(qApp->applicationPid()))) + { + sb::unlock(sb::Schdlrlock), sb::exec("sbscheduler " % qApp->arguments().at(1), sb::Silent | sb::Bckgrnd); + break; + } + + if(! sb::isfile(cfgfile) || cfglmd != QFileInfo(cfgfile).lastModified()) sb::cfgread(), + cfglmd = QFileInfo(cfgfile).lastModified(); + + if(! (sb::isdir(sb::sdir[1]) && sb::access(sb::sdir[1], sb::Write))) + sleep(50); + else if(! sb::isfile(sb::sdir[1] % "/.sbschedule")) + sb::crtfile(sb::sdir[1] % "/.sbschedule"); + else if(! sb::schdle[0]) + sleep(1790); + else if(QFileInfo(sb::sdir[1] % "/.sbschedule").lastModified().secsTo(QDateTime::currentDateTime()) / 60 >= sb::schdle[1] * 1440 + sb::schdle[2] * 60 + sb::schdle[3] && sb::lock(sb::Sblock)) + { + if(! sb::lock(sb::Dpkglock) || [] { + if(! sb::lock(sb::Aptlock)) + { + sb::unlock(sb::Dpkglock); + return true; + } + + return false; + }()) + + sb::unlock(sb::Sblock); + else + { + if(sb::schdle[5] || ! sb::execsrch("systemback")) + newrpnt(); + else + { + QStr xauth("/tmp/sbXauthority-" % sb::rndstr()), usrhm(qgetenv("HOME")); + + if((qEnvironmentVariableIsSet("XAUTHORITY") && QFile(qgetenv("XAUTHORITY")).copy(xauth)) || [&] { + QStr path("/home/" % qApp->arguments().at(1) % "/.Xauthority"); + return (sb::isfile(path) && QFile(path).copy(xauth)) || (sb::isfile(path = usrhm % "/.Xauthority") && QFile(path).copy(xauth)); + }()) sb::exec("systemback schedule", sb::Wait, "XAUTHORITY=" % xauth), + sb::rmfile(xauth); + } + + sb::unlock(sb::Sblock), sb::unlock(sb::Dpkglock), sb::unlock(sb::Aptlock), sleep(50); + } + } + } + + qApp->quit(); +} + +void scheduler::newrpnt() +{ + sb::pupgrade(); + + for(cQStr &item : QDir(sb::sdir[1]).entryList(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + if(sb::like(item, {"_.DELETED_*", "_.S00_*"}) && ! sb::remove(sb::sdir[1] % '/' % item)) return; + + for(uchar a(9) ; a > 1 ; --a) + if(! sb::pnames[a].isEmpty() && (a == 9 || a > 2 ? sb::pnumber < a + 2 : sb::pnumber == 3) && ! (QFile::rename(sb::sdir[1] % (a < 9 ? QStr("/S0" % QStr::number(a + 1)) : "/S10") % '_' % sb::pnames[a], sb::sdir[1] % "/.DELETED_" % sb::pnames[a]) && sb::remove(sb::sdir[1] % "/.DELETED_" % sb::pnames[a]))) return; + + QStr dtime(QDateTime().currentDateTime().toString("yyyy-MM-dd,hh.mm.ss")); + + if(sb::crtrpoint(dtime)) + { + for(uchar a(0) ; a < 9 && sb::isdir(sb::sdir[1] % "/S0" % QStr::number(a + 1) % '_' % sb::pnames[a]) ; ++a) + if(! QFile::rename(sb::sdir[1] % "/S0" % QStr::number(a + 1) % '_' % sb::pnames[a], sb::sdir[1] % (a < 8 ? "/S0" : "/S") % QStr::number(a + 2) % '_' % sb::pnames[a])) return; + + if(! QFile::rename(sb::sdir[1] % "/.S00_" % dtime, sb::sdir[1] % "/S01_" % dtime)) return; + } + else if(sb::dfree(sb::sdir[1]) < 104857600) + sb::remove(sb::sdir[1] % "/.S00_" % dtime); + else + return; + + sb::crtfile(sb::sdir[1] % "/.sbschedule"), sb::fssync(); + if(sb::ecache) sb::crtfile("/proc/sys/vm/drop_caches", "3"); +} diff --git a/sbscheduler/sbscheduler.hpp b/sbscheduler/sbscheduler.hpp new file mode 100644 index 0000000..b3b70c5 --- /dev/null +++ b/sbscheduler/sbscheduler.hpp @@ -0,0 +1,52 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef SBSCHEDULER_HPP +#define SBSCHEDULER_HPP + +#include "../libsystemback/sblib.hpp" +#include +#include + +class scheduler : public QObject +{ + Q_OBJECT + +public: + inline scheduler() : pfile(nullptr) {} + ~scheduler(); + + static QDateTime cfglmd; + +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) +public slots: +#endif + void main(); + +private: + QStr *pfile; + + void newrpnt(); +}; + +inline scheduler::~scheduler() +{ + if(pfile) delete pfile; +} + +#endif diff --git a/sbscheduler/sbscheduler.pro b/sbscheduler/sbscheduler.pro new file mode 100644 index 0000000..cfdbbaf --- /dev/null +++ b/sbscheduler/sbscheduler.pro @@ -0,0 +1,46 @@ +QT -= gui +QT += core + +TARGET = sbscheduler + +CONFIG -= app_bundle +CONFIG += console \ + c++11 \ + exceptions_off + +TEMPLATE = app + +DEFINES += _FILE_OFFSET_BITS=64 + +SOURCES += main.cpp \ + sbscheduler.cpp + +HEADERS += sbscheduler.hpp + +QMAKE_CXXFLAGS += -g \ + -fno-rtti \ + -fvisibility=hidden \ + -fvisibility-inlines-hidden \ + -fno-asynchronous-unwind-tables + +CONFIG(debug, debug|release) { + QMAKE_CXXFLAGS_WARN_ON += -Wextra \ + -Wshadow \ + -Werror +} + +QMAKE_LFLAGS += -g \ + -Wl,-rpath=/usr/lib/systemback \ + -Wl,--as-needed \ + -fuse-ld=gold \ + -Wl,-z,relro + +! equals(QMAKE_CXX, clang++) { + QMAKE_CXXFLAGS += -flto + QMAKE_LFLAGS += -flto +} + +LIBS += -L../libsystemback \ + -lsystemback + +INCLUDEPATH = ../libsystemback diff --git a/sbsustart/main.cpp b/sbsustart/main.cpp new file mode 100644 index 0000000..92e27f7 --- /dev/null +++ b/sbsustart/main.cpp @@ -0,0 +1,63 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "sbsustart.hpp" +#include + +uint sustart::uid(getuid()); + +int main(int argc, char *argv[]) +{ +#if QT_VERSION >= QT_VERSION_CHECK(5, 3, 0) + if(sustart::uid && setuid(0) && sustart::uid != geteuid()) + { + QStr arg1(argv[1]); + + if(! sb::like(arg1, {"_systemback_", "_scheduler_"})) + { + sb::error("\n Missing, wrong or too much argument(s).\n\n"); + return 2; + } + + QStr emsg("Cannot start Systemback " % QStr(arg1 == "systemback" ? "graphical user interface" : "scheduler daemon") % "!\n\nUnable to get root permissions."); + + if(seteuid(sustart::uid)) + sb::error("\n " % emsg.replace("\n\n", "\n\n ") % "\n\n"); + else + sb::exec((sb::execsrch("zenity") ? "zenity --title=Systemback --error --text=\"" : "kdialog --title=Systemback --error=\"") % emsg % '\"', sb::Bckgrnd); + + return 1; + } +#endif + + QCoreApplication a(argc, argv); + if(sb::dbglev) sb::dbglev = sb::Nodbg; + sb::ldtltr(); + sustart s; + + QTimer::singleShot(0, &s, +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + SLOT(main()) +#else + &sustart::main +#endif + ); + + uchar rv(a.exec()); + return rv; +} diff --git a/sbsustart/sbsustart.cpp b/sbsustart/sbsustart.cpp new file mode 100644 index 0000000..8c5e1c4 --- /dev/null +++ b/sbsustart/sbsustart.cpp @@ -0,0 +1,140 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "sbsustart.hpp" +#include + +void sustart::main() +{ + bool silent; + + { + QSL args(qApp->arguments()); + + uchar mode([&] { + switch(args.count()) { + case 1: + if(args.at(0).endsWith("systemback-sustart")) + { + silent = false; + return Systemback; + } + + break; + case 2 ... 3: + silent = true; + + if(args.at(1) == "systemback") + return Systemback; + else if(args.at(1) == "finstall") + return Finstall; + else if(args.at(1) == "scheduler") + return Scheduler; + } + + return Unknown; + }()), rv(mode ? [&, mode] { + QStr uname, usrhm; + + if(! uid) + uname = "root", usrhm = "/root"; + else + { + QFile file("/etc/passwd"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr line(file.readLine().trimmed()); + + if(line.contains("x:" % QStr::number(uid) % ':')) + { + QSL uslst(line.split(':')); + uname = uslst.at(0), usrhm = uslst.at(5); + break; + } + } + + if(uname.isEmpty() || usrhm.isEmpty()) return 3; + } + + bool uidinr(getuid()), gidinr(getgid()); + + if(uidinr || gidinr) + { + if((uidinr && setuid(0)) || (gidinr && setgid(0))) return 3; + + auto clrenv([](cQBA &uhm, cQStr &xpath = nullptr) { + QSL excl{"_DISPLAY_", "_PATH_", "_LANG_", "_XAUTHORITY_", "_DBGLEV_"}; + + for(cQStr &cvar : QProcess::systemEnvironment()) + { + QStr var(sb::left(cvar, sb::instr(cvar, "=") - 1)); + if(! (sb::like(var, excl) || qunsetenv(bstr(var)))) return false; + } + + if(! (qputenv("USER", "root") && qputenv("HOME", uhm) && qputenv("LOGNAME", "root") && qputenv("SHELL", "/bin/bash") && (xpath.isEmpty() || qputenv("XAUTHORITY", xpath.toUtf8())))) return false; + return true; + }); + + if(mode == Scheduler) + { + if(! clrenv(usrhm.toUtf8())) return 3; + cmd = new QStr("sbscheduler " % uname); + } + else + { + QStr xauth("/tmp/sbXauthority-" % sb::rndstr()); + if((qEnvironmentVariableIsEmpty("XAUTHORITY") || ! QFile(qgetenv("XAUTHORITY")).copy(xauth)) && ! ((sb::isfile("/home/" % uname % "/.Xauthority") && QFile("/home/" % uname % "/.Xauthority").copy(xauth)) || (sb::isfile(usrhm % "/.Xauthority") && QFile(usrhm % "/.Xauthority").copy(xauth)))) return 4; + if(! clrenv("/root", xauth)) return 3; + cmd = new QStr("systemback " % (mode == Finstall ? QStr("finstall ") : "authorization " % uname)); + } + } + else + cmd = new QStr(mode == Scheduler ? [&]() -> QStr { + qputenv("HOME", usrhm.toUtf8()); + return "sbscheduler " % uname; + }() : "systemback" % QStr(mode == Finstall ? " finstall" : nullptr)); + + return 0; + }() : 2); + + if(rv) + { + if(rv == 2) + sb::error("\n " % sb::tr("Missing, wrong or too much argument(s).") % "\n\n"); + else + { + QStr emsg((mode == Scheduler ? sb::tr("Cannot start the Systemback scheduler daemon!") : sb::tr("Cannot start the Systemback graphical user interface!")) % "\n\n" % (rv == 3 ? sb::tr("Unable to get root permissions.") : sb::tr("Unable to connect to the X server."))); + +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) + if(uid != geteuid() && seteuid(uid)) + sb::error("\n " % emsg.replace("\n\n", "\n\n ") % "\n\n"); + else +#endif + sb::exec((sb::execsrch("zenity") ? "zenity --title=Systemback --error --text=\"" : "kdialog --title=Systemback --error=\"") % emsg % '\"', sb::Bckgrnd); + } + + return qApp->exit(rv); + } + + if(args.count() == 3 && args.at(2) == "gtk+") qputenv("QT_STYLE_OVERRIDE", "gtk+"); + } + + qApp->exit(silent ? sb::exec(*cmd, sb::Silent | sb::Wait, "DBGLEV=0") : sb::exec(*cmd, sb::Wait)); +} diff --git a/sbsustart/sbsustart.hpp b/sbsustart/sbsustart.hpp new file mode 100644 index 0000000..1695c51 --- /dev/null +++ b/sbsustart/sbsustart.hpp @@ -0,0 +1,51 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef SBSUSTART_HPP +#define SBSUSTART_HPP + +#include "../libsystemback/sblib.hpp" +#include + +class sustart : public QObject +{ + Q_OBJECT + +public: + inline sustart() : cmd(nullptr) {} + ~sustart(); + + static uint uid; + +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) +public slots: +#endif + void main(); + +private: + enum { Unknown = 0, Systemback = 1, Finstall = 2, Scheduler = 3 }; + + QStr *cmd; +}; + +inline sustart::~sustart() +{ + if(cmd) delete cmd; +} + +#endif diff --git a/sbsustart/sbsustart.pro b/sbsustart/sbsustart.pro new file mode 100644 index 0000000..64d90ef --- /dev/null +++ b/sbsustart/sbsustart.pro @@ -0,0 +1,46 @@ +QT -= gui +QT += core + +TARGET = sbsustart + +CONFIG -= app_bundle +CONFIG += console \ + c++11 \ + exceptions_off + +TEMPLATE = app + +DEFINES += _FILE_OFFSET_BITS=64 + +SOURCES += main.cpp \ + sbsustart.cpp + +HEADERS += sbsustart.hpp + +QMAKE_CXXFLAGS += -g \ + -fno-rtti \ + -fvisibility=hidden \ + -fvisibility-inlines-hidden \ + -fno-asynchronous-unwind-tables + +CONFIG(debug, debug|release) { + QMAKE_CXXFLAGS_WARN_ON += -Wextra \ + -Wshadow \ + -Werror +} + +QMAKE_LFLAGS += -g \ + -Wl,-rpath=/usr/lib/systemback \ + -Wl,--as-needed \ + -fuse-ld=gold \ + -Wl,-z,relro + +! equals(QMAKE_CXX, clang++) { + QMAKE_CXXFLAGS += -flto + QMAKE_LFLAGS += -flto +} + +LIBS += -L../libsystemback \ + -lsystemback + +INCLUDEPATH = ../libsystemback diff --git a/sbsysupgrade/sbsysupgrade.cpp b/sbsysupgrade/sbsysupgrade.cpp new file mode 100644 index 0000000..90767a0 --- /dev/null +++ b/sbsysupgrade/sbsysupgrade.cpp @@ -0,0 +1,26 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "../libsystemback/sblib.hpp" + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + sb::ldtltr(), sb::supgrade(); + return 0; +} diff --git a/sbsysupgrade/sbsysupgrade.pro b/sbsysupgrade/sbsysupgrade.pro new file mode 100644 index 0000000..64e1a67 --- /dev/null +++ b/sbsysupgrade/sbsysupgrade.pro @@ -0,0 +1,41 @@ +QT -= gui +QT += core + +TARGET = sbsysupgrade + +CONFIG -= app_bundle +CONFIG += console \ + c++11 \ + exceptions_off + +TEMPLATE = app + +DEFINES += _FILE_OFFSET_BITS=64 + +SOURCES += sbsysupgrade.cpp + +QMAKE_CXXFLAGS += -g \ + -fno-rtti \ + -fvisibility=hidden \ + -fvisibility-inlines-hidden \ + -fno-asynchronous-unwind-tables + +CONFIG(debug, debug|release) { + QMAKE_CXXFLAGS_WARN_ON += -Wextra \ + -Wshadow \ + -Werror +} + +QMAKE_LFLAGS += -g \ + -Wl,-rpath=/usr/lib/systemback \ + -Wl,--as-needed \ + -fuse-ld=gold \ + -Wl,-z,relro + +! equals(QMAKE_CXX, clang++) { + QMAKE_CXXFLAGS += -flto + QMAKE_LFLAGS += -flto +} + +LIBS += -L../libsystemback \ + -lsystemback diff --git a/splash.png b/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..dea62430ff3517eed542bf6455e8141867a769c0 GIT binary patch literal 88043 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 + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "systemback-cli.hpp" + +int main(int argc, char *argv[]) +{ + switch(sb::dbglev) { + case sb::Alldbg: + sb::dbglev = sb::Nulldbg; + break; + case sb::Extdbg: + sb::dbglev = sb::Cextdbg; + } + + QCoreApplication a(argc, argv); + sb::ldtltr(); + systemback c; + + QTimer::singleShot(0, &c, +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + SLOT(main()) +#else + &systemback::main +#endif + ); + + uchar rv(a.exec()); + return rv; +} diff --git a/systemback-cli/systemback-cli.cpp b/systemback-cli/systemback-cli.cpp new file mode 100644 index 0000000..84334c4 --- /dev/null +++ b/systemback-cli/systemback-cli.cpp @@ -0,0 +1,664 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "systemback-cli.hpp" +#include +#include +#include +#include + +#ifdef timeout +#undef timeout +#endif + +#ifdef instr +#undef instr +#endif + +void systemback::main() +{ + auto help([] { + return tr("Usage: systemback-cli [option]\n\n" + " Options:\n\n" + " -n, --newbackup create a new restore point\n\n" + " -s, --storagedir get or set the restore points storage directory path\n\n" + " -u, --upgrade upgrade the current system\n" + " remove the unnecessary files and packages\n\n" + " -v, --version output the Systemback version number\n\n" + " -h, --help show this help"); + }); + + uchar rv([&] { + QSL args(qApp->arguments()); + + if(args.count() == 1 || [&] { + if(sb::like(args.at(1), {"_-h_", "_--help_"})) + sb::print("\n " % help() % "\n\n"); + else if(sb::like(args.at(1), {"_-v_", "_--version_"})) + sb::print("\n " % sb::appver() % "\n\n"); + else + return true; + + return false; + }()) return sb::isfile("/cdrom/casper/filesystem.squashfs") || sb::isfile("/lib/live/mount/medium/live/filesystem.squashfs") ? 2 + : getuid() + getgid() ? 3 + : ! sb::lock(sb::Sblock) ? 4 + : ! sb::lock(sb::Dpkglock) ? 5 + : ! sb::lock(sb::Aptlock) ? 6 + : [&] { + auto startui([this](bool crtrpt = false) -> uchar { + if(! (isatty(fileno(stdin)) && isatty(fileno(stdout)) && isatty(fileno(stderr)))) return 255; + initscr(); + + uchar crv(! has_colors() ? 7 + : LINES < 24 || COLS < 80 ? 8 + : [crtrpt, this]() -> uchar { + noecho(), + raw(), + curs_set(0), + attron(A_BOLD), + start_color(), + assume_default_colors(COLOR_BLUE, COLOR_BLACK), + init_pair(1, COLOR_WHITE, COLOR_BLACK), + init_pair(2, COLOR_BLUE, COLOR_BLACK), + init_pair(3, COLOR_GREEN, COLOR_BLACK), + init_pair(4, COLOR_YELLOW, COLOR_BLACK), + init_pair(5, COLOR_RED, COLOR_BLACK), + sbtxt = bstr("Systemback " % tr("basic restore UI")), blgn = COLS / 2 - 6 - tr("basic restore UI").length() / 2; + if(! crtrpt) return clistart(); + sb::pupgrade(); + return newrpnt() ? 0 : sb::dfree(sb::sdir[1]) < 104857600 ? 12 : 13; + }()); + + endwin(); + return crv; + }); + + return args.count() == 1 ? startui() + : sb::like(args.at(1), {"_-n_", "_--newrestorepoint_"}) ? sb::isdir(sb::sdir[1]) && sb::access(sb::sdir[1], sb::Write) ? startui(true) : 14 + : sb::like(args.at(1), {"_-s_", "_--storagedir_"}) ? storagedir(args) + : sb::like(args.at(1), {"_-u_", "_--upgrade_"}) ? [] { + sb::unlock(sb::Dpkglock), sb::unlock(sb::Aptlock), + sb::supgrade(); + return 0; + }() : 1; + }(); + + return 0; + }()); + + if(! sb::like(rv, {0, 255})) sb::error("\n " % [=]() -> QStr { + auto dbg([](cQStr &txt) { + if(! sb::eout.isEmpty()) sb::crtfile("/tmp/systemback-cli_stderr", QStr((sb::dbglev == sb::sb::Cextdbg ? sb::dbginf() : nullptr) % sb::eout).trimmed().replace("\n\n\n", "\n\n").replace("\n ", "\n") % '\n'); + return txt; + }); + + switch(rv) { + case 1: + return help(); + case 2: + return tr("The Systemback command line interface cannot be used on a Live system!"); + case 3: + return tr("Root privileges are required for running the Systemback!"); + case 4: + return tr("An another Systemback process is currently running, please wait until it finishes."); + case 5: + return tr("Unable to get exclusive lock!") % "\n\n " % tr("First, close all package manager."); + case 6: + return tr("The re-synchronization of package index files currently in progress, please wait until it finishes."); + case 7: + return tr("This stupid terminal does not support color!"); + case 8: + return tr("This terminal is too small!") % " (< 80x24)"; + case 9: + return tr("The specified storage directory path has not been set!"); + case 10: + return tr("The restoration is aborted!"); + case 11: + return dbg(tr("The restoration is completed, but an error occurred while reinstalling the GRUB!")); + case 12: + return dbg(tr("The restore point creation is aborted!") % "\n\n " % tr("Not enough free disk space to complete the process.")); + case 13: + return dbg(tr("The restore point creation is aborted!") % "\n\n " % tr("There has been critical changes in the file system during this operation.")); + case 14: + return dbg(tr("The restore points storage directory is not available or not writable!")); + default: + return dbg(tr("The restore point deletion is aborted!") % "\n\n " % tr("An error occurred while during the process.")); + } + }() % "\n\n"); + + qApp->exit(rv); +} + +uchar systemback::clistart() +{ + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)), + printw(bstr("\n\n " % tr("Available restore point(s):") % "\n\n")), + sb::pupgrade(), + attron(COLOR_PAIR(3)); + if(! sb::pnames[0].isEmpty()) printw(bstr(" 1 ─ " % sb::left(sb::pnames[0], COLS - 7) % '\n')); + if(! sb::pnames[1].isEmpty()) printw(bstr(" 2 ─ " % sb::left(sb::pnames[1], COLS - 7) % '\n')); + if(sb::pnumber == 3) attron(COLOR_PAIR(5)); + if(! sb::pnames[2].isEmpty()) printw(bstr(" 3 ─ " % sb::left(sb::pnames[2], COLS - 7) % '\n')); + if(sb::pnumber == 4) attron(COLOR_PAIR(5)); + if(! sb::pnames[3].isEmpty()) printw(bstr(" 4 ─ " % sb::left(sb::pnames[3], COLS - 7) % '\n')); + if(sb::pnumber == 5) attron(COLOR_PAIR(5)); + if(! sb::pnames[4].isEmpty()) printw(bstr(" 5 ─ " % sb::left(sb::pnames[4], COLS - 7) % '\n')); + if(sb::pnumber == 6) attron(COLOR_PAIR(5)); + if(! sb::pnames[5].isEmpty()) printw(bstr(" 6 ─ " % sb::left(sb::pnames[5], COLS - 7) % '\n')); + if(sb::pnumber == 7) attron(COLOR_PAIR(5)); + if(! sb::pnames[6].isEmpty()) printw(bstr(" 7 ─ " % sb::left(sb::pnames[6], COLS - 7) % '\n')); + if(sb::pnumber == 8) attron(COLOR_PAIR(5)); + if(! sb::pnames[7].isEmpty()) printw(bstr(" 8 ─ " % sb::left(sb::pnames[7], COLS - 7) % '\n')); + if(sb::pnumber == 9) attron(COLOR_PAIR(5)); + if(! sb::pnames[8].isEmpty()) printw(bstr(" 9 ─ " % sb::left(sb::pnames[8], COLS - 7) % '\n')); + if(sb::pnumber == 10) attron(COLOR_PAIR(5)); + if(! sb::pnames[9].isEmpty()) printw(bstr(" A ─ " % sb::left(sb::pnames[9], COLS - 7) % '\n')); + attron(COLOR_PAIR(3)); + if(! sb::pnames[10].isEmpty()) printw(bstr(" B ─ " % sb::left(sb::pnames[10], COLS - 7) % '\n')); + if(! sb::pnames[11].isEmpty()) printw(bstr(" C ─ " % sb::left(sb::pnames[11], COLS - 7) % '\n')); + if(! sb::pnames[12].isEmpty()) printw(bstr(" D ─ " % sb::left(sb::pnames[12], COLS - 7) % '\n')); + if(! sb::pnames[13].isEmpty()) printw(bstr(" E ─ " % sb::left(sb::pnames[13], COLS - 7) % '\n')); + if(! sb::pnames[14].isEmpty()) printw(bstr(" F ─ " % sb::left(sb::pnames[14], COLS - 7) % '\n')); + printw(bstr("\n G ─ " % tr("Create new") % "\n Q ─ " % tr("Quit") % '\n')), + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + if(! sb::eout.isEmpty()) sb::eout.clear(); + if(! pname.isEmpty()) pname.clear(); + + do { + int gtch(getch()); + + switch(gtch) { + case '1' ... '9': + { + QStr cstr(gtch); + cpoint = "S0" % cstr; + uchar num(cstr.toUShort() - 1); + if(! sb::pnames[num].isEmpty()) pname = sb::pnames[num]; + break; + } + case 'a': + case 'A': + cpoint = "S10"; + if(! sb::pnames[9].isEmpty()) pname = sb::pnames[9]; + break; + case 'b': + case 'B': + cpoint = "H01"; + if(! sb::pnames[10].isEmpty()) pname = sb::pnames[10]; + break; + case 'c': + case 'C': + cpoint = "H02"; + if(! sb::pnames[11].isEmpty()) pname = sb::pnames[11]; + break; + case 'd': + case 'D': + cpoint = "H03"; + if(! sb::pnames[12].isEmpty()) pname = sb::pnames[12]; + break; + case 'e': + case 'E': + cpoint = "H04"; + if(! sb::pnames[13].isEmpty()) pname = sb::pnames[13]; + break; + case 'f': + case 'F': + cpoint = "H05"; + if(! sb::pnames[14].isEmpty()) pname = sb::pnames[14]; + break; + case 'g': + case 'G': + if(! newrpnt()) return sb::dfree(sb::sdir[1]) < 104857600 ? 12 : 13; + clear(); + return clistart(); + case 'q': + case 'Q': + return 0; + } + } while(pname.isEmpty()); + + clear(), + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)), + printw(bstr("\n\n " % tr("Selected restore point:"))), + attron(COLOR_PAIR(4)), + printw(bstr("\n\n " % sb::left(pname, COLS - 3))), + attron(COLOR_PAIR(3)), + printw(bstr("\n\n 1 ─ " % tr("Delete") % "\n 2 ─ " % tr("System restore") % " ▸\n B ─ ◂ " % tr("Back"))), + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + + forever + switch(getch()) { + case '1': + pset(2), progress(Start); + + if(! (sb::rename(sb::sdir[1] % '/' % cpoint % '_' % pname, sb::sdir[1] % "/.DELETED_" % pname) && sb::remove(sb::sdir[1] % "/.DELETED_" % pname))) + { + progress(Stop); + return 15; + } + + emptycache(), + progress(Stop), + clear(); + return clistart(); + case '2': + clear(); + return restore(); + case 'b': + case 'B': + clear(); + return clistart(); + } +} + +uchar systemback::storagedir(cQSL &args) +{ + if(args.count() == 2) + sb::print("\n " % sb::sdir[0] % "\n\n"); + else + { + QStr ndir; + + { + QStr cpath, idir(args.at(2)); + + if(args.count() > 3) + for(uchar a(3) ; a < args.count() ; ++a) idir.append(' ' % args.at(a)); + + QSL excl{"*/Systemback_", "*/Systemback/*", "*/_", "_/bin_", "_/bin/*", "_/boot_", "_/boot/*", "_/cdrom_", "_/cdrom/*", "_/dev_", "_/dev/*", "_/etc_", "_/etc/*", "_/lib_", "_/lib/*", "_/lib32_", "_/lib32/*", "_/lib64_", "_/lib64/*", "_/opt_", "_/opt/*", "_/proc_", "_/proc/*", "_/root_", "_/root/*", "_/run_", "_/run/*", "_/sbin_", "_/sbin/*", "_/selinux_", "_/selinux/*", "_/snap_", "_/snap/*", "_/srv_", "_/srv/*_", "_/sys_", "_/sys/*", "_/tmp_", "_/tmp/*", "_/usr_", "_/usr/*", "_/var_", "_/var/*"}; + if(sb::like(ndir = QDir::cleanPath(idir), excl) || sb::like(cpath = QDir(idir).canonicalPath(), excl) || sb::like(sb::fload("/etc/passwd"), {"*:" % idir % ":*","*:" % ndir % ":*", "*:" % cpath % ":*"}) || ! sb::islnxfs(cpath)) return 9; + } + + if(sb::sdir[0] != ndir) + { + if(sb::isdir(sb::sdir[1])) + { + QSL dlst(QDir(sb::sdir[1]).entryList(QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot)); + + if(! dlst.count()) + rmdir(bstr(sb::sdir[1])); + else if(dlst.count() == 1 && sb::isfile(sb::sdir[1] % "/.sbschedule")) + sb::remove(sb::sdir[1]); + } + + sb::sdir[0] = ndir, sb::sdir[1] = sb::sdir[0] % "/Systemback", sb::ismpnt = ! sb::issmfs(sb::sdir[0], sb::sdir[0].count('/') == 1 ? "/" : sb::left(sb::sdir[0], sb::rinstr(sb::sdir[0], "/") - 1)); + if(! sb::cfgwrite()) return 9; + } + + if(! (sb::isdir(sb::sdir[1]) || sb::crtdir(sb::sdir[1]))) sb::rename(sb::sdir[1], sb::sdir[1] % '_' % sb::rndstr()), + sb::crtdir(sb::sdir[1]); + + if(! sb::isfile(sb::sdir[1] % "/.sbschedule")) sb::crtfile(sb::sdir[1] % "/.sbschedule"); + sb::print("\n " % twrp(tr("The specified storage directory path is set.")) % "\n\n"); + } + + return 0; +} + +void systemback::emptycache() +{ + pset(1), + sb::fssync(); + if(sb::ecache) sb::crtfile("/proc/sys/vm/drop_caches", "3"); +} + +bool systemback::newrpnt() +{ + auto end([this](bool rv = true) { + progress(Stop); + return rv; + }); + + progress(Start); + + for(cQStr &item : QDir(sb::sdir[1]).entryList(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + if(sb::like(item, {"_.DELETED_*", "_.S00_*"})) + { + if(prun.type != 3) pset(3); + if(! sb::remove(sb::sdir[1] % '/' % item)) return end(false); + } + + for(uchar a(9) ; a > 1 ; --a) + if(! sb::pnames[a].isEmpty() && (a == 9 || a > 2 ? sb::pnumber < a + 2 : sb::pnumber == 3)) + { + if(prun.type != 4) pset(4); + if(! (sb::rename(sb::sdir[1] % (a < 9 ? QStr("/S0" % QStr::number(a + 1)) : "/S10") % '_' % sb::pnames[a], sb::sdir[1] % "/.DELETED_" % sb::pnames[a]) && sb::remove(sb::sdir[1] % "/.DELETED_" % sb::pnames[a]))) return end(false); + } + + pset(5); + QStr dtime(QDateTime().currentDateTime().toString("yyyy-MM-dd,hh.mm.ss")); + if(! sb::crtrpoint(dtime)) return end(false); + + for(uchar a(0) ; a < 9 && sb::isdir(sb::sdir[1] % "/S0" % QStr::number(a + 1) % '_' % sb::pnames[a]) ; ++a) + if(! sb::rename(sb::sdir[1] % "/S0" % QStr::number(a + 1) % '_' % sb::pnames[a], sb::sdir[1] % (a < 8 ? "/S0" : "/S") % QStr::number(a + 2) % '_' % sb::pnames[a])) return end(false); + + if(! sb::rename(sb::sdir[1] % "/.S00_" % dtime, sb::sdir[1] % "/S01_" % dtime)) return end(false); + sb::crtfile(sb::sdir[1] % "/.sbschedule"), + emptycache(); + return end(); +} + +uchar systemback::restore() +{ + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)); + uchar mthd(0), fsave(0), greinst(0); + + { + bstr rtxt[3]{bstr("\n\n " % tr("Restore with the following restore point:")), bstr("\n\n " % pname), bstr("\n\n " % tr("Restore with the following restore method:"))}; + printw(rtxt[0]), + attron(COLOR_PAIR(4)), + printw(rtxt[1]), + attron(COLOR_PAIR(1)), + printw(rtxt[2]), + attron(COLOR_PAIR(3)), + printw(bstr("\n\n 1 ─ " % tr("Full restore") % "\n 2 ─ " % tr("System files restore"))), + attron(COLOR_PAIR(1)), + printw(bstr("\n\n " % tr("Users configuration files restore"))), + attron(COLOR_PAIR(3)), + printw(bstr("\n\n 3 ─ " % tr("Complete configuration files restore") % "\n 4 ─ " % tr("Keep newly installed configuration files") % "\n\n C ─ " % tr("Cancel"))), + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + + do { + int gtch(getch()); + + switch(gtch) { + case 'c': + case 'C': + clear(); + return clistart(); + case '1' ... '4': + mthd = QStr(gtch).toUShort(); + } + } while(! mthd); + + clear(), + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)), + printw(rtxt[0]), + attron(COLOR_PAIR(4)), + printw(rtxt[1]), + attron(COLOR_PAIR(1)), + printw(rtxt[2]), + attron(COLOR_PAIR(4)); + + printw(bstr("\n\n " % [mthd] { + switch(mthd) { + case 1: + return tr("Full restore"); + case 2: + return tr("System files restore"); + case 3: + return tr("Complete configuration files restore"); + default: + return tr("Configuration files restore"); + } + }())); + + attron(COLOR_PAIR(3)); + + if(mthd < 3) + { + if(sb::isfile("/etc/fstab")) + { + printw(bstr("\n\n " % tr("You want to keep the current fstab file?") % ' ' % tr("(Y/N)"))), + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + + do { + QChar gtch(getch()); + + if(sb::like(gtch.toUpper(), {"_Y_", '_' % yn[0] % '_'})) + fsave = 1; + else if(sb::like(gtch.toUpper(), {"_N_", '_' % yn[1] % '_'})) + fsave = 2; + } while(! fsave); + + clear(), + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)), + printw(rtxt[0]), + attron(COLOR_PAIR(4)), + printw(rtxt[1]), + attron(COLOR_PAIR(1)), + printw(rtxt[2]), + attron(COLOR_PAIR(4)), + printw(bstr("\n\n " % (mthd == 1 ? tr("Full restore") : tr("System files restore")) % "\n\n " % tr("You want to keep the current fstab file?") % ' ' % tr("(Y/N)") % ' ' % yn[fsave == 1 ? 0 : 1])), + attron(COLOR_PAIR(3)); + + if(sb::execsrch("update-grub2", sb::sdir[1] % '/' % cpoint % '_' % pname)) + { + printw(bstr("\n\n " % tr("Reinstall the GRUB 2 bootloader?") % ' ' % tr("(Y/N)"))), + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + + do { + QChar gtch(getch()); + + if(sb::like(gtch.toUpper(), {"_Y_", '_' % yn[0] % '_'})) + greinst = 1; + else if(sb::like(gtch.toUpper(), {"_N_", '_' % yn[1] % '_'})) + greinst = 2; + } while(! greinst); + + clear(), + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)), + printw(rtxt[0]), + attron(COLOR_PAIR(4)), + printw(rtxt[1]), + attron(COLOR_PAIR(1)), + printw(rtxt[2]), + attron(COLOR_PAIR(4)), + printw(bstr("\n\n " % (mthd == 1 ? tr("Full restore") : tr("System files restore")) % "\n\n " % tr("You want to keep the current fstab file?") % ' ' % tr("(Y/N)") % ' ' % yn[fsave == 1 ? 0 : 1] % "\n\n " % tr("Reinstall the GRUB 2 bootloader?") % ' ' % tr("(Y/N)") % ' ' % yn[greinst == 1 ? 0 : 1])); + } + } + else if(sb::execsrch("update-grub2", sb::sdir[1] % '/' % cpoint % '_' % pname)) + { + printw(bstr("\n\n " % tr("Reinstall the GRUB 2 bootloader?") % ' ' % tr("(Y/N)"))), + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + + do { + QChar gtch(getch()); + + if(sb::like(gtch.toUpper(), {"_Y_", '_' % yn[0] % '_'})) + greinst = 1; + else if(sb::like(gtch.toUpper(), {"_N_", '_' % yn[1] % '_'})) + greinst = 2; + } while(! greinst); + + clear(), + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)), + printw(rtxt[0]), + attron(COLOR_PAIR(4)), + printw(rtxt[1]), + attron(COLOR_PAIR(1)), + printw(rtxt[2]), + attron(COLOR_PAIR(4)), + printw(bstr("\n\n " % (mthd == 1 ? tr("Full restore") : tr("System files restore")) % "\n\n " % tr("Reinstall the GRUB 2 bootloader?") % ' ' % tr("(Y/N)") % ' ' % yn[greinst == 1 ? 0 : 1])); + } + } + } + + attron(COLOR_PAIR(3)), + printw(bstr("\n\n " % tr("Start the restore?") % ' ' % tr("(Y/N)"))), + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + bool rstart(false); + + do { + QChar gtch(getch()); + + if(sb::like(gtch.toUpper(), {"_Y_", '_' % yn[0] % '_'})) + rstart = true; + else if(sb::like(gtch.toUpper(), {"_N_", '_' % yn[1] % '_'})) + return 10; + } while(! rstart); + + pset(mthd + 5), + progress(Start); + bool sfstab(fsave == 1); + sb::srestore(mthd, nullptr, sb::sdir[1] % '/' % cpoint % '_' % pname, nullptr, sfstab); + { bool err(greinst == 1 && sb::exec("sh -c \"update-grub ; grub-install --force " % sb::gdetect() % '\"', sb::Silent)); + progress(Stop); + if(err) return 11; } + clear(), + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)); + + printw(bstr("\n\n " % twrp([mthd] { + switch(mthd) { + case 1: + return tr("The full system restoration is completed."); + case 2: + return tr("The system files restoration are completed."); + case 3: + return tr("The users configuration files full restoration are completed."); + default: + return tr("The users configuration files restoration are completed."); + } + }()))); + + attron(COLOR_PAIR(3)), + printw(bstr("\n\n " % twrp(mthd < 3 ? tr("Press 'ENTER' key to reboot the computer, or 'Q' to quit.") : tr("Press 'ENTER' key to quit.")))), + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + + forever + switch(getch()) { + case '\n': + if(mthd < 3) sb::exec(sb::execsrch("reboot") ? "reboot" : "systemctl reboot", sb::Bckgrnd); + return 0; + case 'q': + case 'Q': + if(mthd < 3) return 0; + } +} + +void systemback::pset(uchar type) +{ + prun.txt = [type]() -> QStr { + switch(type) { + case 1: + return sb::ecache ? tr("Emptying cache") : tr("Flushing filesystem buffers"); + case 2: + return tr("Deleting restore point"); + case 3: + return tr("Deleting incomplete restore point"); + case 4: + return tr("Deleting old restore point(s)"); + case 5: + return tr("Creating restore point"); + case 6: + return tr("Restoring the full system"); + case 7: + return tr("Restoring the system files"); + default: + return tr("Restoring the users configuration files"); + } + }(); + + prun.type = type; +} + +void systemback::progress(uchar status) +{ + switch(status) { + case Start: + connect(ptimer = new QTimer, SIGNAL(timeout()), this, SLOT(progress())), + QTimer::singleShot(0, this, SLOT(progress())), + ptimer->start(2000); + if(sb::dbglev == sb::Nulldbg) sb::dbglev = sb::Errdbg; + return; + case Inprog: + for(uchar a(0) ; a < 4 ; ++a) + { + switch(prun.type) { + case 5 ... 9: + { + schar cperc(sb::Progress); + + if(cperc == -1) + prun.pbar = prun.pbar == " (?%)" ? " ( %)" : " (?%)"; + else if(cperc > 99) + { + if(prun.cperc < 100) prun.cperc = 100, prun.pbar = " (100%)"; + } + else if(prun.cperc < cperc) + prun.pbar = " (" % QStr::number(prun.cperc = cperc) % "%)"; + else if(! (prun.cperc || prun.pbar == " (0%)")) + prun.pbar = " (0%)"; + else if(sb::like(99, {cperc, prun.cperc}, true)) + prun.pbar = " (100%)", prun.cperc = 100; + + break; + } + default: + if(! prun.pbar.isEmpty()) prun.pbar.clear(); + } + + if(! ptimer) return; + clear(), + attron(COLOR_PAIR(2)), + mvprintw(0, blgn, sbtxt), + attron(COLOR_PAIR(1)); + + mvprintw(LINES / 2 - 1, COLS / 2 - (prun.txt.length() + prun.pbar.length() + 4) / 2, bstr(prun.txt % prun.pbar % [a] { + switch(a) { + case 0: + return " "; + case 1: + return " . "; + case 2: + return " .. "; + default: + return " ..."; + } + }())); + + attron(COLOR_PAIR(2)), + mvprintw(LINES - 1, COLS - 13, "Kendek, GPLv3"), + refresh(); + if(a < 3) sb::delay(500); + } + + break; + case Stop: + delete ptimer, ptimer = nullptr; + prun.txt.clear(); + if(! prun.pbar.isEmpty()) prun.pbar.clear(); + if(prun.cperc) prun.cperc = 0; + if(sb::Progress > -1) sb::Progress = -1; + } +} diff --git a/systemback-cli/systemback-cli.hpp b/systemback-cli/systemback-cli.hpp new file mode 100644 index 0000000..3bdb363 --- /dev/null +++ b/systemback-cli/systemback-cli.hpp @@ -0,0 +1,83 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef SYSTEMBACKCLI_HPP +#define SYSTEMBACKCLI_HPP + +#include "../libsystemback/sblib.hpp" +#include + +class systemback : public QObject +{ + Q_OBJECT + +public: + systemback(); + ~systemback(); + +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) +public slots: +#endif + void main(); + +private: + enum { Inprog = 0, Start = 1, Stop = 2 }; + + struct { + QStr txt, pbar; + uchar type, cperc; + } prun; + + QTimer *ptimer; + QStr pname, cpoint; + QChar yn[2]; + bstr sbtxt; + uchar blgn; + + QStr twrp(cQStr &txt); + uchar storagedir(cQSL &args); + + uchar clistart(), + restore(); + + bool newrpnt(); + + void pset(uchar type), + emptycache(); + +private slots: + void progress(uchar status = Inprog); +}; + +inline systemback::systemback() : ptimer(nullptr) +{ + QStr yns(tr("(Y/N)")); + yn[0] = yns.at(1), yn[1] = yns.at(3), prun.cperc = 0; +} + +inline systemback::~systemback() +{ + if(ptimer) delete ptimer; +} + +inline QStr systemback::twrp(cQStr &txt) +{ + return txt.length() > 78 ? QStr(txt).replace(txt.left(78).lastIndexOf(' '), 1, "\n ") : txt; +} + +#endif diff --git a/systemback-cli/systemback-cli.pro b/systemback-cli/systemback-cli.pro new file mode 100644 index 0000000..8053326 --- /dev/null +++ b/systemback-cli/systemback-cli.pro @@ -0,0 +1,45 @@ +QT -= gui +QT += core + +TARGET = systemback-cli + +CONFIG -= app_bundle +CONFIG += console \ + c++11 \ + exceptions_off + +TEMPLATE = app + +DEFINES += _FILE_OFFSET_BITS=64 + +SOURCES += main.cpp \ + systemback-cli.cpp + +HEADERS += systemback-cli.hpp + +QMAKE_CXXFLAGS += -g \ + -fno-rtti \ + -fvisibility=hidden \ + -fvisibility-inlines-hidden \ + -fno-asynchronous-unwind-tables + +CONFIG(debug, debug|release) { + QMAKE_CXXFLAGS_WARN_ON += -Wextra \ + -Wshadow \ + -Werror +} + +QMAKE_LFLAGS += -g \ + -Wl,-rpath=/usr/lib/systemback \ + -Wl,--as-needed \ + -fuse-ld=gold \ + -Wl,-z,relro + +! equals(QMAKE_CXX, clang++) { + QMAKE_CXXFLAGS += -flto + QMAKE_LFLAGS += -flto +} + +LIBS += -L../libsystemback \ + -lsystemback \ + -lncursesw diff --git a/systemback-kde.desktop b/systemback-kde.desktop new file mode 100644 index 0000000..5786e38 --- /dev/null +++ b/systemback-kde.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Name=Systemback +Comment=Simple system backup and restore application with extra features +Comment[hu]=Egyszerű rendszermentő és visszaállító alkalmazás további extra funkciókkal +Exec=/usr/lib/systemback/sbsustart systemback +Type=Application +Icon=systemback +Terminal=false +OnlyShowIn=KDE; +Categories=System; diff --git a/systemback.desktop b/systemback.desktop new file mode 100644 index 0000000..e0b122e --- /dev/null +++ b/systemback.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Name=Systemback +Comment=Simple system backup and restore application with extra features +Comment[hu]=Egyszerű rendszermentő és visszaállító alkalmazás további extra funkciókkal +Exec=/usr/lib/systemback/sbsustart systemback gtk+ +Type=Application +Icon=systemback +Terminal=false +NotShowIn=KDE; +Categories=System; diff --git a/systemback.pro b/systemback.pro new file mode 100644 index 0000000..48f725c --- /dev/null +++ b/systemback.pro @@ -0,0 +1,33 @@ +TEMPLATE = subdirs + +SUBDIRS += libsystemback \ + sbscheduler \ + sbsysupgrade \ + sbsustart \ + systemback \ + systemback-cli + +sbscheduler.depends = libsystemback +sbsysupgrade.depends = libsystemback +sbsustart.depends = libsystemback +systemback.depends = libsystemback +systemback-cli.depends = libsystemback + +TRANSLATIONS = lang/systemback_hu.ts \ + lang/systemback_ar_EG.ts \ + lang/systemback_ca_ES.ts \ + lang/systemback_cs.ts \ + lang/systemback_da_DK.ts \ + lang/systemback_de.ts \ + lang/systemback_en_GB.ts \ + lang/systemback_es.ts \ + lang/systemback_fi.ts \ + lang/systemback_fr.ts \ + lang/systemback_gl_ES.ts \ + lang/systemback_id.ts \ + lang/systemback_pt_BR.ts \ + lang/systemback_ro.ts \ + lang/systemback_ru.ts \ + lang/systemback_tr.ts \ + lang/systemback_uk.ts \ + lang/systemback_zh_CN.ts diff --git a/systemback/bttnevent.hpp b/systemback/bttnevent.hpp new file mode 100644 index 0000000..4e62fb8 --- /dev/null +++ b/systemback/bttnevent.hpp @@ -0,0 +1,43 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef BTTNEVENT_HPP +#define BTTNEVENT_HPP + +#include + +class bttnevent : public QPushButton +{ + Q_OBJECT + +public: + inline bttnevent(QWidget *prnt) : QPushButton(prnt) {} + +protected: + void leaveEvent(QEvent *); + +signals: + void Mouse_Leave(); +}; + +inline void bttnevent::leaveEvent(QEvent *) +{ + emit Mouse_Leave(); +} + +#endif diff --git a/systemback/chckbxevent.hpp b/systemback/chckbxevent.hpp new file mode 100644 index 0000000..a2082ea --- /dev/null +++ b/systemback/chckbxevent.hpp @@ -0,0 +1,50 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef CHCKBXEVENT_HPP +#define CHCKBXEVENT_HPP + +#include + +class chckbxevent : public QCheckBox +{ + Q_OBJECT + +public: + inline chckbxevent(QWidget *prnt) : QCheckBox(prnt) {} + +protected: + void enterEvent(QEvent *), + leaveEvent(QEvent *); + +signals: + void Mouse_Enter(); + void Mouse_Leave(); +}; + +inline void chckbxevent::enterEvent(QEvent *) +{ + emit Mouse_Enter(); +} + +inline void chckbxevent::leaveEvent(QEvent *) +{ + emit Mouse_Leave(); +} + +#endif diff --git a/systemback/lblevent.hpp b/systemback/lblevent.hpp new file mode 100644 index 0000000..67f63e5 --- /dev/null +++ b/systemback/lblevent.hpp @@ -0,0 +1,94 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef LBLEVENT_HPP +#define LBLEVENT_HPP + +#include +#include + +class lblevent : public QLabel +{ + Q_OBJECT + +public: + inline lblevent(QWidget *prnt) : QLabel(prnt) {} + static ushort MouseX, MouseY; + +protected: + void mouseDoubleClickEvent(QMouseEvent *ev), + mouseReleaseEvent(QMouseEvent *ev), + mousePressEvent(QMouseEvent *ev), + mouseMoveEvent(QMouseEvent *), + enterEvent(QEvent *), + leaveEvent(QEvent *); + +private: + bool MousePressed; + +signals: + void Mouse_Released(); + void Mouse_DblClick(); + void Mouse_Pressed(); + void Mouse_Click(); + void Mouse_Enter(); + void Mouse_Leave(); + void Mouse_Move(); +}; + +inline void lblevent::mousePressEvent(QMouseEvent *ev) +{ + if(ev->button() == Qt::LeftButton) + { + MouseX = ev->x(), MouseY = ev->y(), MousePressed = true; + emit Mouse_Pressed(); + } +} + +inline void lblevent::mouseMoveEvent(QMouseEvent *) +{ + if(MousePressed) emit Mouse_Move(); +} + +inline void lblevent::mouseReleaseEvent(QMouseEvent *ev) +{ + if(ev->button() == Qt::LeftButton) + { + MousePressed = false; + emit Mouse_Released(); + } + + emit Mouse_Click(); +} + +inline void lblevent::mouseDoubleClickEvent(QMouseEvent *ev) +{ + if(ev->button() == Qt::LeftButton) emit Mouse_DblClick(); +} + +inline void lblevent::enterEvent(QEvent *) +{ + emit Mouse_Enter(); +} + +inline void lblevent::leaveEvent(QEvent *) +{ + emit Mouse_Leave(); +} + +#endif diff --git a/systemback/lndtevent.hpp b/systemback/lndtevent.hpp new file mode 100644 index 0000000..253809c --- /dev/null +++ b/systemback/lndtevent.hpp @@ -0,0 +1,44 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef LNDTEVENT_HPP +#define LNDTEVENT_HPP + +#include + +class lndtevent : public QLineEdit +{ + Q_OBJECT + +public: + inline lndtevent(QWidget *prnt) : QLineEdit(prnt) {} + +protected: + void focusOutEvent(QFocusEvent *ev); + +signals: + void Focus_Out(); +}; + +inline void lndtevent::focusOutEvent(QFocusEvent *ev) +{ + QLineEdit::focusOutEvent(ev); + emit Focus_Out(); +} + +#endif diff --git a/systemback/main.cpp b/systemback/main.cpp new file mode 100644 index 0000000..0af8ddd --- /dev/null +++ b/systemback/main.cpp @@ -0,0 +1,40 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "systemback.hpp" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + sb::ldtltr(); + + uchar rv([&a] { + if(qgetenv("XAUTHORITY").startsWith("/home/") && ! getuid()) + { + sb::error("\n " % sb::tr("Unsafe X Window authorization!") % "\n\n " % sb::tr("Please do not use 'sudo' command.") % "\n\n"); + return 1; + } + + systemback w; + w.fscrn ? w.showFullScreen() : w.show(); + return a.exec(); + }()); + + return rv; +} diff --git a/systemback/pictures.qrc b/systemback/pictures.qrc new file mode 100644 index 0000000..4d26378 --- /dev/null +++ b/systemback/pictures.qrc @@ -0,0 +1,26 @@ + + + pictures/back.png + pictures/dialogerror.png + pictures/dialoginfo.png + pictures/dialogquestion.png + pictures/dir.png + pictures/dirx.png + pictures/down.png + pictures/error.png + pictures/isdir.png + pictures/leftarrow.png + pictures/leftgreenarrow.png + pictures/logo.png + pictures/menuback.png + pictures/menunext.png + pictures/next.png + pictures/ok.png + pictures/passwordlogo.png + pictures/refresh.png + pictures/resize.png + pictures/rightarrow.png + pictures/systemback.png + pictures/up.png + + diff --git a/systemback/pictures/back.png b/systemback/pictures/back.png new file mode 100644 index 0000000000000000000000000000000000000000..718de09086b577895da24e2329d14d39fef54b09 GIT binary patch literal 809 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 literal 0 HcmV?d00001 diff --git a/systemback/pictures/dialoginfo.png b/systemback/pictures/dialoginfo.png new file mode 100644 index 0000000000000000000000000000000000000000..e7054a4eb6cfaa8eec28eccbe32072b5cca508ed GIT binary patch literal 12743 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 N002ovPDHLkV1k3$L)ZWS literal 0 HcmV?d00001 diff --git a/systemback/pictures/dialogquestion.png b/systemback/pictures/dialogquestion.png new file mode 100644 index 0000000000000000000000000000000000000000..7101a880541c8fc32579d52c0d0d6fd976e18a6b GIT binary patch literal 16052 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 D-0u=S literal 0 HcmV?d00001 diff --git a/systemback/pictures/dirx.png b/systemback/pictures/dirx.png new file mode 100644 index 0000000000000000000000000000000000000000..88abcd519aa316e43eff6bd05fa57533a28a6c9d GIT binary patch literal 679 zcmV;Y0$BZtP)F5GpS@IOG5T0yIfP zK~zY`ot8^$6hRPxzh3+WGfKP!1P@^aje;SYhhPqZ2Os#jiAOQ{JtC4#j-EWM{sIwv z283jdA@0VwiAS-E96Wf@_OR7Vr+2nzO+nK$)6`eh)m2@Cr4WI-z$1YL|1DgPMGikt z2|O1#QL1a*MYfinsCE^t4C_a->RX*DvLF!CMvRRQk- zcQRN9Fc!!U8)@oJjv_taM%E8G7O3UH;pMRAU=i3lBK-RA0G@|oh;}k>U=^4c5&jLh zok2Th4Tvq~1%dsFG;{)clBoJ)aS>%jjvnZNR>=?G&#*;P2G=}at;m*8+72G(uof@W zO5k(AlmCD_VA8;{zaYafnFu~RLWK@9Vt`Eti#fa-$Ra(cCU7$_O$&mu5#Ssii$9S^r9ZLluT61Y0bZ;P(`rgcT&jfIn;-apM0JFM9Kjrafn N002ovPDHLkV1iD;BLM&a literal 0 HcmV?d00001 diff --git a/systemback/pictures/down.png b/systemback/pictures/down.png new file mode 100644 index 0000000000000000000000000000000000000000..d6ca6e31cf96cc29ee49584e8532ea0a74f0b60b GIT binary patch literal 802 zcmV+-1Ks?IP)fa00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-Ut{BE)_2Q_w4`x0MJbqS2;VR5Eu_aRO-}A(f?AP+?$-B%`Lb`Mr2N?!3A4-W{heoW(uwoO{0Ccfa@h zJLeXuN)vbwhjAm9SqG^~y07N~y&O`N3e3kw>?~51F5(XSgtu`B*K(O}&ZUqV;`1WwObL;je{ZN z$6V%fJ;ayder&^*me!jrQk5=Yam#UjB!ryAO{@ujZ*F;=Ya{pu4^0zSGsWg;g} zrg$QcL`Kgg&fr@d%4PnzH{ptYMJQEi6ffXW+@x^j^miX(Ol-^O^MG)Kp!Cw;~6}Gb#c^dy8ZYX$M8um^NB%Ee*;;dM#!4T{3qk7 zEa*dg0-xj4T;`L*9$Sa*QzagG2wtCEAYXATM07*qoM6N<$g6<)7H2?qr literal 0 HcmV?d00001 diff --git a/systemback/pictures/error.png b/systemback/pictures/error.png new file mode 100644 index 0000000000000000000000000000000000000000..b98679136147ff518fdf47827314f943d88be8f0 GIT binary patch literal 4971 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 literal 0 HcmV?d00001 diff --git a/systemback/pictures/isdir.png b/systemback/pictures/isdir.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9243b6f46fc754b31c80eed00f7ce1117e3b11 GIT binary patch literal 554 zcmV+_0@eMAP)F5;_35N&)}?02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00ELoL_t(Y$Fe}{ z+k6@exQc1}<1-#$IZABgHp5t`>5w;3VkftG7WZ++|KS5}MTw_fk<^KNC%5@BULAlO z&SE9E`C7M3-3(?c`C+k%`6%%wxB0I?t@+ynM!p-?aUn{4O|@ID^hgfpun0|V^YN-U ztzZ1c(Nz1pZ*p~B7E&Fep)fbfU?|KaoElJIDoxtO5D)QbK>p2y)d2<85?&4{@GRk7 zwcNh(3y%}Fs-O3bdr{&?iW1vcu72JZ*0BVs?t%^6#`m7=`bL!a0;#S@QQ`@%mgIaZ>?&%Mer-} zWyfk+wnl-(oen+?K`qOc<2J6~Pmuyi0m1iT2s<&ZVB$`tOdkAFyv>8}3iB37L#T^v z#wTphMdA(>>`pwxDqSY-K-%oaYpk>YB=acN2m`ob0g2mL`J9WmZh=YWy7Kw&J2}Z+X*Q?7UQT_&c@f_P!iw|)v%huva1%v-T%nf$)1XYB-M_4|OX>_Q- zY4qD{&I4QV6f4?zz)!4CLm2J)SBZw=9>#XOYjaddip-&DKdUrIe9rfZmu1|E%_Nau zzvX*HsFXlcP5e$n*nzv16R4+C&Jmoglt5EWOr;^5!-+}>G)m+mmvJ=j^VJY&EbLt3 z4)$YY!H$%jpq6F*7{;=O+vDg@Ll`O58)(s?K4Trels<)~Def_B!HfF5UI~FFiBTND pV=SqRK+|3^k%n*(*RZ%qfq$?(@5AqDLfQZT002ovPDHLkV1fw0I3WN4 literal 0 HcmV?d00001 diff --git a/systemback/pictures/leftgreenarrow.png b/systemback/pictures/leftgreenarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..454ccca30b22c17d0da3a14a4de3dc42f5c2e6f2 GIT binary patch literal 706 zcmV;z0zLhSP)swmSSY%r$ptILM`fp&B5E3gS{R#&EDO6yc6T;2e>2MzJLkW1&bj9fT_&xiv)3f8 zrAO0Rx=w+_-3~rvL0U^!;Wn<|caZ`~0m1iS6d9%zOx&%M$%9{k*Lm3IddOWUR@c)Oo)4e=F6(Mi}p|S!Y3*WE@FDogKccJgti<=dT ze#+}$)68ZH@ zzE_M@N}!=8euXRy;!foRX45I>FwRy=prIyaLKe>9c%=mDC32C=IFk4IY6#R9b}li3 zeVACZBV{*8Yw2c;V`bg#DQpf|m?+g7XwsoRVgo*vK80Eo_jjatK0B{hLZCrn68rH8 o%PS+$uvbinEF8c!EG<&tAKb|9i$-F+5C8xG07*qoM6N<$g7Gyd-T(jq literal 0 HcmV?d00001 diff --git a/systemback/pictures/logo.png b/systemback/pictures/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2826816b6c02418a5c2e8c27927e4681f7589a67 GIT binary patch literal 103178 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≫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�hZjQ`QN(vPA)MU_uu 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

    =VXlrnK}P+Yz4}8&?rSr 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 literal 0 HcmV?d00001 diff --git a/systemback/pictures/menunext.png b/systemback/pictures/menunext.png new file mode 100644 index 0000000000000000000000000000000000000000..ad87a7c25e2a9fd669cd96a525c9e61a1995fe39 GIT binary patch literal 680 zcmV;Z0$2TsP)N5g3c`g^5d=}D6!$%6&O30qcQbtR-E(Ha>O-3g9}h40Hosna^GEavMOrWP$%0iWd)@z!t;m^pSW$ou(N_GaUq0jo^pk<-9sg zHvcE5;$;W$66iI+H-WS2^hs)t<5&ZZ0^f}FGAUmAQgU8e#o}cTuoMa|x6*$Ced=^E z#~1*0x(W;c8wT?ZK*dW>GxJ8qghDwKa^7y3z;|GuI{lPmyaitZhJarNa3`=RUb>Qv zOUws>X+ypNz5u&{jd+b0%|=A#GeFh2#=C*%|8Fcw29fz?V9YpyW#FJXt&5lD#wF(W zfe|CP7kHXwTw;C?xMG~ZW8hrHI2iGA1Gs4%K2~6ldJAJairilv-ZkKs5&BG>UMdXv zy$W12LZ{T}G0Sqg2s|)C-vaxAx;jm-YVlG9#*NTd;lx@`+PR{fo@xR55jYO4XYE|# zr5~8zZjueE{sVAWoqkR_og&i%z?|`L_zLuwL7N(jm%YG>5&9$S%kLU>o{buToxp2g zmjSv4oK&X^Nv%)xdpm*mM(A(gv^rhbuGuT%6DY)s&^=hTRMe`krk8T2-eLSyz~FjhPOM+!CX?&@JOTz>(0DnXjoiP=G&)y5p9qLn)>J O0000qAr=2Liy#BZAV&p*Ssezf6J?9Qg@Hjfvv83sMG;p{wMZ9{ zs7M6SqQZp|QMfTG4c-~0c?eu+i*g*aBw7p!Dl-g?gI^2pJ9Fpt-h1F(eDC+1_c`Y| z=bm$0R@pbet30v}i`D`5$#vE$LoTec<-l#A)xdXvCxGYVx=X^^z%gJ=c%F)$KHx+R z3}iFF(FDE^SPgt-m8EzdMP`+q28K!7ak&oFWWXxmZ(v0NI}f}d*R34UD&Wr$Rnz_h zHUT%~sw91W;|0q{{flg;*w-T=3N&l*7;%M4k7pX8csXa4-Skj*D@%|$^C0J}2SPCae964D(2 z`ZJFI%5^fzrru{c`%tdgB?mS*t_1$dtP22_Yc%T0Ex^?R(bK?`T#G|B9M*RVBon|d zjq!h>K=OfHQ}qytGg=Nz7aU)b>r#Xt22N+Nx8+*5Wbs82eqI_Qa$Rai{;o&@k^7NPYvxQdh37aLu|A4p*mfG5l7pX{)T>Jw0KfPb4moJ-~=u4^k2Q57vqs Uq|BU3#p*8$8d#P>KSMeFONn2u&8fohpOqhJd1K?ayH z+$k8X=jfS93ZV$>tMqCDt`iJTmIP)VP${E5gR3&MUKD(iRXjT1bZ{Ie#Ip? zUN4xLNeaxL6ng_G72AF%RC(mXWT8FhM zo$cDh-~Xw%xMfV8-{QQK-CbDKXjV&OXb79D)_am`qCfGT=$5MBuCL~BUj`U>TxboL zafZg-YeCY6T#+(Z!5_FE?-UuEN}NS!CKnoMvQ=-;em=)NNZfK`oNC_m*b@jn?;G69u%!C>&w#WPA_iEIA^`!Xsatk zKDBWyF!mUhl7|Ev6Whi3DMe?mU}?KLll-J}OUVT{EBvTb>(=EJ z(bLK67cz8)TAc_Q>$Xejy-(p6vx_pO%p9J?^C=VY@3 z0{~TmT7b{dSBLd!f>Z4TRR26wS%{Y=!`f72gWyy>ZO@kd zcVJ9(AhmhzScWFbbIC|QE}N$Fd(E|ptqT<{66c^#$n4m=f+2$axF$&w2dB&3rX!wK dCnNZ@$$zz!3fwUD!><4U002ovPDHLkV1hXI0o4Ei literal 0 HcmV?d00001 diff --git a/systemback/pictures/passwordlogo.png b/systemback/pictures/passwordlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..32640745a22be2adfa316fe6f1812d1fbfa6561b GIT binary patch literal 12690 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 literal 0 HcmV?d00001 diff --git a/systemback/pictures/refresh.png b/systemback/pictures/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..be79c127220213212cbdc68906e1301b834c3a17 GIT binary patch literal 1209 zcmV;q1V;ObP)XD;>3>tSQGaA_s~tG}w|}c1A^3Mi5K{A(TDULxzdr^-NKU z4k8FWbt8}{g1{k+pmz1LWGICiG6-w5rtCq;Yh^Rj!|d;{{pMWuK3C@thjUwN@Bdn7 z?X}ikCr1+?R)&Ggf$Isn`bY!xe;)aXQuh~Ejkm5qiAh>Ml0>;<0pl+qB%JI}X@{EK4c;gX>OyaCKCq1-Q4Hv3jL5pBQ*u`;KS$Gt4_ zjPrOok8e?kN};5!b3G=kk>2aeP__o!1b<5fQ~@nKdL>HYIH16_jurv^QP0Cb4ovc zI#BlN2F_gyu^XszG66;dg?k&-lY1ewC{X3k1UMWhyjZMU(WtgotlR<23KTz{L}rWU z8h8`B54bE)b|fcOZUMdvRQL^8qDIfuIleCizV@z+x5z|-~ey4R@n z1(F6h2Mp!JN;~kLQx3r?phu047MpieL4ILG;Q<&@qe~MtdLH-$7zaX}WpuNtMp|}b7T&(oOhK)CLy3Uba9I@{&YII-WvaCk`12#rlegp8m zSn11V1K*G$M$Hy0t6Xp29l7V)?A#>Xh_Zv!3#9*;PP*(UEE z;EWobB<}ruce%9GUd6)Wz(4NP9|3-Mj=2W7(G{0Vvd)UQGOkpkgHt^2k>8URnu`c; zs?pW{JvS-RFRXE1zgVyjc(zz~m_705f#nfBOe66FusXej_^CHnCS5HA27y~!M0yx_ zNR5t^>c^+Fn2!80;9g*V3rG(F%hl*esTz^1RNb5*yWD|oZ!qC8;N3JlDvb?7E8e5P zdM2l)jlcom)imW*nv~@N2p1L*D|3JcfITih*8|6Z7l8e0^lWJ37F7%~Mmz?rbH!yY zrT-8p)=!@XesW`rk3&3M6Y*jjh?Q>FCiJ-er4zW8$zkdQaMImtM_old3>++#Ekf}> XV!oxUOXVaD00000NkvXXu0mjf02eW9 literal 0 HcmV?d00001 diff --git a/systemback/pictures/resize.png b/systemback/pictures/resize.png new file mode 100644 index 0000000000000000000000000000000000000000..faf44783ac6ef274ba351f619a9fc53edcc0da44 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqhXgOL=)`HSb_0ced%8G=WZZju>ojMxgNWNh^G7i}|eEbuAvea&Zv&6Pzx(Uf+9kb~l}-zJ)fh^h{<6-vwJy3S zKW1s)QmKjw2C*#fw2zfN~9 z-(LDR%h?0jPjB%i`)uQ>o&R?Af%U(iczEbuDU02BwD$Tr)2%+UnDXAt+Px-vqFrpv qX}#CKvNVy6+`oHL(Er#wsdvrgEiD|ZBCz=V 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

    ;T-KAl5GY-p$WsyzM~)QiGE3iA)_Yi{%m z-^ttD^5{ZvvDmc-3w$SxTeaXdZrU?`I>?tX)b! zul`N{BQyl?m{x^8YJdcjHzRuS7YE_Y@k+)mZ(5BZ6s9(2zDz?>kT0p7g4+vj_vN2< zAxgUc@dDzw6+`tvT{mkY?nR8+iTd3|L_r~vuWT4ZqbQ5xbw&jJt{zrTNx1yM{x6_g z+ah;?vVzh*i;ww~ca&T#2Xk~MQceK?tziGe*TC)?BnCwsXu!U3Ezr8a{uA@ri}rIG zq};BV`YQd*I(WRRzW|A0BR)KI?Y))v5UQcVfLxQvGPq|zPu{L@!!q9K>MZk3AJjJbGM(RMyZ`_I literal 0 HcmV?d00001 diff --git a/systemback/pictures/up.png b/systemback/pictures/up.png new file mode 100644 index 0000000000000000000000000000000000000000..392b8e59c0c9faddd66757ec336823fc1197954c GIT binary patch literal 772 zcmV+f1N;1mP)fa00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-Ut{BE+l^=_tyXb0+C5X zK~z}7&DT$eRb?0k@ZZtvpeQUykgOu& zuV5oKgx6;^**cDk_z~ZyB3pZ^1`+6H7f? z{Dog|Di!HmV_s$r#6QL-cnwQDU$}!`F_4NhP=5nG*byFIfyJJ0+>1OJz=;|LqoORF z24jPGg!d~vb8)O!v7?67m{&3Jv-k?v@dQV(6I&~^u?W4j=!#Y0WDx&76=|sc+Ve8M zio^H51Ochh2D~Dgi?{6m|D+{MRY*R+Da=H!CVkANI5;?^6o6i-SRY7!&n| zs(22z7};wPPJP&m7uywZ8(&6A{1=a>lXx3KW<;KB$3DE&C}1>{{(%EH6=CwE>IZlQ zLTWMc?2l4BmgQxBF>3gkdT&1~;%x}Y;_12>yZ;9_4l5xh!QVCj0000 literal 0 HcmV?d00001 diff --git a/systemback/pnlevent.hpp b/systemback/pnlevent.hpp new file mode 100644 index 0000000..009ae4f --- /dev/null +++ b/systemback/pnlevent.hpp @@ -0,0 +1,71 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef PNLEVENT_HPP +#define PNLEVENT_HPP + +#include + +class pnlevent : public QWidget +{ + Q_OBJECT + +public: + inline pnlevent(QWidget *prnt) : QWidget(prnt) {} + +protected: + void mouseMoveEvent(QMouseEvent *), + resizeEvent(QResizeEvent *), + moveEvent(QMoveEvent *), + hideEvent(QHideEvent *), + leaveEvent(QEvent *); + +signals: + void Mouse_Leave(); + void Mouse_Move(); + void Resize(); + void Move(); + void Hide(); +}; + +inline void pnlevent::mouseMoveEvent(QMouseEvent *) +{ + emit Mouse_Move(); +} + +inline void pnlevent::resizeEvent(QResizeEvent *) +{ + emit Resize(); +} + +inline void pnlevent::moveEvent(QMoveEvent *) +{ + emit Move(); +} + +inline void pnlevent::hideEvent(QHideEvent *) +{ + emit Hide(); +} + +inline void pnlevent::leaveEvent(QEvent *) +{ + emit Mouse_Leave(); +} + +#endif diff --git a/systemback/systemback.cpp b/systemback/systemback.cpp new file mode 100644 index 0000000..01277bb --- /dev/null +++ b/systemback/systemback.cpp @@ -0,0 +1,7735 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#include "ui_systemback.h" +#include "systemback.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef FontChange +#undef FontChange +#endif + +#ifdef KeyRelease +#undef KeyRelease +#endif + +#ifdef KeyPress +#undef KeyPress +#endif + +#ifdef False +#undef False +#endif + +#ifdef True +#undef True +#endif + +Display *dsply(XOpenDisplay(nullptr)); +ushort lblevent::MouseX, lblevent::MouseY; + +systemback::systemback() : QMainWindow(nullptr, Qt::FramelessWindowHint), ui(new Ui::systemback) +{ + ocfg = (sb::sdir[0] % sb::sdir[2] % sb::schdlr[0] % sb::schdlr[1] % sb::lang % sb::style % sb::wsclng).toUtf8() % char(sb::ismpnt) % char(sb::pnumber) % char(sb::incrmtl) % char(sb::xzcmpr) % char(sb::autoiso) % char(sb::schdle[0]) % char(sb::schdle[1]) % char(sb::schdle[2]) % char(sb::schdle[3]) % char(sb::schdle[4]) % char(sb::schdle[5]) % char(sb::waot) % char(sb::ecache), shdltimer = dlgtimer = intrptimer = nullptr, wmblck = wismax = fscrn = nrxth = false; + + if(sb::style != "auto") + { + if(QStyleFactory::keys().contains(sb::style)) + qApp->setStyle(QStyleFactory::create(sb::style)); + else + sb::style = "auto"; + } + + ui->setupUi(this), ui->dialogpanel->move(0, 0); + for(QWdt wdgt : QWL{ui->statuspanel, ui->scalingbuttonspanel, ui->buttonspanel, ui->resizepanel}) wdgt->hide(); + for(QWdt wdgt : QWL{ui->dialogpanel, ui->windowmaximize, ui->windowminimize, ui->windowclose}) wdgt->setBackgroundRole(QPalette::Foreground); + for(QWdt wdgt : QWL{ui->function3, ui->windowbutton3, ui->windowmaximize, ui->windowminimize, ui->windowclose}) wdgt->setForegroundRole(QPalette::Base); + ui->subdialogpanel->setBackgroundRole(QPalette::Background), + ui->buttonspanel->setBackgroundRole(QPalette::Highlight), + connect(ui->function3, &lblevent::Mouse_Pressed, this, &systemback::wpressed), + connect(ui->function3, &lblevent::Mouse_Move, this, &systemback::wmove), + connect(ui->function3, &lblevent::Mouse_Released, this, &systemback::wreleased), + connect(ui->windowbutton3, SIGNAL(Mouse_Enter()), this, SLOT(benter())), + connect(ui->windowbutton3, &lblevent::Mouse_Pressed, this, &systemback::bpressed), + connect(ui->windowbutton3, &lblevent::Mouse_Released, this, &systemback::wbreleased); + for(QWdt wdgt : QWL{ui->windowbutton3, ui->buttonspanel, ui->windowminimize, ui->windowclose}) connect(wdgt, SIGNAL(Mouse_Move()), this, SLOT(bmove())); + connect(ui->buttonspanel, &pnlevent::Mouse_Leave, [this] { if(ui->buttonspanel->isVisible() && ! ui->buttonspanel->y()) bttnshide(); }); + + for(QWdt wdgt : QWL{ui->windowminimize, ui->windowclose}) connect(wdgt, SIGNAL(Mouse_Enter()), this, SLOT(wbenter())), + connect(wdgt, SIGNAL(Mouse_Leave()), this, SLOT(wbleave())), + connect(wdgt, SIGNAL(Mouse_Pressed()), this, SLOT(mpressed())), + connect(wdgt, SIGNAL(Mouse_Released()), this, SLOT(wbreleased())); + + dialog = getuid() + getgid() ? 306 : [this] { + QSL args(qApp->arguments()); + + if(args.count() == 2 && args.at(1) == "schedule" && [] { + QStr ppath(sb::isdir("/run") ? "/run/sbscheduler.pid" : "/var/run/sbscheduler.pid"); + return sb::isfile(ppath) && getppid() == sb::fload(ppath).toUShort(); + }()) + + sstart = true; + else if(! sb::lock(sb::Sblock)) + return 300; + else + { + if(! (sislive = sb::isfile("/cdrom/casper/filesystem.squashfs") || sb::isfile("/lib/live/mount/medium/live/filesystem.squashfs"))) + { + if(! sb::lock(sb::Dpkglock)) + return 301; + else if(! sb::lock(sb::Aptlock)) + return 302; + } + + sstart = false; + } + + return 0; + }(); + + QRect sgm(sgeom()); + + { + QFont fnt; + if(! sb::like(fnt.family(), {"_Ubuntu_", "_FreeSans_"})) fnt.setFamily(QFontDatabase().families().contains("Ubuntu") ? "Ubuntu" : "FreeSans"); + if(fnt.weight() != QFont::Normal) fnt.setWeight(QFont::Normal); + if(fnt.bold()) fnt.setBold(false); + if(fnt.italic()) fnt.setItalic(false); + if(fnt.overline()) fnt.setOverline(false); + if(fnt.strikeOut()) fnt.setStrikeOut(false); + if(fnt.underline()) fnt.setUnderline(false); + + if(! (sb::like(sb::wsclng, {"_auto_", "_1_"}) && fontInfo().pixelSize() == 15)) + { + sfctr = sb::wsclng == "auto" ? fontInfo().pixelSize() > 28 ? Max : fontInfo().pixelSize() > 21 ? High : Normal : sb::wsclng == "2" ? Max : sb::wsclng == "1.5" ? High : Normal; + while(sfctr > Normal && (sgm.width() - ss(30) < ss(698) || sgm.height() - ss(30) < ss(465))) sfctr = sfctr == Max ? High : Normal; + fnt.setPixelSize(ss(15)); + for(QWdt wdgt : QWL{ui->storagedir, ui->liveworkdir, ui->interrupt, ui->partitiondelete}) wdgt->setFont(fnt); + qApp->setFont(fnt), + fnt.setPixelSize(ss(27)), + ui->buttonspanel->setFont(fnt), + fnt.setPixelSize(ss(17)), fnt.setBold(true), + ui->passwordtitletext->setFont(fnt); + + if(sfctr > Normal) + { + for(QWdt wdgt : findChildren()) wdgt->setGeometry(ss(wdgt->x()), ss(wdgt->y()), ss(wdgt->width()), ss(wdgt->height())); + for(QPB pbtn : findChildren()) pbtn->setIconSize(QSize(ss(pbtn->iconSize().width()), ss(pbtn->iconSize().height()))); + + if(! (sstart || dialog)) + { + { + ushort sz[]{ss(10), ss(20)}; + + for(QTblW tblw : findChildren()) tblw->horizontalHeader()->setMinimumSectionSize(sz[0]), + tblw->verticalHeader()->setDefaultSectionSize(sz[1]); + } + + { QSize nsize(ss(112), ss(32)); + for(QCbB cmbx : findChildren()) cmbx->setMinimumSize(nsize); } + ui->partitionsettings->verticalScrollBar()->adjustSize(); + QStr nsize(QStr::number(ss(ui->partitionsettings->verticalScrollBar()->width()))); + for(QWdt wdgt : QWL{ui->partitionsettings, ui->livelist, ui->livedevices, ui->excludeitemslist, ui->excludedlist, ui->includeitemslist, ui->includedlist, ui->license, ui->dirchoose}) wdgt->setStyleSheet("QScrollBar::vertical{width: " % nsize % "px}\nQScrollBar::horizontal{height: " % nsize % "px}"); + QStyleOption optn; + optn.init(ui->pointpipe1), + nsize = QStr::number(ss(ui->pointpipe1->style()->subElementRect(QStyle::SE_CheckBoxClickRect, &optn).width())); + for(QCB ckbx : findChildren()) ckbx->setStyleSheet("QCheckBox::indicator{width:" % nsize % "px; height:" % nsize % "px}"); + optn.init(ui->pnumber3), + nsize = QStr::number(ss(ui->pnumber3->style()->subElementRect(QStyle::SE_RadioButtonClickRect, &optn).width())); + for(QCbB rbtn : findChildren()) rbtn->setStyleSheet("QRadioButton::indicator{width:" % nsize % "px; height:" % nsize % "px}"); + } + } + } + else + { + sfctr = Normal; + + if(fnt != font()) + { + for(QWdt wdgt : QWL{ui->storagedir, ui->liveworkdir, ui->interrupt, ui->partitiondelete}) wdgt->setFont(fnt); + qApp->setFont(fnt); + } + } + } + + bfnt = font(); + + if(dialog) + { + wndw = this; + for(QWdt wdgt : QWL{ui->mainpanel, ui->passwordpanel, ui->schedulerpanel}) wdgt->hide(); + dialogopen(dialog); + } + else + { + intrrpt = irblck = utblck = false, prun.type = prun.pnts = ppipe = busycnt = 0, + ui->dialogpanel->hide(); + + for(QWdt wdgt : QWL{ui->statuspanel, ui->resizepanel}) wdgt->move(0, 0), + wdgt->setBackgroundRole(QPalette::Foreground); + + for(QWdt wdgt : QWL{ui->substatuspanel, ui->subpanel}) wdgt->setBackgroundRole(QPalette::Background); + for(QWdt wdgt : QWL{ui->function2, ui->function4, ui->windowbutton2, ui->windowbutton4}) wdgt->setForegroundRole(QPalette::Base); + + for(QWdt wdgt : QWL{ui->function2, ui->function4}) connect(wdgt, SIGNAL(Mouse_Pressed()), this, SLOT(wpressed())), + connect(wdgt, SIGNAL(Mouse_Move()), this, SLOT(wmove())), + connect(wdgt, SIGNAL(Mouse_Released()), this, SLOT(wreleased())); + + for(QWdt wdgt : QWL{ui->windowbutton2, ui->windowbutton4}) connect(wdgt, SIGNAL(Mouse_Enter()), this, SLOT(benter())), + connect(wdgt, SIGNAL(Mouse_Pressed()), this, SLOT(bpressed())); + + connect(ui->windowbutton4, &lblevent::Mouse_Released, this, &systemback::wbreleased), + connect(ui->windowbutton4, &lblevent::Mouse_Move, this, &systemback::bmove); + + connect(ui->statuspanel, &pnlevent::Hide, [this] { + if(! ui->statuspanel->isVisibleTo(ui->wpanel)) + { + prun.type = 0, prun.txt.clear(), + ui->processrun->clear(); + if(prun.pnts) prun.pnts = 0; + if(sb::Progress > -1) sb::Progress = -1; + if(! ui->progressbar->maximum()) ui->progressbar->setMaximum(100); + if(ui->progressbar->value()) ui->progressbar->setValue(0); + if(ui->interrupt->isEnabled()) ui->interrupt->setDisabled(true); + + if(sb::dbglev == sb::Errdbg) + { + if(! sb::eout.isEmpty()) sb::eout.clear(); + sb::dbglev = sb::Nulldbg; + } + } + }); + + if(! sstart) + { + icnt = 0, cpos = -1, nohmcpy[1] = uchkd = false; + for(QWdt wdgt : QWL{ui->restorepanel, ui->copypanel, ui->installpanel, ui->livepanel, ui->repairpanel, ui->excludepanel, ui->includepanel, ui->schedulepanel, ui->aboutpanel, ui->licensepanel, ui->settingspanel, ui->choosepanel, ui->storagedirbutton, ui->fullnamepipe, ui->usernamepipe, ui->usernameerror, ui->passwordpipe, ui->passworderror, ui->rootpasswordpipe, ui->rootpassworderror, ui->hostnamepipe, ui->hostnameerror}) wdgt->hide(); + ui->storagedir->resize(ss(236), ss(28)), + ui->installpanel->move(ui->sbpanel->pos()), + ui->mainpanel->setBackgroundRole(QPalette::Foreground); + for(QWdt wdgt : QWL{ui->sbpanel, ui->installpanel, ui->subscalingbuttonspanel}) wdgt->setBackgroundRole(QPalette::Background); + for(QWdt wdgt : QWL{ui->function1, ui->scalingbutton, ui->windowbutton1}) wdgt->setForegroundRole(QPalette::Base); + for(QWdt wdgt : QWL{ui->scalingfactor, ui->storagedirarea}) wdgt->setBackgroundRole(QPalette::Base); + ui->scalingbuttonspanel->setBackgroundRole(QPalette::Highlight); + + if(sb::wsclng == "auto") + ui->scalingdown->setDisabled(true); + else if(sb::wsclng == "2") + { + ui->scalingfactor->setText("x2"); + ui->scalingup->setDisabled(true); + } + else + ui->scalingfactor->setText('x' % sb::wsclng); + + connect(ui->windowmaximize, &lblevent::Mouse_Enter, this, &systemback::wbenter), + connect(ui->windowmaximize, &lblevent::Mouse_Leave, this, &systemback::wbleave); + for(QWdt wdgt : QWL{ui->windowmaximize, ui->scalingbutton, ui->homepage1, ui->homepage2, ui->email, ui->donate}) connect(wdgt, SIGNAL(Mouse_Pressed()), this, SLOT(mpressed())); + + for(QWdt wdgt : QWL{ui->windowmaximize, ui->windowbutton1}) connect(wdgt, SIGNAL(Mouse_Move()), this, SLOT(bmove())), + connect(wdgt, SIGNAL(Mouse_Released()), this, SLOT(wbreleased())); + + for(QWdt wdgt : QWL{ui->chooseresize, ui->copyresize, ui->excluderesize, ui->includeresize}) connect(wdgt, SIGNAL(Mouse_Enter()), this, SLOT(renter())), + connect(wdgt, SIGNAL(Mouse_Leave()), this, SLOT(rleave())), + connect(wdgt, SIGNAL(Mouse_Pressed()), this, SLOT(rpressed())), + connect(wdgt, SIGNAL(Mouse_Released()), this, SLOT(rreleased())), + connect(wdgt, SIGNAL(Mouse_Move()), this, SLOT(rmove())); + + connect(ui->function1, &lblevent::Mouse_Pressed, this, &systemback::wpressed), + connect(ui->function1, &lblevent::Mouse_Move, this, &systemback::wmove), + connect(ui->function1, &lblevent::Mouse_Released, this, &systemback::wreleased), + connect(ui->function1, &lblevent::Mouse_DblClick, [this] { if(ui->copypanel->isVisible() || ui->excludepanel->isVisible() || ui->includepanel->isVisible() || ui->choosepanel->isVisible()) stschange(); }), + connect(ui->windowbutton1, SIGNAL(Mouse_Enter()), this, SLOT(benter())), + connect(ui->windowbutton1, &lblevent::Mouse_Pressed, this, &systemback::bpressed); + + connect(ui->scalingbutton, &lblevent::Mouse_Released, [this] { + if(ui->scalingbutton->foregroundRole() == QPalette::Highlight) + { + uchar a(ss(24)); + ui->scalingbuttonspanel->move(-ui->scalingbuttonspanel->width() + a, -ui->scalingbuttonspanel->height() + a), + ui->scalingbuttonspanel->show(), + a = ss(1); + short px(ui->scalingbuttonspanel->x()); + do ui->scalingbuttonspanel->move(px += a, ui->scalingbuttonspanel->y() < -a ? ui->scalingbuttonspanel->y() + a : 0), qApp->processEvents(); + while(px < 0 && px == ui->scalingbuttonspanel->x()); + } + }); + + connect(ui->scalingbutton, &lblevent::Mouse_Move, [this] { + if(minside(ui->scalingbutton)) + { + if(ui->scalingbutton->foregroundRole() == QPalette::Base) ui->scalingbutton->setForegroundRole(QPalette::Highlight); + } + else if(ui->scalingbutton->foregroundRole() == QPalette::Highlight) + ui->scalingbutton->setForegroundRole(QPalette::Base); + }); + + connect(ui->scalingbuttonspanel, &pnlevent::Mouse_Leave, [this] { + QStr nsclng(ui->scalingfactor->text() == "auto" ? "auto" : sb::right(ui->scalingfactor->text(), -1)); + + if(sb::wsclng == nsclng) + { + ui->scalingbutton->setForegroundRole(QPalette::Base); + uchar a(ss(1)); + do ui->scalingbuttonspanel->move(ui->scalingbuttonspanel->x() - a, ui->scalingbuttonspanel->y() - a), qApp->processEvents(); + while(ui->scalingbuttonspanel->y() > -ui->scalingbuttonspanel->height()); + ui->scalingbuttonspanel->hide(); + } + else + { + sb::wsclng = nsclng, + sb::cfgwrite(), ocfg.clear(), + sb::unlock(sb::Sblock), sb::unlock(sb::Dpkglock), sb::unlock(sb::Aptlock); + + if(fscrn) + utimer.stop(), hide(), + sb::exec("systemback finstall", sb::Wait); + else + sb::exec("systemback", sb::Bckgrnd); + + close(); + } + }); + + connect(ui->homepage1, &lblevent::Mouse_Move, [this] { + if(minside(ui->homepage1)) + { + if(ui->homepage1->foregroundRole() == QPalette::Text) ui->homepage1->setForegroundRole(QPalette::Highlight); + } + else if(ui->homepage1->foregroundRole() == QPalette::Highlight) + ui->homepage1->setForegroundRole(QPalette::Text); + }); + + connect(ui->homepage2, &lblevent::Mouse_Move, [this] { + if(minside(ui->homepage2)) + { + if(ui->homepage2->foregroundRole() == QPalette::Text) ui->homepage2->setForegroundRole(QPalette::Highlight); + } + else if(ui->homepage2->foregroundRole() == QPalette::Highlight) + ui->homepage2->setForegroundRole(QPalette::Text); + }); + + connect(ui->email, &lblevent::Mouse_Move, [this] { + if(minside(ui->email)) + { + if(ui->email->foregroundRole() == QPalette::Text) ui->email->setForegroundRole(QPalette::Highlight); + } + else if(ui->email->foregroundRole() == QPalette::Highlight) + ui->email->setForegroundRole(QPalette::Text); + }); + + connect(ui->donate, &lblevent::Mouse_Move, [this] { + if(minside(ui->donate)) + { + if(ui->donate->foregroundRole() == QPalette::Text) ui->donate->setForegroundRole(QPalette::Highlight); + } + else if(ui->donate->foregroundRole() == QPalette::Highlight) + ui->donate->setForegroundRole(QPalette::Text); + }); + + connect(ui->partitionsettings, &tblwdgtevent::Focus_In, [this] { + if(ui->partitionsettingspanel2->isVisible()) + for(ushort a(ui->partitionsettings->currentRow() + 1) ; a < ui->partitionsettings->rowCount() && ui->partitionsettings->item(a, 0)->background() == QPalette().color(QPalette::Inactive, QPalette::Highlight) ; ++a) ui->partitionsettings->item(a, 0)->setBackground(QPalette().highlight()), + ui->partitionsettings->item(a, 0)->setForeground(QPalette().highlightedText()); + }); + + connect(ui->partitionsettings, &tblwdgtevent::Focus_Out, [this] { + if(ui->partitionsettingspanel2->isVisibleTo(ui->copypanel)) + for(ushort a(ui->partitionsettings->currentRow() + 1) ; a < ui->partitionsettings->rowCount() && ui->partitionsettings->item(a, 0)->background() == QPalette().highlight() ; ++a) ui->partitionsettings->item(a, 0)->setBackground(QPalette().color(QPalette::Inactive, QPalette::Highlight)), + ui->partitionsettings->item(a, 0)->setForeground(QPalette().color(QPalette::Inactive, QPalette::HighlightedText)); + }); + + for(QWdt wdgt : QWL{ui->homepage1, ui->homepage2, ui->email, ui->donate}) connect(wdgt, SIGNAL(Mouse_Released()), this, SLOT(abtreleased())); + for(QLE ldt : ui->points->findChildren()) connect(ldt, SIGNAL(Focus_Out()), this, SLOT(foutpnt())); + connect(ui->usersettingscopy, &chckbxevent::Mouse_Enter, [this] { if(ui->usersettingscopy->checkState() == Qt::PartiallyChecked) ui->usersettingscopy->setText(tr("Transfer user configuration and data files")); }), + connect(ui->usersettingscopy, &chckbxevent::Mouse_Leave, [this] { if(ui->usersettingscopy->checkState() == Qt::PartiallyChecked && ui->usersettingscopy->text() == tr("Transfer user configuration and data files")) ui->usersettingscopy->setText(tr("Transfer user configuration files")); }), + connect(ui->unmountdelete, &bttnevent::Mouse_Leave, [this] { if(! ui->unmountdelete->isEnabled() && ui->unmountdelete->text() == tr("! Delete !") && (ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->text().isEmpty() || ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->text() != "btrfs")) ui->unmountdelete->setEnabled(true); }); + } + + wndw = [&]() -> QWdt { + QSL args(qApp->arguments()); + + if([&args] { + switch(args.count()) { + case 2: + return args.at(1) == "finstall"; + case 3: + return args.at(1) == "authorization"; + default: + return false; + } + }() && ! (sislive && sb::like(sb::fload("/proc/self/mounts"), {"* / overlay *","* / overlayfs *", "* / aufs *", "* / unionfs *", "* / fuse.unionfs-fuse *"}))) + { + for(QWdt wdgt : QWL{ui->mainpanel, ui->schedulerpanel, ui->adminpasswordpipe, ui->adminpassworderror}) wdgt->hide(); + ui->passwordpanel->move(0, 0); + for(QLbl lbl : QLbL{ui->adminstext, ui->adminpasswordtext}) lbl->resize(fontMetrics().width(lbl->text() + ss(7)), lbl->height()); + ui->admins->move(ui->adminstext->x() + ui->adminstext->width(), ui->admins->y()), + ui->admins->setMaximumWidth(ui->passwordpanel->width() - ui->admins->x() - ss(8)), + ui->adminpassword->move(ui->adminpasswordtext->x() + ui->adminpasswordtext->width(), ui->adminpassword->y()), + ui->adminpassword->resize(ss(336) - ui->adminpassword->x(), ui->adminpassword->height()); + + { + QFile file("/etc/group"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + if(cline.startsWith("sudo:")) + for(cQStr &usr : sb::right(cline, -sb::rinstr(cline, ":")).split(',')) + if(! usr.isEmpty() && ui->admins->findText(usr) == -1) ui->admins->addItem(usr); + } + } + + if(! ui->admins->count()) + ui->admins->addItem("root"); + else if(ui->admins->count() > 1) + { + schar i(ui->admins->findText(args.at(2))); + if(i > 0) ui->admins->setCurrentIndex(i); + } + + setFixedSize(wgeom[2] = ss(376), wgeom[3] = ss(224)), + move(wgeom[0] = sgm.x() + sgm.width() / 2 - ss(188), wgeom[1] = sgm.y() + sgm.height() / 2 - ss(112)), + setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + } + else + { + ui->passwordpanel->hide(), busy(); + + QTimer::singleShot(0, this, +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + SLOT(unitimer()) +#else + &systemback::unitimer +#endif + ); + + if(sstart) + { + ui->mainpanel->hide(), + ui->schedulerpanel->move(0, 0), + ui->schedulerpanel->setBackgroundRole(QPalette::Foreground), + ui->subschedulerpanel->setBackgroundRole(QPalette::Background), + ui->function4->setText("Systemback " % tr("scheduler")); + + if(sb::schdlr[0] == "topleft") + { + ushort sz(ss(30)); + wgeom[0] = sgm.x() + sz, wgeom[1] = sgm.y() + sz; + } + else if(sb::schdlr[0] == "center") + wgeom[0] = sgm.x() + sgm.width() / 2 - ss(201), wgeom[1] = sgm.y() + sgm.height() / 2 - ss(80); + else if(sb::schdlr[0] == "bottomleft") + wgeom[0] = sgm.x() + ss(30), wgeom[1] = sgm.y() + sgm.height() - ss(191); + else if(sb::schdlr[0] == "bottomright") + wgeom[0] = sgm.x() + sgm.width() - ss(432), wgeom[1] = sgm.y() + sgm.height() - ss(191); + else + wgeom[0] = sgm.x() + sgm.width() - ss(432), wgeom[1] = sgm.y() + ss(30); + + setFixedSize(wgeom[2] = ss(402), wgeom[3] = ss(161)), + move(wgeom[0], wgeom[1]); + + QTimer::singleShot(0, this, +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + SLOT(schedulertimer()) +#else + &systemback::schedulertimer +#endif + ); + + setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + } + else + { + ui->schedulerpanel->hide(); + + if(sislive && args.count() == 2 && args.at(1) == "finstall") + { + resize(sgm.size()); + for(QWdt wdgt : QWL{ui->wallpaper, ui->logo}) wdgt->move(0, 0); + fscrn = true, wgeom[2] = ss(698), wgeom[3] = ss(465), + ui->wpanel->setGeometry(wgeom[0] = sgm.width() < wgeom[2] ? 0 : sgm.x() + width() / 2 - ss(349), wgeom[1] = sgm.height() < wgeom[3] ? 0 : sgm.y() + height() / 2 - ss(232), wgeom[2], wgeom[3]); + + connect(ui->wpanel, &pnlevent::Move, [this] { + if(fscrn && ! (wismax || wmblck)) + { + if(wgeom[0] != ui->wpanel->x()) wgeom[0] = ui->wpanel->x(); + if(wgeom[1] != ui->wpanel->y()) wgeom[1] = ui->wpanel->y(); + } + }); + + connect(ui->logo, &lblevent::Mouse_Click, [this] { + if(ui->wpanel->isHidden()) ui->wpanel->show(), + fwdgt->setFocus(), + ui->logo->setFocusPolicy(Qt::NoFocus); + }); + + on_installmenu_clicked(), + ui->installback->hide(), + setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + return ui->wpanel; + } + else + setFixedSize(wgeom[2] = ss(698), wgeom[3] = ss(465)), + move(wgeom[0] = sgm.x() + sgm.width() / 2 - ss(349), wgeom[1] = sgm.y() + sgm.height() / 2 - ss(232)); + } + } + + return this; + }(); + } + + connect(ui->wpanel, &pnlevent::Resize, [this] { + for(QWdt wdgt : QWL{ui->mainpanel, ui->resizepanel}) wdgt->resize(wndw->size()); + for(QWdt wdgt : QWL{ui->function1, ui->border, ui->resizeborder}) wdgt->resize(wndw->width(), wdgt->height()); + ui->windowbutton1->move(wndw->width() - ui->windowbutton1->height(), 0), + ui->subpanel->resize(wndw->width() - ui->subpanel->x(), wndw->height() - ss(24)); + + if(ui->copypanel->isVisibleTo(ui->wpanel)) + { + ui->copypanel->resize(wndw->width() - ui->copypanel->x() * 2, wndw->height() - ss(25)), + ui->partitionsettingstext->resize(ui->copypanel->width(), ui->partitionsettingstext->height()), + ui->partitionsettings->resize(ui->copypanel->width() - ss(152), ui->copypanel->height() - ss(200)), + ui->partitionsettingspanel1->move(ui->partitionsettings->x() + ui->partitionsettings->width(), ui->partitionsettingspanel1->y()); + for(QWdt wdgt : QWL{ui->partitionsettingspanel2, ui->partitionsettingspanel3}) wdgt->move(ui->partitionsettingspanel1->pos()); + ui->partitionoptionstext->setGeometry(0, ui->copypanel->height() - ss(160), ui->copypanel->width(), ui->partitionoptionstext->height()), + ui->userdatafilescopy->move(ui->userdatafilescopy->x(), ui->copypanel->height() - ss(122) - (sfctr == High ? 1 : 2)), + ui->usersettingscopy->move(ui->usersettingscopy->x(), ui->userdatafilescopy->y()), + ui->grubinstalltext->move(ui->grubinstalltext->x(), ui->copypanel->height() - ss(96)), + ui->grubinstallcopy->move(ui->grubinstallcopy->x(), ui->grubinstalltext->y()), + ui->grubinstallcopydisable->move(ui->grubinstallcopy->pos()), + ui->efiwarning->setGeometry(ui->efiwarning->x(), ui->grubinstalltext->y() - ss(4), ui->copypanel->width() - ui->efiwarning->x() - ss(8), ui->efiwarning->height()), + ui->copyback->move(ui->copyback->x(), ui->copypanel->height() - ss(48)), + ui->copynext->move(ui->partitionsettings->width(), ui->copyback->y()), + ui->copyresize->move(ui->copypanel->width() - ui->copyresize->width(), ui->copypanel->height() - ui->copyresize->height()), + ui->copycover->resize(ui->copypanel->width() - ss(10), ui->copypanel->height() - ss(10)); + } + + if(fscrn && ! (wismax || wmblck)) + { + if(wgeom[2] != wndw->width()) wgeom[2] = wndw->width(); + if(wgeom[3] != wndw->height()) wgeom[3] = wndw->height(); + } + }); + + if(! fscrn) + { + for(QWdt wdgt : QWL{ui->wallpaper, ui->logo}) wdgt->hide(); + if(sb::waot && ! windowFlags().testFlag(Qt::WindowStaysOnTopHint)) setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + Atom atm(XInternAtom(dsply, "_MOTIF_WM_HINTS", 0)); + ulong hnts[]{3, 44, 0, 0, 0}; + XChangeProperty(dsply, winId(), atm, atm, 32, PropModeReplace, (uchar *)&hnts, 5); + } + + XFlush(dsply), installEventFilter(this); +} + +systemback::~systemback() +{ + if(! ocfg.isEmpty()) + { + if(ocfg != (sb::sdir[0] % sb::sdir[2] % sb::schdlr[0] % sb::schdlr[1] % sb::lang % sb::style % sb::wsclng).toUtf8() % char(sb::ismpnt) % char(sb::pnumber) % char(sb::incrmtl) % char(sb::xzcmpr) % char(sb::autoiso) % char(sb::schdle[0]) % char(sb::schdle[1]) % char(sb::schdle[2]) % char(sb::schdle[3]) % char(sb::schdle[4]) % char(sb::schdle[5]) % char(sb::waot) % char(sb::ecache)) sb::cfgwrite(); + + if(fscrn && sb::isfile("/usr/bin/ksplashqml")) + { + for(cQStr &item : QDir("/usr/bin").entryList(QDir::Files)) + if(sb::like(item, {"_ksplash*", "_plasma*"})) cfmod(bstr("/usr/bin/" % item), 0755); + + if(sb::isfile("/usr/share/autostart/plasma-desktop.desktop_")) sb::rename("/usr/share/autostart/plasma-desktop.desktop_", "/usr/share/autostart/plasma-desktop.desktop"); + if(sb::isfile("/usr/share/autostart/plasma-netbook.desktop_")) sb::rename("/usr/share/autostart/plasma-netbook.desktop_", "/usr/share/autostart/plasma-netbook.desktop"); + } + + if(! nrxth) + { + QBA xauth(qgetenv("XAUTHORITY")); + if(xauth.startsWith("/tmp/sbXauthority-")) sb::rmfile(xauth); + } + } + + for(QTimer *tmr : {shdltimer, dlgtimer, intrptimer}) + if(tmr) delete tmr; + + delete ui, XCloseDisplay(dsply); +} + +void systemback::closeEvent(QCloseEvent *ev) +{ + ui->statuspanel->isVisible() && ! (sstart && sb::ThrdKill) && prun.type != 11 ? ev->ignore() : removeEventFilter(this); +} + +void systemback::unitimer() +{ + if(! utblck) + { + utblck = true; + + if(! utimer.isActive()) + { + switch(sb::pnumber) { + case 3: + ui->pnumber3->setChecked(true), + on_pnumber3_clicked(); + break; + case 4: + ui->pnumber4->setChecked(true), + on_pnumber4_clicked(); + break; + case 6: + ui->pnumber6->setChecked(true), + on_pnumber6_clicked(); + break; + case 7: + ui->pnumber7->setChecked(true), + on_pnumber7_clicked(); + break; + case 8: + ui->pnumber8->setChecked(true), + on_pnumber8_clicked(); + break; + case 9: + ui->pnumber9->setChecked(true), + on_pnumber9_clicked(); + break; + case 10: + ui->pnumber10->setChecked(true), + on_pnumber10_clicked(); + } + + if(! sstart) + { + ui->storagedir->setText(sb::sdir[0]), + ui->storagedir->setToolTip(sb::sdir[0]), + ui->liveworkdir->setText(sb::sdir[2]), + ui->liveworkdir->setToolTip(sb::sdir[2]); + for(QLE ldt : QList{ui->storagedir, ui->liveworkdir}) ldt->setCursorPosition(0); + + for(QWdt wdgt : QWL{ui->restorepanel, ui->copypanel, ui->livepanel, ui->repairpanel, ui->excludepanel, ui->includepanel, ui->schedulepanel, ui->aboutpanel, ui->licensepanel, ui->settingspanel, ui->choosepanel}) wdgt->move(ui->sbpanel->pos()), + wdgt->setBackgroundRole(QPalette::Background); + + for(QWdt wdgt : QWL{ui->liveworkdirarea, ui->schedulerday, ui->schedulerhour, ui->schedulerminute, ui->schedulersecond}) wdgt->setBackgroundRole(QPalette::Base); + { QPalette pal(ui->license->palette()); + pal.setBrush(QPalette::Base, pal.background()), + ui->license->setPalette(pal); } + ui->partitionsettings->setHorizontalHeaderLabels({tr("Partition"), tr("Size"), tr("Label"), tr("Current mount point"), tr("New mount point"), tr("Filesystem"), tr("Format")}); + for(uchar a(7) ; a < 11 ; ++a) ui->partitionsettings->setColumnHidden(a, true); + { QFont fnt; + fnt.setPixelSize(ss(14)); + for(QTblW wdgt : QList{ui->partitionsettings, ui->livedevices}) wdgt->horizontalHeader()->setFont(fnt); } + for(uchar a : {0, 1, 5, 6}) ui->partitionsettings->horizontalHeader()->setSectionResizeMode(a, QHeaderView::Fixed); + ui->livedevices->setHorizontalHeaderLabels({tr("Partition"), tr("Size"), tr("Device"), tr("Format")}); + for(uchar a : {0, 1, 3}) ui->livedevices->horizontalHeader()->setSectionResizeMode(a, QHeaderView::Fixed); + for(QWdt wdgt : QWL{ui->livenamepipe, ui->livenameerror, ui->partitionsettingspanel2, ui->partitionsettingspanel3, ui->grubreinstallrestoredisable, ui->grubreinstallrepairdisable, ui->usersettingscopy, ui->repaircover}) wdgt->hide(); + for(QCbB cmbx : QCbBL{ui->grubreinstallrestoredisable, ui->grubinstallcopydisable, ui->grubreinstallrepairdisable}) cmbx->addItem(tr("Disabled")); + if(sb::schdle[0]) ui->schedulerstate->click(); + if(sb::schdle[5]) ui->silentmode->setChecked(true); + ui->windowposition->addItems({tr("Top left"), tr("Top right"), tr("Center"), tr("Bottom left"), tr("Bottom right")}); + if(sb::schdlr[0] != "topleft") ui->windowposition->setCurrentIndex(ui->windowposition->findText(sb::schdlr[0] == "topright" ? tr("Top right") : sb::schdlr[0] == "center" ? tr("Center") : sb::schdlr[0] == "bottomleft" ? tr("Bottom left") : tr("Bottom right"))); + ui->schedulerday->setText(QStr::number(sb::schdle[1]) % ' ' % tr("day(s)")), + ui->schedulerhour->setText(QStr::number(sb::schdle[2]) % ' ' % tr("hour(s)")), + ui->schedulerminute->setText(QStr::number(sb::schdle[3]) % ' ' % tr("minute(s)")), + ui->schedulersecond->setText(QStr::number(sb::schdle[4]) % ' ' % tr("seconds")); + + auto lodsbl([this](bool chkd = false) { + ui->languageoverride->setDisabled(true); + if(chkd || sb::lang != "auto") sb::lang = "auto"; + }); + + if(sb::isdir("/usr/share/systemback/lang")) + { + { + QSL lst("English (common)"); + lst.reserve(13); + + for(cQStr &item : QDir("/usr/share/systemback/lang").entryList(QDir::Files)) + { + QStr lcode(sb::left(sb::right(item, -11), -3)); + + cchar *lname(lcode == "ar_EG" ? "المصرية العربية" + : lcode == "ca_ES" ? "Català" + : lcode == "cs" ? "Čeština" + : lcode == "da_DK" ? "Dansk" + : lcode == "de" ? "Deutsch" + : lcode == "en_GB" ? "English (United Kingdom)" + : lcode == "es" ? "Español" + : lcode == "fi" ? "Suomi" + : lcode == "fr" ? "Français" + : lcode == "gl_ES" ? "Galego" + : lcode == "hu" ? "Magyar" + : lcode == "id" ? "Bahasa Indonesia" + : lcode == "pt_BR" ? "Português (Brasil)" + : lcode == "ro" ? "Română" + : lcode == "ru" ? "Русский" + : lcode == "tr" ? "Türkçe" + : lcode == "uk" ? "Українськa" + : lcode == "zh_CN" ? "中文(简体)" : nullptr); + + if(lname) lst.append(lname); + } + + if(lst.count() == 1) + lodsbl(); + else + { + lst.sort(); + + if(sb::lang == "auto") + ui->languages->addItems(lst); + else + { + schar indx(sb::lang == "id_ID" ? 0 + : sb::lang == "ar_EG" ? lst.indexOf("المصرية العربية") + : sb::lang == "ca_ES" ? lst.indexOf("Català") + : sb::lang == "cs_CS" ? lst.indexOf("Čeština") + : sb::lang == "da_DK" ? lst.indexOf("Dansk") + : sb::lang == "de_DE" ? lst.indexOf("Deutsch") + : sb::lang == "en_EN" ? lst.indexOf("English (common)") + : sb::lang == "en_GB" ? lst.indexOf("English (United Kingdom)") + : sb::lang == "es_ES" ? lst.indexOf("Español") + : sb::lang == "fi_FI" ? lst.indexOf("Suomi") + : sb::lang == "fr_FR" ? lst.indexOf("Français") + : sb::lang == "gl_ES" ? lst.indexOf("Galego") + : sb::lang == "hu_HU" ? lst.indexOf("Magyar") + : sb::lang == "pt_BR" ? lst.indexOf("Português (Brasil)") + : sb::lang == "ro_RO" ? lst.indexOf("Română") + : sb::lang == "ru_RU" ? lst.indexOf("Русский") + : sb::lang == "tr_TR" ? lst.indexOf("Türkçe") + : sb::lang == "uk_UK" ? lst.indexOf("Українськa") + : sb::lang == "zh_CN" ? lst.indexOf("中文(简体)") : -1); + + if(indx == -1) + lodsbl(true); + else + { + ui->languageoverride->setChecked(true), + ui->languages->addItems(lst); + if(indx) ui->languages->setCurrentIndex(indx); + ui->languages->setEnabled(true); + } + } + } + } + + for(QLbl lbl : findChildren()) + if(lbl->alignment() == (Qt::AlignLeft | Qt::AlignVCenter) && lbl->text().isRightToLeft()) lbl->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + } + else + lodsbl(); + + { QSL kys(QStyleFactory::keys()); + kys.sort(), ui->styles->addItems(kys); } + + if(sb::style != "auto") ui->styleoverride->setChecked(true), + ui->styles->setCurrentIndex(ui->styles->findText(sb::style)), + ui->styles->setEnabled(true); + + if(sb::waot) ui->alwaysontop->setChecked(true); + if(! sb::incrmtl) ui->incrementaldisable->setChecked(true); + if(! sb::ecache) ui->cachemptydisable->setChecked(true); + if(sb::xzcmpr) ui->usexzcompressor->setChecked(true); + if(sb::autoiso) ui->autoisocreate->setChecked(true); + + if(sb::schdlr[1] != "false") + { + if(sb::schdlr[1] == "everyone") + ui->schedulerdisable->click(), + ui->schedulerusers->setText(tr("Everyone")); + else + { + ui->schedulerdisable->setChecked(true); + QSL susr(sb::right(sb::schdlr[1], -1).split(',')); + if(! susr.contains("root")) ui->users->addItem("root"); + QFile file("/etc/passwd"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + if(usr.contains(":/home/") && ! susr.contains(usr = sb::left(usr, sb::instr(usr, ":") -1)) && sb::isdir("/home/" % usr)) ui->users->addItem(usr); + } + + if(ui->users->count()) + for(QWdt wdgt : QWL{ui->users, ui->adduser}) wdgt->setEnabled(true); + + ui->schedulerusers->setText(sb::right(sb::schdlr[1], -1)), + ui->schedulerrefresh->setEnabled(true); + } + + ui->schedulerusers->setCursorPosition(0); + } + + ui->version->setText(sb::appver()); + ushort sz[]{ss(7), ss(8), ss(28), ss(3)}; + for(QLbl lbl : QLbL{ui->includeuserstext, ui->grubreinstallrestoretext, ui->grubinstalltext, ui->grubreinstallrepairtext, ui->schedulerstatetext, ui->schedulersecondtext, ui->windowpositiontext, ui->homepage1, ui->homepage2, ui->email, ui->donate, ui->version, ui->filesystemwarning}) lbl->resize(lbl->fontMetrics().width(lbl->text()) + sz[0], lbl->height()); + ui->includeusers->move(ui->includeuserstext->x() + ui->includeuserstext->width(), ui->includeusers->y()), + ui->includeusers->setMaximumWidth(width() - ui->includeusers->x() - sz[1]), + ui->grubreinstallrestore->move(ui->grubreinstallrestoretext->x() + ui->grubreinstallrestoretext->width(), ui->grubreinstallrestore->y()), + ui->grubreinstallrestoredisable->move(ui->grubreinstallrestore->pos()), + ui->grubinstallcopy->move(ui->grubinstalltext->x() + ui->grubinstalltext->width(), ui->grubinstallcopy->y()), + ui->grubinstallcopydisable->move(ui->grubinstallcopy->pos()), + ui->grubreinstallrepair->move(ui->grubreinstallrepairtext->x() + ui->grubreinstallrepairtext->width(), ui->grubreinstallrepair->y()), + ui->grubreinstallrepairdisable->move(ui->grubreinstallrepair->pos()), + ui->schedulerstate->move(ui->schedulerstatetext->x() + ui->schedulerstatetext->width(), ui->schedulerstate->y()), + ui->schedulersecondpanel->move(ui->schedulersecondtext->x() + ui->schedulersecondtext->width(), ui->schedulersecondpanel->y()), + ui->windowposition->move(ui->windowpositiontext->x() + ui->windowpositiontext->width(), ui->windowposition->y()); + for(QCB ckbx : QList{ui->format, ui->keepfiles, ui->autorestoreoptions, ui->skipfstabrestore, ui->autorepairoptions, ui->skipfstabrepair, ui->userdatafilescopy, ui->userdatainclude, ui->silentmode, ui->languageoverride, ui->styleoverride, ui->alwaysontop, ui->incrementaldisable, ui->cachemptydisable, ui->usexzcompressor, ui->autoisocreate, ui->schedulerdisable}) ckbx->resize(fontMetrics().width(ckbx->text()) + sz[2], ckbx->height()); + ui->usersettingscopy->resize(fontMetrics().width(tr("Transfer user configuration and data files")) + sz[2], ui->usersettingscopy->height()), + ui->usersettingscopy->setCheckState(Qt::PartiallyChecked), + ui->format->move((ui->partitionsettingspanel1->width() - ui->format->width()) / 2, ui->format->y()); + for(QRB rbtn : QList{ui->fullrestore, ui->systemrestore, ui->configurationfilesrestore, ui->systemrepair, ui->fullrepair, ui->grubrepair, ui->pointexclude, ui->liveexclude}) rbtn->resize(fontMetrics().width(rbtn->text()) + sz[2], rbtn->height()); + ui->languages->move(ui->languageoverride->x() + ui->languageoverride->width() + sz[3], ui->languages->y()), + ui->languages->setMaximumWidth(width() - ui->languages->x() - sz[1]), + ui->styles->move(ui->styleoverride->x() + ui->styleoverride->width() + sz[3], ui->styles->y()), + ui->styles->setMaximumWidth(width() - ui->styles->x() - sz[1]), + ui->filesystem->addItems({"ext4", "ext3", "ext2"}); + + for(cQStr &fs : {"btrfs", "reiserfs", "jfs", "xfs"}) + if(sb::execsrch("mkfs." % fs)) ui->filesystem->addItem(fs); + + ui->repairmountpoint->addItems({nullptr, "/mnt", "/mnt/home", "/mnt/boot"}); +#ifdef __amd64__ + if(sb::isdir("/sys/firmware/efi")) goto isefi; + + { + QStr ckernel(ckname()); + + if(sb::isfile("/lib/modules/" % ckernel % "/modules.builtin")) + { + QFile file("/lib/modules/" % ckernel % "/modules.builtin"); + + if(sb::fopen(file)) + while(! file.atEnd()) + if(file.readLine().trimmed().endsWith("efivars.ko")) goto noefi; + } + + if(sb::isfile("/proc/modules") && ! sb::fload("/proc/modules").contains("efivars ") && sb::isfile("/lib/modules/" % ckernel % "/modules.order")) + { + QFile file("/lib/modules/" % ckernel % "/modules.order"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QBA cline(file.readLine().trimmed()); + if(cline.endsWith("efivars.ko") && sb::isfile("/lib/modules/" % ckernel % '/' % cline) && ! sb::exec("modprobe efivars", sb::Silent) && sb::isdir("/sys/firmware/efi")) goto isefi; + } + } + } + + goto noefi; + isefi: + grub.name = "efi-amd64-bin", grub.isEFI = true, + ui->repairmountpoint->addItem("/mnt/boot/efi"), + ui->grubinstallcopy->hide(); + for(QCbB cmbx : QCbBL{ui->grubinstallcopy, ui->grubreinstallrestore, ui->grubreinstallrepair}) cmbx->addItems({"EFI", tr("Disabled")}); + ui->grubinstallcopydisable->adjustSize(), + ui->efiwarning->move(ui->grubinstallcopydisable->x() + ui->grubinstallcopydisable->width() + ss(5), ui->grubinstallcopydisable->y() - ss(4)), + ui->efiwarning->resize(ui->copypanel->width() - ui->efiwarning->x() - sz[1], ui->efiwarning->height()), + ui->efiwarning->setForegroundRole(QPalette::Highlight); + goto next_1; + noefi: +#endif + grub.name = "pc-bin", grub.isEFI = false; + for(QWdt wdgt : QWL{ui->grubinstallcopydisable, ui->efiwarning}) wdgt->hide(); +#ifdef __amd64__ + next_1: +#endif + ui->repairmountpoint->addItems({"/mnt/usr", "/mnt/var", "/mnt/opt", "/mnt/usr/local"}), + ui->repairmountpoint->setCurrentIndex(1); + + nohmcpy[0] = sb::isfile("/etc/fstab") && [] { + QFile file("/etc/fstab"); + + if(sb::fopen(file)) + { + QSL incl{"* /home *", "* /home/ *"}; + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + if(! cline.startsWith('#') && sb::like(cline.replace('\t', ' '), incl)) return true; + } + } + + return false; + }(); + + on_partitionrefresh_clicked(), + on_livedevicesrefresh_clicked(), + on_pointexclude_clicked(); + + { + QFile file(incfile); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr cline(sb::left(file.readLine(), -1)); + if(! cline.isEmpty()) ui->includedlist->addItem(cline); + } + } + + ilstupdt(true), + ui->storagedir->resize(ss(210), sz[2]), + ui->storagedirbutton->show(); + for(QWdt wdgt : QWL{ui->repairmenu, ui->aboutmenu, ui->settingsmenu, ui->pnumber3, ui->pnumber4, ui->pnumber5, ui->pnumber6, ui->pnumber7, ui->pnumber8, ui->pnumber9, ui->pnumber10}) wdgt->setEnabled(true); + + if(! sislive) + { + ickernel = [this] { + QStr ckernel(ckname()), fend[]{"order", "builtin"}; + + for(uchar a(0) ; a < 2 ; ++a) + if(sb::isfile("/lib/modules/" % ckernel % "/modules." % fend[a])) + { + QFile file("/lib/modules/" % ckernel % "/modules." % fend[a]); + + if(sb::fopen(file)) + { + QSL incl{"*aufs.ko_", "*overlay.ko_", "*overlayfs.ko_", "*unionfs.ko_"}; + + while(! file.atEnd()) + if(sb::like(file.readLine().trimmed(), incl)) return true; + } + } + + return sb::execsrch("unionfs-fuse"); + }(); + + for(QWdt wdgt : QWL{ui->copymenu, ui->installmenu, ui->systemupgrade, ui->excludemenu, ui->includemenu, ui->schedulemenu}) wdgt->setEnabled(true); + pname = tr("Currently running system"); + } + } + + pntupgrade(), + busy(false); + + connect(&utimer, +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) + SIGNAL(timeout()), this, SLOT(unitimer()) +#else + &QTimer::timeout, this, &systemback::unitimer +#endif + ); + + utimer.start(500); + + if(sstart) + ui->schedulerstart->setEnabled(true); + else if(sislive && sb::exist("/etc/xdg/autostart/sbfinstall.desktop")) + for(cchar *file : {"/etc/xdg/autostart/sbfinstall.desktop", "/etc/xdg/autostart/sbfinstall-kde.desktop"}) sb::remove(file); + } + else if(ui->statuspanel->isVisibleTo(ui->wpanel)) + { + if(prun.type) + { + ui->processrun->setText(prun.txt % [this] { + switch(++prun.pnts) { + case 1: + return " . "; + case 2: + return " .. "; + case 3: + return " ..."; + default: + prun.pnts = 0; + return " "; + } + }()); + + switch(prun.type) { + case 2 ... 6: + case 8 ... 10: + case 15: + case 19 ... 21: + { + if(irblck) + { + if(ui->interrupt->isEnabled()) ui->interrupt->setDisabled(true); + } + else if(! ui->interrupt->isEnabled()) + ui->interrupt->setEnabled(true); + + schar cperc(sb::Progress); + + if(cperc > -1) + { + if(! ui->progressbar->maximum()) ui->progressbar->setMaximum(100); + + if(cperc > 99) + { + if(ui->progressbar->value() < 100) ui->progressbar->setValue(100); + } + else if(ui->progressbar->value() < cperc) + ui->progressbar->setValue(cperc); + else if(sb::like(99, {cperc, ui->progressbar->value()}, true)) + ui->progressbar->setValue(100); + } + else if(ui->progressbar->maximum() == 100) + ui->progressbar->setMaximum(0); + + break; + } + case 18: + { + if(! ui->interrupt->isEnabled()) ui->interrupt->setEnabled(true); + schar cperc(sb::Progress); + + if(cperc > -1) + { + if(! ui->progressbar->maximum()) ui->progressbar->setMaximum(100); + if(cperc < 101 && ui->progressbar->value() < cperc) ui->progressbar->setValue(cperc); + } + else if(ui->progressbar->maximum() == 100) + ui->progressbar->setMaximum(0); + + break; + } + default: + if(! irblck && sb::like(prun.type, {12, 14, 16, 17})) + { + if(! ui->interrupt->isEnabled()) ui->interrupt->setEnabled(true); + } + else if(ui->interrupt->isEnabled()) + ui->interrupt->setDisabled(true); + + if(ui->progressbar->maximum() == 100) ui->progressbar->setMaximum(0); + } + } + } + else if(! sstart) + { + if(! fscrn) + { + auto acserr([this] { + pntupgrade(); + + if(ui->dialogquestion->isVisible()) + on_dialogcancel_clicked(); + else if(ui->restorepanel->isVisible()) + on_restoreback_clicked(); + else if(ui->copypanel->isVisible()) + { + on_copyback_clicked(); + if(ui->function1->text() != "Systemback") on_installback_clicked(); + } + else if(ui->installpanel->isVisible()) + on_installback_clicked(); + else if(ui->repairpanel->isVisible()) + on_repairback_clicked(); + }); + + if(sb::isdir(sb::sdir[1]) && sb::access(sb::sdir[1], sb::Write)) + { + if(! ui->storagedirarea->styleSheet().isEmpty()) ui->storagedirarea->setStyleSheet(nullptr), + pntupgrade(); + + if(! (ppipe || ui->newrestorepoint->isEnabled()) && pname == tr("Currently running system")) ui->newrestorepoint->setEnabled(true); + schar num(-1); + + for(QLE ldt : ui->points->findChildren()) + { + ++num; + + if(ldt->isEnabled() && ! sb::isdir(sb::sdir[1] % [num]() -> QStr { + switch(num) { + case 9: + return "/S10_"; + case 10 ... 14: + return "/H0" % QStr::number(num - 9) % '_'; + default: + return "/S0" % QStr::number(num + 1) % '_'; + } + }() % sb::pnames[num])) + { + acserr(); + break; + } + } + } + else + { + if(ui->point1->isEnabled() || ui->pointpipe11->isEnabled()) acserr(); + if(ui->newrestorepoint->isEnabled()) ui->newrestorepoint->setDisabled(true); + if(ui->storagedirarea->styleSheet().isEmpty()) ui->storagedirarea->setStyleSheet("background-color: rgb(255, 103, 103)"); + } + } + + if(ui->installpanel->isVisible()) + { + if(ui->installmenu->isEnabled() && ui->fullnamepipe->isVisible() && ui->usernamepipe->isVisible() && ui->hostnamepipe->isVisible() && ui->passwordpipe->isVisible() && (ui->rootpassword1->text().isEmpty() || ui->rootpasswordpipe->isVisible()) && ! ui->installnext->isEnabled()) ui->installnext->setEnabled(true); + } + else if(ui->livepanel->isVisible()) + { + if(ui->livenameerror->isVisible() || ui->liveworkdir->text().isEmpty()) + { + if(ui->livenew->isEnabled()) ui->livenew->setDisabled(true); + } + else if(ui->livenamepipe->isVisible() || ui->livename->text() == "auto") + { + if(sb::isdir(sb::sdir[2]) && sb::access(sb::sdir[2], sb::Write)) + { + if(! ui->liveworkdirarea->styleSheet().isEmpty()) ui->liveworkdirarea->setStyleSheet(nullptr); + if(ickernel && ! ui->livenew->isEnabled()) ui->livenew->setEnabled(true); + + if(! ui->livelist->isEnabled()) ui->livelist->setEnabled(true), + on_livemenu_clicked(); + } + else + { + if(ui->liveworkdirarea->styleSheet().isEmpty()) ui->liveworkdirarea->setStyleSheet("background-color: rgb(255, 103, 103)"); + + for(QWdt wdgt : QWL{ui->livenew, ui->livedelete, ui->liveconvert, ui->livewritestart}) + if(wdgt->isEnabled()) wdgt->setDisabled(true); + + if(ui->livelist->isEnabled()) + { + if(ui->livelist->count()) ui->livelist->clear(); + ui->livelist->setDisabled(true); + } + } + } + } + else if(ui->repairpanel->isVisible()) + rmntcheck(); + } + + if(ui->buttonspanel->isVisible() && ! (ui->buttonspanel->y() || minside(ui->buttonspanel))) bttnshide(); + utblck = false; + } +} + +QRect systemback::sgeom(bool rdc, QDW dtp) +{ + if(fscrn) return {QPoint(), size()}; + if(! dtp) dtp = qApp->desktop(); + return rdc ? dtp->availableGeometry(dtp->screenNumber(this)) : dtp->screenGeometry(dtp->screenNumber(this)); +} + +inline ushort systemback::ss(ushort dsize) +{ + switch(sfctr) { + case Max: + return dsize * 2; + case High: + switch(dsize) { + case 0: + return 0; + case 1: + return 2; + default: + ushort ssize((dsize * High + 50) / 100); + + switch(dsize) { + case 154: + case 201: + case 402: + case 506: + case 698: + return ssize + 1; + default: + return ssize; + } + } + default: + return dsize; + } +} + +QLE systemback::getpoint(uchar num) +{ + schar cnum(-1); + + for(QLE ldt : ui->points->findChildren()) + if(++cnum == num) return ldt; + + return nullptr; +} + +QCB systemback::getppipe(uchar num) +{ + schar cnum(-1); + + for(QCB ckbx : ui->sbpanel->findChildren()) + if(++cnum == num) return ckbx; + + return nullptr; +} + +void systemback::busy(bool state) +{ + state ? ++busycnt : --busycnt; + + switch(busycnt) { + case 0: + if(qApp->overrideCursor()->shape() == Qt::WaitCursor) qApp->restoreOverrideCursor(); + break; + case 1: + if(! qApp->overrideCursor()) qApp->setOverrideCursor(Qt::WaitCursor); + } +} + +inline bool systemback::minside(QWdt wgt) +{ + return wgt->rect().contains(wgt->mapFromGlobal(QCursor::pos())); +} + +inline bool systemback::minside(cQRect &rct) +{ + return rct.contains(mapFromGlobal(QCursor::pos())); +} + +QStr systemback::guname() +{ + if(! uchkd && (! ui->admins->count() || ui->admins->currentText() == "root")) + { + uchkd = true; + QSL usrs; + + { + QFile file("/etc/passwd"); + + if(sb::fopen(file)) + { + QSL incl{"*:x:1000:10*", "*:x:1001:10*", "*:x:1002:10*", "*:x:1003:10*", "*:x:1004:10*", "*:x:1005:10*", "*:x:1006:10*", "*:x:1007:10*", "*:x:1008:10*", "*:x:1009:10*", "*:x:1010:10*", "*:x:1011:10*", "*:x:1012:10*", "*:x:1013:10*", "*:x:1014:10*", "*:x:1015:10*"}; + + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + if(sb::like(usr, incl)) usrs.append(sb::left(usr, sb::instr(usr, ":") -1)); + } + } + } + + if(usrs.count()) + { + QStr uname; + + for(cQStr &usr : usrs) + if(sb::isdir("/home/" % usr)) + { + uname = usr; + break; + } + + if(uname.isEmpty()) uname = usrs.at(0); + if(ui->admins->findText(uname) == -1) ui->admins->addItem(uname); + if(ui->admins->count() > 1) ui->admins->setCurrentIndex(ui->admins->findText(uname)); + } + else if(ui->admins->currentText().isNull()) + ui->admins->addItem("root"); + } + + return ui->admins->currentText(); +} + +QStr systemback::ckname() +{ + utsname snfo; + uname(&snfo); + return snfo.release; +} + +void systemback::pset(uchar type, cbstr &tend) +{ + prun.txt = [type, &tend]() -> QStr { + switch(type) { + case 1: + return sb::ecache ? tr("Emptying cache") : tr("Flushing filesystem buffers"); + case 2: + return tr("Restoring the full system"); + case 3: + return tr("Restoring the system files"); + case 4: + return tr("Restoring the user(s) configuration files"); + case 5: + return tr("Repairing the system files"); + case 6: + return tr("Repairing the full system"); + case 7: + return tr("Repairing the GRUB 2"); + case 8: + return tr("Copying the system"); + case 9: + return tr("Installing the system"); + case 10: + return tr("Writing Live image to the target device"); + case 11: + return tr("Upgrading the system"); + case 12: + return tr("Deleting incomplete restore point"); + case 13: + return tr("Interrupting the current process"); + case 14: + return tr("Deleting old restore point") % ' ' % tend.data; + case 15: + return tr("Creating restore point"); + case 16: + return tr("Deleting restore point") % ' ' % tend.data; + case 21: + return tr("Converting Live system image") % '\n' % tr("process") % tend.data; + default: + return tr("Creating Live system") % '\n' % tr("process") % tend.data % (type < 20 && sb::autoiso ? "+1" : nullptr); + } + }(); + + prun.type = type; +} + +void systemback::emptycache() +{ + pset(1), sb::fssync(); + if(sb::ecache) sb::crtfile("/proc/sys/vm/drop_caches", "3"); +} + +void systemback::stschange() +{ + QRect agm(sgeom(true)), rct([&]() -> QRect { + if(wismax) + { + wismax = false; + return {wgeom[0], wgeom[1], wgeom[2], wgeom[3]}; + } + + wismax = true, + wndw->setMaximumSize(agm.size()); + return agm; + }()); + + wmblck = true; + int vls[]{qAbs(rct.x() - wndw->x()) / 6, qAbs(rct.y() - wndw->y()) / 6, qAbs(rct.width() - wndw->width()) / 6, qAbs(rct.height() - wndw->height()) / 6}; + ui->resizepanel->show(); + + for(uchar a(0) ; a < 6 ; ++a) wndw->setGeometry(qAbs(rct.x() - wndw->x()) > vls[0] ? wndw->x() - (rct.x() < wndw->x() ? vls[0] : -vls[0]) : rct.x(), qAbs(rct.y() - wndw->y()) > vls[1] ? wndw->y() - (rct.y() < wndw->y() ? vls[1] : -vls[1]) : rct.y(), qAbs(rct.width() - wndw->width()) > vls[2] ? wndw->width() - (rct.width() < wndw->width() ? vls[2] : -vls[2]) : rct.width(), qAbs(rct.height() - wndw->height()) > vls[3] ? wndw->height() - (rct.height() < wndw->height() ? vls[3] : -vls[3]) : rct.height()), + QThread::msleep(1), + repaint(); + + wndw->setGeometry(rct.x(), rct.y(), rct.width(), rct.height()), + ui->resizepanel->hide(), + wmblck = false; + + if(! wismax) + { + ushort sz(ss(60)); + wndw->setMaximumSize(agm.width() - sz, agm.height() - sz); + } + else if(ui->copypanel->isVisible()) + for(uchar a(2) ; a < 5 ; ++a) ui->partitionsettings->resizeColumnToContents(a); +} + +void systemback::schedulertimer() +{ + if(ui->schedulernumber->text().isEmpty()) + { + ui->schedulernumber->setText(QStr::number(sb::schdle[4]) % 's'); + + connect(shdltimer = new QTimer, +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) + SIGNAL(timeout()), this, SLOT(schedulertimer()) +#else + &QTimer::timeout, this, &systemback::schedulertimer +#endif + ); + + shdltimer->start(1000); + } + else if(ui->schedulernumber->text() == "1s") + on_schedulerstart_clicked(); + else + ui->schedulernumber->setText(QStr::number(sb::left(ui->schedulernumber->text(), -1).toUShort() - 1) % 's'); +} + +void systemback::dialogtimer() +{ + ui->dialognumber->setText(QStr::number(sb::left(ui->dialognumber->text(), -1).toUShort() - 1) % "s"); + if(ui->dialognumber->text() == "0s" && sb::like(ui->dialogok->text(), {'_' % tr("Reboot") % '_', '_' % tr("X restart") % '_'})) on_dialogok_clicked(); +} + +void systemback::wpressed() +{ + if(! wismax) + { + if(qApp->overrideCursor()) qApp->restoreOverrideCursor(); + qApp->setOverrideCursor(Qt::SizeAllCursor); + } +} + +void systemback::wreleased() +{ + if([] { + QCr csr(qApp->overrideCursor()); + return csr && csr->shape() == Qt::SizeAllCursor; + }()) + { + qApp->restoreOverrideCursor(); + if(busycnt) qApp->setOverrideCursor(Qt::WaitCursor); + } + + if(! (fscrn || wismax)) + { + QDW dtp(qApp->desktop()); + QRect agm(sgeom(true, dtp)), sgm; + ushort frm(ss(30)); + + if(agm.width() >= wgeom[2] + frm) + { + sgm = sgeom(false, dtp); + + if(x() < sgm.x()) + { + short val(sgm.x() + frm); + wgeom[0] = val < agm.x() ? agm.x() : val; + } + else if(x() < agm.x()) + wgeom[0] = agm.x(); + else + { + short bnd[2]; + + if(x() > (bnd[0] = sgm.x() + sgm.width() - wgeom[2])) + { + short val(bnd[0] - frm); + wgeom[0] = val < (bnd[1] = agm.x() + agm.width() - wgeom[2]) ? val : bnd[1]; + } + else if(x() > (bnd[0] = agm.x() + agm.width() - wgeom[2])) + wgeom[0] = bnd[0]; + } + } + else if(wgeom[0] != agm.x()) + wgeom[0] = agm.x(); + + if(agm.height() >= wgeom[3] + frm) + { + if(sgm.isEmpty()) sgm = sgeom(false, dtp); + + if(y() < sgm.y()) + { + short val(sgm.y() + frm); + wgeom[1] = val < agm.y() ? agm.y() : val; + } + else if(y() < agm.y()) + wgeom[1] = agm.y(); + else + { + short bnd[2]; + + if(y() > (bnd[0] = sgm.y() + sgm.height() - wgeom[3])) + { + short val(bnd[0] - frm); + wgeom[1] = val < (bnd[1] = agm.y() + agm.height() - wgeom[3]) ? val : bnd[1]; + } + else if(y() > (bnd[0] = agm.y() + agm.height() - wgeom[3])) + wgeom[1] = bnd[0]; + } + } + else if(wgeom[1] != agm.y()) + wgeom[1] = agm.y(); + + if(pos() != QPoint(wgeom[0], wgeom[1])) move(wgeom[0], wgeom[1]); + } +} + +void systemback::benter(bool click) +{ + if(click || (qApp->mouseButtons() == Qt::NoButton && ui->function3->foregroundRole() == QPalette::Base)) + { + if(ui->statuspanel->isVisible()) + { + if(ui->windowmaximize->isVisibleTo(ui->buttonspanel)) + { + ui->windowmaximize->hide(); + ushort sz(ss(2)); + ui->windowminimize->move(sz, sz); + } + + if(ui->windowclose->isVisibleTo(ui->buttonspanel)) ui->windowclose->hide(); + if(ui->buttonspanel->width() != ui->buttonspanel->height()) ui->buttonspanel->resize(ui->buttonspanel->height(), ui->buttonspanel->height()); + } + else if(ui->copypanel->isVisible() || ui->excludepanel->isVisible() || ui->includepanel->isVisible() || ui->choosepanel->isVisible()) + { + if(! ui->windowmaximize->isVisibleTo(ui->buttonspanel)) ui->windowmaximize->show(), + ui->windowminimize->move(ss(47), ss(2)); + + if(wismax) + { + if(ui->windowmaximize->text() == "□") ui->windowmaximize->setText("▭"); + } + else if(ui->windowmaximize->text() == "▭") + ui->windowmaximize->setText("□"); + + ushort sz(ss(92)); + if(ui->windowclose->x() != sz) ui->windowclose->move(sz, ss(2)); + if(! ui->windowclose->isVisibleTo(ui->buttonspanel)) ui->windowclose->show(); + if(ui->buttonspanel->width() != (sz = ss(138))) ui->buttonspanel->resize(sz, ui->buttonspanel->height()); + } + else + { + if(ui->windowmaximize->isVisibleTo(ui->buttonspanel)) + { + ui->windowmaximize->hide(); + ushort sz(ss(2)); + ui->windowminimize->move(sz, sz); + } + + ushort sz(ss(47)); + if(ui->windowclose->x() != sz) ui->windowclose->move(sz, ss(2)); + if(! ui->windowclose->isVisibleTo(ui->buttonspanel)) ui->windowclose->show(); + if(ui->buttonspanel->width() != (sz = ss(93))) ui->buttonspanel->resize(sz, ui->buttonspanel->height()); + } + + wbleave(), bttnsshow(); + } +} + +void systemback::bpressed() +{ + benter(true); + if(ui->windowclose->isVisible() && qApp->mouseButtons() == Qt::LeftButton && minside(ui->windowclose)) ui->windowclose->setForegroundRole(QPalette::Highlight); +} + +void systemback::bttnsshow() +{ + ui->buttonspanel->move(wndw->width() - ui->buttonspanel->width(), -ui->buttonspanel->height() + ss(27)), + ui->buttonspanel->show(); + uchar a(ss(1)); + QRect rct({(fscrn ? ui->wpanel->x() : 0) + wndw->width() - ui->buttonspanel->width(), fscrn ? ui->wpanel->y() : 0, ui->buttonspanel->width(), ui->buttonspanel->height()}); + + do { + ui->buttonspanel->move(ui->buttonspanel->x(), ui->buttonspanel->y() + a), + QThread::msleep(1), + qApp->processEvents(); + if(! minside(rct)) return bttnshide(); + } while(ui->buttonspanel->y() < -a); + + ui->buttonspanel->move(ui->buttonspanel->x(), 0); +} + +void systemback::bttnshide() +{ + schar a(ss(1)), b(-ui->buttonspanel->height() + ss(24) + a); + QRect rct({(fscrn ? ui->wpanel->x() : 0) + wndw->width() - ui->buttonspanel->width(), fscrn ? ui->wpanel->y() : 0, ui->buttonspanel->width(), ui->buttonspanel->height()}); + + do { + ui->buttonspanel->move(ui->buttonspanel->x(), ui->buttonspanel->y() - a), + QThread::msleep(1), + qApp->processEvents(); + if(minside(rct)) return bttnsshow(); + } while(ui->buttonspanel->y() > b); + + ui->buttonspanel->hide(); +} + +void systemback::bmove() +{ + if(minside({(fscrn ? ui->wpanel->x() : 0) + wndw->width() - ui->buttonspanel->width(), fscrn ? ui->wpanel->y() : 0, ui->buttonspanel->width(), ui->buttonspanel->height()})) + { + if(ui->windowmaximize->isVisibleTo(ui->buttonspanel)) + { + if(minside(ui->windowmaximize)) + { + if(ui->windowmaximize->backgroundRole() == QPalette::Foreground) ui->windowmaximize->setBackgroundRole(QPalette::Background), + ui->windowmaximize->setForegroundRole(QPalette::Text); + } + else if(ui->windowmaximize->backgroundRole() == QPalette::Background) + ui->windowmaximize->setBackgroundRole(QPalette::Foreground), + ui->windowmaximize->setForegroundRole(QPalette::Base); + } + + if(minside(ui->windowminimize)) + { + if(ui->windowminimize->backgroundRole() == QPalette::Foreground) ui->windowminimize->setBackgroundRole(QPalette::Background), + ui->windowminimize->setForegroundRole(QPalette::Text); + } + else if(ui->windowminimize->backgroundRole() == QPalette::Background) + ui->windowminimize->setBackgroundRole(QPalette::Foreground), + ui->windowminimize->setForegroundRole(QPalette::Base); + + if(ui->windowclose->isVisibleTo(ui->buttonspanel)) + { + if(minside(ui->windowclose)) + { + if(ui->windowclose->backgroundRole() == QPalette::Foreground) ui->windowclose->setBackgroundRole(QPalette::Background), + ui->windowclose->setForegroundRole(QPalette::Text); + } + else if(ui->windowclose->backgroundRole() == QPalette::Background) + ui->windowclose->setBackgroundRole(QPalette::Foreground), + ui->windowclose->setForegroundRole(QPalette::Base); + } + + if(ui->buttonspanel->isHidden() && minside(ui->windowbutton1)) bttnsshow(); + } + else if(ui->buttonspanel->isVisible() && ! ui->buttonspanel->y()) + bttnshide(); +} + +void systemback::wbenter() +{ + QWdt wdgt(minside(ui->windowminimize) ? ui->windowminimize : ui->windowclose->isVisible() && minside(ui->windowclose) ? ui->windowclose : ui->windowmaximize); + wdgt->setBackgroundRole(QPalette::Background), + wdgt->setForegroundRole(QPalette::Text); +} + +void systemback::wbleave() +{ + for(QWdt wdgt : QWL{ui->windowminimize, ui->windowclose, ui->windowmaximize}) + if(wdgt->backgroundRole() == QPalette::Background) + { + wdgt->setBackgroundRole(QPalette::Foreground), + wdgt->setForegroundRole(QPalette::Base); + break; + } +} + +void systemback::wbreleased() +{ + if(ui->buttonspanel->isVisible()) + { + if(ui->buttonspanel->y() < 0) + { + if(ui->windowclose->foregroundRole() == QPalette::Highlight) ui->windowclose->setForegroundRole(ui->windowclose->backgroundRole() == QPalette::Background ? QPalette::Text : QPalette::Base); + } + else if(ui->windowclose->isVisible() && minside(ui->windowclose)) + { + if(ui->windowclose->foregroundRole() == QPalette::Highlight) close(); + } + else if(ui->windowmaximize->isVisible() && minside(ui->windowmaximize)) + { + if(ui->windowmaximize->foregroundRole() == QPalette::Highlight) ui->buttonspanel->hide(), + stschange(); + } + else if(ui->windowminimize->foregroundRole() == QPalette::Highlight) + { + if(fscrn) + { + for(QWdt wdgt : QWL{ui->wpanel, ui->buttonspanel}) wdgt->hide(); + fwdgt = qApp->focusWidget(), + ui->logo->setFocusPolicy(Qt::ClickFocus), ui->logo->setFocus(); + } + else + { + XWindowAttributes attr; + XGetWindowAttributes(dsply, winId(), &attr), + XIconifyWindow(dsply, winId(), XScreenNumberOfScreen(attr.screen)), + XFlush(dsply); + } + } + } +} + +void systemback::renter() +{ + QWdt wdgt(ui->copypanel->isVisible() ? ui->copyresize : ui->choosepanel->isVisible() ? ui->chooseresize : ui->excludepanel->isVisible() ? ui->excluderesize : ui->includeresize); + + if(! wismax) + { + if(wdgt->cursor().shape() == Qt::ArrowCursor) wdgt->setCursor(Qt::PointingHandCursor); + + if(wdgt->width() == ss(10)) + { + ushort sz[]{ss(20), ss(30)}; + wdgt->setGeometry(wdgt->x() - sz[0], wdgt->y() - sz[0], sz[1], sz[1]); + } + } + else if(wdgt->cursor().shape() == Qt::PointingHandCursor) + wdgt->setCursor(Qt::ArrowCursor); +} + +void systemback::rleave() +{ + QWdt wdgt(ui->copypanel->isVisible() ? ui->copyresize : ui->choosepanel->isVisible() ? ui->chooseresize : ui->excludepanel->isVisible() ? ui->excluderesize : ui->includeresize); + + if(wdgt->width() == ss(30) && [] { + QCr csr(qApp->overrideCursor()); + return ! (csr && csr->shape() == Qt::SizeFDiagCursor); + }()) + { + ushort sz[]{ss(20), ss(10)}; + wdgt->setGeometry(wdgt->x() + sz[0], wdgt->y() + sz[0], sz[1], sz[1]); + } +} + +void systemback::rpressed() +{ + if(! wismax) + { + if(qApp->overrideCursor()) qApp->restoreOverrideCursor(); + qApp->setOverrideCursor(Qt::SizeFDiagCursor); + } +} + +void systemback::rreleased() +{ + QCr csr(qApp->overrideCursor()); + + if(csr && csr->shape() == Qt::SizeFDiagCursor) + { + qApp->restoreOverrideCursor(); + if(busycnt) qApp->setOverrideCursor(Qt::WaitCursor); + QRect sgm(sgeom()); + + bool algn[]{[&] { + ushort wdth(sgm.width() - wndw->x()); + + if(wndw->width() > wdth) + { + wgeom[2] = wdth; + return true; + } + + return false; + }(), [&] { + ushort hght(sgm.height() - wndw->y()); + + if(wndw->height() > hght) + { + wgeom[3] = hght; + return true; + } + + return false; + }()}; + + if(algn[0] || algn[1]) wndw->resize(wgeom[2], wgeom[3]); + } +} + +void systemback::mpressed() +{ + (ui->buttonspanel->isVisible() ? minside(ui->windowminimize) ? ui->windowminimize : ui->windowclose->isVisible() && minside(ui->windowclose) ? ui->windowclose : ui->windowmaximize : ui->scalingbutton->isVisible() && minside(ui->scalingbutton) ? ui->scalingbutton : minside(ui->homepage1) ? ui->homepage1 : minside(ui->homepage2) ? ui->homepage2 : minside(ui->email) ? ui->email : ui->donate)->setForegroundRole(QPalette::Highlight); +} + +void systemback::abtreleased() +{ + if(ui->homepage1->foregroundRole() == QPalette::Highlight) + ui->homepage1->setForegroundRole(QPalette::Text), + sb::exec("su -c \"xdg-open https://sourceforge.net/projects/systemback &\" " % guname(), sb::Bckgrnd); + else if(ui->homepage2->foregroundRole() == QPalette::Highlight) + ui->homepage2->setForegroundRole(QPalette::Text), + sb::exec("su -c \"xdg-open https://launchpad.net/systemback &\" " % guname(), sb::Bckgrnd); + else if(ui->email->foregroundRole() == QPalette::Highlight) + ui->email->setForegroundRole(QPalette::Text), + sb::exec("su -c \"xdg-email nemh@freemail.hu &\" " % guname(), sb::Bckgrnd); + else if(ui->donate->foregroundRole() == QPalette::Highlight) + ui->donate->setForegroundRole(QPalette::Text), + sb::exec("su -c \"xdg-open 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZQ668BBR7UCEQ' &\" " % guname(), sb::Bckgrnd); +} + +void systemback::foutpnt() +{ + schar num(-1); + + for(QLE ldt : ui->points->findChildren()) + { + ++num; + + if(ldt->isEnabled() && ldt->text().isEmpty()) + { + ldt->setText(sb::pnames[num]); + break; + } + } +} + +void systemback::on_usersettingscopy_stateChanged(int arg1) +{ + if(! ppipe && ui->copypanel->isVisible()) ui->usersettingscopy->setText(arg1 == 1 ? tr("Transfer user configuration files") : tr("Transfer user configuration and data files")); +} + +void systemback::pntupgrade() +{ + sb::pupgrade(); + schar num(-1); + + for(QLE ldt : ui->points->findChildren()) + if(! sb::pnames[++num].isEmpty()) + { + if(! ldt->isEnabled()) + { + ldt->setEnabled(true); + + switch(num) { + case 2: + if(sb::pnumber == 3 && ldt->styleSheet().isEmpty()) ldt->setStyleSheet("background-color: rgb(255, 103, 103)"); + break; + case 3 ... 8: + if(sb::pnumber < num + 2 && ldt->styleSheet().isEmpty()) ldt->setStyleSheet("background-color: rgb(255, 103, 103)"); + break; + case 9: + if(ldt->styleSheet().isEmpty()) ldt->setStyleSheet("background-color: rgb(255, 103, 103)"); + } + + ldt->setText(sb::pnames[num]); + } + else if(ldt->text() != sb::pnames[num]) + ldt->setText(sb::pnames[num]); + } + else if(ldt->isEnabled()) + { + ldt->setDisabled(true); + if(! ldt->styleSheet().isEmpty()) ldt->setStyleSheet(nullptr); + + switch(num) { + case 3 ... 9: + if(sb::pnumber < num + 1) + { + if(ldt->text() != tr("not used")) ldt->setText(tr("not used")); + } + else if(ldt->text() != tr("empty")) + ldt->setText(tr("empty")); + + break; + default: + if(ldt->text() != tr("empty")) ldt->setText(tr("empty")); + } + } + + if(! sstart) on_pointpipe1_clicked(); +} + +void systemback::statustart() +{ + if(sstart && dialog != 305) + ui->schedulerpanel->hide(), + ui->statuspanel->show(), + setwontop(false); + else + { + if(ui->mainpanel->isVisible()) + ui->mainpanel->hide(); + else if(ui->dialogpanel->isVisible()) + ui->dialogpanel->hide(), + setwontop(false); + + ui->statuspanel->show(), + windowmove(ui->statuspanel->width(), ui->statuspanel->height()); + if(sb::dbglev == sb::Nulldbg) sb::dbglev = sb::Errdbg; + } + + ui->progressbar->setMaximum(0), + ui->focusfix->setFocus(); +} + +void systemback::restore() +{ + statustart(); + uchar mthd(ui->fullrestore->isChecked() ? 1 : ui->systemrestore->isChecked() ? 2 : ui->keepfiles->isChecked() ? ui->includeusers->currentIndex() == 0 ? 3 : 4 : ui->includeusers->currentIndex() == 0 ? 5 : 6); + pset(mthd > 2 ? 4 : mthd + 1); + uchar fcmp(sb::isfile("/etc/fstab") && sb::isfile(sb::sdir[1] % '/' % cpoint % '_' % pname % "/etc/fstab") ? sb::fload("/etc/fstab") == sb::fload(sb::sdir[1] % '/' % cpoint % '_' % pname % "/etc/fstab") ? 2 : 1 : 0); + auto exit([this] { intrrpt = false; }); + if(intrrpt) return exit(); + + if(sb::srestore(mthd, ui->includeusers->currentText(), sb::sdir[1] % '/' % cpoint % '_' % pname, nullptr, ui->autorestoreoptions->isChecked() ? fcmp : ui->skipfstabrestore->isChecked())) + { + if(intrrpt) return exit(); + sb::Progress = -1; + + if(mthd < 3) + { + if(ui->grubreinstallrestore->isVisibleTo(ui->restorepanel) && ! (ui->grubreinstallrestore->isEnabled() && ui->grubreinstallrestore->currentText() == tr("Disabled"))) + { + sb::exec("update-grub"); + if(intrrpt) return exit(); + + if(fcmp < 2 || ! (ui->autorestoreoptions->isChecked() || ui->grubreinstallrestore->currentText() == "Auto")) + { + if(sb::exec("grub-install --force " % (grub.isEFI ? nullptr : ui->autorestoreoptions->isChecked() || ui->grubreinstallrestore->currentText() == "Auto" ? sb::gdetect() : ui->grubreinstallrestore->currentText()))) dialog = 309; + if(intrrpt) return exit(); + } + } + + sb::crtfile(sb::sdir[1] % "/.sbschedule"); + } + + if(dialog != 309) dialog = [mthd, this] { + switch(mthd) { + case 1: + return 205; + case 2: + return 204; + default: + return ui->keepfiles->isChecked() ? 201 : 200; + } + }(); + } + else + dialog = 339; + + if(intrrpt) return exit(); + dialogopen(); +} + +void systemback::repair() +{ + statustart(); + uchar mthd(ui->systemrepair->isChecked() ? 2 : ui->fullrepair->isChecked() ? 1 : 0); + pset(7 - mthd); + auto exit([this] { intrrpt = false; }); + + if(! mthd) + { + QSL mlst{"dev", "dev/pts", "proc", "sys"}; + for(cQStr &bpath : (sb::mcheck("/run") ? mlst << "/run" : mlst)) sb::mount('/' % bpath, "/mnt/" % bpath); + dialog = sb::exec("chroot /mnt sh -c \"update-grub ; grub-install --force " % (grub.isEFI ? nullptr : ui->grubreinstallrepair->currentText() == "Auto" ? sb::gdetect("/mnt") : ui->grubreinstallrepair->currentText()) % '\"') ? 318 : 208, + mlst.move(0, 1); + for(cQStr &pend : mlst) sb::umount("/mnt/" % pend); + if(intrrpt) return exit(); + } + else + { + uchar fcmp(sb::isfile("/mnt/etc/fstab") ? 1 : 0); + bool rv; + + if(! ppipe) + { + if(! (sb::isdir("/.systembacklivepoint") || sb::crtdir("/.systembacklivepoint"))) sb::rename("/.systembacklivepoint", "/.systembacklivepoint_" % sb::rndstr()), + sb::crtdir("/.systembacklivepoint"); + + if(! sb::mount(sb::isfile("/cdrom/casper/filesystem.squashfs") ? "/cdrom/casper/filesystem.squashfs" : "/lib/live/mount/medium/live/filesystem.squashfs", "/.systembacklivepoint", "loop")) return dialogopen(334); + + if(fcmp == 1) + { + if(! sb::isfile("/.systembacklivepoint/etc/fstab")) + --fcmp; + else if(sb::fload("/mnt/etc/fstab") == sb::fload("/.systembacklivepoint/etc/fstab")) + ++fcmp; + } + + if(intrrpt) return exit(); + rv = sb::srestore(mthd, nullptr, "/.systembacklivepoint", "/mnt", ui->autorepairoptions->isChecked() ? fcmp : ui->skipfstabrepair->isChecked()), + sb::umount("/.systembacklivepoint"), + rmdir("/.systembacklivepoint"); + } + else + { + if(fcmp == 1) + { + if(! sb::isfile(sb::sdir[1] % '/' % cpoint % '_' % pname % "/etc/fstab")) + --fcmp; + else if(sb::fload("/mnt/etc/fstab") == sb::fload(sb::sdir[1] % '/' % cpoint % '_' % pname % "/etc/fstab")) + ++fcmp; + } + + rv = sb::srestore(mthd, nullptr, sb::sdir[1] % '/' % cpoint % '_' % pname, "/mnt", ui->autorepairoptions->isChecked() ? fcmp : ui->skipfstabrepair->isChecked()); + } + + if(intrrpt) return exit(); + + if(rv) + { + if(ui->grubreinstallrepair->isVisibleTo(ui->repairpanel) && ! (ui->grubreinstallrepair->isEnabled() && ui->grubreinstallrepair->currentText() == tr("Disabled"))) + { + QSL mlst{"dev", "dev/pts", "proc", "sys"}; + for(cQStr &bpath : (sb::mcheck("/run") ? mlst << "/run" : mlst)) sb::mount('/' % bpath, "/mnt/" % bpath); + sb::exec("chroot /mnt update-grub"); + if(intrrpt) return exit(); + if((fcmp < 2 || ! (ui->autorepairoptions->isChecked() || ui->grubreinstallrepair->currentText() == "Auto")) && sb::exec("chroot /mnt grub-install --force " % (grub.isEFI ? nullptr : ui->autorepairoptions->isChecked() || ui->grubreinstallrepair->currentText() == "Auto" ? sb::gdetect("/mnt") : ui->grubreinstallrepair->currentText()))) dialog = ui->fullrepair->isChecked() ? 310 : 304; + mlst.move(0, 1); + for(cQStr &pend : mlst) sb::umount("/mnt/" % pend); + if(intrrpt) return exit(); + } + + emptycache(); + + if(sb::like(dialog, {101, 102})) + { + if(ppipe && sb::isdir(sb::sdir[1]) && sb::access(sb::sdir[1], sb::Write)) sb::crtfile(sb::sdir[1] % "/.sbschedule"); + dialog = ui->fullrepair->isChecked() ? 202 : 203; + } + } + else + dialog = 339; + } + + dialogopen(); +} + +void systemback::systemcopy() +{ + statustart(), pset(ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 8 : 9); + + auto err([this](ushort dlg = 0, cbstr &dev = nullptr) { + if(! (intrrpt || (dlg && sb::like(dlg, {308, 314, 315, 317, 330, 331, 332, 333})))) dlg = [this] { + if(sb::dfree("/.sbsystemcopy") > 104857600 && (! sb::isdir("/.sbsystemcopy/home") || sb::dfree("/.sbsystemcopy/home") > 104857600) && (! sb::isdir("/.sbsystemcopy/boot") || sb::dfree("/.sbsystemcopy/boot") > 52428800) && (! sb::isdir("/.sbsystemcopy/boot/efi") || sb::dfree("/.sbsystemcopy/boot/efi") > 10485760)) + { + irblck = true; + return ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 320 : 321; + } + else + return ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 307 : 316; + }(); + + { + QStr mnts(sb::fload("/proc/self/mounts", true)); + QTS in(&mnts, QIODevice::ReadOnly); + QSL incl{"* /.sbsystemcopy*", "* /.sbmountpoints*", "* /.systembacklivepoint *"}; + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + if(sb::like(cline, incl)) sb::umount(cline.split(' ').at(1)); + } + } + + if(sb::isdir("/.sbmountpoints")) + { + for(cQStr &item : QDir("/.sbmountpoints").entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) rmdir(bstr("/.sbmountpoints/" % item)); + rmdir("/.sbmountpoints"); + } + + rmdir("/.sbsystemcopy"); + if(sb::isdir("/.systembacklivepoint")) rmdir("/.systembacklivepoint"); + + if(intrrpt) + intrrpt = false; + else + { + if(irblck) irblck = false; + dialogopen(dlg, dev); + } + }); + + if(! (sb::isdir("/.sbsystemcopy") || sb::crtdir("/.sbsystemcopy"))) return err(); + + { + QSL msort; + msort.reserve(ui->partitionsettings->rowCount() - 1); + + for(ushort a(0) ; a < ui->partitionsettings->rowCount() ; ++a) + { + QStr nmpt(ui->partitionsettings->item(a, 4)->text()); + + if(! (nmpt.isEmpty() || (nohmcpy[1] && nmpt == "/home"))) + msort.append(nmpt % '\n' % (ui->partitionsettings->item(a, 6)->text() == "x" ? ui->partitionsettings->item(a, 5)->text() : ui->partitionsettings->item(a, 5)->text() == "btrfs" ? "-b" : "-") % '\n' % ui->partitionsettings->item(a, 0)->text()); + } + + msort.sort(); + QSL ckd; + ckd.reserve(msort.count()); + + for(cQStr &vals : msort) + { + QSL cval(vals.split('\n')); + cQStr &mpoint(cval.at(0)), &fstype(cval.at(1)), &part(cval.at(2)); + if(! ckd.contains(part) && sb::mcheck(part) && (! (grub.isEFI && mpoint == "/boot/efi") || fstype.length() > 2)) sb::umount(part); + if(intrrpt) return err(); + sb::fssync(); + if(intrrpt) return err(); + + if(fstype.length() > 2) + { + QStr lbl("SB@" % (mpoint.startsWith('/') ? sb::right(mpoint, -1) : mpoint)); + + uchar rv(fstype == "swap" ? sb::exec("mkswap -L " % lbl % ' ' % part) + : fstype == "jfs" ? sb::exec("mkfs.jfs -qL " % lbl % ' ' % part) + : fstype == "reiserfs" ? sb::exec("mkfs.reiserfs -ql " % lbl % ' ' % part) + : fstype == "xfs" ? sb::exec("mkfs.xfs -fL " % lbl % ' ' % part) + : fstype == "vfat" ? sb::setpflag(part, "boot") ? sb::exec("mkfs.vfat -F 32 -n " % lbl.toUpper() % ' ' % part) : 255 + : fstype == "btrfs" ? (ckd.contains(part) ? 0 : sb::exec("mkfs.btrfs -fL " % lbl % ' ' % part)) ? sb::exec("mkfs.btrfs -L " % lbl % ' ' % part) : 0 + : sb::exec("mkfs." % fstype % " -FL " % lbl % ' ' % part)); + + if(intrrpt) return err(); + if(rv) return err(ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 317 : 331, part); + } + + if(mpoint != "SWAP") + { + if(! sb::isdir("/.sbsystemcopy" % mpoint)) + { + QStr path("/.sbsystemcopy"); + + for(cQStr &cpath : mpoint.split('/')) + if(! (sb::isdir(path.append('/' % cpath)) || sb::crtdir(path))) + { + sb::rename(path, path % '_' % sb::rndstr()); + if(! sb::crtdir(path)) return err(); + } + } + + if(intrrpt) return err(); + + if(fstype.length() == 2 || fstype == "btrfs") + { + QStr mpt("/.sbmountpoints"), sv('@' % sb::right(mpoint, -1).replace('/', '_')); + + for(uchar a(0) ; a < 4 ; ++a) + switch(a) { + case 0 ... 1: + if(! sb::isdir(mpt)) + { + if(sb::exist(mpt)) sb::remove(mpt); + if(! sb::crtdir(mpt)) return err(); + } + + if(! a) + mpt.append('/' % sb::right(part, -sb::rinstr(part, "/"))); + else if(! ckd.contains(part)) + { + if(sb::mount(part, mpt)) + ckd.append(part); + else + return err(ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 314 : 330, part); + } + + break; + case 2 ... 3: + sb::exec("btrfs subvolume create " % mpt % '/' % sv); + if(intrrpt) return err(); + + if(sb::mount(part, "/.sbsystemcopy" % mpoint, "noatime,subvol=" % sv)) + ++a; + else if(a == 3 || ! sb::rename(mpt % '/' % sv, mpt % '/' % sv % '_' % sb::rndstr())) + return err(ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 314 : 330, part); + } + } + else if(! sb::mount(part, "/.sbsystemcopy" % mpoint)) + return err(ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 314 : 330, part); + } + + if(intrrpt) return err(); + } + } + + auto cfgwrt([](bool rpnt = true) { + if(rpnt && ! (sb::copy(excfile, "/.sbsystemcopy" excfile) && sb::copy(incfile, "/.sbsystemcopy" incfile))) return false; + return sb::cfgwrite("/.sbsystemcopy" cfgfile); + }); + + if(! ppipe) + { + if(pname == tr("Live image")) + { + if(! (sb::isdir("/.systembacklivepoint") || sb::crtdir("/.systembacklivepoint"))) + { + sb::rename("/.systembacklivepoint", "/.systembacklivepoint_" % sb::rndstr()); + if(! sb::crtdir("/.systembacklivepoint") || intrrpt) return err(); + } + + if(! sb::mount(sb::isfile("/cdrom/casper/filesystem.squashfs") ? "/cdrom/casper/filesystem.squashfs" : "/lib/live/mount/medium/live/filesystem.squashfs", "/.systembacklivepoint", "loop")) return err(ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 332 : 333); + if(intrrpt) return err(); + + if(ui->usersettingscopy->isVisibleTo(ui->copypanel)) + { + if(! sb::scopy([this] { + switch(ui->usersettingscopy->checkState()) { + case Qt::Unchecked: + return 5; + case Qt::PartiallyChecked: + return 3; + default: + return 4; + } + }(), guname(), "/.systembacklivepoint")) return err(); + } + else if(! (sb::scopy(nohmcpy[1] ? 0 : ui->userdatafilescopy->isChecked() ? 1 : 2, nullptr, "/.systembacklivepoint") && cfgwrt())) + return err(); + + sb::umount("/.systembacklivepoint"), + rmdir("/.systembacklivepoint"); + } + else if(ui->usersettingscopy->isVisibleTo(ui->copypanel)) + { + if(! sb::scopy([this] { + switch(ui->usersettingscopy->checkState()) { + case Qt::Unchecked: + return 5; + case Qt::PartiallyChecked: + return 3; + default: + return 4; + } + }(), guname(), nullptr)) return err(); + } + else if(! (sb::scopy(nohmcpy[1] ? 0 : ui->userdatafilescopy->isChecked() ? 1 : 2, nullptr, nullptr) && cfgwrt(false))) + return err(); + } + else if(ui->usersettingscopy->isVisibleTo(ui->copypanel)) + { + if(! sb::scopy(ui->usersettingscopy->isChecked() ? 4 : 5, guname(), sb::sdir[1] % '/' % cpoint % '_' % pname)) return err(); + } + else if(! (sb::scopy(nohmcpy[1] ? 0 : ui->userdatafilescopy->isChecked() ? 1 : 2, nullptr, sb::sdir[1] % '/' % cpoint % '_' % pname) && cfgwrt())) + return err(); + + if(intrrpt) return err(); + sb::Progress = -1; + + if(ui->usersettingscopy->isVisibleTo(ui->copypanel)) + { + if(sb::exec("chroot /.sbsystemcopy sh -c \"for rmuser in $(grep :\\$6\\$* /etc/shadow | cut -d : -f 1) ; do [ $rmuser = " % guname() % " ] || [ $rmuser = root ] || userdel $rmuser ; done\"")) return err(); + QStr nfile; + + if(guname() != "root") + { + QStr nuname(ui->username->text()); + + if(guname() != nuname) + { + if(sb::isdir("/.sbsystemcopy/home/" % guname()) && ((sb::exist("/.sbsystemcopy/home/" % nuname) && ! sb::rename("/.sbsystemcopy/home/" % nuname, "/.sbsystemcopy/home/" % nuname % '_' % sb::rndstr())) || ! sb::rename("/.sbsystemcopy/home/" % guname(), "/.sbsystemcopy/home/" % nuname))) return err(); + + if(sb::isfile("/.sbsystemcopy/home/" % nuname % "/.config/gtk-3.0/bookmarks")) + { + QStr cnt(sb::fload("/.sbsystemcopy/home/" % nuname % "/.config/gtk-3.0/bookmarks")); + if(cnt.contains("file:///home/" % guname() % '/') && ! sb::crtfile("/.sbsystemcopy/home/" % nuname % "/.config/gtk-3.0/bookmarks", cnt.replace("file:///home/" % guname() % '/', "file:///home/" % nuname % '/'))) return err(); + } + + if(sb::isfile("/.sbsystemcopy/etc/subuid") && sb::isfile("/.sbsystemcopy/etc/subgid")) + { + { + QFile file("/.sbsystemcopy/etc/subuid"); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QStr nline(file.readLine().trimmed()); + if(nline.startsWith(guname() % ':')) nline.replace(0, guname().length(), nuname); + nfile.append(nline % '\n'); + if(intrrpt) return err(); + } + } + + if(! sb::crtfile("/.sbsystemcopy/etc/subuid", nfile)) return err(); + nfile.clear(); + + { + QFile file("/.sbsystemcopy/etc/subgid"); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QStr nline(file.readLine().trimmed()); + if(nline.startsWith(guname() % ':')) nline.replace(0, guname().length(), nuname); + nfile.append(nline % '\n'); + if(intrrpt) return err(); + } + } + + if(! sb::crtfile("/.sbsystemcopy/etc/subgid", nfile)) return err(); + nfile.clear(); + } + } + + for(cQStr &cfname : {"/.sbsystemcopy/etc/group", "/.sbsystemcopy/etc/gshadow"}) + { + QFile file(cfname); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QStr nline(file.readLine().trimmed()); + + if(nline.startsWith("sudo:") && ui->rootpassword1->text().isEmpty() && ! sb::right(nline, -sb::rinstr(nline, ":")).split(',').contains(guname())) + nline.append((nline.endsWith(':') ? nullptr : ",") % nuname); + else if(guname() != nuname) + { + if(nline.startsWith(guname() % ':')) nline.replace(0, guname().length(), nuname); + nline.replace(':' % guname() % ',', ':' % nuname % ','), nline.replace(',' % guname() % ',', ',' % nuname % ','); + if(sb::like(nline, {"*:" % guname() % '_', "*," % guname() % '_'})) nline.replace(nline.length() - guname().length(), guname().length(), nuname); + } + + nfile.append(nline % '\n'); + if(intrrpt) return err(); + } + + if(! sb::crtfile(cfname , nfile)) return err(); + nfile.clear(), qApp->processEvents(); + } + + QFile file("/.sbsystemcopy/etc/passwd"); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + nfile.append((! cline.startsWith(guname() % ':') ? cline : [&] { + QSL uslst(cline.split(':')); + QStr nline; + + for(uchar a(0) ; a < uslst.count() ; ++a) + nline.append([&, a]() -> QStr { + switch(a) { + case 0: + return nuname; + case 4: + return ui->fullname->text() % ",,,"; + case 5: + return "/home/" % nuname; + default: + return uslst.at(a); + } + }() % ':'); + + return sb::left(nline, -1); + }()) % '\n'); + + if(intrrpt) return err(); + } + + if(! sb::crtfile("/.sbsystemcopy/etc/passwd", nfile)) return err(); + nfile.clear(); + } + + { + QFile file("/.sbsystemcopy/etc/shadow"); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + nfile.append((cline.startsWith(guname() % ':') ? [&] { + QSL uslst(cline.split(':')); + QStr nline; + + for(uchar a(0) ; a < uslst.count() ; ++a) + nline.append([&, a]() -> QStr { + switch(a) { + case 0: + return guname() == "root" ? "root" : ui->username->text(); + case 1: + return QStr(crypt(bstr(ui->password1->text()), bstr("$6$" % sb::rndstr(16)))); + default: + return uslst.at(a); + } + }() % ':'); + + return sb::left(nline, -1); + }() : cline.startsWith("root:") ? [&] { + QSL uslst(cline.split(':')); + QStr nline; + + for(uchar a(0) ; a < uslst.count() ; ++a) + nline.append([&, a]() -> QStr { + switch(a) { + case 1: + return ui->rootpassword1->text().isEmpty() ? "!" : QStr(crypt(bstr(ui->rootpassword1->text()), bstr("$6$" % sb::rndstr(16)))); + default: + return uslst.at(a); + } + }() % ':'); + + return sb::left(nline, -1); + }() : cline) % '\n'); + + if(intrrpt) return err(); + } + } + + if(! sb::crtfile("/.sbsystemcopy/etc/shadow", nfile)) return err(); + nfile.clear(); + + { + QFile file("/.sbsystemcopy/etc/hostname"); + if(! sb::fopen(file)) return err(); + QStr ohname(file.readLine().trimmed()), nhname(ui->hostname->text()); + file.close(); + + if(ohname != nhname) + { + if(! sb::crtfile("/.sbsystemcopy/etc/hostname", nhname % '\n')) return err(); + file.setFileName("/.sbsystemcopy/etc/hosts"); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QStr nline(file.readLine().trimmed()); + nline.replace('\t' % ohname % '\t', '\t' % nhname % '\t'); + if(nline.endsWith('\t' % ohname)) nline.replace(nline.length() - ohname.length(), ohname.length(), nhname); + nfile.append(nline % '\n'); + if(intrrpt) return err(); + } + + if(! sb::crtfile("/.sbsystemcopy/etc/hosts", nfile)) return err(); + nfile.clear(); + } + } + + for(uchar a(0) ; a < 5 ; ++a) + { + QStr fpath("/.sbsystemcopy/etc/" % [a]() -> QStr { + switch(a) { + case 0: + return "lightdm/lightdm.conf"; + case 1: + return "kde4/kdm/kdmrc"; + case 2: + return "sddm.conf"; + case 3: + return "gdm/custom.conf"; + case 4: + return "gdm3/daemon.conf"; + default: + return "mdm/mdm.conf"; + } + }()); + + if(sb::isfile(fpath)) + { + QFile file(fpath); + if(! sb::fopen(file)) return err(); + uchar mdfd(0); + + QSL incl([a]() -> QSL { + switch(a) { + case 0: + return {"_autologin-user=*"}; + case 1: + return {"_AutoLoginUser=*"}; + case 2: + return {"_User=*", "_HideUsers=*"}; + default: + return {"_AutomaticLogin=*", "_TimedLogin=*"}; + } + }()); + + while(! file.atEnd()) + { + QStr nline(file.readLine().trimmed()); + + if(sb::like(nline, incl)) + if(! nline.endsWith('=')) + { + bool algn(nline.endsWith('=' % guname()) && ! (a == 2 && nline.startsWith("HideUsers="))); + nline = sb::left(nline, sb::instr(nline, "=")); + + if(algn) + { + nline.append(ui->username->text()); + if(! mdfd) ++mdfd; + } + else + switch(a) { + case 1: + if(mdfd < 2) mdfd = 2; + break; + case 3 ... 5: + if(mdfd < 4) mdfd = nline.at(0) == 'A' ? mdfd == 3 ? 4 : 2 : mdfd == 2 ? 4 : 3; + break; + default: + if(! mdfd) ++mdfd; + } + } + + nfile.append(nline % '\n'); + if(intrrpt) return err(); + } + + if(mdfd) + { + switch(a) { + case 1: + if(mdfd == 2) nfile.replace("AutoLoginEnabled=true", "AutoLoginEnabled=false"); + break; + case 3 ... 5: + if(mdfd > 1) + { + if(sb::like(mdfd, {2, 4})) nfile.replace("AutomaticLoginEnable=true", "AutomaticLoginEnable=false"); + if(sb::like(mdfd, {3, 4})) nfile.replace("TimedLoginEnable=true", "TimedLoginEnable=false"); + } + } + + if(! sb::crtfile(fpath, nfile)) return err(); + } + + nfile.clear(), qApp->processEvents(); + } + } + + QBA mid(sb::rndstr(16).toUtf8().toHex() % '\n'); + if(intrrpt || ! (sb::crtfile("/.sbsystemcopy/etc/machine-id", mid) && cfmod("/.sbsystemcopy/etc/machine-id", 0444)) || (sb::isdir("/.sbsystemcopy/var/lib/dbus") && ! sb::crtfile("/.sbsystemcopy/var/lib/dbus/machine-id", mid))) return err(); + } + + { + QStr fstabtxt("# /etc/fstab: static file system information.\n#\n# Use 'blkid' to print the universally unique identifier for a\n# device; this may be used with UUID= as a more robust way to name devices\n# that works even if disks are added and removed. See fstab(5).\n#\n# \n"); + + for(ushort a(0) ; a < ui->partitionsettings->rowCount() ; ++a) + { + QStr nmpt(ui->partitionsettings->item(a, 4)->text()); + + if(! nmpt.isEmpty()) + { + if(nohmcpy[1] && nmpt == "/home") + { + QFile file("/etc/fstab"); + if(! sb::fopen(file)) return err(); + QSL incl{"* /home *", "* /home/ *"}; + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + if(! cline.startsWith('#') && sb::like(cline.replace('\t', ' '), incl)) + { + fstabtxt.append("# /home\n" % cline % '\n'); + break; + } + } + } + else + { + QStr uuid(sb::ruuid(ui->partitionsettings->item(a, 0)->text())), nfs(ui->partitionsettings->item(a, 5)->text()); + + fstabtxt.append("# " % (nmpt == "SWAP" ? QStr("SWAP\nUUID=" % uuid % " none swap sw 0 0") + : nmpt % "\nUUID=" % uuid % " " % nmpt % " " % nfs % " noatime" + % (nmpt == "/" ? QStr(nfs == "reiserfs" ? ",notail" : nfs == "btrfs" ? ",subvol=@" : ",errors=remount-ro") % " 0 1" + : nmpt == "/boot/efi" ? QStr(",umask=0077 0 1") + : (nfs == "reiserfs" ? ",notail" : nfs == "btrfs" ? QStr(",subvol=@" % sb::right(nmpt, -1).replace('/', '_')) : nullptr) % " 0 2")) % '\n'); + } + } + + if(intrrpt) return err(); + } + + if(sb::isfile("/etc/fstab")) + { + QFile file("/etc/fstab"); + if(! sb::fopen(file)) return err(); + QSL incl{"*/dev/cdrom*", "*/dev/sr*"}; + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + if(! cline.startsWith('#') && sb::like(cline, incl)) fstabtxt.append("# cdrom\n" % cline % '\n'); + if(intrrpt) return err(); + } + } + + if(! sb::crtfile("/.sbsystemcopy/etc/fstab", fstabtxt)) return err(); + } + + { + QStr cfpath(ppipe ? QStr(sb::sdir[1] % '/' % cpoint % '_' % pname % "/etc/crypttab") : "/etc/crypttab"); + + if(sb::isfile(cfpath)) + { + QFile file(cfpath); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QBA cline(file.readLine().trimmed()); + + if(! cline.startsWith('#') && cline.contains("UUID=")) + { + if(intrrpt || ! sb::crtfile("/.sbsystemcopy/etc/mtab") || sb::exec("chroot /.sbsystemcopy update-initramfs -tck all")) return err(); + break; + } + } + } + } + + if(ui->grubinstallcopy->isVisibleTo(ui->copypanel)) + { + if(intrrpt) return err(); + { QSL mlst{"dev", "dev/pts", "proc", "sys"}; + for(cQStr &bpath : (sb::mcheck("/run") ? mlst << "/run" : mlst)) sb::mount('/' % bpath, "/.sbsystemcopy/" % bpath); } + + if(ui->grubinstallcopy->currentText() == tr("Disabled")) + sb::exec("chroot /.sbsystemcopy update-grub"); + else if(sb::exec("chroot /.sbsystemcopy sh -c \"update-grub ; grub-install --force " % (grub.isEFI ? nullptr : ui->grubinstallcopy->currentText() == "Auto" ? sb::gdetect("/.sbsystemcopy") : ui->grubinstallcopy->currentText()) % '\"')) + return err(ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 308 : 315); + } + + if(intrrpt) return err(); + pset(1); + + { + QStr mnts(sb::fload("/proc/self/mounts", true)); + QTS in(&mnts, QIODevice::ReadOnly); + QSL incl{"* /.sbsystemcopy*", "* /.sbmountpoints*"}; + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + if(sb::like(cline, incl)) sb::umount(cline.split(' ').at(1)); + } + } + + if(sb::isdir("/.sbmountpoints")) + { + for(cQStr &item : QDir("/.sbmountpoints").entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) rmdir(bstr("/.sbmountpoints/" % item)); + rmdir("/.sbmountpoints"); + } + + rmdir("/.sbsystemcopy"), + sb::fssync(); + if(sb::ecache) sb::crtfile("/proc/sys/vm/drop_caches", "3"); + dialogopen(ui->userdatafilescopy->isVisibleTo(ui->copypanel) ? 206 : 209); +} + +void systemback::livewrite() +{ + statustart(), pset(10); + QStr ldev(ui->livedevices->item(ui->livedevices->currentRow(), 0)->text()); + bool ismmc(ldev.contains("mmc")); + + auto err([&, ismmc](ushort dlg = 336) { + if(sb::isdir("/.sblivesystemwrite")) + { + if(sb::mcheck("/.sblivesystemwrite/sblive")) sb::umount("/.sblivesystemwrite/sblive"); + rmdir("/.sblivesystemwrite/sblive"); + + if(sb::isdir("/.sblivesystemwrite/sbroot")) + { + if(sb::mcheck("/.sblivesystemwrite/sbroot")) sb::umount("/.sblivesystemwrite/sbroot"); + rmdir("/.sblivesystemwrite/sbroot"); + } + + rmdir("/.sblivesystemwrite"); + } + + if(intrrpt) + intrrpt = false; + else + dialogopen(dlg, sb::like(dlg, {337, 338}) ? bstr(ldev % (ismmc ? "p" : nullptr) % '1') : nullptr); + }); + + if(! sb::exist(ldev)) + return err(338); + else if(sb::mcheck(ldev)) + { + for(cQStr &sitem : QDir("/dev").entryList(QDir::System)) + { + QStr item("/dev/" % sitem); + + if(item.length() > (ismmc ? 12 : 8) && item.startsWith(ldev)) + while(sb::mcheck(item)) sb::umount(item); + + if(intrrpt) return err(); + } + + if(sb::mcheck(ldev)) sb::umount(ldev); + sb::fssync(); + if(intrrpt) return err(); + } + + if(! sb::mkptable(ldev) || intrrpt) return err(338); + sb::delay(100); + QStr lrdir; + + { + ullong isize(sb::fsize(sb::sdir[2] % '/' % sb::left(ui->livelist->currentItem()->text(), sb::instr(ui->livelist->currentItem()->text(), " ") - 1) % ".sblive")); + + if(isize < 4294967295) + { + if(! sb::mkpart(ldev) || intrrpt) return err(338); + sb::delay(100), + lrdir = "sblive"; + } + else + { + if(! (sb::mkpart(ldev, 1048576, 104857600) && sb::mkpart(ldev)) || intrrpt) return err(338); + sb::delay(100); + if(sb::exec("mkfs.ext2 -FL SBROOT " % ldev % (ismmc ? "p" : nullptr) % '2') || intrrpt) return err(338); + lrdir = "sbroot"; + } + + if(sb::exec("mkfs.vfat -F 32 -n SBLIVE " % ldev % (ismmc ? "p" : nullptr) % '1') || intrrpt) return err(338); + + if(sb::exec("dd if=/usr/lib/syslinux/" % QStr(sb::isfile("/usr/lib/syslinux/mbr.bin") ? nullptr : "mbr/") % "mbr.bin of=" % ldev % " conv=notrunc bs=440 count=1") || ! sb::setpflag(ldev % (ismmc ? "p" : nullptr) % '1', "boot lba") + || intrrpt || (sb::exist("/.sblivesystemwrite") && (((sb::mcheck("/.sblivesystemwrite/sblive") && ! sb::umount("/.sblivesystemwrite/sblive")) || (sb::mcheck("/.sblivesystemwrite/sbroot") && ! sb::umount("/.sblivesystemwrite/sbroot"))) || ! sb::remove("/.sblivesystemwrite"))) + || intrrpt || ! (sb::crtdir("/.sblivesystemwrite") && sb::crtdir("/.sblivesystemwrite/sblive")) + || intrrpt) return err(); + + sb::delay(100); + if(! sb::mount(ldev % (ismmc ? "p" : nullptr) % '1', "/.sblivesystemwrite/sblive") || intrrpt) return err(337); + + if(lrdir == "sbroot") + { + if(! sb::crtdir("/.sblivesystemwrite/sbroot")) return err(); + if(! sb::mount(ldev % (ismmc ? "p" : nullptr) % '2', "/.sblivesystemwrite/sbroot") || intrrpt) return err(337); + } + + if(sb::dfree("/.sblivesystemwrite/" % lrdir) < isize + 52428800) return err(322); + sb::ThrdStr[0] = "/.sblivesystemwrite", sb::ThrdLng[0] = isize; + } + + if(lrdir == "sblive") + { + if(sb::exec("tar -xf \"" % sb::sdir[2] % "\"/" % sb::left(ui->livelist->currentItem()->text(), sb::instr(ui->livelist->currentItem()->text(), " ") - 1) % ".sblive -C /.sblivesystemwrite/sblive --no-same-owner --no-same-permissions", sb::Prgrss)) return err(323); + } + else if(sb::exec("tar -xf \"" % sb::sdir[2] % "\"/" % sb::left(ui->livelist->currentItem()->text(), sb::instr(ui->livelist->currentItem()->text(), " ") - 1) % ".sblive -C /.sblivesystemwrite/sblive --exclude=casper/filesystem.squashfs --exclude=live/filesystem.squashfs --no-same-owner --no-same-permissions") || sb::exec("tar -xf \"" % sb::sdir[2] % "\"/" % sb::left(ui->livelist->currentItem()->text(), sb::instr(ui->livelist->currentItem()->text(), " ") - 1) % ".sblive -C /.sblivesystemwrite/sbroot --exclude=.disk --exclude=boot --exclude=EFI --exclude=syslinux --exclude=casper/initrd.gz --exclude=casper/vmlinuz --exclude=live/initrd.gz --exclude=live/vmlinuz --no-same-owner --no-same-permissions", sb::Prgrss)) + return err(323); + + pset(1); + if(sb::exec("syslinux -ifd syslinux " % ldev % (ismmc ? "p" : nullptr) % '1')) return err(); + sb::fssync(); + if(sb::ecache) sb::crtfile("/proc/sys/vm/drop_caches", "3"); + sb::umount("/.sblivesystemwrite/sblive"), + rmdir("/.sblivesystemwrite/sblive"); + + if(lrdir == "sbroot") + { + sb::umount("/.sblivesystemwrite/sbroot"); + rmdir("/.sblivesystemwrite/sbroot"); + } + + rmdir("/.sblivesystemwrite"), + dialogopen(210); +} + +void systemback::dialogopen(ushort dlg, cbstr &dev) +{ + if(ui->dialognumber->isVisibleTo(ui->dialogpanel)) ui->dialognumber->hide(); + + if(! dlg) + dlg = dialog; + else if(dialog != dlg) + dialog = dlg; + + if(dlg < 200) + { + for(QWdt wdgt : QWL{ui->dialoginfo, ui->dialogerror}) + if(wdgt->isVisibleTo(ui->dialogpanel)) wdgt->hide(); + + for(QWdt wdgt : QWL{ui->dialogquestion, ui->dialogcancel}) + if(! wdgt->isVisibleTo(ui->dialogpanel)) wdgt->show(); + + if(ui->dialogok->text() != tr("Start")) ui->dialogok->setText(tr("Start")); + + ui->dialogtext->setText([this, dlg]() -> QStr { + switch(dlg) { + case 100: + return tr("Restore the system files to the following restore point:") % "

    " % pname; + case 101: + return tr("Repair the system files with the following restore point:") % "

    " % pname; + case 102: + return tr("Repair the complete system with the following restore point:") % "

    " % pname; + case 103: + return tr("Restore the complete user(s) configuration files to the following restore point:") % "

    " % pname; + case 104: + return tr("Restore the user(s) configuration files to the following restore point:") % "

    " % pname; + case 105: + return tr("Copy the system, using the following restore point:") % "

    " % pname; + case 106: + return tr("Install the system, using the following restore point:") % "

    " % pname; + case 107: + return tr("Restore the complete system to the following restore point:") % "

    " % pname; + case 108: + return tr("Format the %1, and write the following Live system image:").arg(" " % ui->livedevices->item(ui->livedevices->currentRow(), 0)->text() % "") % "

    " % sb::left(ui->livelist->currentItem()->text(), sb::instr(ui->livelist->currentItem()->text(), " ") - 1) % ""; + default: + return tr("Repair the GRUB 2 bootloader."); + } + }()); + } + else + { + for(QWdt wdgt : QWL{ui->dialogquestion, ui->dialogcancel}) + if(wdgt->isVisibleTo(ui->dialogpanel)) wdgt->hide(); + + if(dlg < 300) + { + if(ui->dialogerror->isVisibleTo(ui->dialogpanel)) ui->dialogerror->hide(); + if(! ui->dialoginfo->isVisibleTo(ui->dialogpanel)) ui->dialoginfo->show(); + bool cntd(false); + + ui->dialogtext->setText([&, dlg]() -> QStr { + switch(dlg) { + case 200: + if(ui->dialogok->text() != tr("X restart")) ui->dialogok->setText(tr("X restart")); + for(QWdt wdgt : QWL{ui->dialogcancel, ui->dialognumber}) wdgt->show(); + cntd = true; + return tr("The user(s) configuration files full restoration are completed.") % "

    " % tr("The X server will restart automatically within 30 seconds."); + case 201: + if(ui->dialogok->text() != tr("X restart")) ui->dialogok->setText(tr("X restart")); + for(QWdt wdgt : QWL{ui->dialogcancel, ui->dialognumber}) wdgt->show(); + cntd = true; + return tr("The user(s) configuration files restoration are completed.") % "

    " % tr("The X server will restart automatically within 30 seconds."); + case 202: + if(ui->dialogok->text() != "OK") ui->dialogok->setText("OK"); + return tr("The full system repair is completed."); + case 203: + if(ui->dialogok->text() != "OK") ui->dialogok->setText("OK"); + return tr("The system repair is completed."); + case 204: + if(ui->dialogok->text() != tr("Reboot")) ui->dialogok->setText(tr("Reboot")); + for(QWdt wdgt : QWL{ui->dialogcancel, ui->dialognumber}) wdgt->show(); + cntd = true; + return tr("The system files restoration are completed.") % "

    " % tr("The computer will restart automatically within 30 seconds."); + case 205: + if(ui->dialogok->text() != tr("Reboot")) ui->dialogok->setText(tr("Reboot")); + for(QWdt wdgt : QWL{ui->dialogcancel, ui->dialognumber}) wdgt->show(); + cntd = true; + return tr("The full system restoration is completed.") % "

    " % tr("The computer will restart automatically within 30 seconds."); + case 206: + if(ui->dialogok->text() != "OK") ui->dialogok->setText("OK"); + return tr("The system copy is completed."); + case 207: + if(ui->dialogok->text() != "OK") ui->dialogok->setText("OK"); + return tr("The Live system creation is completed.") % "

    " % tr("The created .sblive file can be written to pendrive."); + case 208: + if(ui->dialogok->text() != "OK") ui->dialogok->setText("OK"); + return tr("The GRUB 2 repair is completed."); + case 209: + if(ui->dialogok->text() != "OK") ui->dialogok->setText("OK"); + return tr("The system install is completed."); + case 210: + if(ui->dialogok->text() != "OK") ui->dialogok->setText("OK"); + return tr("The Live system image write is completed."); + default: + ui->dialogok->setText(tr("Reboot")); + for(QWdt wdgt : QWL{ui->dialogcancel, ui->dialognumber}) wdgt->show(); + cntd = true; + return tr("The computer will restart automatically within 30 seconds."); + } + }()); + + if(cntd) + { + connect(dlgtimer = new QTimer, +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) + SIGNAL(timeout()), this, SLOT(dialogtimer()) +#else + &QTimer::timeout, this, &systemback::dialogtimer +#endif + ); + + dlgtimer->start(1000); + } + } + else + { + if(! sb::eout.isEmpty()) sb::error(sb::eout); + if(ui->dialoginfo->isVisibleTo(ui->dialogpanel)) ui->dialoginfo->hide(); + if(! ui->dialogerror->isVisibleTo(ui->dialogpanel)) ui->dialogerror->show(); + if(ui->dialogok->text() != "OK") ui->dialogok->setText("OK"); + + ui->dialogtext->setText([&, dlg]() -> QStr { + switch(dlg) { + case 300: + return tr("An another Systemback process is currently running, please wait until it finishes."); + case 301: + return tr("Unable to get exclusive lock!") % "

    " % tr("First, close all package manager."); + case 302: + return tr("The re-synchronization of package index files currently in progress, please wait until it finishes."); + case 303: + return tr("The specified name contain(s) unsupported character(s)!") % "

    " % tr("Please enter a new name."); + case 304: + return tr("The system files repair are completed, but an error occurred while reinstalling the GRUB!") % ' ' % tr("The system may not bootable! (In general, the different architecture is causing the problem.)"); + case 305: + return tr("The restore point creation is aborted!") % "

    " % tr("Not enough free disk space to complete the process."); + case 306: + return tr("Root privileges are required for running the Systemback!"); + case 307: + return tr("The system copy is aborted!") % "

    " % tr("The specified partition(s) does not have enough free space to copy the system. The copied system will not function properly."); + case 308: + return tr("The system copy is completed, but an error occurred while installing the GRUB!") % ' ' % tr("You need to manually install a bootloader."); + case 309: + return tr("The system restoration is aborted!") % "

    " % tr("An error occurred while reinstalling the GRUB."); + case 310: + return tr("The full system repair is completed, but an error occurred while reinstalling the GRUB!") % ' ' % tr("The system may not bootable! (In general, the different architecture is causing the problem.)"); + case 311: + return tr("The Live system creation is aborted!") % "

    " % tr("An error occurred while creating the file system image."); + case 312: + return tr("The Live system creation is aborted!") % "

    " % tr("An error occurred while creating the container file."); + case 313: + return tr("The Live system creation is aborted!") % "

    " % tr("Not enough free disk space to complete the process."); + case 314: + return tr("The system copy is aborted!") % "

    " % tr("The specified partition could not be mounted.") % "

    " % dev.data; + case 315: + return tr("The system install is completed, but an error occurred while installing the GRUB!") % ' ' % tr("You need to manually install a bootloader."); + case 316: + return tr("The system installation is aborted!") % "

    " % tr("The specified partition(s) does not have enough free space to install the system. The installed system will not function properly."); + case 317: + return tr("The system copy is aborted!") % "

    " % tr("The specified partition could not be formatted (in use or unavailable).") % "

    " % dev.data; + case 318: + return tr("An error occurred while reinstalling the GRUB!") % ' ' % tr("The system may not bootable! (In general, the different architecture is causing the problem.)"); + case 319: + return tr("The restore point creation is aborted!") % "

    " % tr("There has been critical changes in the file system during this operation."); + case 320: + return tr("The system copy is aborted!") % "

    " % tr("There has been critical changes in the file system during this operation."); + case 321: + return tr("The system installation is aborted!") % "

    " % tr("There has been critical changes in the file system during this operation."); + case 322: + return tr("The Live write is aborted!") % "

    " % tr("The selected device does not have enough space to write the Live system."); + case 323: + return tr("The Live write is aborted!") % "

    " % tr("An error occurred while unpacking the Live system files."); + case 324: + return tr("The Live conversion is aborted!") % "

    " % tr("An error occurred while renaming the essential Live files."); + case 325: + return tr("The Live conversion is aborted!") % "

    " % tr("An error occurred while creating the .iso image."); + case 326: + return tr("The Live conversion is aborted!") % "

    " % tr("An error occurred while reading the .sblive image."); + case 327: + return tr("The Live system creation is aborted!") % "

    " % tr("An error occurred while creating the new initramfs image."); + case 328: + return tr("The Live system creation is aborted!") % "

    " % tr("There has been critical changes in the file system during this operation."); + case 329: + return tr("The restore point deletion is aborted!") % "

    " % tr("An error occurred while during the process."); + case 330: + return tr("The system installation is aborted!") % "

    " % tr("The specified partition could not be mounted.") % "

    " % dev.data; + case 331: + return tr("The system installation is aborted!") % "

    " % tr("The specified partition could not be formatted (in use or unavailable).") % "

    " % dev.data; + case 332: + return tr("The system copy is aborted!") % "

    " % tr("The Live image could not be mounted."); + case 333: + return tr("The system installation is aborted!") % "

    " % tr("The Live image could not be mounted."); + case 334: + return tr("The system repair is aborted!") % "

    " % tr("The Live image could not be mounted."); + case 335: + return tr("The Live conversion is aborted!") % "

    " % tr("There has been critical changes in the file system during this operation."); + case 336: + return tr("The Live write is aborted!") % "

    " % tr("There has been critical changes in the file system during this operation."); + case 337: + return tr("The Live write is aborted!") % "

    " % tr("The specified partition could not be mounted.") % "

    " % dev.data; + case 338: + return tr("The Live write is aborted!") % "

    " % tr("The specified partition could not be formatted (in use or unavailable).") % "

    " % dev.data; + case 339: + return tr("The system restoration is aborted!") % "

    " % tr("There is not enough free space."); + default: + return tr("The system repair is aborted!") % "

    " % tr("There is not enough free space."); + } + }()); + } + } + + for(QWdt wdgt : QWL{ui->mainpanel, ui->statuspanel, ui->schedulerpanel}) + if(wdgt->isVisibleTo(ui->wpanel)) wdgt->hide(); + + if(ui->dialogpanel->isHidden()) ui->dialogpanel->show(); + ui->dialogok->setFocus(); + + if(width() != ui->dialogpanel->width()) + { + if(utimer.isActive() && ! sstart) + windowmove(ui->dialogpanel->width(), ui->dialogpanel->height()); + else + { + if(sstart && ! (sb::like(dialog, {300, 301, 306}) || ui->function3->text().contains(' '))) ui->function3->setText("Systemback " % tr("scheduler")); + setFixedSize(wgeom[2] = ui->dialogpanel->width(), wgeom[3] = ui->dialogpanel->height()); + QRect sgm(sgeom()); + move(wgeom[0] = sgm.x() + sgm.width() / 2 - ss(253), wgeom[1] = sgm.y() + sgm.height() / 2 - ss(100)); + } + } + + if(ui->wpanel->isHidden()) ui->wpanel->show(), + ui->logo->setFocusPolicy(Qt::NoFocus); + + setwontop(); +} + +void systemback::setwontop(bool state) +{ + if(! (fscrn || sb::waot)) + { + XEvent ev; + ev.xclient.type = ClientMessage, + ev.xclient.message_type = XInternAtom(dsply, "_NET_WM_STATE", 0), + ev.xclient.display = dsply, + ev.xclient.window = winId(), + ev.xclient.format = 32, + ev.xclient.data.l[0] = state ? 1 : 0, + ev.xclient.data.l[1] = XInternAtom(dsply, "_NET_WM_STATE_ABOVE", 0); + Window win(XDefaultRootWindow(dsply)); + XSendEvent(dsply, win, 0, SubstructureRedirectMask | SubstructureNotifyMask, &ev), + ev.xclient.data.l[1] = XInternAtom(dsply, "_NET_WM_STATE_STAYS_ON_TOP", 0), + XSendEvent(dsply, win, 0, SubstructureRedirectMask | SubstructureNotifyMask, &ev), + XFlush(dsply); + } +} + +void systemback::windowmove(ushort nwidth, ushort nheight, bool fxdw) +{ + if(wismax) stschange(); + + if(wndw->size() != QSize(wgeom[2] = nwidth, wgeom[3] = nheight)) + { + { + QDW dtp(fscrn ? nullptr : qApp->desktop()); + QRect agm(sgeom(true, dtp)), sgm; + ushort frm(ss(30)); + + if(agm.width() >= wgeom[2] + frm) + { + sgm = sgeom(false, dtp); + short bnd(sgm.x() + frm); + + if((wgeom[0] = wndw->x() + (wndw->width() - wgeom[2]) / 2) < bnd) + wgeom[0] = bnd < agm.x() ? agm.x() : bnd; + else if(wgeom[0] < agm.x()) + wgeom[0] = agm.x(); + else + { + short bnd1; + + if(wgeom[0] > (bnd = sgm.x() + sgm.width() - wgeom[2] - frm)) + wgeom[0] = bnd > (bnd1 = agm.x() + agm.width() - wgeom[2]) ? bnd1 : bnd; + else if(wgeom[0] > (bnd1 = agm.x() + agm.width() - wgeom[2])) + wgeom[0] = bnd1; + } + } + else if(wgeom[0] != agm.x()) + wgeom[0] = agm.x(); + + if(agm.height() >= wgeom[3] + frm) + { + if(sgm.isEmpty()) sgm = sgeom(false, dtp); + short bnd(sgm.y() + frm); + + if((wgeom[1] = wndw->y() + (wndw->height() - wgeom[3]) / 2) < bnd) + wgeom[1] = bnd < agm.y() ? agm.y() : bnd; + else if(wgeom[1] < agm.y()) + wgeom[1] = agm.y(); + else + { + short bnd1; + + if(wgeom[1] > (bnd = sgm.y() + sgm.height() - wgeom[3] - frm)) + wgeom[1] = bnd > (bnd1 = agm.y() + agm.height() - wgeom[3]) ? bnd1 : bnd; + else if(wgeom[1] > (bnd1 = agm.y() + agm.height() - wgeom[3])) + wgeom[1] = bnd1; + } + } + else if(wgeom[1] != agm.y()) + wgeom[1] = agm.y(); + + wndw->setMinimumSize(0, 0), wndw->setMaximumSize(agm.width() < wndw->width() ? wndw->width() : agm.width(), agm.height() < wndw->height() ? wndw->height() : agm.height()); + } + + wmblck = true; + int vls[]{qAbs(wgeom[0] - wndw->x()) / 6, qAbs(wgeom[1] - wndw->y()) / 6, qAbs(wgeom[2] - wndw->width()) / 6, qAbs(wgeom[3] - wndw->height()) / 6}; + ui->resizepanel->show(); + + for(uchar a(0) ; a < 6 ; ++a) wndw->setGeometry(qAbs(wgeom[0] - wndw->x()) > vls[0] ? wndw->x() - (wgeom[0] < wndw->x() ? vls[0] : -vls[0]) : wgeom[0], qAbs(wgeom[1] - wndw->y()) > vls[1] ? wndw->y() - (wgeom[1] < wndw->y() ? vls[1] : -vls[1]) : wgeom[1], qAbs(wgeom[2] - wndw->width()) > vls[2] ? wndw->width() - (wgeom[2] < wndw->width() ? vls[2] : -vls[2]) : wgeom[2], qAbs(wgeom[3] - wndw->height()) > vls[3] ? wndw->height() - (wgeom[3] < wndw->height() ? vls[3] : -vls[3]) : wgeom[3]), + QThread::msleep(1), + repaint(); + + wndw->setGeometry(wgeom[0], wgeom[1], wgeom[2], wgeom[3]), + wmblck = false; + if(fxdw) wndw->setFixedSize(wgeom[2], wgeom[3]); + ui->resizepanel->hide(); + } + else if(fxdw && minimumSize() != maximumSize()) + wndw->setFixedSize(wgeom[2], wgeom[3]); +} + +void systemback::wmove() +{ + if(! wismax) + { + QPoint npos{QCursor::pos().x() - lblevent::MouseX, QCursor::pos().y() - lblevent::MouseY}; + + wndw->move(fscrn ? [&] { + QRect agm(sgeom(true)); + + return QPoint{agm.width() < wgeom[2] || npos.x() < 0 ? 0 : [&] { + short bpos; + return npos.x() > (bpos = width() - wgeom[2]) ? bpos : npos.x(); + }(), agm.height() < wgeom[3] || npos.y() < 0 ? 0 : [&] { + short bpos; + return npos.y() > (bpos = height() - wgeom[3]) ? bpos : npos.y(); + }()}; + }() : npos); + } +} + +void systemback::rmove() +{ + if(! wismax) + { + ushort sz(ss(31)); + wndw->resize(QCursor::pos().x() - wndw->x() + sz - lblevent::MouseX, QCursor::pos().y() - wndw->y() + sz - lblevent::MouseY); + } +} + +void systemback::on_functionmenunext_clicked() +{ + ui->functionmenunext->setDisabled(true); + uchar a(ss(7)); + short b(-ss(217)); + do ui->functionmenu->move(ui->functionmenu->x() - a, 0), qApp->processEvents(); + while(ui->functionmenu->x() > b); + ui->functionmenu->move(-ss(224), 0), + ui->functionmenuback->setEnabled(true), + ui->functionmenuback->setFocus(); +} + +void systemback::on_functionmenuback_clicked() +{ + ui->functionmenuback->setDisabled(true); + uchar a(ss(7)); + do ui->functionmenu->move(ui->functionmenu->x() + a, 0), qApp->processEvents(); + while(ui->functionmenu->x() < -a); + ui->functionmenu->move(0, 0), + ui->functionmenunext->setEnabled(true), + ui->functionmenunext->setFocus(); +} + +bool systemback::eventFilter(QObject *, QEvent *ev) +{ + if(fscrn) + switch(ev->type()) { + case QEvent::FontChange: + if(font() != bfnt) qApp->setFont(bfnt); + return true; + case QEvent::Resize: + for(QWdt wdgt : QWL{ui->wallpaper, ui->logo}) wdgt->resize(size()); + ui->logo->setPixmap(QPixmap("/usr/share/systemback/logo.png").scaledToWidth((ui->wallpaper->width() > ui->wallpaper->height() ? ui->wallpaper->height() : ui->wallpaper->width()) / 2)); + + if(wismax) + { + ui->wpanel->setMaximumSize(size()); + if(ui->wpanel->size() != size()) ui->wpanel->resize(size()); + } + else + { + if(ui->copypanel->isVisibleTo(ui->wpanel)) + { + ushort sz(ss(60)); + ui->wpanel->setMaximumSize(width() - sz, height() - sz); + } + + bool algn[]{wgeom[0] > 0 && [this] { + if(wgeom[0] + wgeom[2] > width()) + { + short nx(width() - wgeom[2]); + wgeom[0] = nx < 0 ? 0 : nx; + return true; + } + + return false; + }(), wgeom[1] > 0 && [this] { + if(wgeom[1] + wgeom[3] > height()) + { + short ny(height() - wgeom[3]); + wgeom[1] = ny < 0 ? 0 : ny; + return true; + } + + return false; + }()}; + + if(algn[0] || algn[1]) ui->wpanel->move(wgeom[0], wgeom[1]); + } + default:; + } + else + { + switch(ev->type()) { + case QEvent::WindowActivate: + if(ui->function3->foregroundRole() == QPalette::Dark) + { + for(QWdt wdgt : QWL{ui->scalingbutton, ui->function1, ui->windowbutton1, ui->function2, ui->windowbutton2, ui->function3, ui->windowbutton3, ui->function4, ui->windowbutton4}) wdgt->setForegroundRole(QPalette::Base); + goto gcheck; + } + + return false; + case QEvent::WindowDeactivate: + if(ui->function3->foregroundRole() == QPalette::Base) + { + for(QWdt wdgt : QWL{ui->scalingbutton, ui->function1, ui->windowbutton1, ui->function2, ui->windowbutton2, ui->function3, ui->windowbutton3, ui->function4, ui->windowbutton4}) wdgt->setForegroundRole(QPalette::Dark); + + if(ui->copypanel->isVisible()) + { + if(ui->partitionsettings->hasFocus() && ui->partitionsettings->currentRow() == -1) ui->copyback->setFocus(); + } + else if(ui->livepanel->isVisible()) + { + if((ui->livelist->hasFocus() && ui->livelist->currentRow() == -1) || (ui->livedevices->hasFocus() && ui->livedevices->currentRow() == -1)) ui->liveback->setFocus(); + } + else if(ui->excludepanel->isVisible()) + { + if((ui->excludeitemslist->hasFocus() && ! ui->excludeitemslist->currentItem()) || (ui->excludedlist->hasFocus() && ui->excludedlist->currentRow() == -1)) ui->excludeback->setFocus(); + } + else if(ui->includepanel->isVisible()) + { + if((ui->includeitemslist->hasFocus() && ! ui->includeitemslist->currentItem()) || (ui->includedlist->hasFocus() && ui->includedlist->currentRow() == -1)) ui->includeback->setFocus(); + } + else if(ui->choosepanel->isVisible() && ui->dirchoose->hasFocus() && ! ui->dirchoose->currentItem()) + ui->dirchoosecancel->setFocus(); + + goto gcheck; + } + + return false; + case QEvent::Resize: + if(wismax && ! wmblck) + { + QRect agm(sgeom(true)); + + if(geometry() != agm) + { + setGeometry(agm); + return true; + } + } + + ui->wpanel->resize(size()); + + if(ui->choosepanel->isVisible()) + { + ui->choosepanel->resize(width() - ui->choosepanel->x() * 2, height() - ss(25)); + ushort sz(ss(40)); + ui->dirpath->resize(ui->choosepanel->width() - sz, ui->dirpath->height()), + ui->dirrefresh->move(ui->choosepanel->width() - ui->dirrefresh->width(), 0), + ui->dirchoose->resize(ui->choosepanel->width(), ui->choosepanel->height() - ss(80)), + ui->dirchooseok->move(ui->choosepanel->width() - ss(120), ui->choosepanel->height() - sz), + ui->dirchoosecancel->move(ui->choosepanel->width() - ss(240), ui->choosepanel->height() - sz), + ui->filesystemwarning->move(ui->filesystemwarning->x(), ui->choosepanel->height() - ss(41)), + ui->chooseresize->move(ui->choosepanel->width() - ui->chooseresize->width(), ui->choosepanel->height() - ui->chooseresize->height()); + } + else if(ui->excludepanel->isVisible()) + { + ui->excludepanel->resize(width() - ui->excludepanel->x() * 2, height() - ss(25)), + ui->excludeitemstext->resize(ui->excludepanel->width() / 2 - ss(44) + (sfctr == High ? 1 : 0), ui->excludeitemstext->height()); + ushort sz[]{ss(36), ss(24)}; + ui->excludedtext->setGeometry(ui->excludepanel->width() / 2 + sz[0], ui->excludedtext->y(), ui->excludeitemstext->width(), ui->excludedtext->height()), + ui->excludeitemslist->resize(ui->excludeitemstext->width(), ui->excludepanel->height() - ss(160)), + ui->excludedlist->setGeometry(ui->excludepanel->width() / 2 + sz[0], ui->excludedlist->y(), ui->excludeitemslist->width(), ui->excludeitemslist->height()), + ui->excludeadditem->move(ui->excludepanel->width() / 2 - sz[1], ui->excludeitemslist->height() / 2 + sz[0]), + ui->excluderemoveitem->move(ui->excludeadditem->x(), ui->excludeitemslist->height() / 2 + ss(108)), + ui->excludeback->move(ui->excludeback->x(), ui->excludepanel->height() - ss(48)), + ui->excludekendektext->move(ui->excludepanel->width() - ss(306), ui->excludepanel->height() - sz[1]), + ui->excluderesize->move(ui->excludepanel->width() - ui->excluderesize->width(), ui->excludepanel->height() - ui->excluderesize->height()); + } + else if(ui->includepanel->isVisible()) + { + ui->includepanel->resize(width() - ui->includepanel->x() * 2, height() - ss(25)), + ui->includetext->resize(ui->includepanel->width(), ui->includetext->height()), + ui->includeitemstext->resize(ui->includepanel->width() / 2 - ss(44) + (sfctr == High ? 1 : 0), ui->includeitemstext->height()); + ushort sz[]{ss(36), ss(24)}; + ui->includedtext->setGeometry(ui->includepanel->width() / 2 + sz[0], ui->includedtext->y(), ui->includeitemstext->width(), ui->includedtext->height()), + ui->includeitemslist->resize(ui->includeitemstext->width(), ui->includepanel->height() - ss(144)), + ui->includedlist->setGeometry(ui->includepanel->width() / 2 + sz[0], ui->includedlist->y(), ui->includeitemslist->width(), ui->includeitemslist->height()), + ui->includeadditem->move(ui->includepanel->width() / 2 - sz[1], ui->includeitemslist->height() / 2 + ss(19)), + ui->includeremoveitem->move(ui->includeadditem->x(), ui->includeitemslist->height() / 2 + ss(91)), + ui->includeback->move(ui->includeback->x(), ui->includepanel->height() - ss(48)), + ui->includekendektext->move(ui->includepanel->width() - ss(306), ui->includepanel->height() - sz[1]), + ui->includeresize->move(ui->includepanel->width() - ui->includeresize->width(), ui->includepanel->height() - ui->includeresize->height()); + } + + if(! wismax) + { + if(! wmblck) + { + if(wgeom[2] != width()) wgeom[2] = width(); + if(wgeom[3] != height()) wgeom[3] = height(); + } + + goto bcheck; + } + + return false; + case QEvent::Move: + if(! wismax) + { + if(! wmblck) + { + if(wgeom[0] != x()) wgeom[0] = x(); + if(wgeom[1] != y()) wgeom[1] = y(); + } + + goto bcheck; + } + else if(! wmblck) + { + QRect agm(sgeom(true)); + + if(geometry() != agm) + { + setGeometry(agm); + return true; + } + } + + return false; + case QEvent::FontChange: + if(font() != bfnt) qApp->setFont(bfnt); + return true; + case QEvent::WindowStateChange: + { + QEvent nev(isMinimized() ? QEvent::WindowDeactivate : QEvent::WindowActivate); + qApp->sendEvent(this, &nev); + } + default: + return false; + } + +gcheck: + if(! (wismax || wmblck)) + { + QDW dtp(qApp->desktop()); + QRect agm(sgeom(true, dtp)), sgm; + ushort frm(ss(30)); + + if(agm.width() >= wgeom[2] + frm) + { + sgm = sgeom(false, dtp); + + if(x() < sgm.x()) + { + if(x() > sgm.x() - wgeom[2]) + { + short val(sgm.x() + frm); + wgeom[0] = val < agm.x() ? agm.x() : val; + } + } + else if(x() < agm.x()) + wgeom[0] = agm.x(); + else + { + short bnd[2]; + + if(x() <= (bnd[0] = (bnd[1] = sgm.x() + sgm.width()) - wgeom[2])) + { + if(x() > (bnd[0] = agm.x() + agm.width() - wgeom[2])) wgeom[0] = bnd[0]; + } + else if(x() < bnd[1] + wgeom[2]) + { + short val(bnd[0] - frm); + wgeom[0] = val < (bnd[1] = agm.x() + agm.width() - wgeom[2]) ? val : bnd[1]; + } + } + } + else if(wgeom[0] != agm.x()) + wgeom[0] = agm.x(); + + if(agm.height() >= wgeom[3] + frm) + { + if(sgm.isEmpty()) sgm = sgeom(false, dtp); + + if(y() < sgm.y()) + { + if(y() > sgm.y() - wgeom[3]) + { + short val(sgm.y() + frm); + wgeom[1] = val < agm.y() ? agm.y() : val; + } + } + else if(y() < agm.y()) + wgeom[1] = agm.y(); + else + { + short bnd[2]; + + if(y() <= (bnd[0] = (bnd[1] = sgm.y() + sgm.height()) - wgeom[3])) + { + if(y() > (bnd[0] = agm.y() + agm.height() - wgeom[3])) wgeom[1] = bnd[0]; + } + else if(y() < bnd[1] + wgeom[3]) + { + short val(bnd[0] - frm); + wgeom[1] = val < (bnd[1] = agm.y() + agm.height() - wgeom[3]) ? val : bnd[1]; + } + } + } + else if(wgeom[1] != agm.y()) + wgeom[1] = agm.y(); + + if(pos() != QPoint(wgeom[0], wgeom[1])) + { + move(wgeom[0], wgeom[1]); + return false; + } + } + +bcheck: + if(ui->buttonspanel->isVisible() && ! ui->buttonspanel->y()) ui->buttonspanel->hide(); + } + + return false; +} + +void systemback::keyPressEvent(QKeyEvent *ev) +{ + if(! qApp->overrideCursor()) + switch(ev->key()) { + case Qt::Key_Escape: + if(ui->passwordpanel->isVisible()) close(); + break; + case Qt::Key_Enter: + case Qt::Key_Return: + { QKeyEvent press(QEvent::KeyPress, Qt::Key_Space, Qt::NoModifier); + qApp->sendEvent(qApp->focusObject(), &press); } + + if(ui->sbpanel->isVisible()) + { + if(ui->pointrename->isEnabled()) + { + schar num(-1); + + for(QLE ldt : ui->points->findChildren()) + { + ++num; + + if(ldt->hasFocus() && getppipe(num)->isChecked()) + { + on_pointrename_clicked(); + break; + } + } + } + } + else if(ui->dirchoose->hasFocus()) + ui->dirchoose->currentItem()->setExpanded(! ui->dirchoose->currentItem()->isExpanded()); + else if(ui->repairmountpoint->hasFocus()) + { + if(ui->repairmount->isEnabled()) + { + on_repairmount_clicked(); + if(! ui->repairmountpoint->hasFocus()) ui->repairmountpoint->setFocus(); + } + } + else if(ui->excludeitemslist->hasFocus()) + { + if(ui->excludeadditem->isEnabled()) + { + if(! ui->excludeitemslist->currentItem()->childCount()) + on_excludeadditem_clicked(); + else if(ui->excludeitemslist->currentItem()->isExpanded()) + ui->excludeitemslist->currentItem()->setExpanded(false); + else + ui->excludeitemslist->currentItem()->setExpanded(true); + } + } + else if(ui->excludedlist->hasFocus()) + { + if(ui->excluderemoveitem->isEnabled()) on_excluderemoveitem_clicked(); + } + else if(ui->includeitemslist->hasFocus()) + { + if(ui->includeadditem->isEnabled()) + { + if(! ui->includeitemslist->currentItem()->childCount()) + on_includeadditem_clicked(); + else if(ui->includeitemslist->currentItem()->isExpanded()) + ui->includeitemslist->currentItem()->setExpanded(false); + else + ui->includeitemslist->currentItem()->setExpanded(true); + } + } + else if(ui->includedlist->hasFocus()) + { + if(ui->includeremoveitem->isEnabled()) on_includeremoveitem_clicked(); + } + else if(ui->copypanel->isVisible()) + { + if(ui->mountpoint->hasFocus()) + { + if(ui->changepartition->isEnabled()) on_changepartition_clicked(); + } + else if(ui->partitionsize->hasFocus() && ui->newpartition->isEnabled()) + on_newpartition_clicked(); + } + else if(ui->installpanel->isVisible()) + { + if(ui->fullname->hasFocus()) + { + if(ui->fullnamepipe->isVisible()) ui->username->setFocus(); + } + else if(ui->username->hasFocus()) + { + if(ui->usernamepipe->isVisible()) ui->password1->setFocus(); + } + else if(ui->password1->hasFocus()) + { + if(ui->password2->isEnabled()) ui->password2->setFocus(); + } + else if(ui->password2->hasFocus()) + { + if(ui->passwordpipe->isVisible()) ui->rootpassword1->setFocus(); + } + else if(ui->rootpassword1->hasFocus()) + ui->rootpassword2->isEnabled() ? ui->rootpassword2->setFocus() : ui->hostname->setFocus(); + else if(ui->rootpassword2->hasFocus()) + { + if(ui->rootpasswordpipe->isVisible()) ui->hostname->setFocus(); + } + else if(ui->hostname->hasFocus() && ui->installnext->isEnabled()) + ui->installnext->setFocus(); + } + + break; + case Qt::Key_F5: + if(ui->sbpanel->isVisible()) + { + schar num(-1); + + for(QLE ldt : ui->points->findChildren()) + { + ++num; + + if(ldt->hasFocus()) + { + if(ldt->text() != sb::pnames[num]) ldt->setText(sb::pnames[num]); + break; + } + } + } + else if(ui->partitionsettings->hasFocus() || ui->mountpoint->hasFocus() || ui->partitionsize->hasFocus()) + on_partitionrefresh2_clicked(); + else if(ui->livepanel->isVisible()) + { + if(ui->livename->hasFocus()) + { + if(ui->livename->text() != "auto") ui->livename->setText("auto"); + } + else if(ui->livedevices->hasFocus()) + on_livedevicesrefresh_clicked(); + else if(ui->livelist->hasFocus()) + on_livemenu_clicked(), ui->liveback->setFocus(); + } + else if(ui->dirchoose->hasFocus()) + on_dirrefresh_clicked(); + else if(ui->repairmountpoint->hasFocus()) + on_repairpartitionrefresh_clicked(); + else if(ui->excludeitemslist->hasFocus()) + ilstupdt(); + else if(ui->includeitemslist->hasFocus()) + ilstupdt(true); + + break; + case Qt::Key_Delete: + if(ui->partitionsettings->hasFocus()) + { + if(ui->unmountdelete->isEnabled() && ui->unmountdelete->text() == tr("Unmount")) on_unmountdelete_clicked(); + } + else if(ui->livelist->hasFocus()) + { + if(ui->livedelete->isEnabled()) on_livedelete_clicked(); + } + else if(ui->excludeitemslist->hasFocus()) + { + if(ui->excludeadditem->isEnabled()) on_excludeadditem_clicked(); + } + else if(ui->excludedlist->hasFocus()) + { + if(ui->excluderemoveitem->isEnabled()) on_excluderemoveitem_clicked(); + } + else if(ui->includeitemslist->hasFocus()) + { + if(ui->includeadditem->isEnabled()) on_includeadditem_clicked(); + } + else if(ui->includedlist->hasFocus() && ui->includeremoveitem->isEnabled()) + on_includeremoveitem_clicked(); + } +} + +void systemback::keyReleaseEvent(QKeyEvent *ev) +{ + if(fscrn && ui->wpanel->isHidden()) + { + ui->wpanel->show(); + fwdgt->setFocus(); + ui->logo->setFocusPolicy(Qt::NoFocus); + } + else if(! qApp->overrideCursor()) + switch(ev->key()) { + case Qt::Key_Enter: + case Qt::Key_Return: + QKeyEvent release(QEvent::KeyRelease, Qt::Key_Space, Qt::NoModifier); + qApp->sendEvent(qApp->focusObject(), &release); + } +} + +void systemback::on_admins_currentIndexChanged(cQStr &arg1) +{ + ui->admins->resize(fontMetrics().width(arg1) + ss(30), ui->admins->height()); + if(! hash.isEmpty()) hash.clear(); + + { + QFile file("/etc/shadow"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + if(cline.startsWith(arg1 % ':')) + { + hash = sb::mid(cline, arg1.length() + 2, sb::instr(cline, ":", arg1.length() + 2) - arg1.length() - 2); + break; + } + } + } + + if(ui->adminpassword->text().length()) ui->adminpassword->clear(); + + if(! hash.isEmpty() && QStr(crypt("", bstr(hash))) == hash) + { + ui->adminpasswordpipe->show(); + for(QWdt wdgt : QWL{ui->adminpassword, ui->admins}) wdgt->setDisabled(true); + ui->passwordinputok->setEnabled(true); + } +} + +void systemback::on_adminpassword_textChanged(cQStr &arg1) +{ + uchar ccnt(icnt == 100 ? icnt = 0 : ++icnt); + + if(arg1.isEmpty()) + { + if(ui->adminpassworderror->isVisible()) ui->adminpassworderror->hide(); + } + else if(! hash.isEmpty() && QStr(crypt(bstr(arg1), bstr(hash))) == hash) + { + sb::delay(300); + + if(ccnt == icnt) + { + if(ui->adminpassworderror->isVisible()) ui->adminpassworderror->hide(); + ui->adminpasswordpipe->show(); + for(QWdt wdgt : QWL{ui->adminpassword, ui->admins}) wdgt->setDisabled(true); + ui->passwordinputok->setEnabled(true), ui->passwordinputok->setFocus(); + } + } + else if(ui->adminpassworderror->isHidden()) + ui->adminpassworderror->show(); +} + +void systemback::on_startcancel_clicked() +{ + close(); +} + +void systemback::on_passwordinputok_clicked() +{ + busy(); + + QTimer::singleShot(0, this, +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + SLOT(unitimer()) +#else + &systemback::unitimer +#endif + ); + + ui->passwordpanel->hide(), + ui->mainpanel->show(), + ui->sbpanel->isVisible() ? ui->functionmenunext->setFocus() : ui->fullname->setFocus(), + windowmove(ss(698), ss(465)), + setwontop(false); +} + +void systemback::on_schedulerstart_clicked() +{ + delete shdltimer, shdltimer = nullptr, + ui->function2->setText("Systemback " % tr("scheduler")), + on_newrestorepoint_clicked(); +} + +void systemback::on_dialogcancel_clicked() +{ + if(! fscrn) + { + if(dialog != 108) + { + if(dlgtimer) + { + if(dialog == 211) return void(close()); + delete dlgtimer, dlgtimer = nullptr; + if(ui->dialognumber->text() != "30s") ui->dialognumber->setText("30s"); + } + + if(! ui->sbpanel->isVisibleTo(ui->mainpanel)) + { + if(ui->restorepanel->isVisibleTo(ui->mainpanel)) + ui->restorepanel->hide(); + else if(ui->copypanel->isVisibleTo(ui->mainpanel)) + ui->copypanel->hide(); + else if(ui->livepanel->isVisibleTo(ui->mainpanel)) + ui->livepanel->hide(); + else if(ui->repairpanel->isVisibleTo(ui->mainpanel)) + ui->repairpanel->hide(); + + ui->sbpanel->show(), + ui->function1->setText("Systemback"); + } + + for(QCB ckbx : ui->sbpanel->findChildren()) + if(ckbx->isChecked()) + { + ckbx->click(); + break; + } + } + + ui->dialogpanel->hide(), + ui->mainpanel->show(), + ui->functionmenunext->setFocus(), + windowmove(ss(698), ss(465)), + setwontop(false); + } + else if(ui->dialogok->text() == tr("Reboot")) + close(); + else + { + ui->dialogpanel->hide(), + ui->mainpanel->show(); + short nwidth(ss(154) + ui->partitionsettings->width() - ui->partitionsettings->contentsRect().width() + ui->partitionsettings->columnWidth(0) + ui->partitionsettings->columnWidth(1) + ui->partitionsettings->columnWidth(2) + ui->partitionsettings->columnWidth(3) + ui->partitionsettings->columnWidth(4) + ui->partitionsettings->columnWidth(5) + ui->partitionsettings->columnWidth(6)); + ushort sz[]{ss(850), ss(465), ss(60)}; + windowmove(nwidth < sz[0] ? nwidth : sz[0], sz[1], false), + ui->wpanel->setMinimumSize(ss(698), sz[1]), ui->wpanel->setMaximumSize(width() - sz[2], height() - sz[2]); + } +} + +void systemback::pnmchange(uchar num) +{ + if(sb::pnumber != num) sb::pnumber = num; + uchar cnum(0); + + for(QLE ldt : ui->points->findChildren()) + switch(++cnum) { + case 1 ... 2: + break; + case 3: + if(ldt->isEnabled()) + switch(num) { + case 3: + if(ldt->styleSheet().isEmpty()) ldt->setStyleSheet("background-color: rgb(255, 103, 103)"); + break; + default: + if(! ldt->styleSheet().isEmpty()) ldt->setStyleSheet(nullptr); + } + + break; + case 11: + return; + default: + if(ldt->isEnabled()) + { + if(cnum < num) + { + if(! ldt->styleSheet().isEmpty()) ldt->setStyleSheet(nullptr); + } + else if(ldt->styleSheet().isEmpty()) + ldt->setStyleSheet("background-color: rgb(255, 103, 103)"); + } + else if(cnum <= num) + { + if(ldt->text() == tr("not used")) ldt->setText(tr("empty")); + } + else if(ldt->text() == tr("empty")) + ldt->setText(tr("not used")); + } +} + +void systemback::on_pnumber3_clicked() +{ + pnmchange(3); +} + +void systemback::on_pnumber4_clicked() +{ + pnmchange(4); +} + +void systemback::on_pnumber5_clicked() +{ + pnmchange(5); +} + +void systemback::on_pnumber6_clicked() +{ + pnmchange(6); +} + +void systemback::on_pnumber7_clicked() +{ + pnmchange(7); +} + +void systemback::on_pnumber8_clicked() +{ + pnmchange(8); +} + +void systemback::on_pnumber9_clicked() +{ + pnmchange(9); +} + +void systemback::on_pnumber10_clicked() +{ + pnmchange(10); +} + +void systemback::ptxtchange(uchar num, cQStr &txt) +{ + QLE ldt(getpoint(num)); + QCB ckbx(getppipe(num)); + + if(ldt->isEnabled()) + { + if(txt.isEmpty()) + { + if(ckbx->isChecked()) ckbx->click(); + ckbx->setDisabled(true); + } + else if(sb::like(txt, {"* *", "*/*"})) + { + uchar cps(ldt->cursorPosition() - 1); + ldt->setText(QStr(txt).replace(cps, 1, nullptr)), + ldt->setCursorPosition(cps); + } + else + { + if(! ckbx->isEnabled()) ckbx->setEnabled(true); + if(! ldt->hasFocus()) ldt->setCursorPosition(0); + + if(txt != sb::pnames[num]) + { + if(! ckbx->isChecked()) ckbx->click(); + if(! ui->pointrename->isEnabled()) ui->pointrename->setEnabled(true); + } + else if(ckbx->isChecked()) + ckbx->click(); + } + } + else if(ckbx->isEnabled()) + { + if(ckbx->isChecked()) ckbx->click(); + ckbx->setDisabled(true); + } +} + +void systemback::on_point1_textChanged(cQStr &arg1) +{ + ptxtchange(0, arg1); +} + +void systemback::on_point2_textChanged(cQStr &arg1) +{ + ptxtchange(1, arg1); +} + +void systemback::on_point3_textChanged(cQStr &arg1) +{ + ptxtchange(2, arg1); +} + +void systemback::on_point4_textChanged(cQStr &arg1) +{ + ptxtchange(3, arg1); +} + +void systemback::on_point5_textChanged(cQStr &arg1) +{ + ptxtchange(4, arg1); +} + +void systemback::on_point6_textChanged(cQStr &arg1) +{ + ptxtchange(5, arg1); +} + +void systemback::on_point7_textChanged(cQStr &arg1) +{ + ptxtchange(6, arg1); +} + +void systemback::on_point8_textChanged(cQStr &arg1) +{ + ptxtchange(7, arg1); +} + +void systemback::on_point9_textChanged(cQStr &arg1) +{ + ptxtchange(8, arg1); +} + +void systemback::on_point10_textChanged(cQStr &arg1) +{ + ptxtchange(9, arg1); +} + +void systemback::on_point11_textChanged(cQStr &arg1) +{ + ptxtchange(10, arg1); +} + +void systemback::on_point12_textChanged(cQStr &arg1) +{ + ptxtchange(11, arg1); +} + +void systemback::on_point13_textChanged(cQStr &arg1) +{ + ptxtchange(12, arg1); +} + +void systemback::on_point14_textChanged(cQStr &arg1) +{ + ptxtchange(13, arg1); +} + +void systemback::on_point15_textChanged(cQStr &arg1) +{ + ptxtchange(14, arg1); +} + +void systemback::on_restoremenu_clicked() +{ + if(sb::execsrch("update-grub2", sb::sdir[1] % '/' % cpoint % '_' % pname) && sb::isfile(sb::sdir[1] % '/' % cpoint % '_' % pname % "/var/lib/dpkg/info/grub-" % grub.name % ".list")) + { + if(ui->grubreinstallrestoredisable->isVisibleTo(ui->restorepanel)) ui->grubreinstallrestoredisable->hide(), + ui->grubreinstallrestore->show(); + } + else if(ui->grubreinstallrestore->isVisibleTo(ui->restorepanel)) + ui->grubreinstallrestore->hide(), + ui->grubreinstallrestoredisable->show(); + + if(ui->includeusers->count()) ui->includeusers->clear(); + ui->includeusers->addItems({tr("Everyone"), "root"}); + if(! ui->restorenext->isEnabled()) ui->restorenext->setEnabled(true); + ui->sbpanel->hide(), + ui->restorepanel->show(), + ui->function1->setText(tr("System restore")), + ui->restoreback->setFocus(); + QFile file("/etc/passwd"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + if(usr.contains(":/home/") && sb::isdir("/home/" % (usr = sb::left(usr, sb::instr(usr, ":") -1)))) ui->includeusers->addItem(usr); + } +} + +void systemback::on_copymenu_clicked() +{ + if(! grub.isEFI || ui->grubinstallcopy->isVisibleTo(ui->copypanel)) + { + if(ppipe ? sb::execsrch("update-grub2", sb::sdir[1] % '/' % cpoint % '_' % pname) && sb::isfile(sb::sdir[1] % '/' % cpoint % '_' % pname % "/var/lib/dpkg/info/grub-" % grub.name % ".list") : sb::execsrch("update-grub2") && sb::isfile("/var/lib/dpkg/info/grub-" % grub.name % ".list")) + { + if(ui->grubinstallcopydisable->isVisibleTo(ui->copypanel)) ui->grubinstallcopydisable->hide(), + ui->grubinstallcopy->show(); + } + else if(ui->grubinstallcopy->isVisibleTo(ui->copypanel)) + ui->grubinstallcopy->hide(), + ui->grubinstallcopydisable->show(); + } + + if(ui->usersettingscopy->isVisibleTo(ui->copypanel)) ui->usersettingscopy->hide(), + ui->userdatafilescopy->show(); + + if(! ppipe) + { + if(! ui->userdatafilescopy->isEnabled()) ui->userdatafilescopy->setEnabled(true); + } + else if(ui->userdatafilescopy->isEnabled()) + { + ui->userdatafilescopy->setDisabled(true); + if(ui->userdatafilescopy->isChecked()) ui->userdatafilescopy->setChecked(false); + } + + ui->sbpanel->hide(), + ui->copypanel->show(), + ui->function1->setText(tr("System copy")), + ui->copyback->setFocus(); + + { + short nwidth(ss(154) + ui->partitionsettings->width() - ui->partitionsettings->contentsRect().width() + ui->partitionsettings->columnWidth(0) + ui->partitionsettings->columnWidth(1) + ui->partitionsettings->columnWidth(2) + ui->partitionsettings->columnWidth(3) + ui->partitionsettings->columnWidth(4) + ui->partitionsettings->columnWidth(5) + ui->partitionsettings->columnWidth(6)); + ushort sz[]{ss(698), ss(465), ss(60)}; + + if(nwidth > sz[0]) + { + ushort sz1(ss(850)); + windowmove(nwidth < sz1 ? nwidth : sz1, sz[1], false); + } + + setMinimumSize(sz[0], sz[1]); + QRect agm(sgeom(true)); + setMaximumSize(agm.width() - sz[2], agm.height() - sz[2]); + } + + if(ui->partitionsettings->currentItem()) + { + if(sb::mcheck("/.sbsystemcopy/") || sb::mcheck("/.sblivesystemwrite/")) + on_partitionrefresh_clicked(); + else if(ui->mountpoint->isEnabled()) + { + if(! ui->mountpoint->currentText().isEmpty()) on_mountpoint_currentTextChanged(ui->mountpoint->currentText()); + } + else if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->text() == "/home") + ui->mountpoint->setEnabled(true); + } +} + +void systemback::on_installmenu_clicked() +{ + ui->sbpanel->hide(), + ui->installpanel->show(), + ui->function1->setText(tr("System install")), + ui->fullname->setFocus(); +} + +void systemback::on_livemenu_clicked() +{ + if(ui->livelist->count()) ui->livelist->clear(); + + for(QWdt wdgt : QWL{ui->livedelete, ui->liveconvert, ui->livewritestart}) + if(wdgt->isEnabled()) wdgt->setDisabled(true); + + if(ui->sbpanel->isVisible()) + { + ui->sbpanel->hide(), + ui->livepanel->show(), + ui->function1->setText(tr("Live system create")), + ui->liveback->setFocus(); + } + + if(sb::isdir(sb::sdir[2])) + for(cQStr &item : QDir(sb::sdir[2]).entryList(QDir::Files | QDir::Hidden)) + if(item.endsWith(".sblive") && ! (item.contains(' ') || sb::islink(sb::sdir[2] % '/' % item)) && sb::fsize(sb::sdir[2] % '/' % item)) + { + QLWI *lwi(new QLWI(sb::left(item, -7) % " (" % QStr::number(qRound64(sb::fsize(sb::sdir[2] % '/' % item) * 100.0 / 1024.0 / 1024.0 / 1024.0) / 100.0) % " GiB, " % (sb::stype(sb::sdir[2] % '/' % sb::left(item, -6) % "iso") == sb::Isfile && sb::fsize(sb::sdir[2] % '/' % sb::left(item, -6) % "iso") ? "sblive+iso" : "sblive") % ')')); + ui->livelist->addItem(lwi); + } +} + +void systemback::on_repairmenu_clicked() +{ + if(ppipe || pname == tr("Live image")) + { + if(! ui->systemrepair->isEnabled()) + for(QWdt wdgt : QWL{ui->systemrepair, ui->fullrepair}) wdgt->setEnabled(true); + + rmntcheck(); + } + else if(ui->systemrepair->isEnabled()) + { + for(QWdt wdgt : QWL{ui->systemrepair, ui->fullrepair}) wdgt->setDisabled(true); + if(! ui->grubrepair->isChecked()) ui->grubrepair->click(); + } + + on_repairmountpoint_currentTextChanged(ui->repairmountpoint->currentText()), + ui->sbpanel->hide(), + ui->repairpanel->show(), + ui->function1->setText(tr("System repair")), + ui->repairback->setFocus(); +} + +void systemback::on_systemupgrade_clicked() +{ + statustart(), pset(11); + QDateTime ofdate(QFileInfo("/usr/bin/systemback").lastModified()); + sb::unlock(sb::Dpkglock), sb::unlock(sb::Aptlock), + sb::exec("xterm +sb -bg grey85 -fg grey25 -fa a -fs 9 -geometry 80x24+" % QStr::number(ss(80)) % '+' % QStr::number(ss(70)) % " -n \"System upgrade\" -T \"System upgrade\" -cr grey40 -selbg grey86 -bw 0 -bc -bcf 500 -bcn 500 -e sbsysupgrade", sb::Noflag, "DBGLEV=0"); + + if(isVisible()) + { + if(ofdate != QFileInfo("/usr/bin/systemback").lastModified()) + nrxth = true, + sb::unlock(sb::Sblock), + sb::exec("systemback", sb::Bckgrnd), + close(); + else if(sb::lock(sb::Dpkglock) && sb::lock(sb::Aptlock)) + ui->statuspanel->hide(), + ui->mainpanel->show(), + ui->functionmenunext->setFocus(), + windowmove(ss(698), ss(465)); + else + utimer.stop(), + dialogopen(301); + } +} + +void systemback::on_excludemenu_clicked() +{ + ui->sbpanel->hide(), + ui->excludepanel->show(), + ui->function1->setText(tr("Exclude")), + ui->excludeback->setFocus(); + QRect agm(sgeom(true)); + ushort sz(ss(60)); + setMaximumSize(agm.width() - sz, agm.height() - sz); +} + +void systemback::on_includemenu_clicked() +{ + ui->sbpanel->hide(), + ui->includepanel->show(), + ui->function1->setText(tr("Include")), + ui->includeback->setFocus(); + QRect agm(sgeom(true)); + ushort sz(ss(60)); + setMaximumSize(agm.width() - sz, agm.height() - sz); +} + +void systemback::on_schedulemenu_clicked() +{ + ui->sbpanel->hide(), + ui->schedulepanel->show(), + ui->function1->setText(tr("Schedule")), + ui->schedulerback->setFocus(); +} + +void systemback::on_aboutmenu_clicked() +{ + ui->sbpanel->hide(), + ui->aboutpanel->show(), + ui->function1->setText(tr("About")), + ui->aboutback->setFocus(); +} + +void systemback::on_settingsmenu_clicked() +{ + ui->sbpanel->hide(), + ui->settingspanel->show(), + ui->function1->setText(tr("Settings")), + ui->settingsback->setFocus(); +} + +void systemback::on_partitionrefresh_clicked() +{ + busy(); + if(! ui->copycover->isVisibleTo(ui->copypanel)) ui->copycover->show(); + if(ui->copynext->isEnabled()) ui->copynext->setDisabled(true); + if(ui->mountpoint->count()) ui->mountpoint->clear(); + ui->mountpoint->addItems({nullptr, "/", "/home", "/boot"}); + + if(grub.isEFI) + { + ui->mountpoint->addItem("/boot/efi"); + if(! ui->efiwarning->isVisibleTo(ui->copypanel)) ui->efiwarning->show(); + + if(ui->grubinstallcopy->isVisibleTo(ui->copypanel)) ui->grubinstallcopy->hide(), + ui->grubinstallcopydisable->show(); + } + + ui->mountpoint->addItems({"/tmp", "/usr", "/var", "/srv", "/opt", "/usr/local", "SWAP"}); + + if(ui->mountpoint->isEnabled()) + { + ui->mountpoint->setDisabled(true); + if(ui->changepartition->isEnabled()) ui->changepartition->setDisabled(true); + } + + if(ui->format->isEnabled()) + { + ui->format->setDisabled(true); + if(ui->filesystem->isEnabled()) ui->filesystem->setDisabled(true); + } + + if(ui->unmountdelete->text() == tr("! Delete !")) ui->unmountdelete->setText(tr("Unmount")), + ui->unmountdelete->setStyleSheet(nullptr); + + if(ui->unmountdelete->isEnabled()) ui->unmountdelete->setDisabled(true); + + if(nohmcpy[1]) + { + nohmcpy[1] = false; + + if(! ppipe) + ui->userdatafilescopy->setEnabled(true); + else if(ui->userdatafilescopy->isChecked()) + ui->userdatafilescopy->setChecked(false); + } + + if(ui->partitionsettings->rowCount()) ui->partitionsettings->clearContents(); + if(ui->repairpartition->count()) ui->repairpartition->clear(); + + if(! wismax) + for(uchar a(2) ; a < 5 ; ++a) ui->partitionsettings->resizeColumnToContents(a); + + QSL plst; + sb::readprttns(plst); + + if(! grub.isEFI) + { + if(ui->grubinstallcopy->count()) + for(QCbB cmbx : QCbBL{ui->grubinstallcopy, ui->grubreinstallrestore, ui->grubreinstallrepair}) cmbx->clear(); + + for(QCbB cmbx : QCbBL{ui->grubinstallcopy, ui->grubreinstallrestore, ui->grubreinstallrepair}) cmbx->addItems({"Auto", tr("Disabled")}); + + for(cQStr &dts : plst) + { + QStr path(dts.split('\n').at(0)); + + if(sb::like(path.length(), {8, 12})) + for(QCbB cmbx : QCbBL{ui->grubinstallcopy, ui->grubreinstallrestore, ui->grubreinstallrepair}) cmbx->addItem(path); + } + } + + schar sn(-1); + QBA mnts[]{sb::fload("/proc/self/mounts"), sb::fload("/proc/swaps")}; + + for(cQStr &cdts : plst) + { + QSL dts(cdts.split('\n')); + cQStr &path(dts.at(0)), &type(dts.at(2)); + ullong bsize(dts.at(1).toULongLong()); + + if(sb::like(path.length(), {8, 12})) + { + ui->partitionsettings->setRowCount(++sn + 1); + if(sn) ui->partitionsettings->setRowHeight(sn, ss(25)); + { QTblWI *dev(new QTblWI(path)); + dev->setTextAlignment(Qt::AlignBottom), + ui->partitionsettings->setItem(sn, 0, dev); + QTblWI *rsize(new QTblWI(sb::hunit(bsize))); + rsize->setTextAlignment(Qt::AlignRight | Qt::AlignBottom), + ui->partitionsettings->setItem(sn, 1, rsize); + QFont fnt; + fnt.setWeight(QFont::DemiBold); + for(QTblWI *twi : {dev, rsize}) twi->setFont(fnt); } + for(uchar a(2) ; a < 7 ; ++a) ui->partitionsettings->setItem(sn, a, new QTblWI); + QTblWI *tp(new QTblWI(type)); + ui->partitionsettings->setItem(sn, 8, tp); + QTblWI *lngth(new QTblWI(QStr::number(bsize))); + ui->partitionsettings->setItem(sn, 10, lngth); + } + else + { + switch(type.toUShort()) { + case sb::Extended: + ui->partitionsettings->setRowCount(++sn + 1); + { QTblWI *dev(new QTblWI(path)); + ui->partitionsettings->setItem(sn, 0, dev); + QTblWI *rsize(new QTblWI(sb::hunit(bsize))); + rsize->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter), + ui->partitionsettings->setItem(sn, 1, rsize); + QFont fnt; + fnt.setWeight(QFont::DemiBold), fnt.setItalic(true); + for(QTblWI *twi : {dev, rsize}) twi->setFont(fnt); } + for(uchar a(2) ; a < 7 ; ++a) ui->partitionsettings->setItem(sn, a, new QTblWI); + break; + case sb::Primary: + case sb::Logical: + if(! grub.isEFI) + for(QCbB cmbx : QCbBL{ui->grubinstallcopy, ui->grubreinstallrestore, ui->grubreinstallrepair}) cmbx->addItem(path); + + ui->partitionsettings->setRowCount(++sn + 1); + { QTblWI *dev(new QTblWI(path)); + ui->partitionsettings->setItem(sn, 0, dev); + QTblWI *rsize(new QTblWI(sb::hunit(bsize))); + rsize->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter), + ui->partitionsettings->setItem(sn, 1, rsize); + QTblWI *lbl(new QTblWI(dts.at(5))); + lbl->setTextAlignment(Qt::AlignCenter); + if(! dts.at(5).isEmpty()) lbl->setToolTip(dts.at(5)); + ui->partitionsettings->setItem(sn, 2, lbl); } + + { + QTblWI *mpt(new QTblWI([&]() -> QStr { + cQStr &uuid(dts.at(6)); + + if(uuid.isEmpty()) + { + if(QStr('\n' % mnts[0]).contains('\n' % path % ' ')) + { + QStr mnt(sb::right(mnts[0], -sb::instr(mnts[0], path % ' '))); + short spc(sb::instr(mnt, " ")); + return sb::mid(mnt, spc + 1, sb::instr(mnt, " ", spc + 1) - spc - 1).replace("\\040", " "); + } + } + else if(QStr('\n' % mnts[0]).contains('\n' % path % ' ')) + return QStr('\n' % mnts[0]).count('\n' % path % ' ') > 1 || QStr('\n' % mnts[0]).contains("\n/dev/disk/by-uuid/" % uuid % ' ') ? tr("Multiple mount points") : [&] { + QStr mnt(sb::right(mnts[0], -sb::instr(mnts[0], path % ' '))); + short spc(sb::instr(mnt, " ")); + return sb::mid(mnt, spc + 1, sb::instr(mnt, " ", spc + 1) - spc - 1).replace("\\040", " "); + }(); + else if(QStr('\n' % mnts[0]).contains("\n/dev/disk/by-uuid/" % uuid % ' ')) + return QStr('\n' % mnts[0]).count("\n/dev/disk/by-uuid/" % uuid % ' ') > 1 ? tr("Multiple mount points") : [&] { + QStr mnt(sb::right(mnts[0], -sb::instr(mnts[0], "/dev/disk/by-uuid/" % uuid % ' '))); + short spc(sb::instr(mnt, " ")); + return sb::mid(mnt, spc + 1, sb::instr(mnt, " ", spc + 1) - spc - 1).replace("\\040", " "); + }(); + else if(QStr('\n' % mnts[1]).contains('\n' % path % ' ')) + return "SWAP"; + + ui->repairpartition->addItem(path); + return nullptr; + }())); + + if(! mpt->text().isEmpty()) mpt->setToolTip(mpt->text()); + ui->partitionsettings->setItem(sn, 3, mpt); + QTblWI *empty(new QTblWI); + ui->partitionsettings->setItem(sn, 4, empty); + QTblWI *fs(new QTblWI(dts.at(4))); + ui->partitionsettings->setItem(sn, 5, fs); + QTblWI *frmt(new QTblWI("-")); + ui->partitionsettings->setItem(sn, 6, frmt), + ui->partitionsettings->setItem(sn, 7, fs->clone()); + for(QTblWI *wdi : QList{mpt, empty, fs, frmt}) wdi->setTextAlignment(Qt::AlignCenter); + } + + break; + case sb::Freespace: + case sb::Emptyspace: + ui->partitionsettings->setRowCount(++sn + 1); + { QTblWI *dev(new QTblWI(path)); + ui->partitionsettings->setItem(sn, 0, dev); + QTblWI *rsize(new QTblWI(sb::hunit(bsize))); + rsize->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter), + ui->partitionsettings->setItem(sn, 1, rsize); + QFont fnt; + fnt.setItalic(true); + for(QTblWI *twi : {dev, rsize}) twi->setFont(fnt); } + for(uchar a(2) ; a < 7 ; ++a) ui->partitionsettings->setItem(sn, a, new QTblWI); + break; + } + + QTblWI *tp(new QTblWI(type)); + ui->partitionsettings->setItem(sn, 8, tp); + QTblWI *start(new QTblWI(dts.at(3))); + ui->partitionsettings->setItem(sn, 9, start); + QTblWI *lngth(new QTblWI(QStr::number(bsize))); + ui->partitionsettings->setItem(sn, 10, lngth); + } + } + + for(uchar a(0) ; a < 7 ; ++a) + if(wismax || a < 2 || a > 4) ui->partitionsettings->resizeColumnToContents(a); + + if(ui->copypanel->isVisible() && ! ui->copyback->hasFocus()) ui->copyback->setFocus(); + ui->copycover->hide(), busy(false); +} + +void systemback::on_partitionrefresh2_clicked() +{ + on_partitionrefresh_clicked(); + + if(! ui->partitionsettingspanel1->isVisibleTo(ui->copypanel)) ui->partitionsettingspanel2->isVisibleTo(ui->copypanel) ? ui->partitionsettingspanel2->hide() : ui->partitionsettingspanel3->hide(), + ui->partitionsettingspanel1->show(); +} + +void systemback::on_partitionrefresh3_clicked() +{ + on_partitionrefresh2_clicked(); +} + +void systemback::on_unmountdelete_clicked() +{ + busy(), ui->copycover->show(); + + if(ui->unmountdelete->text() == tr("Unmount")) + { + if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->text() != "SWAP") + { + QStr mnts(sb::fload("/proc/self/mounts", true)); + QTS in(&mnts, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr cline(in.readLine()), mpt(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->text().replace(" ", "\\040")); + if(sb::like(cline, {"* " % mpt % " *", "* " % mpt % "/*"})) sb::umount(cline.split(' ').value(1).replace("\\040", " ")); + } + + mnts = sb::fload("/proc/self/mounts"); + + for(ushort a(0) ; a < ui->partitionsettings->rowCount() ; ++a) + { + QStr mpt(ui->partitionsettings->item(a, 3)->text()); + + if(! (mpt.isEmpty() || sb::like(mpt, {"_SWAP_", '_' % tr("Multiple mount points") % '_'}) || mnts.contains(' ' % mpt.replace(" ", "\\040") % ' '))) ui->partitionsettings->item(a, 3)->setText(nullptr), + ui->partitionsettings->item(a, 3)->setToolTip(nullptr); + } + + sb::fssync(); + } + else if(! (QStr('\n' % sb::fload("/proc/swaps")).contains('\n' % ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text() % ' ') && swapoff(bstr(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text())))) + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->setText(nullptr), + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->setToolTip(nullptr); + + if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->text().isEmpty()) + { + ui->unmountdelete->setText(tr("! Delete !")), + ui->unmountdelete->setStyleSheet("QPushButton:enabled{color: red}"); + if(minside(ui->unmountdelete)) ui->unmountdelete->setDisabled(true); + if(! ui->mountpoint->isEnabled()) ui->mountpoint->setEnabled(true); + for(QWdt wdgt : QWL{ui->filesystem, ui->format}) wdgt->setEnabled(true); + } + + ui->copycover->hide(); + } + else + sb::delpart(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text()), + on_partitionrefresh2_clicked(); + + busy(false); +} + +void systemback::on_unmount_clicked() +{ + busy(), ui->copycover->show(); + bool umntd(true); + + { + QStr mnts[2]{sb::fload("/proc/self/mounts", true)}; + + { + QSL umlst; + umlst.reserve(ui->partitionsettings->rowCount() - 1); + + for(ushort a(ui->partitionsettings->currentRow() + 1) ; a < ui->partitionsettings->rowCount() && ui->partitionsettings->item(a, 0)->background() != QBrush() ; ++a) + { + QStr mpt(ui->partitionsettings->item(a, 3)->text()); + + if(! mpt.isEmpty()) + { + if(mpt == "SWAP") + swapoff(bstr(ui->partitionsettings->item(a, 0)->text())); + else + { + QTS in(&mnts[0], QIODevice::ReadOnly); + QSL incl{"* " % mpt.replace(" ", "\\040") % " *", "* " % mpt % "/*"}; + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + + if(sb::like(cline, incl)) + { + QSL pslst(cline.split(' ')); + + if(! umlst.contains(pslst.at(0))) sb::umount(pslst.value(1).replace("\\040", " ")), + umlst.append(pslst.at(0)); + } + } + } + } + } + } + + mnts[0] = sb::fload("/proc/self/mounts"), mnts[1] = sb::fload("/proc/swaps"); + + for(ushort a(ui->partitionsettings->currentRow() + 1) ; a < ui->partitionsettings->rowCount() && ui->partitionsettings->item(a, 0)->background() != QBrush() ; ++a) + { + QStr mpt(ui->partitionsettings->item(a, 3)->text()); + + if(! mpt.isEmpty()) + { + if((mpt == "SWAP" && ! QStr('\n' % mnts[1]).contains('\n' % ui->partitionsettings->item(a, 0)->text() % ' ')) || ! (mpt == "SWAP" || mnts[0].contains(' ' % mpt.replace(" ", "\\040") % ' '))) + ui->partitionsettings->item(a, 3)->setText(nullptr), + ui->partitionsettings->item(a, 3)->setToolTip(nullptr); + else if(umntd) + umntd = false; + } + } + } + + sb::fssync(); + + if(umntd) ui->unmount->setDisabled(true), + ui->partitiondelete->setEnabled(true); + + ui->copycover->hide(), busy(false); +} + +void systemback::on_restoreback_clicked() +{ + ui->restorepanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->setFocus(); +} + +void systemback::on_copyback_clicked() +{ + if(ui->copycover->isHidden()) + { + windowmove(ss(698), ss(465)), + ui->copypanel->hide(); + + if(ui->function1->text() == tr("System copy")) + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->setFocus(); + else + ui->installpanel->show(), + ui->fullname->setFocus(); + + ui->partitionsettings->resizeColumnToContents(6); + } +} + +void systemback::on_installback_clicked() +{ + ui->installpanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->setFocus(); +} + +void systemback::on_liveback_clicked() +{ + if(ui->livecover->isHidden()) ui->livepanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->setFocus(); +} + +void systemback::on_repairback_clicked() +{ + if(ui->repaircover->isHidden()) ui->repairpanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->setFocus(); +} + +void systemback::on_excludeback_clicked() +{ + if(ui->excludecover->isHidden()) windowmove(ss(698), ss(465)), + ui->excludepanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->setFocus(); +} + +void systemback::on_includeback_clicked() +{ + if(ui->includecover->isHidden()) windowmove(ss(698), ss(465)), + ui->includepanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->setFocus(); +} + +void systemback::on_schedulerback_clicked() +{ + ui->schedulepanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenuback->setFocus(); +} + +void systemback::on_aboutback_clicked() +{ + ui->aboutpanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenuback->setFocus(); +} + +void systemback::on_licenseback_clicked() +{ + ui->licensepanel->hide(), + ui->aboutpanel->show(), + ui->function1->setText(tr("About")), + ui->aboutback->setFocus(); +} + +void systemback::on_licensemenu_clicked() +{ + ui->aboutpanel->hide(), + ui->licensepanel->show(), + ui->function1->setText(tr("License")), + ui->licenseback->setFocus(); + + if(! ui->license->isEnabled()) + { + busy(), + ui->license->setText(sb::fload("/usr/share/common-licenses/GPL-3")), + ui->license->setEnabled(true), + busy(false); + } +} + +void systemback::on_settingsback_clicked() +{ + ui->settingspanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenuback->setFocus(); +} + +void systemback::on_pointpipe1_clicked() +{ + if(ppipe) ppipe = 0; + bool rnmenbl(false); + schar num(-1); + + for(QCB ckbx : ui->sbpanel->findChildren()) + { + ++num; + + if(ckbx->isChecked()) + { + if(++ppipe == 1) cpoint = [num]() -> QStr { + switch(num) { + case 9: + return "S10"; + case 10 ... 14: + return "H0" % QStr::number(num - 9); + default: + return "S0" % QStr::number(num + 1); + } + }(), pname = sb::pnames[num]; + + if(! (rnmenbl || getpoint(num)->text() == sb::pnames[num])) rnmenbl = true; + } + else + { + QLE ldt(getpoint(num)); + if(ldt->isEnabled() && ! (ldt->text() == sb::pnames[num] || ldt->text().isEmpty())) ldt->setText(sb::pnames[num]); + } + } + + if(! ppipe) + { + if(ui->restoremenu->isEnabled()) ui->restoremenu->setDisabled(true); + + if(ui->storagedirbutton->isHidden()) + { + ui->storagedir->resize(ss(210), ui->storagedir->height()), + ui->storagedirbutton->show(); + for(QWdt wdgt : QWL{ui->pointrename, ui->pointdelete}) wdgt->setDisabled(true); + } + + if(ui->pointhighlight->isEnabled()) ui->pointhighlight->setDisabled(true); + if(! ui->repairmenu->isEnabled()) ui->repairmenu->setEnabled(true); + + pname = [this]() -> QStr { + if(! sislive) + { + for(QWdt wdgt : QWL{ui->newrestorepoint, ui->livemenu}) + if(! wdgt->isEnabled()) wdgt->setEnabled(true); + + return tr("Currently running system"); + } + else if(sb::isdir("/.systemback")) + { + if(! ui->copymenu->isEnabled()) + for(QWdt wdgt : QWL{ui->copymenu, ui->installmenu}) wdgt->setEnabled(true); + + return tr("Live image"); + } + + return nullptr; + }(); + } + else + { + if(! rnmenbl && ui->pointrename->isEnabled()) ui->pointrename->setDisabled(true); + + if(ppipe == 1) + { + if(ui->newrestorepoint->isEnabled()) ui->newrestorepoint->setDisabled(true); + + if(ui->storagedirbutton->isVisible()) ui->storagedirbutton->hide(), + ui->storagedir->resize(ss(236), ui->storagedir->height()), + ui->pointdelete->setEnabled(true); + + if(ui->pointpipe11->isChecked() || ui->pointpipe12->isChecked() || ui->pointpipe13->isChecked() || ui->pointpipe14->isChecked() || ui->pointpipe15->isChecked()) + { + if(ui->pointhighlight->isEnabled()) ui->pointhighlight->setDisabled(true); + } + else if(! (ui->point15->isEnabled() || ui->pointhighlight->isEnabled())) + ui->pointhighlight->setEnabled(true); + + if(! ui->copymenu->isEnabled()) + for(QWdt wdgt : QWL{ui->copymenu, ui->installmenu}) wdgt->setEnabled(true); + + if(! (sislive || ui->restoremenu->isEnabled())) ui->restoremenu->setEnabled(true); + if(ui->livemenu->isEnabled()) ui->livemenu->setDisabled(true); + if(! ui->repairmenu->isEnabled()) ui->repairmenu->setEnabled(true); + } + else + { + if(ui->restoremenu->isEnabled()) ui->restoremenu->setDisabled(true); + for(QWdt wdgt : QWL{ui->copymenu, ui->installmenu, ui->repairmenu}) wdgt->setDisabled(true); + if(ui->pointhighlight->isEnabled()) ui->pointhighlight->setDisabled(true); + } + } +} + +void systemback::on_pointpipe2_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe3_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe4_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe5_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe6_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe7_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe8_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe9_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe10_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe11_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe12_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe13_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe14_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_pointpipe15_clicked() +{ + on_pointpipe1_clicked(); +} + +void systemback::on_livedevicesrefresh_clicked() +{ + busy(); + if(! ui->livecover->isVisibleTo(ui->livepanel)) ui->livecover->show(); + if(ui->livedevices->rowCount()) ui->livedevices->clearContents(); + QSL dlst; + sb::readlvdevs(dlst); + schar sn(-1); + + for(cQStr &cdts : dlst) + { + ui->livedevices->setRowCount(++sn + 1); + QSL dts(cdts.split('\n')); + QTblWI *dev(new QTblWI(dts.at(0))); + ui->livedevices->setItem(sn, 0, dev); + ullong bsize(dts.at(2).toULongLong()); + QTblWI *rsize(new QTblWI(sb::hunit(bsize))); + rsize->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter), + ui->livedevices->setItem(sn, 1, rsize); + QTblWI *name(new QTblWI(dts.at(1))); + name->setToolTip(dts.at(1)), + ui->livedevices->setItem(sn, 2, name); + QTblWI *format(new QTblWI("-")); + for(QTblWI *wdi : QList{name, format}) wdi->setTextAlignment(Qt::AlignCenter); + ui->livedevices->setItem(sn, 3, format); + } + + for(uchar a(0) ; a < 4 ; ++a) ui->livedevices->resizeColumnToContents(a); + if(ui->livedevices->columnWidth(0) + ui->livedevices->columnWidth(1) + ui->livedevices->columnWidth(2) + ui->livedevices->columnWidth(3) > ui->livedevices->contentsRect().width()) ui->livedevices->setColumnWidth(2, ui->livedevices->contentsRect().width() - ui->livedevices->columnWidth(0) - ui->livedevices->columnWidth(1) - ui->livedevices->columnWidth(3)); + if(ui->livewritestart->isEnabled()) ui->livewritestart->setDisabled(true); + if(ui->livepanel->isVisible() && ! ui->liveback->hasFocus()) ui->liveback->setFocus(); + ui->livecover->hide(), busy(false); +} + +void systemback::ilstupdt(bool inc, cQStr &dir) +{ + if(dir.isEmpty()) + { + busy(); + + if(inc) + { + if(! ui->includecover->isVisibleTo(ui->includepanel)) + { + ui->includecover->show(); + if(ui->includeadditem->isEnabled()) ui->includeadditem->setDisabled(true); + } + + if(ui->includeitemslist->topLevelItemCount()) ui->includeitemslist->clear(); + } + else + { + if(! ui->excludecover->isVisibleTo(ui->excludepanel)) + { + ui->excludecover->show(); + if(ui->excludeadditem->isEnabled()) ui->excludeadditem->setDisabled(true); + } + + if(ui->excludeitemslist->topLevelItemCount()) ui->excludeitemslist->clear(); + } + + ilstupdt(inc, "/root"); + QFile file("/etc/passwd"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + if(usr.contains(":/home/") && sb::isdir("/home/" % (usr = sb::left(usr, sb::instr(usr, ":") -1)))) ilstupdt(inc, "/home/" % usr); + } + + if(inc) + { + ui->includeitemslist->sortItems(0, Qt::AscendingOrder); + if(ui->includepanel->isVisible() && ! ui->includeback->hasFocus()) ui->includeback->setFocus(); + ui->includecover->hide(); + } + else + { + ui->excludeitemslist->sortItems(0, Qt::AscendingOrder); + if(ui->excludepanel->isVisible() && ! ui->excludeback->hasFocus()) ui->excludeback->setFocus(); + ui->excludecover->hide(); + } + + busy(false); + } + else + { + QTreeWidget *ilst; + QLW dlst; + inc ? (ilst = ui->includeitemslist, dlst = ui->includedlist) : (ilst = ui->excludeitemslist, dlst = ui->excludedlist); + + for(cQStr &item : QDir(dir).entryList(QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot)) + if((inc || ui->liveexclude->isChecked() ? ! sb::like(item, {"_.*", "_snap_"}) : item.startsWith('.') ? ! sb::like(item, {"_.gvfs_", "_.Xauthority_", "_.ICEauthority_"}) : item == "snap") && dlst->findItems(item, Qt::MatchExactly).isEmpty()) + { + QList flst(ilst->findItems(item, Qt::MatchExactly)); + + if(flst.isEmpty()) + { + QTrWI *twi(new QTrWI); + twi->setText(0, item); + + if(sb::access(dir % '/' % item) && sb::stype(dir % '/' % item) == sb::Isdir) + { + twi->setIcon(0, QIcon(QPixmap(":pictures/dir.png").scaled(ss(12), ss(9), Qt::IgnoreAspectRatio, Qt::SmoothTransformation))), + ilst->addTopLevelItem(twi); + + if(dlst->findItems(item % '/', Qt::MatchExactly).isEmpty()) + { + QSL sdlst(QDir(dir % '/' % item).entryList(QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot)); + + for(cQStr &sitem : sdlst) + if(dlst->findItems(item % '/' % sitem, Qt::MatchExactly).isEmpty() && item % '/' % sitem != ".cache/gvfs") + { + QTrWI *ctwi(new QTrWI); + ctwi->setText(0, sitem), + twi->addChild(ctwi); + } + } + } + else + ilst->addTopLevelItem(twi); + } + else if(sb::access(dir % '/' % item) && sb::stype(dir % '/' % item) == sb::Isdir) + { + QTrWI *ctwi(flst.at(0)); + if(ctwi->icon(0).isNull()) ctwi->setIcon(0, QIcon(":pictures/dir.png")); + + if(dlst->findItems(item % '/', Qt::MatchExactly).isEmpty()) + { + QSL sdlst(QDir(dir % '/' % item).entryList(QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot)), itmlst; + for(ushort a(0) ; a < ctwi->childCount() ; ++a) itmlst.append(ctwi->child(a)->text(0)); + + for(cQStr &sitem : sdlst) + { + if(dlst->findItems(item % '/' % sitem, Qt::MatchExactly).isEmpty() && item % '/' % sitem != ".cache/gvfs") + { + for(cQStr &citem : itmlst) + if(citem == sitem) goto next; + + QTrWI *sctwi(new QTrWI); + sctwi->setText(0, sitem), + ctwi->addChild(sctwi); + } + + next:; + } + } + } + } + } +} + +void systemback::on_pointexclude_clicked() +{ + busy(); + if(! ui->excludecover->isVisibleTo(ui->excludepanel)) ui->excludecover->show(); + if(ui->excludedlist->count()) ui->excludedlist->clear(); + + if(ui->excludeadditem->isEnabled()) + ui->excludeadditem->setDisabled(true); + else if(ui->excluderemoveitem->isEnabled()) + ui->excluderemoveitem->setDisabled(true); + + { + QFile file(excfile); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr cline(sb::left(file.readLine(), -1)); + + if(sb::like(cline, {"_.*", "_snap_", "_snap/*"})) + { + if(ui->pointexclude->isChecked()) ui->excludedlist->addItem(cline); + } + else if(ui->liveexclude->isChecked() && ! cline.isEmpty()) + ui->excludedlist->addItem(cline); + } + } + + ilstupdt(), + busy(false); +} + +void systemback::on_liveexclude_clicked() +{ + on_pointexclude_clicked(); +} + +void systemback::on_dialogok_clicked() +{ + if(ui->dialogok->text() == "OK") + { + if(dialog == 309) + dialogopen(ui->fullrestore->isChecked() ? 205 : 204); + else if(dialog == 305) + { + statustart(); + + for(cQStr &item : QDir(sb::sdir[1]).entryList(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + if(item.startsWith(".S00_")) + { + pset(12); + + if(sb::remove(sb::sdir[1] % '/' % item)) + { + emptycache(); + + if(sstart) + { + sb::crtfile(sb::sdir[1] % "/.sbschedule"); + sb::ThrdKill = true; + close(); + } + else + { + ui->statuspanel->hide(); + ui->mainpanel->show(); + ui->functionmenunext->isEnabled() ? ui->functionmenunext->setFocus() : ui->functionmenuback->setFocus(); + windowmove(ss(698), ss(465)); + } + } + else + { + if(sstart) sb::crtfile(sb::sdir[1] % "/.sbschedule"); + + if(intrrpt) + intrrpt = false; + else + dialogopen(329); + } + + return; + } + + if(sstart) + { + sb::crtfile(sb::sdir[1] % "/.sbschedule"); + sb::ThrdKill = true; + close(); + } + else + on_dialogcancel_clicked(); + } + else if(! utimer.isActive() || sstart) + close(); + else if(sb::like(dialog, {207, 210, 303, 307, 311, 312, 313, 314, 316, 317, 320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338})) + { + ui->dialogpanel->hide(); + ui->mainpanel->show(); + + if(ui->copypanel->isVisible()) + { + ui->copyback->setFocus(); + short nwidth(ss(154) + ui->partitionsettings->width() - ui->partitionsettings->contentsRect().width() + ui->partitionsettings->columnWidth(0) + ui->partitionsettings->columnWidth(1) + ui->partitionsettings->columnWidth(2) + ui->partitionsettings->columnWidth(3) + ui->partitionsettings->columnWidth(4) + ui->partitionsettings->columnWidth(5) + ui->partitionsettings->columnWidth(6)); + + if(nwidth > ss(698)) + { + ushort sz(ss(850)); + windowmove(nwidth < sz ? nwidth : sz, ss(465), false); + } + } + else + { + if(ui->sbpanel->isVisible()) + ui->functionmenunext->isEnabled() ? ui->functionmenunext->setFocus() : ui->functionmenuback->setFocus(); + else if(ui->livepanel->isVisible()) + ui->liveback->setFocus(); + + windowmove(ss(698), ss(465)); + } + + setwontop(false); + } + else if(sislive && sb::like(dialog, {206, 209})) + fscrn ? dialogopen(211) : void(close()); + else + on_dialogcancel_clicked(); + } + else if(ui->dialogok->text() == tr("Start")) + switch(dialog) { + case 100: + case 103 ... 104: + case 107: + return restore(); + case 101 ... 102: + case 109: + return repair(); + case 105 ... 106: + return systemcopy(); + case 108: + livewrite(); + } + else if(ui->dialogok->text() == tr("Reboot")) + { + sb::exec(sb::execsrch("reboot") ? "reboot" : "systemctl reboot", sb::Bckgrnd); + + if(fscrn) + { + fscrn = false; + qApp->exit(1); + } + else + close(); + } + else if(ui->dialogok->text() == tr("X restart")) + { + DIR *dir(opendir("/proc")); + dirent *ent; + QSL dd{"_._", "_.._"}; + + while((ent = readdir(dir))) + { + QStr iname(ent->d_name); + + if(! sb::like(iname, dd) && ent->d_type == DT_DIR && sb::isnum(iname) && sb::islink("/proc/" % iname % "/exe") && QFile::readLink("/proc/" % iname % "/exe").endsWith("/Xorg")) + { + closedir(dir); + kill(iname.toInt(), SIGTERM); + } + } + + close(); + } +} + +void systemback::on_pointhighlight_clicked() +{ + busy(), + sb::rename(sb::sdir[1] % '/' % cpoint % '_' % pname, sb::sdir[1] % "/H05_" % pname), + pntupgrade(), + busy(false); +} + +void systemback::on_pointrename_clicked() +{ + busy(); + if(dialog == 303) dialog = 0; + schar num(-1); + + for(QCB ckbx : ui->sbpanel->findChildren()) + { + ++num; + + if(ckbx->isChecked()) + { + QLE ldt(getpoint(num)); + + if(ldt->text() != sb::pnames[num]) + { + QStr ppath([num]() -> QStr { + switch(num) { + case 9: + return "/S10_"; + case 10 ... 14: + return "/H0" % QStr::number(num - 9) % '_'; + default: + return "/S0" % QStr::number(num + 1) % '_'; + } + }()); + + if(sb::rename(sb::sdir[1] % ppath % sb::pnames[num], sb::sdir[1] % ppath % ldt->text())) + ckbx->click(); + else if(dialog != 303) + dialog = 303; + } + } + } + + pntupgrade(), + busy(false); + if(dialog == 303) dialogopen(); +} + +void systemback::on_autorestoreoptions_clicked(bool chckd) +{ + for(QWdt wdgt : QWL{ui->skipfstabrestore, ui->grubreinstallrestore, ui->grubreinstallrestoredisable}) wdgt->setDisabled(chckd); +} + +void systemback::on_autorepairoptions_clicked(bool chckd) +{ + if(chckd) + { + if(ui->skipfstabrepair->isEnabled()) ui->skipfstabrepair->setDisabled(true); + + if(ui->grubreinstallrepair->isEnabled()) + for(QWdt wdgt : QWL{ui->grubreinstallrepair, ui->grubreinstallrepairdisable}) wdgt->setDisabled(true); + } + else + { + if(! ui->skipfstabrepair->isEnabled()) ui->skipfstabrepair->setEnabled(true); + + if(! ui->grubreinstallrepair->isEnabled()) + for(QWdt wdgt : QWL{ui->grubreinstallrepair, ui->grubreinstallrepairdisable}) wdgt->setEnabled(true); + } +} + +void systemback::on_storagedirbutton_clicked() +{ + for(QWdt wdgt : QWL{ui->sbpanel, ui->scalingbutton}) wdgt->hide(); + ui->choosepanel->show(), + ui->function1->setText(tr("Storage directory")), + ui->dirchooseok->setFocus(); + { ushort sz[]{ss(642), ss(481), ss(60)}; + windowmove(sz[0], sz[1], false), + setMinimumSize(sz[0], sz[1]); + QRect agm(sgeom(true)); + setMaximumSize(agm.width() - sz[2], agm.height() - sz[2]); } + on_dirrefresh_clicked(); +} + +void systemback::on_liveworkdirbutton_clicked() +{ + for(QWdt wdgt : QWL{ui->livepanel, ui->scalingbutton}) wdgt->hide(); + ui->choosepanel->show(), + ui->function1->setText(tr("Working directory")), + ui->dirchooseok->setFocus(); + { ushort sz[]{ss(642), ss(481), ss(60)}; + windowmove(sz[0], sz[1], false), + setMinimumSize(sz[0], sz[1]); + QRect agm(sgeom(true)); + setMaximumSize(agm.width() - sz[2], agm.height() - sz[2]); } + on_dirrefresh_clicked(); +} + +void systemback::on_dirrefresh_clicked() +{ + busy(); + if(ui->dirchoose->topLevelItemCount()) ui->dirchoose->clear(); + QStr pwdrs(sb::fload("/etc/passwd")); + QSL excl{"bin", "boot", "cdrom", "dev", "etc", "lib", "lib32", "lib64", "opt", "proc", "root", "run", "sbin", "selinux", "snap", "srv", "sys", "tmp", "usr", "var"}; + ushort sz(ss(12)); + + for(cQStr &item : QDir("/").entryList(QDir::Dirs | QDir::Hidden | QDir::NoDotAndDotDot)) + { + QTrWI *twi(new QTrWI); + twi->setText(0, item); + QStr cpath(QDir('/' % item).canonicalPath()); + + if(excl.contains(item) || excl.contains(sb::right(cpath, -1)) || pwdrs.contains(':' % cpath % ':') || ! sb::islnxfs('/' % item)) + twi->setTextColor(0, Qt::red), + twi->setIcon(0, QIcon(QPixmap(":pictures/dirx.png").scaled(sz, sz, Qt::IgnoreAspectRatio, Qt::SmoothTransformation))), + ui->dirchoose->addTopLevelItem(twi); + else + { + if(ui->function1->text() == tr("Storage directory") && sb::isfile('/' % item % "/Systemback/.sbschedule")) twi->setTextColor(0, Qt::green), + twi->setIcon(0, QIcon(QPixmap(":pictures/isdir.png").scaled(sz, sz, Qt::IgnoreAspectRatio, Qt::SmoothTransformation))); + + ui->dirchoose->addTopLevelItem(twi); + + if(item == "home") ui->dirchoose->setCurrentItem(twi), + twi->setSelected(true); + + for(cQStr &sitem : QDir('/' % item).entryList(QDir::Dirs | QDir::Hidden | QDir::NoDotAndDotDot)) + { + QTrWI *ctwi(new QTrWI); + ctwi->setText(0, sitem); + + if(excl.contains(sb::right(cpath = QDir('/' % item % '/' % sitem).canonicalPath(), -1)) || pwdrs.contains(':' % cpath % ':') || (item == "home" && pwdrs.contains(":/home/" % sitem % ":"))) ctwi->setTextColor(0, Qt::red), + ctwi->setIcon(0, QIcon(QPixmap(":pictures/dirx.png").scaled(sz, sz, Qt::IgnoreAspectRatio, Qt::SmoothTransformation))); + + twi->addChild(ctwi); + } + } + } + + if(! (ui->dirchoose->currentItem() || ui->dirpath->text() == "/")) + { + ui->dirpath->setText("/"); + + if(ui->dirpath->styleSheet().isEmpty()) ui->dirpath->setStyleSheet("color: red"), + ui->dirchooseok->setDisabled(true); + + ui->dirchoosecancel->setFocus(); + } + + busy(false); +} + +void systemback::on_dirchoose_currentItemChanged(QTrWI *crrnt) +{ + if(crrnt) + { + cQTrWI *twi(crrnt); + QStr path('/' % crrnt->text(0)); + while(twi->parent()) path.prepend('/' % (twi = twi->parent())->text(0)); + + if(sb::isdir(path)) + { + ui->dirpath->setText(path); + + if(crrnt->textColor(0) == Qt::red) + { + if(ui->dirpath->styleSheet().isEmpty()) ui->dirpath->setStyleSheet("color: red"), + ui->dirchooseok->setDisabled(true); + } + else if(! ui->dirpath->styleSheet().isEmpty()) + ui->dirpath->setStyleSheet(nullptr), + ui->dirchooseok->setEnabled(true); + } + else + { + crrnt->setDisabled(true); + + if(crrnt->isSelected()) + { + crrnt->setSelected(false); + ui->dirchoosecancel->setFocus(); + + if(ui->dirpath->text() != "/") + { + ui->dirpath->setText("/"); + + if(ui->dirpath->styleSheet().isEmpty()) ui->dirpath->setStyleSheet("color: red"), + ui->dirchooseok->setDisabled(true); + } + } + } + } +} + +void systemback::on_dirchoose_itemExpanded(QTrWI *item) +{ + if(item->backgroundColor(0) != Qt::transparent) + { + item->setBackgroundColor(0, Qt::transparent), + busy(); + cQTrWI *twi(item); + QStr path('/' % twi->text(0)); + while(twi->parent()) path.prepend('/' % (twi = twi->parent())->text(0)); + + if(sb::isdir(path)) + { + QStr pwdrs(sb::fload("/etc/passwd")); + ushort sz(ss(12)); + + for(ushort a(0) ; a < item->childCount() ; ++a) + { + QTrWI *ctwi(item->child(a)); + + if(ctwi->textColor(0) != Qt::red) + { + QStr iname(ctwi->text(0)); + + if(! sb::isdir(path % '/' % iname)) + ctwi->setDisabled(true); + else if(iname == "Systemback" || pwdrs.contains(':' % QDir(path % '/' % iname).canonicalPath() % ':') || ! sb::islnxfs(path % '/' % iname)) + ctwi->setTextColor(0, Qt::red), + ctwi->setIcon(0, QIcon(QPixmap(":pictures/dirx.png").scaled(sz, sz, Qt::IgnoreAspectRatio, Qt::SmoothTransformation))); + else + { + if(ui->function1->text() == tr("Storage directory") && sb::isfile(path % '/' % iname % '/' % "/Systemback/.sbschedule")) ctwi->setTextColor(0, Qt::green), + ctwi->setIcon(0, QIcon(QPixmap(":pictures/isdir.png").scaled(sz, sz, Qt::IgnoreAspectRatio, Qt::SmoothTransformation))); + + for(cQStr &cdir : QDir(path % '/' % iname).entryList(QDir::Dirs | QDir::Hidden | QDir::NoDotAndDotDot)) + { + QTrWI *sctwi(new QTrWI); + sctwi->setText(0, cdir), + ctwi->addChild(sctwi); + } + } + } + } + } + else + { + item->setDisabled(true); + + if(item->isSelected()) + { + item->setSelected(false), + ui->dirchoosecancel->setFocus(); + + if(ui->dirpath->text() != "/") + { + ui->dirpath->setText("/"); + + if(ui->dirpath->styleSheet().isEmpty()) ui->dirpath->setStyleSheet("color: red"), + ui->dirchooseok->setDisabled(true); + } + } + } + + busy(false); + } +} + +void systemback::on_dirchoosecancel_clicked() +{ + ui->choosepanel->hide(), + ui->scalingbutton->show(); + + if(ui->function1->text() == tr("Storage directory")) + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->isEnabled() ? ui->functionmenunext->setFocus() : ui->functionmenuback->setFocus(); + else + ui->livepanel->show(), + ui->function1->setText(tr("Live system create")), + ui->liveback->setFocus(); + + windowmove(ss(698), ss(465)), + ui->dirchoose->clear(); +} + +void systemback::on_dirchooseok_clicked() +{ + if(sb::isdir(ui->dirpath->text())) + { + if(ui->function1->text() == tr("Storage directory")) + { + if(sb::sdir[0] != ui->dirpath->text()) + { + QSL dlst(QDir(sb::sdir[1]).entryList(QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot)); + + if(! dlst.count()) + rmdir(bstr(sb::sdir[1])); + else if(dlst.count() == 1 && sb::isfile(sb::sdir[1] % "/.sbschedule")) + sb::remove(sb::sdir[1]); + + sb::sdir[0] = ui->dirpath->text(), sb::sdir[1] = sb::sdir[0] % "/Systemback", + ui->storagedir->setText(sb::sdir[0]), + ui->storagedir->setToolTip(sb::sdir[0]), + ui->storagedir->setCursorPosition(0), + pntupgrade(); + } + + if(! (sb::isdir(sb::sdir[1]) || sb::crtdir(sb::sdir[1]))) sb::rename(sb::sdir[1], sb::sdir[1] % '_' % sb::rndstr()), + sb::crtdir(sb::sdir[1]); + + sb::ismpnt = ! sb::issmfs(sb::sdir[0], sb::sdir[0].count('/') == 1 ? "/" : sb::left(sb::sdir[0], sb::rinstr(sb::sdir[0], "/") - 1)); + if(! sb::isfile(sb::sdir[1] % "/.sbschedule")) sb::crtfile(sb::sdir[1] % "/.sbschedule"); + ui->choosepanel->hide(), + ui->sbpanel->show(), + ui->function1->setText("Systemback"), + ui->functionmenunext->isEnabled() ? ui->functionmenunext->setFocus() : ui->functionmenuback->setFocus(); + } + else + { + ui->choosepanel->hide(), + ui->livepanel->show(), + ui->function1->setText(tr("Live system create")), + ui->liveback->setFocus(); + + if(sb::sdir[2] != ui->dirpath->text()) sb::sdir[2] = ui->dirpath->text(), + ui->liveworkdir->setText(sb::sdir[2]), + ui->liveworkdir->setToolTip(sb::sdir[2]), + ui->liveworkdir->setCursorPosition(0), + on_livemenu_clicked(); + } + + ui->scalingbutton->show(), + windowmove(ss(698), ss(465)), + ui->dirchoose->clear(); + } + else + delete ui->dirchoose->currentItem(), + ui->dirchoose->setCurrentItem(nullptr), + ui->dirchoosecancel->setFocus(), + ui->dirpath->setText("/"), + ui->dirpath->setStyleSheet("color: red"), + ui->dirchooseok->setDisabled(true); +} + +void systemback::on_fullrestore_clicked() +{ + if(ui->keepfiles->isEnabled()) + { + for(QWdt wdgt : QWL{ui->keepfiles, ui->includeusers}) wdgt->setDisabled(true); + ui->autorestoreoptions->setEnabled(true); + + if(! ui->autorestoreoptions->isChecked()) + for(QWdt wdgt : QWL{ui->skipfstabrestore, ui->grubreinstallrestore, ui->grubreinstallrestoredisable}) wdgt->setEnabled(true); + } + + if(! ui->restorenext->isEnabled()) ui->restorenext->setEnabled(true); +} + +void systemback::on_systemrestore_clicked() +{ + on_fullrestore_clicked(); +} + +void systemback::on_configurationfilesrestore_clicked() +{ + if(! ui->keepfiles->isEnabled()) + { + for(QWdt wdgt : QWL{ui->keepfiles, ui->includeusers}) wdgt->setEnabled(true); + ui->autorestoreoptions->setDisabled(true); + + if(! ui->autorestoreoptions->isChecked()) + for(QWdt wdgt : QWL{ui->skipfstabrestore, ui->grubreinstallrestore, ui->grubreinstallrestoredisable}) wdgt->setDisabled(true); + } + + on_includeusers_currentIndexChanged(ui->includeusers->currentText()); +} + +void systemback::on_includeusers_currentIndexChanged(cQStr &arg1) +{ + if(! arg1.isEmpty()) + { + ui->includeusers->resize(fontMetrics().width(arg1) + ss(30), ui->includeusers->height()); + + if(ui->includeusers->currentIndex() < 2 || (ui->includeusers->currentIndex() > 1 && sb::isdir(sb::sdir[1] % '/' % cpoint % '_' % pname % "/home/" % arg1))) + { + if(! ui->restorenext->isEnabled()) ui->restorenext->setEnabled(true); + } + else if(ui->restorenext->isEnabled()) + ui->restorenext->setDisabled(true); + } +} + +void systemback::on_restorenext_clicked() +{ + dialogopen(ui->fullrestore->isChecked() ? 107 : ui->systemrestore->isChecked() ? 100 : ui->keepfiles->isChecked() ? 104 : 103); +} + +void systemback::on_livelist_currentItemChanged(QLWI *crrnt) +{ + if(crrnt) + { + if(sb::isfile(sb::sdir[2] % '/' % sb::left(crrnt->text(), sb::instr(crrnt->text(), " ") - 1) % ".sblive")) + { + if(! ui->livedelete->isEnabled()) ui->livedelete->setEnabled(true); + ullong isize(sb::fsize(sb::sdir[2] % '/' % sb::left(crrnt->text(), sb::instr(crrnt->text(), " ") - 1) % ".sblive")); + + if(isize && isize < 4294967295 && isize * 2 + 104857600 < sb::dfree(sb::sdir[2]) && ! sb::exist(sb::sdir[2] % '/' % sb::left(crrnt->text(), sb::instr(crrnt->text(), " ") - 1) % ".iso")) + { + if(! ui->liveconvert->isEnabled()) ui->liveconvert->setEnabled(true); + } + else if(ui->liveconvert->isEnabled()) + ui->liveconvert->setDisabled(true); + + if(ui->livedevices->currentItem() && isize) + { + if(! ui->livewritestart->isEnabled()) ui->livewritestart->setEnabled(true); + } + else if(ui->livewritestart->isEnabled()) + ui->livewritestart->setDisabled(true); + } + else + { + delete crrnt, ui->livelist->setCurrentItem(nullptr); + + for(QWdt wdgt : QWL{ui->livedelete, ui->liveconvert, ui->livewritestart}) + if(wdgt->isEnabled()) wdgt->setDisabled(true); + + ui->liveback->setFocus(); + } + } +} + +void systemback::on_livedelete_clicked() +{ + busy(), ui->livecover->show(); + QStr path(sb::sdir[2] % '/' % sb::left(ui->livelist->currentItem()->text(), sb::instr(ui->livelist->currentItem()->text(), " ") - 1)); + sb::remove(path % ".sblive"); + if(sb::exist(path % ".iso")) sb::remove(path % ".iso"); + on_livemenu_clicked(), + ui->liveback->setFocus(), + ui->livecover->hide(), busy(false); +} + +void systemback::on_livedevices_currentItemChanged(QTblWI *crrnt, QTblWI *prvs) +{ + if(crrnt && ! (prvs && crrnt->row() == prvs->row())) + { + ui->livedevices->item(crrnt->row(), 3)->setText("x"); + if(prvs) ui->livedevices->item(prvs->row(), 3)->setText("-"); + if(ui->livelist->currentItem() && ! ui->livewritestart->isEnabled()) ui->livewritestart->setEnabled(true); + } +} + +void systemback::rmntcheck() +{ + auto grnst([this](bool enable = true) { + if(enable) + { + if(ui->grubreinstallrepairdisable->isVisibleTo(ui->repairpanel)) ui->grubreinstallrepairdisable->hide(), + ui->grubreinstallrepair->show(); + } + else if(ui->grubreinstallrepair->isVisibleTo(ui->repairpanel)) + ui->grubreinstallrepair->hide(), + ui->grubreinstallrepairdisable->show(); + }); + + if(sb::issmfs("/", "/mnt")) + { + grnst(false); + if(ui->repairnext->isEnabled()) ui->repairnext->setDisabled(true); + } + else if(! ui->grubrepair->isChecked()) + { + grnst(! (grub.isEFI && sb::issmfs("/mnt/boot", "/mnt/boot/efi")) && [this] { + switch(ppipe) { + case 0: + if(sb::execsrch("update-grub2") && sb::isfile("/var/lib/dpkg/info/grub-" % grub.name % ".list")) return true; + break; + case 1: + if(sb::execsrch("update-grub2", sb::sdir[1] % '/' % cpoint % '_' % pname) && sb::isfile(sb::sdir[1] % '/' % cpoint % '_' % pname % "/var/lib/dpkg/info/grub-" % grub.name % ".list")) return true; + } + + return false; + }()); + + if(! ui->repairnext->isEnabled()) ui->repairnext->setEnabled(true); + } + else if(! (grub.isEFI && sb::issmfs("/mnt/boot", "/mnt/boot/efi")) && sb::execsrch("update-grub2", "/mnt") && sb::isfile("/mnt/var/lib/dpkg/info/grub-" % grub.name % ".list")) + { + grnst(); + if(! ui->repairnext->isEnabled()) ui->repairnext->setEnabled(true); + } + else + { + grnst(false); + if(ui->repairnext->isEnabled()) ui->repairnext->setDisabled(true); + } +} + +void systemback::on_systemrepair_clicked() +{ + if(ui->grubrepair->isChecked()) + { + if(ui->skipfstabrepair->isEnabled()) ui->skipfstabrepair->setDisabled(true); + + if(ui->autorepairoptions->isEnabled()) + { + ui->autorepairoptions->setDisabled(true); + for(QWdt wdgt : QWL{ui->grubreinstallrepair, ui->grubreinstallrepairdisable}) wdgt->setEnabled(true); + } + } + else + { + if(! ui->autorepairoptions->isEnabled()) ui->autorepairoptions->setEnabled(true), + on_autorepairoptions_clicked(ui->autorepairoptions->isChecked()); + + if(ui->grubreinstallrepair->findText(tr("Disabled")) == -1) ui->grubreinstallrepair->addItem(tr("Disabled")); + } + + rmntcheck(); +} + +void systemback::on_fullrepair_clicked() +{ + on_systemrepair_clicked(); +} + +void systemback::on_grubrepair_clicked() +{ + on_systemrepair_clicked(); + if(ui->grubreinstallrepair->currentText() == tr("Disabled")) ui->grubreinstallrepair->setCurrentIndex(0); + ui->grubreinstallrepair->removeItem(ui->grubreinstallrepair->findText(tr("Disabled"))); +} + +void systemback::on_repairnext_clicked() +{ + dialogopen(ui->systemrepair->isChecked() ? 101 : ui->fullrepair->isChecked() ? 102 : 109); +} + +void systemback::on_skipfstabrestore_clicked(bool chckd) +{ + if(chckd && ! sb::isfile("/etc/fstab")) ui->skipfstabrestore->setChecked(false); +} + +void systemback::on_skipfstabrepair_clicked(bool chckd) +{ + if(chckd && ! sb::isfile("/mnt/etc/fstab")) ui->skipfstabrepair->setChecked(false); +} + +void systemback::on_installnext_clicked() +{ + if(! grub.isEFI || ui->grubinstallcopy->isVisibleTo(ui->copypanel)) + { + if(ppipe ? sb::execsrch("update-grub2", sb::sdir[1] % '/' % cpoint % '_' % pname) && sb::isfile(sb::sdir[1] % '/' % cpoint % '_' % pname % "/var/lib/dpkg/info/grub-" % grub.name % ".list") : sb::execsrch("update-grub2") && sb::isfile("/var/lib/dpkg/info/grub-" % grub.name % ".list")) + { + if(ui->grubinstallcopydisable->isVisibleTo(ui->copypanel)) ui->grubinstallcopydisable->hide(), + ui->grubinstallcopy->show(); + } + else if(ui->grubinstallcopy->isVisibleTo(ui->copypanel)) + ui->grubinstallcopy->hide(), + ui->grubinstallcopydisable->show(); + } + + if(ppipe) + { + if(ui->usersettingscopy->isTristate()) + { + ui->usersettingscopy->setTristate(false); + if(! ui->usersettingscopy->isChecked()) ui->usersettingscopy->setChecked(true); + if(ui->usersettingscopy->text() == tr("Transfer user configuration and data files")) ui->usersettingscopy->setText(tr("Transfer user configuration files")); + ui->usersettingscopy->resize(fontMetrics().width(tr("Transfer user configuration files")) + ss(28), ui->usersettingscopy->height()); + } + } + else if(! ui->usersettingscopy->isTristate()) + ui->usersettingscopy->setTristate(true), + ui->usersettingscopy->setCheckState(Qt::PartiallyChecked), + ui->usersettingscopy->resize(fontMetrics().width(tr("Transfer user configuration and data files")) + ss(28), ui->usersettingscopy->height()); + + if(ui->userdatafilescopy->isVisibleTo(ui->copypanel)) ui->userdatafilescopy->hide(), + ui->usersettingscopy->show(); + + ui->installpanel->hide(), + ui->copypanel->show(), + ui->copyback->setFocus(); + + { + short nwidth(ss(154) + ui->partitionsettings->width() - ui->partitionsettings->contentsRect().width() + ui->partitionsettings->columnWidth(0) + ui->partitionsettings->columnWidth(1) + ui->partitionsettings->columnWidth(2) + ui->partitionsettings->columnWidth(3) + ui->partitionsettings->columnWidth(4) + ui->partitionsettings->columnWidth(5) + ui->partitionsettings->columnWidth(6)); + ushort sz[]{ss(698), ss(465), ss(60)}; + + if(nwidth > sz[0]) + { + ushort sz1(ss(850)); + windowmove(nwidth < sz1 ? nwidth : sz1, sz[1], false); + } + + wndw->setMinimumSize(sz[0], sz[1]); + QRect agm(sgeom(true)); + wndw->setMaximumSize(agm.width() - sz[2], agm.height() - sz[2]); + } + + if(ui->mountpoint->currentText().startsWith("/home/")) ui->mountpoint->setCurrentText(nullptr); + + if(ui->partitionsettings->currentItem()) + { + if(sb::mcheck("/.sbsystemcopy/") || sb::mcheck("/.sblivesystemwrite/")) + ui->copyback->setDisabled(true), + on_partitionrefresh_clicked(), + ui->copyback->setEnabled(true); + else + { + if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->text() == "/home" && ui->mountpoint->isEnabled()) + { + if(ui->mountpoint->currentIndex()) ui->mountpoint->setCurrentIndex(0); + ui->mountpoint->setDisabled(true); + } + + if(nohmcpy[1]) + { + nohmcpy[1] = false; + + for(ushort a(0) ; a < ui->partitionsettings->rowCount() ; ++a) + if(ui->partitionsettings->item(a, 3)->text() == "/home" && ! ui->partitionsettings->item(a, 4)->text().isEmpty()) + { + ui->partitionsettings->item(a, 4)->setText(nullptr); + return ui->mountpoint->addItem("/home"); + } + } + } + } +} + +void systemback::on_partitionsettings_currentItemChanged(QTblWI *crrnt, QTblWI *prvs) +{ + if(crrnt && ! (prvs && crrnt->row() == prvs->row())) + { + if(ui->partitionsettingspanel2->isVisible()) + for(ushort a(prvs->row() + 1) ; a < ui->partitionsettings->rowCount() && ui->partitionsettings->item(a, 0)->background() != QBrush() ; ++a) ui->partitionsettings->item(a, 0)->setBackground(QBrush()), + ui->partitionsettings->item(a, 0)->setForeground(QBrush()); + + uchar type(ui->partitionsettings->item(crrnt->row(), 8)->text().toUShort()), pcnt(0); + + switch(type) { + case sb::MSDOS: + case sb::GPT: + case sb::Clear: + case sb::Extended: + { + if(ui->partitionsettingspanel2->isHidden()) ui->partitionsettingspanel1->isVisible() ? ui->partitionsettingspanel1->hide() : ui->partitionsettingspanel3->hide(), + ui->partitionsettingspanel2->show(); + + bool mntd(false), mntcheck(false); + QStr dev(ui->partitionsettings->item(crrnt->row(), 0)->text()); + + for(ushort a(crrnt->row() + 1) ; a < ui->partitionsettings->rowCount() && ((type == sb::Extended && ui->partitionsettings->item(a, 0)->text().startsWith(sb::left(dev, dev.contains("mmc") ? 12 : 8)) && sb::like(ui->partitionsettings->item(a, 8)->text().toInt(), {sb::Logical, sb::Emptyspace})) || (type != sb::Extended && ui->partitionsettings->item(a, 0)->text().startsWith(dev))) ; ++a) + { + ui->partitionsettings->item(a, 0)->setBackground(QPalette().highlight()), + ui->partitionsettings->item(a, 0)->setForeground(QPalette().highlightedText()); + + if(! mntcheck) + { + QStr mpt(ui->partitionsettings->item(a, 3)->text()); + + if(! mpt.isEmpty()) + { + if(! mntd) mntd = true; + + if(((ui->point1->isEnabled() || ui->pointpipe11->isEnabled()) && sb::sdir[0].startsWith(mpt)) || sb::like(mpt, {'_' % tr("Multiple mount points") % '_', "_/cdrom_", "_/live/image_", "_/lib/live/mount/medium_"})) + mntcheck = true; + else if(sb::isfile("/etc/fstab")) + { + QFile file("/etc/fstab"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QBA cline(file.readLine().trimmed()); + + if(! cline.startsWith('#') && sb::like(cline.replace('\t', ' ').replace("\\040", " "), {"* " % mpt % " *", "* " % mpt % "/ *"})) + { + mntcheck = true; + break; + } + } + } + } + } + } + + if(mntd) + { + if(ui->partitiondelete->isEnabled()) ui->partitiondelete->setDisabled(true); + + if(mntcheck) + { + if(ui->unmount->isEnabled()) ui->unmount->setDisabled(true); + } + else if(! ui->unmount->isEnabled()) + ui->unmount->setEnabled(true); + } + else + { + if(! ui->partitiondelete->isEnabled()) ui->partitiondelete->setEnabled(true); + if(ui->unmount->isEnabled()) ui->unmount->setDisabled(true); + } + + break; + } + case sb::Freespace: + { + QStr dev(sb::left(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text(), ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text().contains("mmc") ? 12 : 8)); + + for(ushort a(0) ; a < ui->partitionsettings->rowCount() && pcnt < 4 ; ++a) + if(ui->partitionsettings->item(a, 0)->text().startsWith(dev)) + switch(ui->partitionsettings->item(a, 8)->text().toUShort()) { + case sb::GPT: + pcnt = 5; + break; + case sb::Primary: + case sb::Extended: + ++pcnt; + } + } + case sb::Emptyspace: + if(ui->partitionsettingspanel3->isHidden()) ui->partitionsettingspanel1->isVisible() ? ui->partitionsettingspanel1->hide() : ui->partitionsettingspanel2->hide(), + ui->partitionsettingspanel3->show(); + + if(pcnt == 4) + { + if(ui->newpartition->isEnabled()) ui->newpartition->setDisabled(true); + } + else if(! ui->newpartition->isEnabled()) + ui->newpartition->setEnabled(true); + + ui->partitionsize->setMaximum((ui->partitionsettings->item(crrnt->row(), 10)->text().toULongLong() * 10 / 1048576 + 5) / 10), + ui->partitionsize->setValue(ui->partitionsize->maximum()); + break; + default: + if(ui->partitionsettingspanel1->isHidden()) ui->partitionsettingspanel2->isVisible() ? ui->partitionsettingspanel2->hide() : ui->partitionsettingspanel3->hide(), + ui->partitionsettingspanel1->show(); + + if(ui->partitionsettings->item(crrnt->row(), 3)->text().isEmpty()) + { + if(! ui->mountpoint->isEnabled()) ui->mountpoint->setEnabled(true); + + if(ui->unmountdelete->text() == tr("Unmount")) ui->unmountdelete->setText(tr("! Delete !")), + ui->unmountdelete->setStyleSheet("QPushButton:enabled{color: red}"); + + if(! ui->partitionsettings->item(crrnt->row(), 4)->text().isEmpty() && ui->partitionsettings->item(crrnt->row(), 5)->text() == "btrfs") + { + if(ui->format->isEnabled()) + { + ui->format->setDisabled(true); + if(ui->filesystem->isEnabled()) ui->filesystem->setDisabled(true); + } + + if(ui->filesystem->currentText() != "btrfs") ui->filesystem->setCurrentIndex(ui->filesystem->findText("btrfs")); + if(ui->unmountdelete->isEnabled()) ui->unmountdelete->setDisabled(true); + + if(ui->partitionsettings->item(crrnt->row(), 6)->text() == "-") + { + if(ui->format->isChecked()) ui->format->setChecked(false); + } + else if(! ui->format->isChecked()) + ui->format->setChecked(true); + } + else + { + if(! ui->filesystem->isEnabled()) + { + ui->filesystem->setEnabled(true); + if(! ui->format->isEnabled()) ui->format->setEnabled(true); + } + + if(! ui->format->isChecked()) ui->format->setChecked(true); + if(! ui->unmountdelete->isEnabled()) ui->unmountdelete->setEnabled(true); + schar indx(ui->filesystem->findText(ui->partitionsettings->item(crrnt->row(), 7)->text())); + if(indx != -1 && ui->filesystem->currentIndex() != indx) ui->filesystem->setCurrentIndex(indx); + } + + if(ui->mountpoint->currentIndex()) + ui->mountpoint->setCurrentIndex(0); + else if(! ui->mountpoint->currentText().isEmpty()) + ui->mountpoint->setCurrentText(nullptr); + } + else + { + if(ui->format->isEnabled()) + { + ui->format->setDisabled(true); + if(ui->filesystem->isEnabled()) ui->filesystem->setDisabled(true); + } + + if(ui->unmountdelete->text() == tr("! Delete !")) ui->unmountdelete->setText(tr("Unmount")), + ui->unmountdelete->setStyleSheet(nullptr); + + QStr mpt(ui->partitionsettings->item(crrnt->row(), 3)->text()); + + if(grub.isEFI && mpt == "/boot/efi") + { + if(! ui->mountpoint->isEnabled()) ui->mountpoint->setEnabled(true); + if(ui->unmountdelete->isEnabled()) ui->unmountdelete->setDisabled(true); + + if(ui->mountpoint->currentText() != "/boot/efi") + { + if(ui->mountpoint->currentIndex()) + ui->mountpoint->setCurrentIndex(0); + else if(! ui->mountpoint->currentText().isEmpty()) + ui->mountpoint->setCurrentText(nullptr); + } + } + else if(mpt == "SWAP") + { + for(QWdt wdgt : QWL{ui->mountpoint, ui->unmountdelete}) + if(! wdgt->isEnabled()) wdgt->setEnabled(true); + + if(ui->mountpoint->currentText() != "SWAP") + { + if(ui->mountpoint->currentIndex()) + ui->mountpoint->setCurrentIndex(0); + else if(! ui->mountpoint->currentText().isEmpty()) + ui->mountpoint->setCurrentText(nullptr); + } + else if(ui->partitionsettings->item(crrnt->row(), 4)->text() == "SWAP") + { + if(ui->changepartition->isEnabled()) ui->changepartition->setDisabled(true); + } + else if(! ui->changepartition->isEnabled()) + ui->changepartition->setEnabled(true); + } + else if(nohmcpy[0] && ui->userdatafilescopy->isVisible() && mpt == "/home") + { + if(! ui->mountpoint->isEnabled()) ui->mountpoint->setEnabled(true); + if(ui->unmountdelete->isEnabled()) ui->unmountdelete->setDisabled(true); + + if(ui->mountpoint->currentText() != "/home") + { + if(ui->mountpoint->currentIndex()) + ui->mountpoint->setCurrentIndex(0); + else if(! ui->mountpoint->currentText().isEmpty()) + ui->mountpoint->setCurrentText(nullptr); + } + } + else + { + if(ui->mountpoint->isEnabled()) ui->mountpoint->setDisabled(true); + + if(ui->mountpoint->currentIndex()) + { + ui->mountpoint->setCurrentIndex(0); + if(ui->changepartition->isEnabled()) ui->changepartition->setDisabled(true); + } + else if(! ui->mountpoint->currentText().isEmpty()) + ui->mountpoint->setCurrentText(nullptr); + + if(sb::sdir[0].startsWith(mpt) || sb::like(mpt, {'_' % tr("Multiple mount points") % '_', "_/cdrom_", "_/live/image_", "_/lib/live/mount/medium_"}) || [&mpt] { + if(sb::isfile("/etc/fstab")) + { + QFile file("/etc/fstab"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QBA cline(file.readLine().trimmed()); + if(! cline.startsWith('#') && sb::like(cline.replace('\t', ' ').replace("\\040", " "), {"* " % mpt % " *", "* " % mpt % "/ *"})) return true; + } + } + + return false; + }()) + { + if(ui->unmountdelete->isEnabled()) ui->unmountdelete->setDisabled(true); + } + else if(! ui->unmountdelete->isEnabled()) + ui->unmountdelete->setEnabled(true); + } + + if(! ui->format->isChecked()) ui->format->setChecked(true); + } + } + } +} + +void systemback::on_changepartition_clicked() +{ + busy(); + QStr ompt(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->text()), mpt(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->text()); + + if(! ompt.isEmpty()) + { + if(mpt.isEmpty() && ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->text() == "btrfs") + { + ui->partitionsettings->setRowCount(ui->partitionsettings->rowCount() + 1); + + for(short a(ui->partitionsettings->rowCount() - 1) ; a > ui->partitionsettings->currentRow() - 1 ; --a) + for(uchar b(0) ; b < 11 ; ++b) + { + QTblWI *item(ui->partitionsettings->item(a, b)); + ui->partitionsettings->setItem(a + 1, b, item ? item->clone() : nullptr); + } + } + else if(ompt == "/") + ui->copynext->setDisabled(true), + ui->mountpoint->addItem("/"); + else if(grub.isEFI && ompt == "/boot/efi") + { + if(ui->grubinstallcopy->isVisible()) ui->grubinstallcopy->hide(), + ui->grubinstallcopydisable->show(); + + ui->mountpoint->addItem("/boot/efi"), + ui->efiwarning->show(); + } + else if(sb::like(ompt, {"_/home_", "_/boot_", "_/tmp_", "_/usr_", "_/usr/local_", "_/var_", "_/srv_", "_/opt_"})) + ui->mountpoint->addItem(ompt); + } + + if(mpt.isEmpty()) + { + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->setText(ui->mountpoint->currentText()); + + if(ui->mountpoint->currentText() == "/boot/efi") + { + if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->text() != "vfat") ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->setText("vfat"); + + if(grub.isEFI) + { + if(ppipe ? sb::execsrch("update-grub2", sb::sdir[1] % '/' % cpoint % '_' % pname) && sb::isfile(sb::sdir[1] % '/' % cpoint % '_' % pname % "/var/lib/dpkg/info/grub-" % grub.name % ".list") : sb::execsrch("update-grub2") && sb::isfile("/var/lib/dpkg/info/grub-" % grub.name % ".list")) + { + if(ui->grubinstallcopydisable->isVisible()) ui->grubinstallcopydisable->hide(), + ui->grubinstallcopy->show(); + } + else if(ui->grubinstallcopy->isVisible()) + ui->grubinstallcopy->hide(), + ui->grubinstallcopydisable->show(); + + ui->efiwarning->hide(); + } + } + else if(ui->mountpoint->currentText() != "SWAP") + { + if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->text() != ui->filesystem->currentText()) ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->setText(ui->filesystem->currentText()); + if(ui->mountpoint->currentText() == "/") ui->copynext->setEnabled(true); + } + else if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->text() != "swap") + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->setText("swap"); + + if(ui->format->isChecked()) + { + if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 6)->text() == "-") ui->partitionsettings->item(ui->partitionsettings->currentRow(), 6)->setText("x"); + } + else if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 6)->text() == "x") + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 6)->setText("-"); + + if(ui->filesystem->isEnabled() && ui->filesystem->currentText() == "btrfs") ui->filesystem->setDisabled(true), + ui->format->setDisabled(true); + } + else if(grub.isEFI && mpt == "/boot/efi") + { + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->setText("/boot/efi"), + ui->efiwarning->hide(); + + if(ppipe ? sb::execsrch("update-grub2", sb::sdir[1] % '/' % cpoint % '_' % pname) && sb::isfile(sb::sdir[1] % '/' % cpoint % '_' % pname % "/var/lib/dpkg/info/grub-" % grub.name % ".list") : sb::execsrch("update-grub2") && sb::isfile("/var/lib/dpkg/info/grub-" % grub.name % ".list")) + { + if(ui->grubinstallcopydisable->isVisible()) ui->grubinstallcopydisable->hide(), + ui->grubinstallcopy->show(); + } + else if(ui->grubinstallcopy->isVisible()) + ui->grubinstallcopy->hide(), + ui->grubinstallcopydisable->show(); + } + else if(nohmcpy[0] && mpt == "/home") + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->setText("/home"), + ui->userdatafilescopy->setDisabled(true), + nohmcpy[1] = true; + else + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->setText("SWAP"); + + if(ui->mountpoint->currentIndex() && ui->mountpoint->currentText() != "SWAP") ui->mountpoint->removeItem(ui->mountpoint->currentIndex()); + + if(ui->mountpoint->currentIndex()) + ui->mountpoint->setCurrentIndex(0); + else if(! ui->mountpoint->currentText().isEmpty()) + ui->mountpoint->setCurrentText(nullptr); + + ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->setToolTip(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->text()), + busy(false); +} + +void systemback::on_filesystem_currentIndexChanged(cQStr &arg1) +{ + if(! (ui->format->isChecked() || ui->partitionsettings->item(ui->partitionsettings->currentRow(), 7)->text() == arg1)) ui->format->setChecked(true); +} + +void systemback::on_format_clicked(bool chckd) +{ + if(! chckd) + { + if(ui->mountpoint->currentText() == "/boot/efi") + { + if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 7)->text() != "vfat") ui->format->setChecked(true); + } + else if(ui->mountpoint->currentText() == "SWAP") + { + if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 7)->text() != "swap") ui->format->setChecked(true); + } + else if(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 7)->text() != ui->filesystem->currentText()) + ui->format->setChecked(true); + } +} + +void systemback::on_mountpoint_currentTextChanged(cQStr &arg1) +{ + uchar ccnt(icnt == 100 ? icnt = 0 : ++icnt); + + if(ui->mountpoint->isEnabled()) + { + if(! arg1.isEmpty() && (! sb::like(arg1, {"_/*", "_S_", "_SW_", "_SWA_", "_SWAP_"}) || sb::like(arg1, {"* *", "*//*"}))) + ui->mountpoint->setCurrentText(sb::left(arg1, -1)); + else + { + QStr mpt(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 3)->text()), ompt(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 4)->text()); + + if(sb::like(mpt, {"_/boot/efi_", "_/home_", "_SWAP_"})) + { + if(ui->format->isEnabled()) + { + ui->format->setDisabled(true); + if(ui->filesystem->isEnabled()) ui->filesystem->setDisabled(true); + } + } + else if(ompt.isEmpty() || ui->partitionsettings->item(ui->partitionsettings->currentRow(), 5)->text() != "btrfs") + { + if(sb::like(arg1, {"_/boot/efi_", "_SWAP_"})) + { + if(ui->filesystem->isEnabled()) ui->filesystem->setDisabled(true); + } + else if(! ui->filesystem->isEnabled()) + ui->filesystem->setEnabled(true); + + if(! ui->format->isEnabled()) ui->format->setEnabled(true); + if(! ui->format->isChecked()) ui->format->setChecked(true); + } + else if(sb::like(arg1, {"_/boot/efi_", "_SWAP_"})) + return ui->changepartition->isEnabled() ? ui->changepartition->setDisabled(true) : void(); + + if(arg1.isEmpty() || (arg1.length() > 1 && arg1.endsWith('/')) || sb::like(arg1, {'_' % ompt % '_', "_/bin_", "_/sbin_", "_/etc_", "_/lib_", "_/lib32_", "_/lib64_", "_/media_"}) || (ui->usersettingscopy->isVisible() && arg1.startsWith("/home/")) || (arg1 != "/boot/efi" && ui->partitionsettings->item(ui->partitionsettings->currentRow(), 10)->text().toULongLong() < 268435456) || (grub.isEFI && mpt == "/boot/efi" && arg1 != "/boot/efi") || (nohmcpy[0] && mpt == "/home" && arg1 != "/home") || (mpt == "SWAP" && arg1 != "SWAP") + || (arg1 != "SWAP" && [&] { + for(ushort a(0) ; a < ui->partitionsettings->rowCount() ; ++a) + if(ui->partitionsettings->item(a, 4)->text() == arg1) return true; + + return false; + }())) + { + if(ui->changepartition->isEnabled()) ui->changepartition->setDisabled(true); + } + else if(! sb::like(arg1, {"_/_", "_/home_", "_/boot_", "_/boot/efi_", "_/tmp_", "_/usr_", "_/usr/local_", "_/var_", "_/srv_", "_/opt_", "_SWAP_"})) + { + if(ui->changepartition->isEnabled()) ui->changepartition->setDisabled(true); + sb::delay(300); + + if(ccnt == icnt && [&] { + switch(sb::stype(ppipe ? sb::sdir[1] % '/' % cpoint % '_' % pname % arg1 : arg1)) { + case sb::Notexist: + case sb::Isdir: + return true; + } + + return false; + }() && QTemporaryDir("/tmp/" % QStr(arg1).replace('/', '_') % '_' % sb::rndstr()).isValid()) ui->changepartition->setEnabled(true); + } + else if(! ui->changepartition->isEnabled()) + ui->changepartition->setEnabled(true); + } + } +} + +void systemback::on_copynext_clicked() +{ + dialogopen(ui->function1->text() == tr("System copy") ? 105 : 106); +} + +void systemback::on_repairpartitionrefresh_clicked() +{ + busy(), ui->repaircover->show(); + + { + QStr mnts(sb::fload("/proc/self/mounts", true)); + QTS in(&mnts, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + if(cline.contains(" /mnt")) sb::umount(cline.split(' ').at(1)); + } + } + + sb::fssync(), + ui->repairmountpoint->clear(), + ui->repairmountpoint->addItems({nullptr, "/mnt", "/mnt/home", "/mnt/boot"}); + if(grub.isEFI) ui->repairmountpoint->addItem("/mnt/boot/efi"); + ui->repairmountpoint->addItems({"/mnt/usr", "/mnt/var", "/mnt/opt", "/mnt/usr/local"}), + ui->repairmountpoint->setCurrentIndex(1), + rmntcheck(), + on_partitionrefresh2_clicked(), + on_repairmountpoint_currentTextChanged("/mnt"); + if(ui->repairpanel->isVisible() && ! ui->repairback->hasFocus()) ui->repairback->setFocus(); + ui->repaircover->hide(), busy(false); +} + +void systemback::on_repairpartition_currentIndexChanged(cQStr &arg1) +{ + ui->repairpartition->resize(fontMetrics().width(arg1) + ss(30), ui->repairpartition->height()), + ui->repairpartition->move(ui->repairmountpoint->x() - ui->repairpartition->width() - ss(8), ui->repairpartition->y()); +} + +void systemback::on_repairmountpoint_currentTextChanged(cQStr &arg1) +{ + uchar ccnt(icnt == 100 ? icnt = 0 : ++icnt); + + if(! arg1.isEmpty() && (! sb::like(arg1, {"_/_", "_/m_", "_/mn_", "_/mnt_", "_/mnt/*"}) || sb::like(arg1, {"* *", "*//*"}))) + ui->repairmountpoint->setCurrentText(sb::left(arg1, -1)); + else if(! arg1.startsWith("/mnt") || sb::like(arg1, {"*/_", "_/mnt/bin_", "_/mnt/sbin_", "_/mnt/etc_", "_/mnt/lib_", "_/mnt/lib32_", "_/mnt/lib64_", "_/mnt/media_"}) || (arg1.length() > 5 && sb::issmfs("/", "/mnt")) || sb::mcheck(arg1 % '/')) + { + if(ui->repairmount->isEnabled()) ui->repairmount->setDisabled(true); + } + else if(! sb::like(arg1, {"_/mnt_", "_/mnt/home_", "_/mnt/boot_", "_/mnt/boot/efi_", "_/mnt/usr_", "_/mnt/usr/local_", "_/mnt/var_", "_/mnt/opt_"})) + { + if(ui->repairmount->isEnabled()) ui->repairmount->setDisabled(true); + sb::delay(300); + if(ccnt == icnt && QTemporaryDir("/tmp/" % QStr(arg1).replace('/', '_') % '_' % sb::rndstr()).isValid()) ui->repairmount->setEnabled(true); + } + else if(! ui->repairmount->isEnabled()) + ui->repairmount->setEnabled(true); +} + +void systemback::on_repairmount_clicked() +{ + if(! ui->repairmount->text().isEmpty()) + { + busy(), ui->repaircover->show(); + + { + QStr path; + + for(cQStr &cpath : sb::right(ui->repairmountpoint->currentText(), -5).split('/')) + if(! (sb::isdir("/mnt/" % path.append('/' % cpath)) || sb::crtdir("/mnt" % path))) sb::rename("/mnt" % path, "/mnt" % path % '_' % sb::rndstr()), + sb::crtdir("/mnt" % path); + } + + if(sb::mount(ui->repairpartition->currentText(), ui->repairmountpoint->currentText())) + { + on_partitionrefresh2_clicked(); + + if(ui->repairmountpoint->currentIndex()) + { + ui->repairmountpoint->removeItem(ui->repairmountpoint->currentIndex()); + if(ui->repairmountpoint->currentIndex()) ui->repairmountpoint->setCurrentIndex(0); + } + else if(! ui->repairmountpoint->currentText().isEmpty()) + ui->repairmountpoint->setCurrentText(nullptr); + } + else + ui->repairmount->setText(nullptr), + ui->repairmount->setIcon(QIcon(":pictures/error.png")); + + ui->repaircover->hide(), busy(false); + + if(ui->repairmount->text().isEmpty()) ui->repairmount->setEnabled(true), + sb::delay(500), + ui->repairmount->setIcon(QIcon()), + ui->repairmount->setText(tr("Mount")); + } + + if(! (ui->repairback->hasFocus() || ui->repairmountpoint->hasFocus())) ui->repairback->setFocus(); +} + +void systemback::on_livename_textChanged(cQStr &arg1) +{ + uchar ccnt(icnt == 100 ? icnt = 0 : ++icnt); + + if(cpos > -1) ui->livename->setCursorPosition(cpos), + cpos = -1; + + if([&arg1] { + for(uchar a(0) ; a < arg1.length() ; ++a) + { + cQChar &ctr(arg1.at(a)); + if(ctr == '/' || ((ctr < 'a' || ctr > 'z') && (ctr < 'A' || ctr > 'Z') && ! (ctr.isDigit() || ctr.isPunct()))) return true; + } + + return false; + }() || arg1.toUtf8().length() > 32 || arg1.toLower().endsWith(".iso")) + + ui->livename->setText(QStr(arg1).replace(cpos = ui->livename->cursorPosition() - 1, 1, nullptr)); + else + { + if(ui->livenamepipe->isVisible()) ui->livenamepipe->hide(); + + if(arg1 == "auto") + { + QFont fnt; + fnt.setItalic(true), + ui->livename->setFont(fnt); + if(ui->livenameerror->isVisible()) ui->livenameerror->hide(); + } + else + { + if(ui->livenew->isEnabled()) ui->livenew->setDisabled(true); + if(ui->livename->fontInfo().italic()) ui->livename->setFont(font()); + + if(! arg1.isEmpty()) + { + sb::delay(300); + + if(ccnt == icnt) + { + if(QTemporaryDir("/tmp/" % arg1 % '_' % sb::rndstr()).isValid()) + { + if(ui->livenameerror->isVisible()) ui->livenameerror->hide(); + ui->livenamepipe->show(); + } + else if(ui->livenameerror->isHidden()) + ui->livenameerror->show(); + } + } + else if(ui->livenameerror->isHidden()) + ui->livenameerror->show(); + } + } +} + +void systemback::dirxpnd(QTrWI *item, bool inc) +{ + item->setBackgroundColor(0, Qt::transparent), + busy(); + cQTrWI *twi(item); + QStr path('/' % twi->text(0)); + while(twi->parent()) path.prepend('/' % (inc ? (twi = twi->parent())->text(0) : sb::left((twi = twi->parent())->text(0), -1))); + QLW clw(inc ? ui->includedlist : ui->excludedlist); + + auto itmxpnd([&](cQStr &pdir) { + QStr fpath(pdir % path); + + for(ushort a(0) ; a < item->childCount() ; ++a) + { + QTrWI *ctwi(item->child(a)); + QStr iname(ctwi->text(0)), ipath(fpath % '/' % iname); + + if(sb::stype(ipath) == sb::Isdir) + { + if(ctwi->icon(0).isNull()) ctwi->setIcon(0, QIcon(QPixmap(":pictures/dir.png").scaled(ss(12), ss(9), Qt::IgnoreAspectRatio, Qt::SmoothTransformation))); + QStr epath(sb::right(path, -1) % '/' % iname % '/'); + + if(clw->findItems(epath, Qt::MatchExactly).isEmpty()) + { + QSL itmlst; + itmlst.reserve(ctwi->childCount()); + for(ushort b(0) ; b < ctwi->childCount() ; ++b) itmlst.append(ctwi->child(b)->text(0)); + + for(cQStr &siname : QDir(ipath).entryList(QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot)) + { + if(clw->findItems(epath % siname, Qt::MatchExactly).isEmpty()) + { + for(ushort b(0) ; b < itmlst.count() ; ++b) + if(itmlst.at(b) == siname) + { + itmlst.removeAt(b); + goto next; + } + + QTrWI *sctwi(new QTrWI); + sctwi->setText(0, siname), + ctwi->addChild(sctwi); + } + + next:; + } + } + } + + ctwi->sortChildren(0, Qt::AscendingOrder); + } + }); + + if(sb::stype("/root" % path) == sb::Isdir) itmxpnd("/root"); + QFile file("/etc/passwd"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + if(usr.contains(":/home/") && sb::stype("/home/" % (usr = sb::left(usr, sb::instr(usr, ":") -1)) % path) == sb::Isdir) itmxpnd("/home/" % usr); + } + + busy(false); +} + +void systemback::on_excludeitemslist_itemExpanded(QTrWI *item) +{ + if(item->backgroundColor(0) != Qt::transparent) dirxpnd(item); + item->setText(0, item->text(0) % '/'); +} + +void systemback::on_includeitemslist_itemExpanded(QTrWI *item) +{ + if(item->backgroundColor(0) != Qt::transparent) dirxpnd(item, true); +} + +void systemback::on_excludeitemslist_itemCollapsed(QTrWI *item) +{ + item->setText(0, sb::left(item->text(0), -1)); +} + +void systemback::on_excludeitemslist_currentItemChanged(QTrWI *crrnt) +{ + if(crrnt && ! ui->excludeadditem->isEnabled()) + { + ui->excludeadditem->setEnabled(true); + + if(ui->excluderemoveitem->isEnabled()) ui->excludedlist->setCurrentItem(nullptr), + ui->excluderemoveitem->setDisabled(true); + } +} + +void systemback::on_includeitemslist_currentItemChanged(QTrWI *crrnt) +{ + if(crrnt && ! ui->includeadditem->isEnabled()) + { + ui->includeadditem->setEnabled(true); + + if(ui->includeremoveitem->isEnabled()) ui->includedlist->setCurrentItem(nullptr), + ui->includeremoveitem->setDisabled(true); + } +} + +void systemback::on_excludedlist_currentItemChanged(QLWI *crrnt) +{ + if(crrnt && ! ui->excluderemoveitem->isEnabled()) + { + ui->excluderemoveitem->setEnabled(true); + + if(ui->excludeadditem->isEnabled()) ui->excludeitemslist->setCurrentItem(nullptr), + ui->excludeadditem->setDisabled(true); + } +} + +void systemback::on_includedlist_currentItemChanged(QLWI *crrnt) +{ + if(crrnt && ! ui->includeremoveitem->isEnabled()) + { + ui->includeremoveitem->setEnabled(true); + + if(ui->includeadditem->isEnabled()) ui->includeitemslist->setCurrentItem(nullptr), + ui->includeadditem->setDisabled(true); + } +} + +void systemback::on_excludeadditem_clicked() +{ + busy(), ui->excludecover->show(); + cQTrWI *twi(ui->excludeitemslist->currentItem()); + QStr path(twi->text(0)); + while(twi->parent()) path.prepend((twi = twi->parent())->text(0)); + QStr elst; + QFile file(excfile); + + if(sb::fopen(file)) + { + while(! file.atEnd()) + { + QStr cline(sb::left(file.readLine(), -1)); + if(! (cline.isEmpty() || cline.startsWith(path))) elst.append(cline % '\n'); + } + + file.close(); + + if(sb::crtfile(excfile, elst.append(path % '\n'))) + { + if(ui->excludedlist->count()) ui->excludedlist->clear(); + QTS in(&elst, QIODevice::ReadOnly); + + while(! in.atEnd()) + { + QStr cline(in.readLine()); + + if(sb::like(cline, {"_.*", "_snap_", "_snap/*"})) + { + if(ui->pointexclude->isChecked()) ui->excludedlist->addItem(cline); + } + else if(ui->liveexclude->isChecked()) + ui->excludedlist->addItem(cline); + } + + if(path.endsWith('/')) + { + ui->excludeitemslist->currentItem()->setExpanded(false); + QList ilst; + ilst.reserve((twi = ui->excludeitemslist->currentItem())->childCount()); + for(ushort a(0) ; a < twi->childCount() ; ++a) ilst.append(twi->child(a)); + for(cQTrWI *ctwi : ilst) delete ctwi; + } + else + { + QTrWI *ptwi(ui->excludeitemslist->currentItem()->parent()); + delete ui->excludeitemslist->currentItem(); + if(ptwi && ! ptwi->childCount()) ptwi->setText(0, sb::left(ptwi->text(0), -1)); + } + + ui->excludeitemslist->setCurrentItem(nullptr), + ui->excludeadditem->setDisabled(true), + ui->excludeback->setFocus(); + } + } + + ui->excludecover->hide(), busy(false); +} + +void systemback::on_includeadditem_clicked() +{ + busy(), ui->includecover->show(); + cQTrWI *twi(ui->includeitemslist->currentItem()); + QStr path(twi->text(0)); + while(twi->parent()) path.prepend((twi = twi->parent())->text(0) % '/'); + QStr ilst; + QFile file(incfile); + + if(sb::fopen(file)) + { + while(! file.atEnd()) + { + QStr cline(sb::left(file.readLine(), -1)); + if(! (cline.isEmpty() || cline.startsWith(path))) ilst.append(cline % '\n'); + } + + file.close(); + + if(sb::crtfile(incfile, ilst.append(path % '\n'))) + { + if(ui->includedlist->count()) ui->includedlist->clear(); + QTS in(&ilst, QIODevice::ReadOnly); + while(! in.atEnd()) ui->includedlist->addItem(in.readLine()); + QTrWI *ptwi(ui->includeitemslist->currentItem()->parent()); + delete ui->includeitemslist->currentItem(); + if(ptwi && ! ptwi->childCount()) ptwi->setText(0, sb::left(ptwi->text(0), -1)); + ui->includeitemslist->setCurrentItem(nullptr), + ui->includeadditem->setDisabled(true), + ui->includeback->setFocus(); + } + } + + ui->includecover->hide(), busy(false); +} + +void systemback::on_excluderemoveitem_clicked() +{ + busy(), ui->excludecover->show(); + QFile file(excfile); + + if(sb::fopen(file)) + { + QStr ctxt(ui->excludedlist->currentItem()->text()), elst; + + while(! file.atEnd()) + { + QStr cline(sb::left(file.readLine(), -1)); + if(! (cline.isEmpty() || cline == ctxt)) elst.append(cline % '\n'); + } + + file.close(); + + if(sb::crtfile(excfile, elst)) delete ui->excludedlist->currentItem(), + ui->excludedlist->setCurrentItem(nullptr), + ui->excluderemoveitem->setDisabled(true), + ilstupdt(), + ui->excludeback->setFocus(); + } + + ui->excludecover->hide(), busy(false); +} + +void systemback::on_includeremoveitem_clicked() +{ + busy(), ui->includecover->show(); + QFile file(incfile); + + if(sb::fopen(file)) + { + QStr ctxt(ui->includedlist->currentItem()->text()), ilst; + + while(! file.atEnd()) + { + QStr cline(sb::left(file.readLine(), -1)); + if(! (cline.isEmpty() || cline == ctxt)) ilst.append(cline % '\n'); + } + + file.close(); + + if(sb::crtfile(incfile, ilst)) delete ui->includedlist->currentItem(), + ui->includedlist->setCurrentItem(nullptr), + ui->includeremoveitem->setDisabled(true), + ilstupdt(true), + ui->includeback->setFocus(); + } + + ui->includecover->hide(), busy(false); +} + +void systemback::on_fullname_textChanged(cQStr &arg1) +{ + if(cpos > -1) ui->fullname->setCursorPosition(cpos), + cpos = -1; + + if(arg1.isEmpty()) + { + if(ui->fullnamepipe->isVisible()) + ui->fullnamepipe->hide(); + else if(ui->installnext->isEnabled()) + ui->installnext->setDisabled(true); + } + else if([&arg1] { + for(uchar a(0) ; a < arg1.length() ; ++a) + { + cQChar &ctr(arg1.at(a)); + if(ctr == ':' || ctr == ',' || ctr == '=' || ! (ctr.isLetterOrNumber() || ctr.isPrint())) return true; + } + + return false; + }() || sb::like(arg1, {"_ *", "* *", "*ß*"})) + + ui->fullname->setText(QStr(arg1).replace(cpos = ui->fullname->cursorPosition() - 1, 1, nullptr)); + else if(arg1.at(0).isLower()) + cpos = ui->fullname->cursorPosition(), + ui->fullname->setText(arg1.at(0).toUpper() % sb::right(arg1, -1)); + else + { + for(cQStr &word : arg1.split(' ')) + if(! word.isEmpty() && word.at(0).isLower()) + { + cpos = ui->fullname->cursorPosition(); + return ui->fullname->setText(QStr(arg1).replace(' ' % word.at(0) % sb::right(word, -1), ' ' % word.at(0).toUpper() % sb::right(word, -1))); + } + + if(ui->fullnamepipe->isHidden()) ui->fullnamepipe->show(); + } +} + +void systemback::on_fullname_editingFinished() +{ + if(ui->fullname->text().endsWith(' ')) ui->fullname->setText(ui->fullname->text().trimmed()); +} + +void systemback::on_username_textChanged(cQStr &arg1) +{ + if(cpos > -1) ui->username->setCursorPosition(cpos), + cpos = -1; + + if(arg1.isEmpty()) + { + if(ui->usernameerror->isVisible()) + ui->usernameerror->hide(); + else if(ui->usernamepipe->isVisible()) + { + ui->usernamepipe->hide(); + if(ui->installnext->isEnabled()) ui->installnext->setDisabled(true); + } + } + else if(arg1 == "root") + { + if(ui->usernameerror->isHidden()) + { + if(ui->usernamepipe->isVisible()) + { + ui->usernamepipe->hide(); + if(ui->installnext->isEnabled()) ui->installnext->setDisabled(true); + } + + ui->usernameerror->show(); + } + } + else if(arg1 != arg1.toLower()) + ui->username->setText(arg1.toLower()); + else if([&arg1] { + for(uchar a(0) ; a < arg1.length() ; ++a) + { + cQChar &ctr(arg1.at(a)); + if((ctr < 'a' || ctr > 'z') && ! (ctr == '.' || ctr == '_' || ctr == '@' || (a && (ctr.isDigit() || ctr == '-' || ctr == '$')))) return true; + } + + return false; + }() || (arg1.contains('$') && (arg1.count('$') > 1 || ! arg1.endsWith('$')))) + + ui->username->setText(QStr(arg1).replace(cpos = ui->username->cursorPosition() - 1, 1, nullptr)); + else if(ui->usernamepipe->isHidden()) + { + if(ui->usernameerror->isVisible()) ui->usernameerror->hide(); + ui->usernamepipe->show(); + } +} + +void systemback::on_hostname_textChanged(cQStr &arg1) +{ + if(cpos > -1) ui->hostname->setCursorPosition(cpos), + cpos = -1; + + if(arg1.isEmpty()) + { + if(ui->hostnameerror ->isVisible()) + ui->hostnameerror->hide(); + else if(ui->hostnamepipe->isVisible()) + { + ui->hostnamepipe->hide(); + if(ui->installnext->isEnabled()) ui->installnext->setDisabled(true); + } + } + else if(arg1.length() > 1 && sb::like(arg1, {"*._", "*-_"}) && ! sb::like(arg1, {"*..*", "*--*", "*.-*", "*-.*"})) + { + if(ui->hostnameerror->isHidden()) + { + if(ui->hostnamepipe->isVisible()) + { + ui->hostnamepipe->hide(); + if(ui->installnext->isEnabled()) ui->installnext->setDisabled(true); + } + + ui->hostnameerror->show(); + } + } + else if([&arg1] { + for(uchar a(0) ; a < arg1.length() ; ++a) + { + cQChar &ctr(arg1.at(a)); + if((ctr < 'a' || ctr > 'z') && (ctr < 'A' || ctr > 'Z') && ! (ctr.isDigit() || (a && (ctr == '-' || ctr == '.')))) return true; + } + + return false; + }() || (arg1.length() > 1 && sb::like(arg1, {"*..*", "*--*", "*.-*", "*-.*"}))) + + ui->hostname->setText(QStr(arg1).replace(cpos = ui->hostname->cursorPosition() - 1, 1, nullptr)); + else if(ui->hostnamepipe->isHidden()) + { + if(ui->hostnameerror->isVisible()) ui->hostnameerror->hide(); + ui->hostnamepipe->show(); + } +} + +void systemback::on_password1_textChanged(cQStr &arg1) +{ + if(ui->passwordpipe->isVisible()) + { + ui->passwordpipe->hide(); + if(ui->installnext->isEnabled()) ui->installnext->setDisabled(true); + } + + if(arg1.isEmpty()) + { + if(! ui->password2->text().isEmpty()) ui->password2->clear(); + if(ui->password2->isEnabled()) ui->password2->setDisabled(true); + if(ui->passworderror->isVisible()) ui->passworderror->hide(); + } + else + { + if(! ui->password2->isEnabled()) ui->password2->setEnabled(true); + + if(ui->password2->text().isEmpty()) + { + if(ui->passworderror->isVisible()) ui->passworderror->hide(); + } + else if(arg1 == ui->password2->text()) + { + if(ui->passworderror->isVisible()) ui->passworderror->hide(); + ui->passwordpipe->show(); + } + else if(ui->passworderror->isHidden()) + ui->passworderror->show(); + } +} + +void systemback::on_password2_textChanged() +{ + on_password1_textChanged(ui->password1->text()); +} + +void systemback::on_rootpassword1_textChanged(cQStr &arg1) +{ + if(ui->rootpasswordpipe->isVisible()) + { + ui->rootpasswordpipe->hide(); + if(ui->installnext->isEnabled()) ui->installnext->setDisabled(true); + } + + if(arg1.isEmpty()) + { + if(! ui->rootpassword2->text().isEmpty()) ui->rootpassword2->clear(); + if(ui->rootpassword2->isEnabled()) ui->rootpassword2->setDisabled(true); + if(ui->rootpassworderror->isVisible()) ui->rootpassworderror->hide(); + } + else + { + if(! ui->rootpassword2->isEnabled()) ui->rootpassword2->setEnabled(true); + + if(ui->rootpassword2->text().isEmpty()) + { + if(ui->rootpassworderror->isVisible()) ui->rootpassworderror->hide(); + } + else if(arg1 == ui->rootpassword2->text()) + { + if(ui->rootpassworderror->isVisible()) ui->rootpassworderror->hide(); + ui->rootpasswordpipe->show(); + } + else if(ui->rootpassworderror->isHidden()) + ui->rootpassworderror->show(); + } +} + +void systemback::on_rootpassword2_textChanged() +{ + on_rootpassword1_textChanged(ui->rootpassword1->text()); +} + +void systemback::on_schedulerstate_clicked() +{ + if(ui->schedulerstate->isChecked()) + { + if(! sb::schdle[0]) + { + sb::schdle[0] = sb::True; + if(sb::isdir(sb::sdir[1]) && sb::access(sb::sdir[1], sb::Write)) sb::crtfile(sb::sdir[1] % "/.sbschedule"); + } + + ui->schedulerstate->setText(tr("Enabled")); + if(sb::schdle[1]) ui->daydown->setEnabled(true); + if(sb::schdle[1] < 7) ui->dayup->setEnabled(true); + if(sb::schdle[2]) ui->hourdown->setEnabled(true); + if(sb::schdle[2] < 23) ui->hourup->setEnabled(true); + if(sb::schdle[3] && (sb::schdle[1] || sb::schdle[2] || sb::schdle[3] > 30)) ui->minutedown->setEnabled(true); + if(sb::schdle[3] < 59) ui->minuteup->setEnabled(true); + ui->silentmode->setEnabled(true); + + if(! sb::schdle[5]) + { + if(sb::schdle[4] > 10) ui->seconddown->setEnabled(true); + if(sb::schdle[4] < 99) ui->secondup->setEnabled(true); + ui->windowposition->setEnabled(true); + } + } + else + { + sb::schdle[0] = sb::False, + ui->schedulerstate->setText(tr("Disabled")), + ui->silentmode->setDisabled(true); + if(ui->windowposition->isEnabled()) ui->windowposition->setDisabled(true); + + for(QPB pbtn : ui->schedulerdayhrminpanel->findChildren()) + if(pbtn->isEnabled()) pbtn->setDisabled(true); + + for(QWdt wdgt : QWL{ui->secondup, ui->seconddown}) + if(wdgt->isEnabled()) wdgt->setDisabled(true); + } +} + +void systemback::on_silentmode_clicked(bool chckd) +{ + if(! chckd) + { + sb::schdle[5] = sb::False; + if(sb::schdle[4] > 10) ui->seconddown->setEnabled(true); + if(sb::schdle[4] < 99) ui->secondup->setEnabled(true); + ui->windowposition->setEnabled(true); + } + else if(! sb::schdle[5]) + { + sb::schdle[5] = sb::True, + ui->windowposition->setDisabled(true); + + for(QWdt wdgt : QWL{ui->secondup, ui->seconddown}) + if(wdgt->isEnabled()) wdgt->setDisabled(true); + } +} + +void systemback::on_dayup_clicked() +{ + ++sb::schdle[1], + ui->schedulerday->setText(QStr::number(sb::schdle[1]) % ' ' % tr("day(s)")); + if(! ui->daydown->isEnabled()) ui->daydown->setEnabled(true); + if(sb::schdle[1] == 7) ui->dayup->setDisabled(true); + if(! ui->minutedown->isEnabled() && sb::schdle[3]) ui->minutedown->setEnabled(true); +} + +void systemback::on_daydown_clicked() +{ + --sb::schdle[1], + ui->schedulerday->setText(QStr::number(sb::schdle[1]) % ' ' % tr("day(s)")); + if(! ui->dayup->isEnabled()) ui->dayup->setEnabled(true); + + if(! sb::schdle[1]) + { + if(! sb::schdle[2]) + { + if(sb::schdle[3] < 30) sb::schdle[3] = 30, + ui->schedulerminute->setText(QStr::number(sb::schdle[3]) % ' ' % tr("minute(s)")); + + if(ui->minutedown->isEnabled() && sb::schdle[3] < 31) ui->minutedown->setDisabled(true); + } + + ui->daydown->setDisabled(true); + } +} + +void systemback::on_hourup_clicked() +{ + ++sb::schdle[2], + ui->schedulerhour->setText(QStr::number(sb::schdle[2]) % ' ' % tr("hour(s)")); + if(! ui->hourdown->isEnabled()) ui->hourdown->setEnabled(true); + if(sb::schdle[2] == 23) ui->hourup->setDisabled(true); + if(! ui->minutedown->isEnabled() && sb::schdle[3]) ui->minutedown->setEnabled(true); +} + +void systemback::on_hourdown_clicked() +{ + --sb::schdle[2], + ui->schedulerhour->setText(QStr::number(sb::schdle[2]) % ' ' % tr("hour(s)")); + if(! ui->hourup->isEnabled()) ui->hourup->setEnabled(true); + + if(! sb::schdle[2]) + { + if(! sb::schdle[1]) + { + if(sb::schdle[3] < 30) sb::schdle[3] = 30, + ui->schedulerminute->setText(QStr::number(sb::schdle[3]) % ' ' % tr("minute(s)")); + + if(ui->minutedown->isEnabled() && sb::schdle[3] < 31) ui->minutedown->setDisabled(true); + } + + ui->hourdown->setDisabled(true); + } +} + +void systemback::on_minuteup_clicked() +{ + sb::schdle[3] = sb::schdle[3] + (sb::schdle[3] == 55 ? 4 : 5), + ui->schedulerminute->setText(QStr::number(sb::schdle[3]) % ' ' % tr("minute(s)")); + if(! ui->minutedown->isEnabled()) ui->minutedown->setEnabled(true); + if(sb::schdle[3] == 59) ui->minuteup->setDisabled(true); +} + +void systemback::on_minutedown_clicked() +{ + sb::schdle[3] = sb::schdle[3] - (sb::schdle[3] == 59 ? 4 : 5), + ui->schedulerminute->setText(QStr::number(sb::schdle[3]) % ' ' % tr("minute(s)")); + if(! ui->minuteup->isEnabled()) ui->minuteup->setEnabled(true); + if(! sb::schdle[3] || (sb::schdle[3] == 30 && ! (sb::schdle[1] || sb::schdle[2]))) ui->minutedown->setDisabled(true); +} + +void systemback::on_secondup_clicked() +{ + sb::schdle[4] = sb::schdle[4] + (sb::schdle[4] == 95 ? 4 : 5), + ui->schedulersecond->setText(QStr::number(sb::schdle[4]) % ' ' % tr("seconds")); + if(! ui->seconddown->isEnabled()) ui->seconddown->setEnabled(true); + if(sb::schdle[4] == 99) ui->secondup->setDisabled(true); +} + +void systemback::on_seconddown_clicked() +{ + sb::schdle[4] = sb::schdle[4] - (sb::schdle[4] == 99 ? 4 : 5), + ui->schedulersecond->setText(QStr::number(sb::schdle[4]) % ' ' % tr("seconds")); + if(! ui->secondup->isEnabled()) ui->secondup->setEnabled(true); + if(sb::schdle[4] == 10) ui->seconddown->setDisabled(true); +} + +void systemback::on_windowposition_currentIndexChanged(cQStr &arg1) +{ + ui->windowposition->resize(fontMetrics().width(arg1) + ss(30), ui->windowposition->height()); + + if(ui->schedulepanel->isVisible()) + { + QStr cval(arg1 == tr("Top left") ? "topleft" + : arg1 == tr("Top right") ? "topright" + : arg1 == tr("Center") ? "center" + : arg1 == tr("Bottom left") ? "bottomleft" : "bottomright"); + + if(sb::schdlr[0] != cval) sb::schdlr[0] = cval; + } +} + +void systemback::on_userdatainclude_clicked(bool chckd) +{ + if(chckd) + { + ullong hfree(sb::dfree("/home")); + QFile file("/etc/passwd"); + + if(hfree > 104857600 && sb::dfree("/root") > 104857600 && sb::fopen(file)) + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + if(usr.contains(":/home/") && sb::isdir("/home/" % (usr = sb::left(usr, sb::instr(usr, ":") -1))) && sb::dfree("/home/" % usr) != hfree) return ui->userdatainclude->setChecked(false); + } + else + ui->userdatainclude->setChecked(false); + } +} + +void systemback::on_interrupt_clicked() +{ + if(! (irblck || intrrpt)) + { + if(! intrptimer) + { + pset(13), + intrrpt = true, + ui->interrupt->setDisabled(true); + if(! sb::ExecKill) sb::ExecKill = true; + + if(sb::SBThrd.isRunning()) sb::ThrdKill = true, + sb::thrdelay(), + sb::error("\n " % tr("Systemback worker thread is interrupted by the user.") % "\n\n"); + + connect(intrptimer = new QTimer, +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) + SIGNAL(timeout()), this, SLOT(on_interrupt_clicked()) +#else + &QTimer::timeout, this, &systemback::on_interrupt_clicked +#endif + ); + + intrptimer->start(100); + } + else if(sstart) + sb::crtfile(sb::sdir[1] % "/.sbschedule"), + close(); + else + { + delete intrptimer, intrptimer = nullptr; + + if(fscrn) + { + ui->statuspanel->hide(), + ui->mainpanel->show(); + short nwidth(ss(154) + ui->partitionsettings->width() - ui->partitionsettings->contentsRect().width() + ui->partitionsettings->columnWidth(0) + ui->partitionsettings->columnWidth(1) + ui->partitionsettings->columnWidth(2) + ui->partitionsettings->columnWidth(3) + ui->partitionsettings->columnWidth(4) + ui->partitionsettings->columnWidth(5) + ui->partitionsettings->columnWidth(6)); + ushort sz[]{ss(850), ss(465), ss(60)}; + windowmove(nwidth < sz[0] ? nwidth : sz[0], sz[1], false), + ui->wpanel->setMinimumSize(ss(698), sz[1]), + ui->wpanel->setMaximumSize(width() - sz[2], height() - sz[2]); + } + else + { + for(QCB ckbx : ui->sbpanel->findChildren()) + if(ckbx->isChecked()) ckbx->setChecked(false); + + on_pointpipe1_clicked(), + ui->statuspanel->hide(); + + if(ui->livepanel->isVisibleTo(ui->mainpanel)) + ui->liveback->setFocus(); + else if(! ui->sbpanel->isVisibleTo(ui->mainpanel)) + { + ui->sbpanel->show(), + ui->function1->setText("Systemback"); + + if(ui->restorepanel->isVisibleTo(ui->mainpanel)) + ui->restorepanel->hide(); + else if(ui->copypanel->isVisibleTo(ui->mainpanel)) + ui->copypanel->hide(); + else if(ui->repairpanel->isVisibleTo(ui->mainpanel)) + ui->repairpanel->hide(); + + ui->functionmenunext->isEnabled() ? ui->functionmenunext->setFocus() : ui->functionmenuback->setFocus(); + } + + ui->mainpanel->show(), + windowmove(ss(698), ss(465)); + } + } + } +} + +void systemback::on_livewritestart_clicked() +{ + dialogopen(108); +} + +void systemback::on_schedulerlater_clicked() +{ + if(sb::isdir(sb::sdir[1]) && sb::access(sb::sdir[1], sb::Write)) sb::crtfile(sb::sdir[1] % "/.sbschedule"); + close(); +} + +void systemback::on_scalingup_clicked() +{ + ui->scalingfactor->setText([this] { + if(ui->scalingfactor->text() == "auto") + { + ui->scalingdown->setEnabled(true); + return "x1"; + } + else if(ui->scalingfactor->text() == "x1") + return "x1.5"; + + ui->scalingup->setDisabled(true); + return "x2"; + }()); +} + +void systemback::on_scalingdown_clicked() +{ + ui->scalingfactor->setText([this] { + if(ui->scalingfactor->text() == "x2") + { + ui->scalingup->setEnabled(true); + return "x1.5"; + } + else if(ui->scalingfactor->text() == "x1.5") + return "x1"; + + ui->scalingdown->setDisabled(true); + return "auto"; + }()); +} + +void systemback::on_newrestorepoint_clicked() +{ + statustart(); + + auto err([this] { + if(intrrpt) + intrrpt = false; + else + { + dialogopen(sb::dfree(sb::sdir[1]) < 104857600 ? 305 : 319); + if(! sstart) pntupgrade(); + } + }); + + for(cQStr &item : QDir(sb::sdir[1]).entryList(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + if(sb::like(item, {"_.DELETED_*", "_.S00_*"})) + { + if(prun.type != 12) pset(12); + if(! sb::remove(sb::sdir[1] % '/' % item) || intrrpt) return err(); + } + + for(uchar a(9) ; a > 1 ; --a) + if(! sb::pnames[a].isEmpty() && (a == 9 || a > 2 ? sb::pnumber < a + 2 : sb::pnumber == 3)) ++ppipe; + + if(ppipe) + { + uchar dnum(0); + + for(uchar a(9) ; a > 1 ; --a) + if(! sb::pnames[a].isEmpty() && (a == 9 || a > 2 ? sb::pnumber < a + 2 : sb::pnumber == 3)) + { + pset(14, bstr(QStr::number(++dnum) % '/' % QStr::number(ppipe))); + if(! (sb::rename(sb::sdir[1] % (a < 9 ? QStr("/S0" % QStr::number(a + 1)) : "/S10") % '_' % sb::pnames[a], sb::sdir[1] % "/.DELETED_" % sb::pnames[a]) && sb::remove(sb::sdir[1] % "/.DELETED_" % sb::pnames[a])) || intrrpt) return err(); + } + } + + pset(15); + QStr dtime(QDateTime().currentDateTime().toString("yyyy-MM-dd,hh.mm.ss")); + if(! sb::crtrpoint(dtime)) return err(); + + for(uchar a(0) ; a < 9 && sb::isdir(sb::sdir[1] % "/S0" % QStr::number(a + 1) % '_' % sb::pnames[a]) ; ++a) + if(! sb::rename(sb::sdir[1] % "/S0" % QStr::number(a + 1) % '_' % sb::pnames[a], sb::sdir[1] % (a < 8 ? "/S0" : "/S") % QStr::number(a + 2) % '_' % sb::pnames[a])) return err(); + + if(! sb::rename(sb::sdir[1] % "/.S00_" % dtime, sb::sdir[1] % "/S01_" % dtime)) return err(); + sb::crtfile(sb::sdir[1] % "/.sbschedule"); + if(intrrpt) return err(); + emptycache(); + + if(sstart) + sb::ThrdKill = true, + close(); + else + pntupgrade(), + ui->statuspanel->hide(), + ui->mainpanel->show(), + ui->functionmenunext->isEnabled() ? ui->functionmenunext->setFocus() : ui->functionmenuback->setFocus(), + windowmove(ss(698), ss(465)); +} + +void systemback::on_pointdelete_clicked() +{ + statustart(); + uchar dnum(0); + + for(uchar a : {9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 10, 11, 12, 13, 14}) + { + if(getppipe(a)->isChecked()) + { + pset(16, bstr(QStr::number(++dnum) % '/' % QStr::number(ppipe))); + + if(! sb::rename(sb::sdir[1] % [a]() -> QStr { + switch(a) { + case 9: + return "/S10_"; + case 10 ... 14: + return "/H0" % QStr::number(a - 9) % '_'; + default: + return "/S0" % QStr::number(a + 1) % '_'; + } + }() % sb::pnames[a], sb::sdir[1] % "/.DELETED_" % sb::pnames[a]) || ! sb::remove(sb::sdir[1] % "/.DELETED_" % sb::pnames[a]) || intrrpt) return [this] { + if(intrrpt) + intrrpt = false; + else + dialogopen(329), + pntupgrade(); + }(); + } + } + + pntupgrade(), + emptycache(), + ui->statuspanel->hide(), + ui->mainpanel->show(), + ui->functionmenunext->isEnabled() ? ui->functionmenunext->setFocus() : ui->functionmenuback->setFocus(), + windowmove(ss(698), ss(465)); +} + +void systemback::on_livenew_clicked() +{ + statustart(), pset(17, " 1/3"); + + auto err([this](ushort dlg = 0) { + if(! (intrrpt || dlg == 327)) + { + if(sb::dfree(sb::sdir[2]) < 104857600 || (sb::isdir("/home/.sbuserdata") && sb::dfree("/home") < 104857600)) + dlg = 313; + else if(! dlg) + dlg = 328; + } + + for(cQStr &dir : {"/.sblvtmp", "/media/.sblvtmp", "/snap/.sblvtmp", "/var/.sblvtmp", "/home/.sbuserdata", "/root/.sbuserdata"}) + if(sb::isdir(dir)) sb::remove(dir); + + if(sb::autoiso) on_livemenu_clicked(); + + if(intrrpt) + intrrpt = false; + else + { + if(sb::isdir(sb::sdir[2] % "/.sblivesystemcreate")) sb::remove(sb::sdir[2] % "/.sblivesystemcreate"); + dialogopen(dlg); + } + }); + + QStr lvtype; + + if((sb::exist(sb::sdir[2] % "/.sblivesystemcreate") && ! sb::remove(sb::sdir[2] % "/.sblivesystemcreate")) + || intrrpt || ! (sb::crtdir(sb::sdir[2] % "/.sblivesystemcreate") && sb::crtdir(sb::sdir[2] % "/.sblivesystemcreate/.disk") && sb::crtdir(sb::sdir[2] % "/.sblivesystemcreate/" % (lvtype = sb::isfile("/usr/share/initramfs-tools/scripts/casper") ? "casper" : "live")) && sb::crtdir(sb::sdir[2] % "/.sblivesystemcreate/syslinux"))) return err(); + + QStr ifname(ui->livename->text() == "auto" ? "systemback_live_" % QDateTime().currentDateTime().toString("yyyy-MM-dd") : ui->livename->text()), ckernel; + { uchar ncount(0); + while(sb::exist(sb::sdir[2] % '/' % ifname % ".sblive")) ncount++ ? ifname = sb::left(ifname, sb::rinstr(ifname, "_")) % QStr::number(ncount) : ifname.append("_1"); } + if(intrrpt || ! (sb::crtfile(sb::sdir[2] % "/.sblivesystemcreate/.disk/info", "Systemback Live (" % ifname % ") - Release " % sb::right(ui->version->text(), -sb::rinstr(ui->version->text(), "_")) % '\n') && sb::copy("/boot/vmlinuz-" % (ckernel = ckname()), sb::sdir[2] % "/.sblivesystemcreate/" % lvtype % "/vmlinuz")) || intrrpt) return err(); + irblck = true; + + if(lvtype == "casper") + { + QStr fname, did; + + { + QFile file("/etc/passwd"); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + if(cline.startsWith(guname() % ':')) + { + QSL uslst(cline.split(':')); + if(uslst.count() > 4) fname = sb::left(uslst.at(4), sb::instr(uslst.at(4), ",") - 1); + break; + } + } + } + + if(sb::isfile("/etc/lsb-release")) + { + QFile file("/etc/lsb-release"); + if(! sb::fopen(file)) return err(); + + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + if(cline.startsWith("DISTRIB_ID=")) + { + did = sb::right(cline, -sb::instr(cline, "=")); + break; + } + } + } + + if(did.isEmpty()) did = "Ubuntu"; + QFile file("/etc/hostname"); + if(! sb::fopen(file)) return err(); + QStr hname(file.readLine().trimmed()); + file.close(); + if(! sb::crtfile("/etc/casper.conf", "USERNAME=\"" % guname() % "\"\nUSERFULLNAME=\"" % fname % "\"\nHOST=\"" % hname % "\"\nBUILD_SYSTEM=\"" % did % "\"\n\nexport USERNAME USERFULLNAME HOST BUILD_SYSTEM\n") || intrrpt) return err(); + QSL incl{"*integrity_check_", "*mountpoints_", "*fstab_", "*swap_", "*xconfig_", "*networking_", "*disable_update_notifier_", "*disable_hibernation_", "*disable_kde_services_", "*fix_language_selector_", "*disable_trackerd_", "*disable_updateinitramfs_", "*kubuntu_disable_restart_notifications_", "*kubuntu_mobile_session_"}; + + for(cQStr &item : QDir("/usr/share/initramfs-tools/scripts/casper-bottom").entryList(QDir::Files)) + if(! (sb::like(item, incl) || cfmod("/usr/share/initramfs-tools/scripts/casper-bottom/" % item, 0644))) return err(); + } + else + { + sb::crtfile("/usr/share/initramfs-tools/scripts/init-bottom/sbfstab", "#!/bin/sh\nif [ \"$1\" != prereqs ] && [ \"$BOOT\" = live ] && [ ! -e /root/etc/fstab ]\nthen touch /root/etc/fstab\nfi\n"); + if(! cfmod("/usr/share/initramfs-tools/scripts/init-bottom/sbfstab", 0755)) return err(); + } + + bool xmntry(sb::isfile("/etc/X11/xorg.conf") || (sb::isdir("/etc/X11/xorg.conf.d") && [] { + for(cQStr &item : QDir("/etc/X11/xorg.conf.d").entryList(QDir::Files)) + if(item.endsWith(".conf")) return true; + + return false; + }())); + + if(xmntry) + { + sb::crtfile("/usr/share/initramfs-tools/scripts/init-bottom/sbnoxconf", "#!/bin/sh\nif [ \"$1\" != prereqs ] && grep noxconf /proc/cmdline >/dev/null 2>&1\nthen\nif [ -s /root/etc/X11/xorg.conf ]\nthen rm /root/etc/X11/xorg.conf\nfi\nif [ -d /root/etc/X11/xorg.conf.d ] && ls /root/etc/X11/xorg.conf.d | grep .conf$ >/dev/null 2>&1\nthen rm /root/etc/X11/xorg.conf.d/*.conf 2>/dev/null\nfi\nfi\n"); + if(! cfmod("/usr/share/initramfs-tools/scripts/init-bottom/sbnoxconf", 0755)) return err(); + } + + sb::crtfile("/usr/share/initramfs-tools/scripts/init-bottom/sbfinstall", [this]() -> QStr { + QStr ftxt("#!/bin/sh\nif [ \"$1\" != prereqs ] && grep finstall /proc/cmdline >/dev/null 2>&1\nthen\nif [ -f /root/home/" % guname() % "/.config/autostart/dropbox.desktop ]\nthen rm /root/home/" % guname() % "/.config/autostart/dropbox.desktop\nfi\nif [ -f /root/usr/bin/ksplashqml ]\nthen\nchmod -x /root/usr/bin/ksplash* /root/usr/bin/plasma*\nif [ -f /root/usr/share/autostart/plasma-desktop.desktop ]\nthen mv /root/usr/share/autostart/plasma-desktop.desktop /root/usr/share/autostart/plasma-desktop.desktop_\nfi\nif [ -f /root/usr/share/autostart/plasma-netbook.desktop ]\nthen mv /root/usr/share/autostart/plasma-netbook.desktop /root/usr/share/autostart/plasma-netbook.desktop_\nfi\nfi\n"); + + for(uchar a(0) ; a < 5 ; ++a) + { + QStr fpath("/etc/" % [a]() -> QStr { + switch(a) { + case 0: + return "lightdm/lightdm.conf"; + case 1: + return "kde4/kdm/kdmrc"; + case 2: + return "sddm.conf"; + case 3: + return "gdm/custom.conf"; + case 4: + return "gdm3/daemon.conf"; + default: + return "mdm/mdm.conf"; + } + }()); + + if(sb::isfile(fpath) || sb::isdir(sb::left(fpath, sb::rinstr(fpath, "/") - 1))) ftxt.append([&, a]() -> QStr { + switch(a) { + case 0: + return "cat << EOF >/root/etc/lightdm/lightdm.conf\n[SeatDefaults]\nautologin-guest=false\nautologin-user=" % guname() % "\nautologin-user-timeout=0\nautologin-session=lightdm-autologin\nEOF"; + case 1: + return "sed -ir -e \"s/^#?AutoLoginEnable=.*\\$/AutoLoginEnable=true/\" -e \"s/^#?AutoLoginUser=.*\\$/AutoLoginUser=" % guname() % "/\" -e \"s/^#?AutoReLogin=.*\\$/AutoReLogin=true/\" /root/etc/kde4/kdm/kdmrc"; + case 2: + return "cat << EOF >/root/etc/sddm.conf\n[Autologin]\nUser=" % guname() % "\nSession=plasma.desktop\nEOF"; + default: + return "cat << EOF >/root" % fpath % "\n[daemon]\nAutomaticLoginEnable=True\nAutomaticLogin=" % guname() % "\nEOF"; + } + }() % '\n'); + } + + QStr txt[]{"cat << EOF >/root/etc/xdg/autostart/sbfinstall", "[Desktop Entry]\nEncoding=UTF-8\nVersion=1.0\nName=Systemback installer\n", "Type=Application\nIcon=systemback\nTerminal=false\n", "NoDisplay=true\nEOF\n"}; + return ftxt % txt[0] % ".desktop\n" % txt[1] % "Exec=/usr/lib/systemback/sbsustart finstall gtk+\n" % txt[2] % "NotShowIn=KDE;\n" % txt[3] % txt[0] % "-kde.desktop\n" % txt[1] % "Exec=sh -c \"/usr/lib/systemback/sbsustart finstall && if [ -f /usr/bin/plasmashell ] ; then plasmashell --shut-up & elif [ -f /usr/bin/plasma-desktop ] ; then plasma-desktop & fi\"\n" % txt[2] % "OnlyShowIn=KDE;\n" % txt[3] % "fi\n"; + }()); + + if(! cfmod("/usr/share/initramfs-tools/scripts/init-bottom/sbfinstall", 0755)) return err(); + + { + uchar rv(sb::exec("update-initramfs -tck" % ckernel)); + + if(lvtype == "casper") + { + QSL incl{"*integrity_check_", "*mountpoints_", "*fstab_", "*swap_", "*xconfig_", "*networking_", "*disable_update_notifier_", "*disable_hibernation_", "*disable_kde_services_", "*fix_language_selector_", "*disable_trackerd_", "*disable_updateinitramfs_", "*kubuntu_disable_restart_notifications_", "*kubuntu_mobile_session_"}; + + for(cQStr &item : QDir("/usr/share/initramfs-tools/scripts/casper-bottom").entryList(QDir::Files)) + if(! (sb::like(item, incl) || cfmod("/usr/share/initramfs-tools/scripts/casper-bottom/" % item, 0755))) return err(); + } + else if(! sb::remove("/usr/share/initramfs-tools/scripts/init-bottom/sbfstab")) + return err(); + + if((xmntry && ! sb::remove("/usr/share/initramfs-tools/scripts/init-bottom/sbnoxconf")) || ! sb::remove("/usr/share/initramfs-tools/scripts/init-bottom/sbfinstall")) return err(); + if(rv) return err(327); + } + + irblck = false; + if(! sb::copy("/boot/initrd.img-" % ckernel, sb::sdir[2] % "/.sblivesystemcreate/" % lvtype % "/initrd.gz")) return err(); + + if(sb::isfile("/usr/lib/syslinux/isolinux.bin")) + { + if(! (sb::copy("/usr/lib/syslinux/isolinux.bin", sb::sdir[2] % "/.sblivesystemcreate/syslinux/isolinux.bin") && sb::copy("/usr/lib/syslinux/vesamenu.c32", sb::sdir[2] % "/.sblivesystemcreate/syslinux/vesamenu.c32"))) return err(); + } + else if(! (sb::copy("/usr/lib/ISOLINUX/isolinux.bin", sb::sdir[2] % "/.sblivesystemcreate/syslinux/isolinux.bin") && sb::copy("/usr/lib/syslinux/modules/bios/vesamenu.c32", sb::sdir[2] % "/.sblivesystemcreate/syslinux/vesamenu.c32") && sb::copy("/usr/lib/syslinux/modules/bios/libcom32.c32", sb::sdir[2] % "/.sblivesystemcreate/syslinux/libcom32.c32") && sb::copy("/usr/lib/syslinux/modules/bios/libutil.c32", sb::sdir[2] % "/.sblivesystemcreate/syslinux/libutil.c32") && sb::copy("/usr/lib/syslinux/modules/bios/ldlinux.c32", sb::sdir[2] % "/.sblivesystemcreate/syslinux/ldlinux.c32"))) + return err(); + + if(! (sb::copy("/usr/share/systemback/splash.png", sb::sdir[2] % "/.sblivesystemcreate/syslinux/splash.png") && sb::lvprpr(ui->userdatainclude->isChecked()))) return err(); + + { + QStr ide; + + for(cQStr &item : {"/.sblvtmp/cdrom", "/.sblvtmp/dev", "/.sblvtmp/mnt", "/.sblvtmp/proc", "/.sblvtmp/run", "/.sblvtmp/srv", "/.sblvtmp/sys", "/.sblvtmp/tmp", "/bin", "/boot", "/etc", "/lib", "/lib32", "/lib64", "/opt", "/sbin", "/selinux", "/snap/.sblvtmp/snap", "/usr", "/initrd.img", "/initrd.img.old", "/vmlinuz", "/vmlinuz.old"}) + if(sb::exist(item)) ide.append(' ' % item); + + if(sb::isdir(sb::sdir[2] % "/.sblivesystemcreate/userdata")) + { + ide.append(" \"" % sb::sdir[2] % "\"/.sblivesystemcreate/userdata/home"); + if(sb::isdir(sb::sdir[2] % "/.sblivesystemcreate/userdata/root")) ide.append(" \"" % sb::sdir[2] % "\"/.sblivesystemcreate/userdata/root"); + } + else + { + if(sb::isdir("/home/.sbuserdata")) ide.append(" /home/.sbuserdata/home"); + if(sb::isdir("/root/.sbuserdata")) ide.append(" /root/.sbuserdata/root"); + } + + if(intrrpt) return err(); + pset(18, " 2/3"); + QStr elist; + + for(cQStr &excl : {"/boot/efi/EFI", "/etc/fstab", "/etc/mtab", "/etc/udev/rules.d/70-persistent-cd.rules", "/etc/udev/rules.d/70-persistent-net.rules"}) + if(sb::exist(excl)) elist.append(" -e " % excl); + + for(cQStr &cdir : {"/etc/rc0.d", "/etc/rc1.d", "/etc/rc2.d", "/etc/rc3.d", "/etc/rc4.d", "/etc/rc5.d", "/etc/rc6.d", "/etc/rcS.d"}) + if(sb::isdir(cdir)) + for(cQStr &item : QDir(cdir).entryList(QDir::Files)) + if(item.contains("cryptdisks")) elist.append(" -e " % cdir % '/' % item); + + if(sb::exec("mksquashfs" % ide % " \"" % sb::sdir[2] % "\"/.sblivesystemcreate/.systemback /media/.sblvtmp/media /var/.sblvtmp/var \"" % sb::sdir[2] % "\"/.sblivesystemcreate/" % lvtype % "/filesystem.squashfs " % (sb::xzcmpr ? "-comp xz " : nullptr) % "-info -b 1M -no-duplicates -no-recovery -always-use-fragments" % elist, sb::Prgrss)) return err(311); + } + + pset(19, " 3/3"), + sb::Progress = -1; + for(cQStr &dir : {"/.sblvtmp", "/media/.sblvtmp", "/var/.sblvtmp"}) sb::remove(dir); + + for(cQStr &dir : {"/home/.sbuserdata", "/root/.sbuserdata", "/snap/.sblvtmp"}) + if(sb::isdir(dir)) sb::remove(dir); + + if(intrrpt) return err(); + + { + QStr rpart, grxorg, srxorg, prmtrs; + if(sb::fsize(sb::sdir[2] % "/.sblivesystemcreate/" % lvtype % "/filesystem.squashfs") > 4294967295) rpart = "root=LABEL=SBROOT "; + + if(sb::isfile("/etc/default/grub")) + { + QFile file("/etc/default/grub"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr cline(file.readLine().trimmed()); + + if(cline.startsWith("GRUB_CMDLINE_LINUX_DEFAULT=") && cline.count('\"') > 1) + { + if(! prmtrs.isEmpty()) prmtrs.clear(); + QStr pprt; + + for(cQStr &cprmtr : sb::left(sb::right(cline, -sb::instr(cline, "\"")), -1).split(' ')) + if(! (cprmtr.isEmpty() || (pprt.isEmpty() && sb::like(cprmtr, {"_quiet_", "_splash_", "_xforcevesa_"})))) + { + if(cprmtr.contains("\\\"")) + { + if(pprt.isEmpty()) + pprt = cprmtr % ' '; + else + prmtrs.append(' ' % pprt.append(cprmtr).replace("\\\"", "\"")), + pprt.clear(); + } + else if(pprt.isEmpty()) + prmtrs.append(' ' % cprmtr); + else + pprt.append(cprmtr % ' '); + } + } + } + } + + if(xmntry) grxorg = "menuentry \"" % tr("Boot Live without xorg.conf file") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % " noxconf quiet splash" % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n\n", srxorg = "label noxconf\n menu label " % tr("Boot Live without xorg.conf file") % "\n kernel /" % lvtype % "/vmlinuz\n append " % rpart % "boot=" % lvtype % " initrd=/" % lvtype % "/initrd.gz noxconf quiet splash" % prmtrs % "\n\n"; +#ifdef __amd64__ + if(sb::isfile("/usr/share/systemback/efi-amd64.bootfiles") && (sb::exec("tar -xJf /usr/share/systemback/efi-amd64.bootfiles -C \"" % sb::sdir[2] % "\"/.sblivesystemcreate --no-same-owner --no-same-permissions") || ! (sb::copy("/usr/share/systemback/splash.png", sb::sdir[2] % "/.sblivesystemcreate/boot/grub/splash.png") && + sb::crtfile(sb::sdir[2] % "/.sblivesystemcreate/boot/grub/grub.cfg", "if loadfont /boot/grub/font.pf2\nthen\n set gfxmode=auto\n insmod efi_gop\n insmod efi_uga\n insmod gfxterm\n terminal_output gfxterm\nfi\n\nset theme=/boot/grub/theme.cfg\n\nmenuentry \"" % tr("Boot Live system") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % " quiet splash" % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n\nmenuentry \"" % tr("Boot system installer") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % " finstall quiet splash" % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n\nmenuentry \"" % tr("Boot Live in safe graphics mode") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % " xforcevesa nomodeset quiet splash" % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n\n" % grxorg % "menuentry \"" % tr("Boot Live in debug mode") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n") && + sb::crtfile(sb::sdir[2] % "/.sblivesystemcreate/boot/grub/theme.cfg", "title-color: \"white\"\ntitle-text: \"Systemback Live (" % ifname % ")\"\ntitle-font: \"Sans Regular 16\"\ndesktop-color: \"black\"\ndesktop-image: \"/boot/grub/splash.png\"\nmessage-color: \"white\"\nmessage-bg-color: \"black\"\nterminal-font: \"Sans Regular 12\"\n\n+ boot_menu {\n top = 150\n left = 15%\n width = 75%\n height = " % (xmntry ? "150" : "130") % "\n item_font = \"Sans Regular 12\"\n item_color = \"grey\"\n selected_item_color = \"white\"\n item_height = 20\n item_padding = 15\n item_spacing = 5\n}\n\n+ vbox {\n top = 100%\n left = 2%\n + label {text = \"" % tr("Press 'E' key to edit") % "\" font = \"Sans 10\" color = \"white\" align = \"left\"}\n}\n") && + sb::crtfile(sb::sdir[2] % "/.sblivesystemcreate/boot/grub/loopback.cfg", "menuentry \"" % tr("Boot Live system") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % " iso-scan/filename=$iso_path quiet splash" % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n\nmenuentry \"" % tr("Boot system installer") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % " iso-scan/filename=$iso_path finstall quiet splash" % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n\nmenuentry \"" % tr("Boot Live in safe graphics mode") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % " iso-scan/filename=$iso_path xforcevesa nomodeset quiet splash" % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n\n" % grxorg % "menuentry \"" % tr("Boot Live in debug mode") % "\" {\n set gfxpayload=keep\n linux /" % lvtype % "/vmlinuz " % rpart % "boot=" % lvtype % " iso-scan/filename=$iso_path" % prmtrs % "\n initrd /" % lvtype % "/initrd.gz\n}\n")))) return err(); +#endif + if(! sb::crtfile(sb::sdir[2] % "/.sblivesystemcreate/syslinux/syslinux.cfg", "default vesamenu.c32\nprompt 0\ntimeout 100\n\nmenu title Systemback Live (" % ifname % ")\nmenu tabmsg " % tr("Press TAB key to edit") % "\nmenu background splash.png\n\nlabel live\n menu label " % tr("Boot Live system") % "\n kernel /" % lvtype % "/vmlinuz\n append " % rpart % "boot=" % lvtype % " initrd=/" % lvtype % "/initrd.gz quiet splash" % prmtrs % "\n\nlabel install\n menu label " % tr("Boot system installer") % "\n kernel /" % lvtype % "/vmlinuz\n append " % rpart % "boot=" % lvtype % " initrd=/" % lvtype % "/initrd.gz finstall quiet splash" % prmtrs % "\n\nlabel safe\n menu label " % tr("Boot Live in safe graphics mode") % "\n kernel /" % lvtype % "/vmlinuz\n append " % rpart % "boot=" % lvtype % " initrd=/" % lvtype % "/initrd.gz xforcevesa nomodeset quiet splash" % prmtrs % "\n\n" % srxorg % "label debug\n menu label " % tr("Boot Live in debug mode") % "\n kernel /" % lvtype % "/vmlinuz\n append " % rpart % "boot=" % lvtype % " initrd=/" % lvtype % "/initrd.gz" % prmtrs % '\n') + || intrrpt || ! sb::remove(sb::sdir[2] % "/.sblivesystemcreate/.systemback") + || intrrpt || (sb::isdir(sb::sdir[2] % "/.sblivesystemcreate/userdata") && ! sb::remove(sb::sdir[2] % "/.sblivesystemcreate/userdata")) + || intrrpt) return err(); + } + + if(sb::ThrdLng[0]) sb::ThrdLng[0] = 0; + sb::ThrdStr[0] = sb::sdir[2] % '/' % ifname % ".sblive"; + ui->progressbar->setValue(0); + + if(sb::exec("tar -cf \"" % sb::sdir[2] % "\"/" % ifname % ".sblive -C \"" % sb::sdir[2] % "\"/.sblivesystemcreate .", sb::Prgrss)) + { + if(sb::exist(sb::sdir[2] % '/' % ifname % ".sblive")) sb::remove(sb::sdir[2] % '/' % ifname % ".sblive"); + return err(312); + } + + if(! cfmod(sb::sdir[2] % '/' % ifname % ".sblive", 0666)) return err(); + + if(sb::autoiso) + { + ullong isize(sb::fsize(sb::sdir[2] % '/' % ifname % ".sblive")); + + if(isize < 4294967295 && isize + 52428800 < sb::dfree(sb::sdir[2])) + { + pset(20, " 4/3+1"), + sb::Progress = -1; + if(! (sb::rename(sb::sdir[2] % "/.sblivesystemcreate/syslinux/syslinux.cfg", sb::sdir[2] % "/.sblivesystemcreate/syslinux/isolinux.cfg") && sb::rename(sb::sdir[2] % "/.sblivesystemcreate/syslinux", sb::sdir[2] % "/.sblivesystemcreate/isolinux")) || intrrpt) return err(); + ui->progressbar->setValue(0); + + if(sb::exec("genisoimage -r -V sblive -cache-inodes -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o \"" % sb::sdir[2] % "\"/" % ifname % ".iso \"" % sb::sdir[2] % "\"/.sblivesystemcreate", sb::Prgrss)) + { + if(sb::isfile(sb::sdir[2] % '/' % ifname % ".iso")) sb::remove(sb::sdir[2] % '/' % ifname % ".iso"); + return err(312); + } + + if(sb::exec("isohybrid \"" % sb::sdir[2] % "\"/" % ifname % ".iso") || ! cfmod(sb::sdir[2] % '/' % ifname % ".iso", 0666) || intrrpt) return err(); + } + } + + emptycache(), + sb::remove(sb::sdir[2] % "/.sblivesystemcreate"), + on_livemenu_clicked(), + dialogopen(207); +} + +void systemback::on_liveconvert_clicked() +{ + statustart(), pset(21, " 1/2"); + QStr path(sb::sdir[2] % '/' % sb::left(ui->livelist->currentItem()->text(), sb::instr(ui->livelist->currentItem()->text(), " ") - 1)); + + auto err([&](ushort dlg = 0) { + if(sb::isdir(sb::sdir[2] % "/.sblivesystemconvert")) sb::remove(sb::sdir[2] % "/.sblivesystemconvert"); + if(sb::isfile(path % ".iso")) sb::remove(path % ".iso"); + + if(intrrpt) + intrrpt = false; + else + dialogopen(dlg ? dlg : 335); + }); + + if((sb::exist(sb::sdir[2] % "/.sblivesystemconvert") && ! sb::remove(sb::sdir[2] % "/.sblivesystemconvert")) || ! sb::crtdir(sb::sdir[2] % "/.sblivesystemconvert")) return err(); + sb::ThrdLng[0] = sb::fsize(path % ".sblive"), sb::ThrdStr[0] = sb::sdir[2] % "/.sblivesystemconvert"; + if(sb::exec("tar -xf \"" % path % "\".sblive -C \"" % sb::sdir[2] % "\"/.sblivesystemconvert --no-same-owner --no-same-permissions", sb::Prgrss)) return err(326); + if(! (sb::rename(sb::sdir[2] % "/.sblivesystemconvert/syslinux/syslinux.cfg", sb::sdir[2] % "/.sblivesystemconvert/syslinux/isolinux.cfg") && sb::rename(sb::sdir[2] % "/.sblivesystemconvert/syslinux", sb::sdir[2] % "/.sblivesystemconvert/isolinux")) || intrrpt) return err(324); + pset(21, " 2/2"), + sb::Progress = -1, + ui->progressbar->setValue(0); + if(sb::exec("genisoimage -r -V sblive -cache-inodes -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o \"" % path % "\".iso \"" % sb::sdir[2] % "\"/.sblivesystemconvert", sb::Prgrss)) return err(325); + if(sb::exec("isohybrid \"" % path % "\".iso") || ! cfmod(path % ".iso", 0666)) return err(); + sb::remove(sb::sdir[2] % "/.sblivesystemconvert"); + if(intrrpt) return err(); + emptycache(), + ui->livelist->currentItem()->setText(sb::left(ui->livelist->currentItem()->text(), sb::rinstr(ui->livelist->currentItem()->text(), " ")) % "sblive+iso)"), + ui->liveconvert->setDisabled(true), + ui->statuspanel->hide(), + ui->mainpanel->show(), + ui->liveback->setFocus(), + windowmove(ss(698), ss(465)); +} + +void systemback::on_partitiondelete_clicked() +{ + busy(), ui->copycover->show(); + + switch(ui->partitionsettings->item(ui->partitionsettings->currentItem()->row(), 8)->text().toUShort()) { + case sb::Extended: + sb::delpart(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text()); + break; + default: + sb::mkptable(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text(), grub.isEFI ? "gpt" : "msdos"); + } + + on_partitionrefresh2_clicked(), + busy(false); +} + +void systemback::on_newpartition_clicked() +{ + busy(), ui->copycover->show(); + QStr dev(sb::left(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text(), (ui->partitionsettings->item(ui->partitionsettings->currentRow(), 0)->text().contains("mmc") ? 12 : 8))); + bool msize(ui->partitionsize->value() == ui->partitionsize->maximum()); + ullong start(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 9)->text().toULongLong()), len(msize ? ui->partitionsettings->item(ui->partitionsettings->currentRow(), 10)->text().toULongLong() : ullong(ui->partitionsize->value()) * 1048576); + uchar type; + + switch(ui->partitionsettings->item(ui->partitionsettings->currentRow(), 8)->text().toUShort()) { + case sb::Freespace: + { + uchar pcnt(0), fcnt(0); + + for(ushort a(0) ; a < ui->partitionsettings->rowCount() ; ++a) + if(ui->partitionsettings->item(a, 0)->text().startsWith(dev)) + switch(ui->partitionsettings->item(a, 8)->text().toUShort()) { + case sb::GPT: + case sb::Extended: + type = sb::Primary; + goto exec; + case sb::Primary: + ++pcnt; + break; + case sb::Freespace: + ++fcnt; + } + + if(pcnt < 3 || (fcnt == 1 && ui->partitionsize->value() == ui->partitionsize->maximum())) + { + type = sb::Primary; + break; + } + else if(! sb::mkpart(dev, start, ui->partitionsettings->item(ui->partitionsettings->currentRow(), 10)->text().toULongLong(), sb::Extended)) + goto end; + + start += 1048576; + if(msize && (len -= 1048576) < 1048576) goto end; + } + default: + type = sb::Logical; + } + +exec: + sb::mkpart(dev, start, len, type); +end: + on_partitionrefresh2_clicked(), + busy(false); +} + +void systemback::on_languageoverride_clicked(bool chckd) +{ + if(chckd) + { + QStr lname(ui->languages->currentText()); + + sb::lang = lname == "المصرية العربية" ? "ar_EG" + : lname == "Català" ? "ca_ES" + : lname == "Čeština" ? "cs_CS" + : lname == "Dansk" ? "da_DK" + : lname == "Deutsch" ? "de_DE" + : lname == "English (common)" ? "en_EN" + : lname == "English (United Kingdom)" ? "en_GB" + : lname == "Español" ? "es_ES" + : lname == "Suomi" ? "fi_FI" + : lname == "Français" ? "fr_FR" + : lname == "Galego" ? "gl_ES" + : lname == "Magyar" ? "hu_HU" + : lname == "Bahasa Indonesia" ? "id_ID" + : lname == "Português (Brasil)" ? "pt_BR" + : lname == "Română" ? "ro_RO" + : lname == "Русский" ? "ru_RU" + : lname == "Türkçe" ? "tr_TR" + : lname == "Українськa" ? "uk_UK" : "zh_CN"; + + ui->languages->setEnabled(true); + } + else + sb::lang = "auto", + ui->languages->setDisabled(true); +} + +void systemback::on_languages_currentIndexChanged(cQStr &arg1) +{ + ui->languages->resize(fontMetrics().width(arg1) + ss(30), ui->languages->height()); + + if(ui->languages->isEnabled()) sb::lang = arg1 == "المصرية العربية" ? "ar_EG" + : arg1 == "Català" ? "ca_ES" + : arg1 == "Čeština" ? "cs_CS" + : arg1 == "Dansk" ? "da_DK" + : arg1 == "Deutsch" ? "de_DE" + : arg1 == "English (common)" ? "en_EN" + : arg1 == "English (United Kingdom)" ? "en_GB" + : arg1 == "Español" ? "es_ES" + : arg1 == "Suomi" ? "fi_FI" + : arg1 == "Français" ? "fr_FR" + : arg1 == "Galego" ? "gl_ES" + : arg1 == "Magyar" ? "hu_HU" + : arg1 == "Bahasa Indonesia" ? "id_ID" + : arg1 == "Português (Brasil)" ? "pt_BR" + : arg1 == "Română" ? "ro_RO" + : arg1 == "Русский" ? "ru_RU" + : arg1 == "Türkçe" ? "tr_TR" + : arg1 == "Українськa" ? "uk_UK" : "zh_CN"; +} + +void systemback::on_styleoverride_clicked(bool chckd) +{ + sb::style = chckd ? ui->styles->currentText() : "auto", + ui->styles->setEnabled(chckd); +} + +void systemback::on_styles_currentIndexChanged(cQStr &arg1) +{ + ui->styles->resize(fontMetrics().width(arg1) + ss(30), ui->styles->height()); + if(ui->styles->isEnabled()) sb::style = arg1; +} + +void systemback::on_alwaysontop_clicked(bool chckd) +{ + if(chckd) + setwontop(), + sb::waot = sb::True; + else + sb::waot = sb::False, + setwontop(false); +} + +void systemback::on_incrementaldisable_clicked(bool chckd) +{ + sb::incrmtl = chckd ? sb::False : sb::True; +} + +void systemback::on_cachemptydisable_clicked(bool chckd) +{ + sb::ecache = chckd ? sb::False : sb::True; +} + +void systemback::on_usexzcompressor_clicked(bool chckd) +{ + sb::xzcmpr = chckd ? sb::True : sb::False; +} + +void systemback::on_autoisocreate_clicked(bool chckd) +{ + sb::autoiso = chckd ? sb::True : sb::False; +} + +void systemback::on_schedulerdisable_clicked(bool chckd) +{ + if(chckd) + on_schedulerrefresh_clicked(), + ui->adduser->setEnabled(true); + else + { + sb::schdlr[1] = "false", + ui->schedulerusers->setText(nullptr); + if(ui->adduser->isEnabled()) ui->adduser->setDisabled(true); + } + + ui->users->setEnabled(chckd), + ui->schedulerrefresh->setEnabled(chckd); +} + +void systemback::on_users_currentIndexChanged(cQStr &arg1) +{ + ui->users->setToolTip(arg1); +} + +void systemback::on_adduser_clicked() +{ + if(ui->users->count() == 1) + { + if(sb::schdlr[1] != "everyone") sb::schdlr[1] = "everyone", + ui->schedulerusers->setText(tr("Everyone")); + + ui->users->clear(), + ui->adduser->setDisabled(true); + } + else + sb::schdlr[1] == "everyone" ? sb::schdlr[1] = ':' % ui->users->currentText() : sb::schdlr[1].append(',' % ui->users->currentText()), + ui->schedulerusers->setText(sb::right(sb::schdlr[1], -1)), + ui->users->removeItem(ui->users->findText(ui->users->currentText())); +} + +void systemback::on_schedulerrefresh_clicked() +{ + busy(); + + if(sb::schdlr[1] != "everyone") sb::schdlr[1] = "everyone", + ui->schedulerusers->setText(tr("Everyone")); + + ui->users->count() ? ui->users->clear() : ui->adduser->setEnabled(true), + ui->users->addItem("root"); + QFile file("/etc/passwd"); + + if(sb::fopen(file)) + while(! file.atEnd()) + { + QStr usr(file.readLine().trimmed()); + if(usr.contains(":/home/") && sb::isdir("/home/" % (usr = sb::left(usr, sb::instr(usr, ":") -1)))) ui->users->addItem(usr); + } + + busy(false); +} + +void systemback::on_grubreinstallrestore_currentIndexChanged(cQStr &arg1) +{ + if(! arg1.isEmpty()) ui->grubreinstallrestore->resize(fontMetrics().width(arg1) + ss(30), ui->grubreinstallrestore->height()); +} + +void systemback::on_grubinstallcopy_currentIndexChanged(cQStr &arg1) +{ + if(! arg1.isEmpty()) ui->grubinstallcopy->resize(fontMetrics().width(arg1) + ss(30), ui->grubinstallcopy->height()); +} + +void systemback::on_grubreinstallrepair_currentIndexChanged(cQStr &arg1) +{ + if(! arg1.isEmpty()) ui->grubreinstallrepair->resize(fontMetrics().width(arg1) + ss(30), ui->grubreinstallrepair->height()); +} diff --git a/systemback/systemback.hpp b/systemback/systemback.hpp new file mode 100644 index 0000000..5736413 --- /dev/null +++ b/systemback/systemback.hpp @@ -0,0 +1,323 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef SYSTEMBACK_HPP +#define SYSTEMBACK_HPP + +#include "../libsystemback/sblib.hpp" +#include +#include +#include + +#define QTblWI QTableWidgetItem +#define QLWI QListWidgetItem +#define QTrWI QTreeWidgetItem +#define cQTrWI const QTreeWidgetItem + +namespace Ui { +class systemback; +} + +class systemback : public QMainWindow +{ + Q_OBJECT + +public: + systemback(); + ~systemback(); + + bool fscrn; + +protected: + bool eventFilter(QObject *, QEvent *ev); + + void keyReleaseEvent(QKeyEvent *ev), + keyPressEvent(QKeyEvent *ev), + closeEvent(QCloseEvent *ev); + +private: + enum { Normal = 100, High = 147, Max = 200 }; + + Ui::systemback *ui; + + struct { + QStr txt; + uchar type, pnts; + } prun; + + struct { + QStr name; + bool isEFI; + } grub; + + QWdt wndw, fwdgt; + QFont bfnt; + QTimer utimer, *shdltimer, *dlgtimer, *intrptimer; + QStr cpoint, pname, hash; + QBA ocfg; + ushort dialog; + short wgeom[4], cpos; + uchar busycnt, ppipe, sfctr, icnt; + bool sislive, wismax, wmblck, uchkd, nrxth, ickernel, irblck, utblck, nohmcpy[2], sstart, intrrpt; + + QLE getpoint(uchar num); + QCB getppipe(uchar num); + + QStr guname(), + ckname(); + + QRect sgeom(bool rdc = false, QDW dtp = nullptr); + ushort ss(ushort dsize); + template bool cfmod(const T &path, ushort mode); + + bool minside(cQRect &rct), + minside(QWdt wgt); + + void windowmove(ushort nwidth, ushort nheight, bool fxdw = true), + dialogopen(ushort dlg = 0, cbstr &dev = nullptr), + ilstupdt(bool inc = false, cQStr &dir = nullptr), + pset(uchar type, cbstr &tend = nullptr), + dirxpnd(QTrWI *item, bool inc = false), + ptxtchange(uchar num, cQStr &txt), + setwontop(bool state = true), + busy(bool state = true), + pnmchange(uchar num), + pntupgrade(), + emptycache(), + statustart(), + systemcopy(), + livewrite(), + rmntcheck(), + stschange(), + bttnsshow(), + bttnshide(), + restore(), + repair(); + +#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) +private slots: +#endif + void dialogtimer(); + +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) +private slots: +#endif + void schedulertimer(); + void unitimer(); + +private slots: + void benter(bool click = false); + void abtreleased(); + void wbreleased(); + void wreleased(); + void rreleased(); + void mpressed(); + void rpressed(); + void wpressed(); + void bpressed(); + void wbenter(); + void wbleave(); + void foutpnt(); + void renter(); + void rleave(); + void wmove(); + void rmove(); + void bmove(); + + void on_partitionsettings_currentItemChanged(QTblWI *crrnt, QTblWI *prvs); + void on_livedevices_currentItemChanged(QTblWI *crrnt, QTblWI *prvs); + void on_grubreinstallrestore_currentIndexChanged(const QStr &arg1); + void on_grubreinstallrepair_currentIndexChanged(const QStr &arg1); + void on_grubinstallcopy_currentIndexChanged(const QStr &arg1); + void on_repairpartition_currentIndexChanged(const QStr &arg1); + void on_repairmountpoint_currentTextChanged(const QStr &arg1); + void on_windowposition_currentIndexChanged(const QStr &arg1); + void on_includeusers_currentIndexChanged(const QStr &arg1); + void on_excludeitemslist_currentItemChanged(QTrWI *crrnt); + void on_includeitemslist_currentItemChanged(QTrWI *crrnt); + void on_filesystem_currentIndexChanged(const QStr &arg1); + void on_languages_currentIndexChanged(const QStr &arg1); + void on_mountpoint_currentTextChanged(const QStr &arg1); + void on_excludedlist_currentItemChanged(QLWI *crrnt); + void on_includedlist_currentItemChanged(QLWI *crrnt); + void on_styles_currentIndexChanged(const QStr &arg1); + void on_admins_currentIndexChanged(const QStr &arg1); + void on_adminpassword_textChanged(const QStr &arg1); + void on_rootpassword1_textChanged(const QStr &arg1); + void on_users_currentIndexChanged(const QStr &arg1); + void on_excludeitemslist_itemCollapsed(QTrWI *item); + void on_dirchoose_currentItemChanged(QTrWI *crrnt); + void on_excludeitemslist_itemExpanded(QTrWI *item); + void on_includeitemslist_itemExpanded(QTrWI *item); + void on_livelist_currentItemChanged(QLWI *crrnt); + void on_password1_textChanged(const QStr &arg1); + void on_usersettingscopy_stateChanged(int arg1); + void on_autorestoreoptions_clicked(bool chckd); + void on_incrementaldisable_clicked(bool chckd); + void on_livename_textChanged(const QStr &arg1); + void on_fullname_textChanged(const QStr &arg1); + void on_username_textChanged(const QStr &arg1); + void on_hostname_textChanged(const QStr &arg1); + void on_autorepairoptions_clicked(bool chckd); + void on_point10_textChanged(const QStr &arg1); + void on_point11_textChanged(const QStr &arg1); + void on_point12_textChanged(const QStr &arg1); + void on_point13_textChanged(const QStr &arg1); + void on_point14_textChanged(const QStr &arg1); + void on_point15_textChanged(const QStr &arg1); + void on_skipfstabrestore_clicked(bool chckd); + void on_languageoverride_clicked(bool chckd); + void on_schedulerdisable_clicked(bool chckd); + void on_cachemptydisable_clicked(bool chckd); + void on_point1_textChanged(const QStr &arg1); + void on_point2_textChanged(const QStr &arg1); + void on_point3_textChanged(const QStr &arg1); + void on_point4_textChanged(const QStr &arg1); + void on_point5_textChanged(const QStr &arg1); + void on_point6_textChanged(const QStr &arg1); + void on_point7_textChanged(const QStr &arg1); + void on_point8_textChanged(const QStr &arg1); + void on_point9_textChanged(const QStr &arg1); + void on_skipfstabrepair_clicked(bool chckd); + void on_userdatainclude_clicked(bool chckd); + void on_usexzcompressor_clicked(bool chckd); + void on_dirchoose_itemExpanded(QTrWI *item); + void on_configurationfilesrestore_clicked(); + void on_styleoverride_clicked(bool chckd); + void on_autoisocreate_clicked(bool chckd); + void on_repairpartitionrefresh_clicked(); + void on_alwaysontop_clicked(bool chckd); + void on_silentmode_clicked(bool chckd); + void on_livedevicesrefresh_clicked(); + void on_liveworkdirbutton_clicked(); + void on_rootpassword2_textChanged(); + void on_partitionrefresh2_clicked(); + void on_partitionrefresh3_clicked(); + void on_excluderemoveitem_clicked(); + void on_includeremoveitem_clicked(); + void on_format_clicked(bool chckd); + void on_functionmenunext_clicked(); + void on_functionmenuback_clicked(); + void on_storagedirbutton_clicked(); + void on_partitionrefresh_clicked(); + void on_fullname_editingFinished(); + void on_schedulerrefresh_clicked(); + void on_passwordinputok_clicked(); + void on_dirchoosecancel_clicked(); + void on_changepartition_clicked(); + void on_newrestorepoint_clicked(); + void on_partitiondelete_clicked(); + void on_schedulerstart_clicked(); + void on_schedulerstate_clicked(); + void on_pointhighlight_clicked(); + void on_livewritestart_clicked(); + void on_schedulerlater_clicked(); + void on_excludeadditem_clicked(); + void on_includeadditem_clicked(); + void on_systemupgrade_clicked(); + void on_systemrestore_clicked(); + void on_password2_textChanged(); + void on_schedulerback_clicked(); + void on_unmountdelete_clicked(); + void on_dialogcancel_clicked(); + void on_schedulemenu_clicked(); + void on_pointexclude_clicked(); + void on_systemrepair_clicked(); + void on_newpartition_clicked(); + void on_settingsmenu_clicked(); + void on_settingsback_clicked(); + void on_startcancel_clicked(); + void on_restoremenu_clicked(); + void on_installmenu_clicked(); + void on_excludemenu_clicked(); + void on_includemenu_clicked(); + void on_restoreback_clicked(); + void on_installback_clicked(); + void on_excludeback_clicked(); + void on_licensemenu_clicked(); + void on_licenseback_clicked(); + void on_pointpipe10_clicked(); + void on_pointpipe11_clicked(); + void on_pointpipe12_clicked(); + void on_pointpipe13_clicked(); + void on_pointpipe14_clicked(); + void on_pointpipe15_clicked(); + void on_pointrename_clicked(); + void on_dirchooseok_clicked(); + void on_fullrestore_clicked(); + void on_restorenext_clicked(); + void on_installnext_clicked(); + void on_repairmount_clicked(); + void on_liveexclude_clicked(); + void on_pointdelete_clicked(); + void on_liveconvert_clicked(); + void on_scalingdown_clicked(); + void on_includeback_clicked(); + void on_repairmenu_clicked(); + void on_repairback_clicked(); + void on_pointpipe1_clicked(); + void on_pointpipe2_clicked(); + void on_pointpipe3_clicked(); + void on_pointpipe4_clicked(); + void on_pointpipe5_clicked(); + void on_pointpipe6_clicked(); + void on_pointpipe7_clicked(); + void on_pointpipe8_clicked(); + void on_pointpipe9_clicked(); + void on_livedelete_clicked(); + void on_fullrepair_clicked(); + void on_grubrepair_clicked(); + void on_repairnext_clicked(); + void on_minutedown_clicked(); + void on_seconddown_clicked(); + void on_dirrefresh_clicked(); + void on_pnumber10_clicked(); + void on_aboutmenu_clicked(); + void on_aboutback_clicked(); + void on_interrupt_clicked(); + void on_scalingup_clicked(); + void on_pnumber3_clicked(); + void on_pnumber4_clicked(); + void on_pnumber5_clicked(); + void on_pnumber6_clicked(); + void on_pnumber7_clicked(); + void on_pnumber8_clicked(); + void on_pnumber9_clicked(); + void on_copymenu_clicked(); + void on_copyback_clicked(); + void on_livemenu_clicked(); + void on_liveback_clicked(); + void on_dialogok_clicked(); + void on_copynext_clicked(); + void on_hourdown_clicked(); + void on_minuteup_clicked(); + void on_secondup_clicked(); + void on_livenew_clicked(); + void on_daydown_clicked(); + void on_unmount_clicked(); + void on_adduser_clicked(); + void on_hourup_clicked(); + void on_dayup_clicked(); +}; + +template bool systemback::cfmod(const T &path, ushort mode) +{ + return chmod(bstr(path), mode) ? sb::error("\n " % tr("An error occurred while changing the access permissions of the following file:") % "\n\n " % QStr(path) % "\n\n") : true; +} + +#endif diff --git a/systemback/systemback.pro b/systemback/systemback.pro new file mode 100644 index 0000000..181ffb2 --- /dev/null +++ b/systemback/systemback.pro @@ -0,0 +1,55 @@ +QT += core \ + gui \ + widgets + +TARGET = systemback + +CONFIG += c++11 \ + exceptions_off + +TEMPLATE = app + +DEFINES += _FILE_OFFSET_BITS=64 + +SOURCES += main.cpp \ + systemback.cpp + +HEADERS += systemback.hpp \ + bttnevent.hpp \ + chckbxevent.hpp \ + lblevent.hpp \ + lndtevent.hpp \ + pnlevent.hpp \ + tblwdgtevent.hpp + +FORMS += systemback.ui + +RESOURCES += pictures.qrc + +QMAKE_CXXFLAGS += -g \ + -fno-rtti \ + -fvisibility=hidden \ + -fvisibility-inlines-hidden \ + -fno-asynchronous-unwind-tables + +CONFIG(debug, debug|release) { + QMAKE_CXXFLAGS_WARN_ON += -Wextra \ + -Wshadow \ + -Werror +} + +QMAKE_LFLAGS += -g \ + -Wl,-rpath=/usr/lib/systemback \ + -Wl,--as-needed \ + -fuse-ld=gold \ + -Wl,-z,relro + +! equals(QMAKE_CXX, clang++) { + QMAKE_CXXFLAGS += -flto + QMAKE_LFLAGS += -flto +} + +LIBS += -L../libsystemback \ + -lsystemback \ + -lcrypt \ + -lX11 diff --git a/systemback/systemback.ui b/systemback/systemback.ui new file mode 100644 index 0000000..0738652 --- /dev/null +++ b/systemback/systemback.ui @@ -0,0 +1,7849 @@ + + + systemback + + + + 0 + 0 + 1392 + 3446 + + + + Systemback + + + + :/pictures/systemback.png:/pictures/systemback.png + + + true + + + + + + + + + 0 + 0 + 1392 + 3426 + + + + + true + + + + 402 + 3305 + 138 + 48 + + + + + 20 + + + + true + + + + + 2 + 2 + 44 + 44 + + + + + FreeSans + + + + PointingHandCursor + + + true + + + + + + Qt::AlignCenter + + + + + + 47 + 2 + 44 + 44 + + + + PointingHandCursor + + + true + + + - + + + Qt::AlignCenter + + + + + + 92 + 2 + 44 + 44 + + + + PointingHandCursor + + + true + + + X + + + Qt::AlignCenter + + + + + + + 0 + 0 + 1393 + 3104 + + + + true + + + + + 1 + 1344 + 696 + 440 + + + + true + + + + + 8 + 0 + 680 + 32 + + + + Full name of the new user: + + + + + + 8 + 72 + 680 + 32 + + + + New username to login: + + + + + + 8 + 144 + 680 + 32 + + + + New user account password: + + + + + + 8 + 216 + 680 + 32 + + + + New root password (optional, not recommended for Ubuntu): + + + + + + 8 + 288 + 680 + 32 + + + + New hostname: + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + false + + + + 544 + 392 + 136 + 32 + + + + PointingHandCursor + + + Next + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + + 24 + 32 + 616 + 32 + + + + false + + + 80 + + + + + + 647 + 108 + 26 + 24 + + + + :/pictures/ok.png + + + true + + + Qt::AlignCenter + + + + + + 335 + 180 + 26 + 24 + + + + :/pictures/ok.png + + + true + + + Qt::AlignCenter + + + + + + 335 + 252 + 26 + 24 + + + + :/pictures/ok.png + + + true + + + Qt::AlignCenter + + + + + + 647 + 324 + 26 + 24 + + + + :/pictures/ok.png + + + true + + + Qt::AlignCenter + + + + + + 647 + 107 + 26 + 26 + + + + :/pictures/error.png + + + true + + + Qt::AlignCenter + + + + + + 335 + 179 + 26 + 26 + + + + :/pictures/error.png + + + true + + + Qt::AlignCenter + + + + + + 335 + 251 + 26 + 26 + + + + :/pictures/error.png + + + true + + + Qt::AlignCenter + + + + + + 647 + 323 + 26 + 26 + + + + :/pictures/error.png + + + true + + + Qt::AlignCenter + + + + + + 24 + 104 + 616 + 32 + + + + false + + + 32 + + + + + + 24 + 320 + 616 + 32 + + + + false + + + 64 + + + + + + 24 + 176 + 304 + 32 + + + + false + + + 35 + + + QLineEdit::Password + + + + + false + + + + 368 + 176 + 304 + 32 + + + + false + + + 35 + + + QLineEdit::Password + + + + + + 24 + 248 + 304 + 32 + + + + false + + + 35 + + + QLineEdit::Password + + + + + false + + + + 368 + 248 + 304 + 32 + + + + false + + + 35 + + + QLineEdit::Password + + + + + + 647 + 36 + 26 + 24 + + + + :/pictures/ok.png + + + true + + + Qt::AlignCenter + + + hostnameerror + rootpassworderror + passworderror + usernameerror + hostnamepipe + usernamepipe + passwordpipe + rootpasswordpipe + label_8 + label_10 + label_11 + label_12 + label_13 + installback + installnext + username + hostname + password1 + password2 + rootpassword1 + rootpassword2 + fullname + fullnamepipe + + + + + 1 + 1784 + 696 + 440 + + + + true + + + + + 0 + 0 + 320 + 32 + + + + + 75 + true + + + + Working directory + + + Qt::AlignCenter + + + + + + 320 + 0 + 376 + 32 + + + + + 75 + true + + + + Created Live images + + + Qt::AlignCenter + + + + + + 0 + 72 + 320 + 32 + + + + + 75 + true + + + + Name of the Live system + + + Qt::AlignCenter + + + + + + 0 + 144 + 320 + 32 + + + + + 75 + true + + + + Options + + + Qt::AlignCenter + + + + + + 0 + 208 + 432 + 32 + + + + + 75 + true + + + + Write target + + + Qt::AlignCenter + + + + + + 464 + 208 + 232 + 32 + + + + + 75 + true + + + + Live operations + + + Qt::AlignCenter + + + + + + 8 + 104 + 272 + 32 + + + + + true + + + + Qt::ClickFocus + + + false + + + auto + + + 32 + + + + + + 287 + 108 + 26 + 24 + + + + :/pictures/ok.png + + + true + + + Qt::AlignCenter + + + + + + 287 + 107 + 26 + 26 + + + + :/pictures/error.png + + + true + + + Qt::AlignCenter + + + + + + 8 + 182 + 204 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Include the user data files + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + 390 + 416 + 300 + 24 + + + + Kendek, GPLv3 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 432 + 284 + 40 + 48 + + + + PointingHandCursor + + + Qt::NoFocus + + + Redetect devices + + + + :/pictures/refresh.png:/pictures/refresh.png + + + + 23 + 23 + + + + + + false + + + + 488 + 360 + 184 + 32 + + + + PointingHandCursor + + + Qt::ClickFocus + + + Delete + + + + + false + + + + 488 + 280 + 184 + 32 + + + + PointingHandCursor + + + Qt::ClickFocus + + + Write to target + + + + + false + + + + 488 + 320 + 184 + 32 + + + + PointingHandCursor + + + Qt::ClickFocus + + + Convert to ISO + + + + + false + + + + 488 + 240 + 184 + 32 + + + + PointingHandCursor + + + Qt::ClickFocus + + + Create new + + + + + + 8 + 32 + 304 + 32 + + + + true + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + + 2 + 2 + 274 + 28 + + + + ArrowCursor + + + Qt::NoFocus + + + false + + + background-color: rgba(0, 0, 0, 0) + + + false + + + true + + + + + + 278 + 2 + 24 + 28 + + + + + 75 + true + + + + PointingHandCursor + + + Qt::NoFocus + + + ... + + + true + + + + + + + 8 + 240 + 416 + 136 + + + + Qt::ClickFocus + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + false + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + false + + + false + + + 4 + + + false + + + 10 + + + false + + + true + + + false + + + 20 + + + false + + + 20 + + + + + + + + + + 328 + 32 + 360 + 168 + + + + Qt::ClickFocus + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::SelectRows + + + true + + + + + + 5 + 5 + 686 + 430 + + + + livenameerror + livenamepipe + liveworkdirarea + label_14 + label_15 + label_16 + label_17 + label_18 + label_19 + livename + userdatainclude + liveback + label_20 + livedevicesrefresh + livedelete + livewritestart + liveconvert + livenew + livedevices + livelist + livecover + + + + + 1 + 2224 + 696 + 440 + + + + true + + + + + 0 + 0 + 696 + 48 + + + + Mount the faulty system partition(s) to the '/mnt' directory according to the original structure.<br>('/' -> '/mnt', '/home' -> '/mnt/home', etc.) + + + Qt::AlignCenter + + + true + + + + + + 96 + 56 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + 216 + 56 + 208 + 32 + + + + PointingHandCursor + + + Qt::ClickFocus + + + true + + + + + false + + + + 432 + 56 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Mount + + + + 26 + 26 + + + + + + + 552 + 52 + 48 + 40 + + + + PointingHandCursor + + + Qt::NoFocus + + + Reset mounts + + + + :/pictures/refresh.png:/pictures/refresh.png + + + + 23 + 23 + + + + + + + 0 + 96 + 696 + 32 + + + + + 75 + true + + + + Repair type + + + Qt::AlignCenter + + + + + + 0 + 224 + 696 + 32 + + + + + 75 + true + + + + Options + + + Qt::AlignCenter + + + + + false + + + + 212 + 320 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + 8 + 198 + 126 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + GRUB 2 repair + + + + + + 8 + 134 + 156 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + System files repair + + + true + + + + + + 8 + 320 + 201 + 32 + + + + Reinstall GRUB 2 bootloader: + + + + + + 8 + 262 + 131 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Auto detection + + + true + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + 8 + 166 + 99 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Full repair + + + + + false + + + + 8 + 294 + 209 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Do not repair the fstab file + + + + + false + + + + 544 + 392 + 136 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Next + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 212 + 320 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + QComboBox::AdjustToContents + + + + + + 5 + 5 + 686 + 430 + + + + grubreinstallrepairdisable + label_21 + repairpartition + repairmountpoint + repairmount + repairpartitionrefresh + label_22 + label_23 + grubreinstallrepair + grubrepair + systemrepair + grubreinstallrepairtext + autorepairoptions + repairback + fullrepair + skipfstabrepair + repairnext + repaircover + + + + + 1 + 2664 + 696 + 440 + + + + true + + + + + 8 + 6 + 440 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Exclude hidden user files and directories from restore points + + + true + + + + + + 8 + 38 + 406 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Exclude user data files and directories from Live system + + + + + + 8 + 64 + 304 + 32 + + + + + 75 + true + + + + Excludable items + + + Qt::AlignCenter + + + + + + 384 + 64 + 304 + 32 + + + + + 75 + true + + + + Excluded items + + + Qt::AlignCenter + + + + + false + + + + 324 + 248 + 48 + 48 + + + + PointingHandCursor + + + Qt::NoFocus + + + Remove item from the exclusion list + + + + :/pictures/leftarrow.png:/pictures/leftarrow.png + + + + 24 + 22 + + + + + + false + + + + 324 + 176 + 48 + 48 + + + + PointingHandCursor + + + Qt::NoFocus + + + Add item to the exclusion list + + + + :/pictures/rightarrow.png:/pictures/rightarrow.png + + + + 24 + 22 + + + + + + + 390 + 416 + 300 + 24 + + + + Kendek, GPLv3 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + 8 + 96 + 304 + 280 + + + + Qt::ClickFocus + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::SelectItems + + + true + + + + 1 + + + + + + + 384 + 96 + 304 + 280 + + + + Qt::ClickFocus + + + QAbstractItemView::NoEditTriggers + + + false + + + true + + + + + + 686 + 430 + 10 + 10 + + + + PointingHandCursor + + + :/pictures/resize.png + + + true + + + Qt::AlignCenter + + + + + + 5 + 5 + 686 + 430 + + + + + + + + 697 + 464 + 696 + 440 + + + + true + + + + + 8 + 8 + 113 + 32 + + + + Scheduler state: + + + + + + 126 + 8 + 136 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Disabled + + + + 13 + 13 + + + + true + + + + + + 0 + 48 + 696 + 32 + + + + + 75 + true + + + + Timer settings + + + Qt::AlignCenter + + + + + + 0 + 272 + 696 + 32 + + + + + 75 + true + + + + Options + + + Qt::AlignCenter + + + + + + 8 + 80 + 680 + 32 + + + + Waiting time before creating a new restore point: + + + + + + 8 + 212 + 167 + 32 + + + + Visible countdown time: + + + + + + 8 + 336 + 240 + 32 + + + + Pop-up window position on screen: + + + + + false + + + + 8 + 304 + 138 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Use silent mode + + + + + false + + + + 253 + 336 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + 390 + 416 + 300 + 24 + + + + Kendek, GPLv3 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 181 + 112 + 336 + 72 + + + + true + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + false + + + + 0 + 0 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + More + + + + :/pictures/up.png:/pictures/up.png + + + + 24 + 12 + + + + true + + + 50 + + + true + + + + + false + + + + 112 + 0 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + More + + + + :/pictures/up.png:/pictures/up.png + + + + 24 + 12 + + + + true + + + 50 + + + true + + + + + false + + + + 224 + 0 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + More + + + + :/pictures/up.png:/pictures/up.png + + + + 24 + 12 + + + + true + + + 50 + + + true + + + + + false + + + + 224 + 48 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + Less + + + + :/pictures/down.png:/pictures/down.png + + + + 24 + 12 + + + + true + + + 50 + + + true + + + + + false + + + + 112 + 48 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + Less + + + + :/pictures/down.png:/pictures/down.png + + + + 24 + 12 + + + + true + + + 50 + + + true + + + + + false + + + + 0 + 48 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + Less + + + + :/pictures/down.png:/pictures/down.png + + + + 24 + 12 + + + + true + + + 50 + + + true + + + + + + 8 + 24 + 96 + 24 + + + + true + + + Qt::AlignCenter + + + + + + 104 + 24 + 16 + 24 + + + + : + + + Qt::AlignCenter + + + + + + 120 + 24 + 96 + 24 + + + + true + + + Qt::AlignCenter + + + + + + 216 + 24 + 16 + 24 + + + + : + + + Qt::AlignCenter + + + + + + 232 + 24 + 96 + 24 + + + + true + + + Qt::AlignCenter + + + + + + + 180 + 192 + 112 + 72 + + + + true + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + false + + + + 0 + 0 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + More + + + + :/pictures/up.png:/pictures/up.png + + + + 24 + 12 + + + + true + + + 50 + + + true + + + + + false + + + + 0 + 48 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + Less + + + + :/pictures/down.png:/pictures/down.png + + + + 24 + 12 + + + + true + + + 50 + + + true + + + + + + 8 + 24 + 96 + 24 + + + + true + + + Qt::AlignCenter + + + + + + + + 697 + 904 + 696 + 440 + + + + true + + + + + 8 + 0 + 680 + 32 + + + + Simple system backup and restore application with extra features + + + + + + 8 + 32 + 680 + 32 + + + + Project homepage: + + + + + + 24 + 64 + 311 + 32 + + + + + true + + + + PointingHandCursor + + + https://sourceforge.net/projects/systemback + + + + + + 24 + 96 + 241 + 32 + + + + + true + + + + PointingHandCursor + + + https://launchpad.net/systemback + + + + + + 8 + 128 + 680 + 32 + + + + Contact: + + + + + + 24 + 160 + 141 + 32 + + + + + true + + + + PointingHandCursor + + + nemh@freemail.hu + + + + + + 8 + 192 + 408 + 32 + + + + Donate: + + + + + + 24 + 224 + 51 + 32 + + + + + true + + + + PointingHandCursor + + + https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZQ668BBR7UCEQ + + + PayPal + + + + + + 8 + 256 + 408 + 32 + + + + Systemback version: + + + + + + 25 + 288 + 392 + 32 + + + + IBeamCursor + + + Qt::TextSelectableByMouse + + + + + + 424 + 160 + 256 + 256 + + + + :/pictures/logo.png + + + true + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + 168 + 392 + 136 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + License + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + + 390 + 416 + 300 + 24 + + + + (c) 2016, Krisztián Kende + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 697 + 1344 + 696 + 440 + + + + true + + + + false + + + + 8 + 8 + 680 + 368 + + + + Qt::NoFocus + + + false + + + QFrame::NoFrame + + + QTextEdit::NoWrap + + + Qt::NoTextInteraction + + + + + + 390 + 416 + 300 + 24 + + + + (c) 2016, Krisztián Kende + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + + 697 + 2224 + 696 + 440 + + + + true + + + + + 8 + 0 + 651 + 32 + + + + + + + 664 + 0 + 32 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Re-read directories + + + + :/pictures/refresh.png:/pictures/refresh.png + + + + 21 + 21 + + + + true + + + + + + 18 + 400 + 191 + 32 + + + + + 75 + true + + + + Writable Linux filesystem! + + + + + + 576 + 400 + 112 + 32 + + + + PointingHandCursor + + + OK + + + + 13 + 13 + + + + + + + 456 + 400 + 112 + 32 + + + + PointingHandCursor + + + Cancel + + + + 13 + 13 + + + + + + + 686 + 430 + 10 + 10 + + + + PointingHandCursor + + + :/pictures/resize.png + + + true + + + Qt::AlignCenter + + + + + + 0 + 32 + 696 + 360 + + + + Qt::ClickFocus + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::SelectItems + + + true + + + + 1 + + + + + + + + 1 + 24 + 696 + 440 + + + + true + + + + false + + + + 7 + 238 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Maximum number of temporary restore points + + + + + false + + + + 7 + 158 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Maximum number of temporary restore points + + + + + false + + + + 7 + 358 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Maximum number of temporary restore points + + + + + false + + + + 7 + 118 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Maximum number of temporary restore points + + + false + + + + + false + + + + 7 + 198 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Maximum number of temporary restore points + + + true + + + + + false + + + + 7 + 318 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Maximum number of temporary restore points + + + + + false + + + + 7 + 398 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Maximum number of temporary restore points + + + + + false + + + + 7 + 278 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Maximum number of temporary restore points + + + + + + 0 + 0 + 238 + 32 + + + + + 75 + true + + + + Restore points + + + Qt::AlignCenter + + + + + + 0 + 0 + 646 + 32 + + + + + 75 + true + + + + Highlighted restore points + + + Qt::AlignCenter + + + + + + 0 + 224 + 648 + 32 + + + + + 75 + true + + + + Point operations + + + Qt::AlignCenter + + + + + false + + + + 232 + 256 + 184 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Create new + + + + + false + + + + 232 + 296 + 184 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Highlight + + + + + false + + + + 232 + 336 + 184 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Rename + + + + + false + + + + 232 + 376 + 184 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Delete + + + + + false + + + + 401 + 38 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 401 + 78 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 401 + 118 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 401 + 158 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 401 + 198 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + + 424 + 0 + 272 + 32 + + + + + 75 + true + + + + Storage directory + + + Qt::AlignCenter + + + + + + 424 + 64 + 272 + 32 + + + + + 75 + true + + + + Function menu + + + Qt::AlignCenter + + + + + + 448 + 96 + 224 + 272 + + + + + + 0 + 0 + 448 + 272 + + + + + false + + + + 224 + 40 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Schedule + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 224 + 120 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + About + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 224 + 80 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Settings + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 0 + 200 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + System upgrade + + + + + false + + + + 0 + 80 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + System install + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 0 + 120 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Live system create + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 0 + 160 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + System repair + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 0 + 0 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + System restore + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 0 + 40 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + System copy + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 0 + 240 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Exclude + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 224 + 0 + 224 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Include + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + + + false + + + + 504 + 376 + 48 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/menuback.png:/pictures/menuback.png + + + + 15 + 16 + + + + + + true + + + + 568 + 376 + 48 + 32 + + + + PointingHandCursor + + + Next + + + + :/pictures/menunext.png:/pictures/menunext.png + + + + 15 + 16 + + + + + + + 390 + 416 + 300 + 24 + + + + Kendek, GPLv3 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 440 + 32 + 240 + 32 + + + + true + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + + 2 + 2 + 210 + 28 + + + + + false + + + + ArrowCursor + + + Qt::NoFocus + + + false + + + background-color: rgba(0, 0, 0, 0) + + + false + + + true + + + + + + 214 + 2 + 24 + 28 + + + + + 75 + true + + + + PointingHandCursor + + + Qt::NoFocus + + + Change path + + + ... + + + true + + + + + + + 28 + 32 + 372 + 392 + + + + + false + + + + 0 + 0 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 40 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 80 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 120 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 160 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 200 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + not used + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 240 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + not used + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 280 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + not used + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 320 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + not used + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 0 + 360 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + not used + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 204 + 0 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 204 + 40 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 204 + 80 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 204 + 120 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 204 + 160 + 168 + 32 + + + + Qt::ClickFocus + + + false + + + empty + + + 128 + + + Qt::AlignCenter + + + + + false + + + + 169 + 6 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 46 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 86 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 126 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 166 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 206 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 246 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 286 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 326 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + + false + + + + 169 + 366 + 20 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Select restore point + + + + label_3 + points + widget + storagedirarea + label_4 + label_2 + pnumber6 + pnumber4 + pnumber9 + pnumber3 + pnumber5 + pnumber8 + pnumber10 + pnumber7 + label + newrestorepoint + pointhighlight + pointrename + pointdelete + pointpipe11 + pointpipe12 + pointpipe13 + pointpipe14 + pointpipe15 + label_5 + functionmenuback + functionmenunext + label_6 + + + + + 0 + 0 + 698 + 24 + + + + + 75 + true + + + + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0, 0, 0, 205), stop:1 rgba(255, 255, 255, 0)) + + + + + + 674 + 0 + 24 + 24 + + + + + 75 + true + + + + PointingHandCursor + + + ::: + + + Qt::AlignCenter + + + + + + 0 + 0 + 698 + 24 + + + + + 75 + true + + + + Systemback + + + Qt::AlignCenter + + + + + + 1 + 464 + 696 + 440 + + + + true + + + + + 0 + 0 + 696 + 32 + + + + + 75 + true + + + + Restore type + + + Qt::AlignCenter + + + + + + 8 + 38 + 107 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Full restore + + + true + + + + + + 8 + 70 + 165 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + System files restore + + + + + + 8 + 102 + 258 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + User(s) configuration files restore + + + + + false + + + + 24 + 134 + 297 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Keep newly installed configuration files + + + + + + 24 + 160 + 106 + 32 + + + + Include user(s): + + + + + false + + + + 135 + 160 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + 0 + 192 + 696 + 32 + + + + + 75 + true + + + + Options + + + Qt::AlignCenter + + + + + + 8 + 230 + 131 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Auto detection + + + true + + + + + false + + + + 8 + 262 + 219 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Do not restore the fstab file + + + + + + 8 + 288 + 200 + 32 + + + + Reinstall GRUB 2 bootloader: + + + + + false + + + + 213 + 288 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + 544 + 392 + 136 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Next + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 213 + 288 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + QComboBox::AdjustToContents + + + grubreinstallrestoredisable + label_7 + fullrestore + systemrestore + configurationfilesrestore + keepfiles + includeuserstext + includeusers + label_9 + autorestoreoptions + skipfstabrestore + grubreinstallrestoretext + grubreinstallrestore + restoreback + restorenext + + + + + 1 + 904 + 696 + 440 + + + + true + + + + + 0 + 0 + 696 + 32 + + + + + 75 + true + + + + Partition settings + + + Qt::AlignCenter + + + + + + 0 + 280 + 696 + 32 + + + + + 75 + true + + + + Options + + + Qt::AlignCenter + + + + + + 8 + 318 + 246 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Transfer user configuration files + + + true + + + + + + 8 + 318 + 162 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Copy user data files + + + + + + 196 + 344 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + 8 + 344 + 183 + 32 + + + + Install GRUB 2 bootloader: + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + false + + + + 544 + 392 + 136 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Next + + + + :/pictures/next.png:/pictures/next.png + + + + 13 + 13 + + + + + + false + + + + 196 + 344 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + QComboBox::AdjustToContents + + + + + + 8 + 32 + 544 + 240 + + + + Qt::ClickFocus + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + false + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + false + + + false + + + 11 + + + false + + + 10 + + + true + + + false + + + 20 + + + false + + + 20 + + + + + + + + + + + + + + + + + 686 + 430 + 10 + 10 + + + + PointingHandCursor + + + :/pictures/resize.png + + + true + + + Qt::AlignCenter + + + + + + 5 + 5 + 686 + 430 + + + + + + + 552 + 32 + 144 + 240 + + + + + false + + + + 34 + 170 + 81 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Format + + + true + + + + + + 16 + 200 + 48 + 40 + + + + PointingHandCursor + + + Qt::NoFocus + + + Reset partitions settings + + + + :/pictures/refresh.png:/pictures/refresh.png + + + + 23 + 23 + + + + + + false + + + + 16 + 0 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Unmount + + + + 13 + 13 + + + + + + false + + + + 16 + 128 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + false + + + + 80 + 200 + 48 + 40 + + + + PointingHandCursor + + + Qt::NoFocus + + + Change partition settings + + + + + + + :/pictures/leftgreenarrow.png:/pictures/leftgreenarrow.png + + + + 24 + 22 + + + + + + + 0 + 96 + 144 + 32 + + + + Filesystem: + + + Qt::AlignCenter + + + + + false + + + + 16 + 64 + 112 + 32 + + + + PointingHandCursor + + + Qt::ClickFocus + + + true + + + + + + 0 + 32 + 144 + 32 + + + + Mount point: + + + Qt::AlignCenter + + + + + + + 552 + 32 + 144 + 240 + + + + + + 16 + 80 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Reset partitions settings + + + + + + + :/pictures/refresh.png:/pictures/refresh.png + + + + 20 + 20 + + + + + + false + + + + 16 + 40 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + QPushButton:enabled{color: red} + + + ! Delete ! + + + + 13 + 13 + + + + + + false + + + + 16 + 0 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Unmount + + + + 13 + 13 + + + + + + + + 552 + 32 + 144 + 240 + + + + + + 80 + 64 + 48 + 40 + + + + PointingHandCursor + + + Qt::NoFocus + + + Add new partition + + + + + + + :/pictures/leftgreenarrow.png:/pictures/leftgreenarrow.png + + + + 24 + 22 + + + + + + + 16 + 64 + 48 + 40 + + + + PointingHandCursor + + + Qt::NoFocus + + + Reset partitions settings + + + + + + + :/pictures/refresh.png:/pictures/refresh.png + + + + 23 + 23 + + + + + + + 0 + 0 + 144 + 24 + + + + Create new: + + + Qt::AlignHCenter|Qt::AlignTop + + + + + + 16 + 24 + 112 + 32 + + + + Qt::ClickFocus + + + Qt::AlignCenter + + + QAbstractSpinBox::PlusMinus + + + true + + + MiB + + + 1 + + + + + + + 313 + 340 + 375 + 40 + + + + Need to set the mount point as '/boot/efi'! + + + true + + + efiwarning + partitionsettingspanel3 + partitionsettingspanel2 + grubinstallcopydisable + partitionsettingstext + partitionoptionstext + usersettingscopy + userdatafilescopy + grubinstallcopy + grubinstalltext + copyback + copynext + partitionsettings + partitionsettingspanel1 + copycover + copyresize + + + + + 0 + 3 + 24 + 21 + + + + PointingHandCursor + + + Window DPI scaling + + + + + + Qt::AlignCenter + + + + + + 697 + 2664 + 116 + 76 + + + + true + + + + + 2 + 2 + 112 + 72 + + + + true + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + + 8 + 24 + 96 + 24 + + + + Multiplier factor for scaling the window contents + + + true + + + auto + + + Qt::AlignCenter + + + + + + 0 + 48 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + + :/pictures/down.png:/pictures/down.png + + + + 24 + 12 + + + + true + + + + + + 0 + 0 + 112 + 24 + + + + PointingHandCursor + + + Qt::NoFocus + + + + :/pictures/up.png:/pictures/up.png + + + + 24 + 12 + + + + true + + + + + + + + 697 + 1784 + 696 + 440 + + + + true + + + + + 390 + 416 + 300 + 24 + + + + Kendek, GPLv3 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + 0 + 0 + 696 + 32 + + + + + 75 + true + + + + User interface + + + Qt::AlignCenter + + + + + false + + + + 271 + 32 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + false + + + + 203 + 72 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + 8 + 118 + 182 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Window always on top + + + + + + 0 + 140 + 696 + 32 + + + + + 75 + true + + + + System + + + Qt::AlignCenter + + + + + + 8 + 306 + 426 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Disable scheduler daemon starting for the following users: + + + + + + 8 + 242 + 327 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Use XZ compressor for squashfs filesystems + + + + + + 8 + 38 + 259 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Override auto-detected language: + + + + + + 8 + 78 + 191 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Override the used style: + + + + + + 8 + 178 + 539 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Disable incremental restore points (do not use hard links between backups) + + + + + + 200 + 334 + 416 + 32 + + + + Qt::NoFocus + + + true + + + + + false + + + + 24 + 334 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + false + + + + 144 + 330 + 48 + 40 + + + + PointingHandCursor + + + Qt::NoFocus + + + + :/pictures/rightarrow.png:/pictures/rightarrow.png + + + + 24 + 22 + + + + + + false + + + + 624 + 330 + 48 + 40 + + + + PointingHandCursor + + + Qt::NoFocus + + + + :/pictures/refresh.png:/pictures/refresh.png + + + + 23 + 23 + + + + + + + 8 + 274 + 470 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Create Live ISO images automatically (faster than the conversion) + + + + + + 8 + 210 + 427 + 20 + + + + PointingHandCursor + + + Qt::NoFocus + + + Do not empty memory cache at the end of some processes + + + + + + + 697 + 24 + 696 + 440 + + + + true + + + + + 8 + 48 + 304 + 32 + + + + + 75 + true + + + + Includable items + + + Qt::AlignCenter + + + + + + 384 + 48 + 304 + 32 + + + + + 75 + true + + + + Included items + + + Qt::AlignCenter + + + + + false + + + + 324 + 239 + 48 + 48 + + + + PointingHandCursor + + + Qt::NoFocus + + + Remove item from the exclusion list + + + + :/pictures/leftarrow.png:/pictures/leftarrow.png + + + + 24 + 22 + + + + + + false + + + + 324 + 167 + 48 + 48 + + + + PointingHandCursor + + + Qt::NoFocus + + + Add item to the exclusion list + + + + :/pictures/rightarrow.png:/pictures/rightarrow.png + + + + 24 + 22 + + + + + + + 390 + 416 + 300 + 24 + + + + Kendek, GPLv3 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 16 + 392 + 136 + 32 + + + + PointingHandCursor + + + Back + + + + :/pictures/back.png:/pictures/back.png + + + + 13 + 13 + + + + + + + 8 + 80 + 304 + 296 + + + + Qt::ClickFocus + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::SelectItems + + + true + + + + 1 + + + + + + + 384 + 80 + 304 + 296 + + + + Qt::ClickFocus + + + QAbstractItemView::NoEditTriggers + + + false + + + true + + + + + + 686 + 430 + 10 + 10 + + + + PointingHandCursor + + + :/pictures/resize.png + + + true + + + Qt::AlignCenter + + + + + + 5 + 5 + 686 + 430 + + + + + + + 0 + 0 + 696 + 48 + + + + + 75 + true + + + + Include user data files and directories into the restore points +These will be defined as restorable configuration files! + + + Qt::AlignCenter + + + true + + + includeitemstext + includedtext + includeremoveitem + includeadditem + includekendektext + includeback + includeitemslist + includedlist + includetext + includecover + includeresize + + border + function1 + installpanel + livepanel + repairpanel + excludepanel + includepanel + schedulepanel + aboutpanel + licensepanel + choosepanel + sbpanel + windowbutton1 + restorepanel + copypanel + scalingbutton + settingspanel + scalingbuttonspanel + + + + + 0 + 3104 + 402 + 161 + + + + true + + + + + 0 + 0 + 402 + 24 + + + + + 75 + true + + + + Systemback + + + Qt::AlignCenter + + + + + + 378 + 0 + 24 + 24 + + + + + 75 + true + + + + PointingHandCursor + + + ::: + + + Qt::AlignCenter + + + + + + 0 + 0 + 402 + 24 + + + + + 75 + true + + + + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0, 0, 0, 205), stop:1 rgba(255, 255, 255, 0)) + + + + + + 1 + 24 + 400 + 136 + + + + true + + + + + 0 + 0 + 400 + 96 + + + + + 75 + true + + + + Qt::AlignCenter + + + + + + 8 + 96 + 144 + 32 + + + + + 75 + true + + + + 0 + + + %p% + + + + + false + + + + 248 + 96 + 144 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + QPushButton:enabled{color: red} + + + ! Interrupt ! + + + + 13 + 13 + + + + + + + 190 + 116 + 20 + 20 + + + + Qt::ClickFocus + + + interrupt + processrun + progressbar + focusfix + + border_2 + function2 + substatuspanel + windowbutton2 + + + + + 0 + 3265 + 402 + 161 + + + + true + + + + + 0 + 0 + 402 + 24 + + + + + 75 + true + + + + Systemback + + + Qt::AlignCenter + + + + + + 378 + 0 + 24 + 24 + + + + + 75 + true + + + + PointingHandCursor + + + ::: + + + Qt::AlignCenter + + + + + + 0 + 0 + 402 + 24 + + + + + 75 + true + + + + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0, 0, 0, 205), stop:1 rgba(255, 255, 255, 0)) + + + + + + 1 + 24 + 400 + 136 + + + + true + + + + + 10 + 10 + 60 + 60 + + + + :/pictures/dialoginfo.png + + + true + + + Qt::AlignCenter + + + + + + 80 + 8 + 312 + 88 + + + + Creates a scheduled restore point within few seconds. + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + + + false + + + + 280 + 96 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Start + + + + 13 + 13 + + + + + + + 160 + 96 + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + Later + + + + 13 + 13 + + + + + + + 280 + 72 + 112 + 24 + + + + Qt::AlignCenter + + + + border_4 + function4 + subschedulerpanel + windowbutton4 + + + + + 402 + 3104 + 506 + 201 + + + + true + + + + + 0 + 0 + 506 + 24 + + + + + 75 + true + + + + Systemback + + + Qt::AlignCenter + + + + + + 482 + 0 + 24 + 24 + + + + + 75 + true + + + + PointingHandCursor + + + ::: + + + Qt::AlignCenter + + + + + + 0 + 0 + 506 + 24 + + + + + 75 + true + + + + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0, 0, 0, 205), stop:1 rgba(255, 255, 255, 0)) + + + + + + 1 + 24 + 504 + 176 + + + + true + + + + + 10 + 10 + 60 + 60 + + + + :/pictures/dialoginfo.png + + + true + + + Qt::AlignCenter + + + + + + 10 + 10 + 60 + 60 + + + + :/pictures/dialogquestion.png + + + true + + + Qt::AlignCenter + + + + + + 10 + 10 + 60 + 60 + + + + :/pictures/dialogerror.png + + + true + + + Qt::AlignCenter + + + + + + 80 + 10 + 416 + 128 + + + + Qt::RichText + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + + + + 264 + 136 + 112 + 32 + + + + PointingHandCursor + + + Cancel + + + + 13 + 13 + + + + + + + 384 + 136 + 112 + 32 + + + + PointingHandCursor + + + OK + + + + 13 + 13 + + + + + + + 384 + 112 + 112 + 24 + + + + 30s + + + Qt::AlignCenter + + + dialogerror + dialogquestion + dialoginfo + dialogtext + dialogcancel + dialogok + dialognumber + + border_3 + function3 + subdialogpanel + windowbutton3 + + + + + 908 + 3104 + 376 + 224 + + + + true + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 8 + 4 + 64 + 64 + + + + :/pictures/passwordlogo.png + + + true + + + Qt::AlignCenter + + + + + + 88 + 16 + 280 + 56 + + + + + 13 + 75 + true + + + + Systemback user authentication + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + + + + 8 + 80 + 102 + 32 + + + + Administrator: + + + + + + 115 + 80 + 112 + 32 + + + + + 112 + 32 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + 8 + 128 + 72 + 32 + + + + Password: + + + + + + 85 + 128 + 250 + 32 + + + + false + + + 35 + + + QLineEdit::Password + + + + + + 342 + 132 + 26 + 24 + + + + :/pictures/ok.png + + + true + + + Qt::AlignCenter + + + + + + 342 + 131 + 26 + 26 + + + + :/pictures/error.png + + + true + + + Qt::AlignCenter + + + + + false + + + + 256 + 184 + 112 + 32 + + + + PointingHandCursor + + + OK + + + + 13 + 13 + + + + + + + 136 + 184 + 112 + 32 + + + + PointingHandCursor + + + Cancel + + + + 13 + 13 + + + + startcancel + adminpassworderror + label_41 + passwordtitletext + adminstext + admins + adminpasswordtext + adminpassword + adminpasswordpipe + passwordinputok + + + + + 540 + 3305 + 48 + 48 + + + + true + + + + + 0 + 0 + 48 + 24 + + + + + 75 + true + + + + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0, 0, 0, 205), stop:1 rgba(255, 255, 255, 0)) + + + Qt::AlignCenter + + + + + + 1 + 24 + 47 + 24 + + + + true + + + + mainpanel + statuspanel + schedulerpanel + dialogpanel + passwordpanel + buttonspanel + resizepanel + + + + + 20 + 3062 + 20 + 20 + + + + Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing + + + + + + 0 + 3426 + 20 + 20 + + + + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(71, 74, 71, 255)); + + + wallpaper + logo + wpanel + + + + + + pnlevent + QWidget +

    pnlevent.hpp
    + 1 + + + lblevent + QLabel +
    lblevent.hpp
    +
    + + lndtevent + QLineEdit +
    lndtevent.hpp
    +
    + + chckbxevent + QCheckBox +
    chckbxevent.hpp
    +
    + + tblwdgtevent + QTableWidget +
    tblwdgtevent.hpp
    +
    + + bttnevent + QPushButton +
    bttnevent.hpp
    +
    + + + functionmenunext + functionmenuback + restoreback + copyback + fullname + username + password1 + password2 + rootpassword1 + rootpassword2 + hostname + installnext + installback + liveback + repairback + excludeback + schedulerback + aboutback + licenseback + settingsback + dirchooseok + dirchoosecancel + dialogok + dialogcancel + adminpassword + passwordinputok + startcancel + + + + + + diff --git a/systemback/tblwdgtevent.hpp b/systemback/tblwdgtevent.hpp new file mode 100644 index 0000000..0096b8e --- /dev/null +++ b/systemback/tblwdgtevent.hpp @@ -0,0 +1,52 @@ +/* + * Copyright(C) 2014-2016, Krisztián Kende + * + * This file is part of the Systemback. + * + * The Systemback is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3 of the License, or (at your option) any later + * version. + * + * The Systemback is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with the + * Systemback. If not, see . + */ + +#ifndef TBLWDGTEVENT_HPP +#define TBLWDGTEVENT_HPP + +#include + +class tblwdgtevent : public QTableWidget +{ + Q_OBJECT + +public: + inline tblwdgtevent(QWidget *prnt) : QTableWidget(prnt) {} + +protected: + void focusInEvent(QFocusEvent *ev), + focusOutEvent(QFocusEvent *ev); + +signals: + void Focus_In(); + void Focus_Out(); +}; + +inline void tblwdgtevent::focusInEvent(QFocusEvent *ev) +{ + QTableWidget::focusInEvent(ev); + emit Focus_In(); +} + +inline void tblwdgtevent::focusOutEvent(QFocusEvent *ev) +{ + QTableWidget::focusOutEvent(ev); + emit Focus_Out(); +} + +#endif