402 Commits

Author SHA1 Message Date
Alexandre Arnt
251822c887 - Updated PKGBUILD. 2018-06-08 16:06:21 -03:00
Alexandre Arnt
553068128b - Enhanced embeded terminal behaviour.
- Bumped version number to 0.9.0.
2018-06-08 15:53:58 -03:00
Alexandre Arnt
aea5e2cf09 - Removed "loading" from the pattern of green messages. 2018-06-07 16:57:01 -03:00
Alexandre Arnt
91dfad1faf - Enhancements in help/about dialog. 2018-06-07 15:23:49 -03:00
Alexandre Arnt
6f2401e10a - Removed unused code. 2018-06-07 11:52:49 -03:00
Alexandre Arnt
72c0a0ba11 - Dropped PacBSD from the list of compatible distros. 2018-06-07 11:42:33 -03:00
Alexandre Arnt
fa7e88d370 - BugFix: We do not need wait cursors when we are using threads ;-) 2018-06-06 18:09:45 -03:00
Alexandre Arnt
3935abcd82 - BugFix: Another way to test network connectivity. 2018-06-06 17:03:14 -03:00
Alexandre Arnt
10c78af877 - BugFix in sysinfo code. 2018-06-06 15:34:06 -03:00
Alexandre Arnt
2d2b29f0d0 - BugFix: Make SysInfo runs in its own thread, so UI is not blocked. 2018-06-06 15:28:36 -03:00
Alexandre Arnt
45fa9697ad - BugFix in code that checks updated news. 2018-06-05 19:38:48 -03:00
Alexandre Arnt
f0bf295aab - BugFix: Local package install inside qtermwidget needed a SIGNAL
connect to work;
- Prevent the use of "--force" option if pacman version >= 5.1.
2018-06-05 18:47:03 -03:00
Alexandre Arnt
17123d9428 - Updated README.md file. 2018-06-05 18:00:26 -03:00
Alexandre Arnt
b9f0c6b73c - Do NOT clear search string when switching between AUR/pacman. 2018-06-05 17:37:19 -03:00
Alexandre Arnt
a64adfb404 - BugFix: Better not clear embeded console after aur transaction. 2018-06-05 17:13:00 -03:00
Alexandre Arnt
f192bc7aa6 - BugFix: Better way to deal with updated news. 2018-06-05 17:10:26 -03:00
Alexandre Arnt
1c07b57afa - BugFix: If threre are updated News after a synchronization, let's goto
the News Tab.
2018-06-05 11:03:22 -03:00
Alexandre Arnt
e054cb0218 - Updated translations. 2018-06-05 10:42:52 -03:00
Alexandre Arnt
5009ee232c - BugFix: Let's not show AUR tab in optionsdialog if we are running
Parabola Linux.
2018-06-04 19:13:04 -03:00
Alexandre Arnt
42918df4a3 - BugFix: Chinese users do not ping google.com. 2018-06-04 11:24:58 -03:00
Alexandre Arnt
cafc92e030 Update README.md
Updated some distro sites.
2018-06-03 14:50:03 -03:00
Alexandre Arnt
be5fa78234 - BugFix: Remove only Octopi tools related temporary files
(qtsingleapp*).
2018-06-03 14:09:43 -03:00
Alexandre Arnt
cb16ea67de - Added pacman-contrib dependency for new pacman 5.1.
- Added a check at cache cleaner's startup.
2018-06-03 12:23:42 -03:00
Alexandre Arnt
b9654265f9 - BugFix in Qt 5.11 compile. 2018-05-29 10:32:07 -03:00
Alexandre Arnt
c413caadd1 - BugFix: sysinfo tests for internet connection. 2018-05-06 19:55:25 -03:00
Alexandre Arnt
bff4de2189 - BugFix: Better search without "error". 2018-05-06 18:54:24 -03:00
Alexandre Arnt
a9d9eb30d3 - BugFix: Exec internet tests before some commands in Octopi and
Notifier.
2018-05-06 18:23:46 -03:00
Alexandre Arnt
61f6a199e9 - Added missed translation files.
- BugFix: Do not let program display an avalanche of internet related
errors.
- Let mirror-check display its internet errors.
2018-04-29 16:38:55 -03:00
Alexandre Arnt
e59fe5ac8c - Removed unused code/Fix typo. 2018-05-06 16:04:43 -03:00
Alexandre Arnt
ee79c35b62 Merge pull request #320 from sheinz/fix-multiple-ignorepkg
Handle multiple IgnorePkg/IgnoreGroup statements
2018-05-06 12:57:52 -03:00
Alexandre Arnt
a3b1eaf68b - BugFix: Use current octopi icon for notifer/help/about dialog. 2018-04-29 16:07:11 -03:00
Alexandre Arnt
9a419e5ab6 - BugFix in progressbar with mirrorcheck. 2018-04-29 15:39:53 -03:00
Alexandre Arnt
8f82f46852 - Added Hindi translation (thanks to Panwar108). 2018-04-29 15:19:31 -03:00
Alexandre Arnt
f45a5a903a - BugFix: UI hint for this not so fast operation. 2018-04-29 14:33:21 -03:00
Alexandre Arnt
6b727bf114 - BugFix: Let internal terminal receive focus when maximized/restored. 2018-04-29 14:21:32 -03:00
Alexandre Arnt
2fad59554b - BugFix in terminal cancel code. 2018-04-29 14:15:35 -03:00
Alexandre Arnt
e8c3ff875c - BugFix: Add Alt+7 shortcut to access terminal tab. 2018-04-29 13:58:29 -03:00
Alexandre Arnt
12b7338b51 - BugFix: Make F11 works inside terminal tab. 2018-04-29 12:35:32 -03:00
Alexandre Arnt
c615f97362 - BugFix: Show progressbar with wait cursor. 2018-04-29 11:42:42 -03:00
Alexandre Arnt
d36e793864 - Updated translation. 2018-04-28 19:56:13 -03:00
Alexandre Arnt
f6fd67a33e Merge pull request #326 from alex47/master
Enable HiDPI icons
2018-04-28 09:58:06 -03:00
Alex Nemeth
b9958cafc9 Enable HiDPI icons 2018-04-28 11:39:46 +02:00
Alexandre Arnt
3849c5ad31 Update PKGBUILD
Removed "gist" from optional dependencies.
2018-04-26 17:43:11 -03:00
Alexandre Arnt
60bd2cd082 - Remove gist / Add ptpb support (thanks to demm). 2018-04-23 17:52:38 -03:00
Alexandre Arnt
845311daf2 - BugFix: When you removed the only installed pkg while in AUR mode,
statusbar counters were not shown.
2018-04-21 21:44:23 -03:00
Alexandre Arnt
d35247c92a - BugFix: Show progress widget earlier in AUR (un)selection. 2018-04-21 19:38:54 -03:00
Alexandre Arnt
e8613527b6 BugFix: Exec internet tests before some commands. 2018-04-21 19:08:41 -03:00
sheinz
e46725e998 Fixed processing multiple IgnorePkg/IgnoregGroup statements 2018-04-01 01:42:30 +03:00
Alexandre Arnt
27de3460cb - BugFix in test. 2018-03-31 19:17:12 -03:00
Alexandre Arnt
c067a37787 - Name of AUR package in Info tab act as link to its site at https://
aur.archlinux.org.
2018-03-31 18:51:40 -03:00
Alexandre Arnt
6bc18dd768 - Updated README.md file. 2018-03-31 14:48:35 -03:00
Alexandre Arnt
c9dbaebec4 - BugFix: Do not ask twice for password if a pacman lck file exists. 2018-03-31 14:23:04 -03:00
Alexandre Arnt
640d5633b4 - Added a couple of constants. 2018-03-31 12:19:23 -03:00
sheinz
b3887c8138 Concatenate multiple IgnorePkg/IgnoreGroup statements 2018-03-31 02:25:49 +03:00
Alexandre Arnt
14c69b0b53 - Updated translations. 2018-03-30 14:07:55 -03:00
Alexandre Arnt
13218919aa - BugFix: Do not disable AUR icon while in AUR mode. 2018-03-30 13:59:04 -03:00
Alexandre Arnt
465e23f98d - Added Trizen (AUR tool) support. 2018-03-30 13:43:56 -03:00
Alexandre Arnt
b578189f0d - Removed unused code. 2018-03-29 19:28:46 -03:00
Alexandre Arnt
fb7a1f9d6b - BugFix: Disable alien icon while in transaction. 2018-03-17 21:03:51 -03:00
Alexandre Arnt
3e3c6ae0fc Merge pull request #317 from scachemaille/scachemaille-patch-#315
Run octopi-repoeditor as normal user
2018-02-18 17:53:30 -03:00
Alexandre Arnt
eca942ec96 Merge pull request #313 from tim241/master
Fixed README.md
2018-02-15 11:12:31 -02:00
Stéphane
ff6c3c74e6 Run octopi-repoeditor as normal user
fix #315
2018-02-14 23:54:29 +01:00
Tim Wanders
9c886b1800 Update README.md 2018-02-13 17:46:27 +01:00
Alexandre Arnt
52e111f5ab - BugFix: QProcess was not calling "pacman" command anymore (at least
inside this service code). Had to add complete path to the command (a Qt
5.10 change).
2018-01-06 23:15:25 -02:00
Alexandre Arnt
669e85b63d - Updated CHANGELOG file. 2018-01-06 20:12:13 -02:00
Alexandre Arnt
035cd35ada - Bugfix in parser code. 2018-01-06 20:09:14 -02:00
Alexandre Arnt
fbe16eea44 - uncomment a code. 2018-01-06 19:23:06 -02:00
Alexandre Arnt
dab1bc3752 - Make "DO_NOT_USE_AUR" as default AUR tool :) 2018-01-06 18:45:34 -02:00
Alexandre Arnt
b48f4896e7 - Updated translations. 2018-01-06 18:10:52 -02:00
Alexandre Arnt
82acc74c24 - Back at using "pacman -Syy" in pacmanhelper.cpp. 2017-12-27 14:25:54 -02:00
Alexandre Arnt
8b4721320e Merge pull request #303 from Vincent43/patch-1
Support custom compiler flags in PKGBUILD
2017-12-19 10:10:21 -02:00
Vincent43
d0ec92cd24 Support custom compiler flags in PKGBUILD
Qmake doesn't honor user defined flags by default.
2017-12-16 11:02:18 +00:00
Alexandre Arnt
1759559de0 - Updated CHANGELOG file. 2017-12-03 14:26:04 -02:00
Alexandre Arnt
98c91ae853 Merge pull request #302 from dkorzhevin/master
Small syntax fixes
2017-12-10 18:32:44 -02:00
Alexandre Arnt
a401e12573 Updated termwidget related code. 2017-12-10 18:15:08 -02:00
Dmytro Korzhevin
2f45944be4 Update release-translations.sh 2017-12-06 17:36:25 +02:00
Dmytro Korzhevin
76aa51fa2e Small syntax fixes 2017-12-06 17:29:33 +02:00
Alexandre Arnt
28d85c366a - Comment history change. 2017-12-03 17:45:10 -02:00
Alexandre Arnt
3e303ce310 Refactorings. 2017-12-03 17:23:55 -02:00
Alexandre Arnt
e08f7a8815 - Added Terminal dialog in Notifier (AUR update) if user compiles
project with libqtermwidget5 support.
2017-12-03 16:32:15 -02:00
Alexandre Arnt
91e559e35f - New class: TermWidget, extending QTermWidget. 2017-12-03 13:06:09 -02:00
Alexandre Arnt
5d6c5771cb - Added Terminal tab if user compiles project with libqtermwidget5
support.
2017-12-03 02:19:31 -02:00
Alexandre Arnt
24cb7b2eaf - Updated translations. 2017-11-30 15:33:58 -02:00
Alexandre Arnt
69fd73301b - Added initial QTermWidget testing;
- Fixed a string bug in parser.
2017-12-02 17:51:40 -02:00
Alexandre Arnt
3d6928a391 - Refresh UI on install local pkg. 2017-12-01 22:32:55 -02:00
Alexandre Arnt
f56bbbc168 - Comment debug code. 2017-12-01 17:15:18 -02:00
Alexandre Arnt
673167059c - BugFix in aur code. 2017-12-01 15:20:35 -02:00
Alexandre Arnt
365ddc48ea - New code to remove colors from strings. 2017-12-01 13:19:41 -02:00
Alexandre Arnt
cda91af947 - Refactorings in UnixCommand class;
- Trying to debug pacaur error;
2017-11-30 20:20:30 -02:00
Alexandre Arnt
2fb2266d96 - Updated translations. 2017-11-30 12:39:37 -02:00
Alexandre Arnt
0f77565fdb - BugFix: Infinite wait cursor in Cache Cleaner when user press Enter
for more than two seconds in the spin boxes.
2017-11-30 12:22:59 -02:00
Alexandre Arnt
05c03ebdec - Now we save outputdialog window size and position;
- Removed some buggy str from parser.
2017-11-29 13:16:25 -02:00
Alexandre Arnt
c346876f94 - BugFix: kcp refresh was not showing pkg numbers at statusbar
sometimes;
- Updated translations;
2017-11-29 11:26:54 -02:00
Alexandre Arnt
497cc66ea4 - BugFix in package list column code;
- BugFix: do not show backend tab in optionsdialog if we do not have
alpm compiled code.
2017-11-28 20:23:27 -02:00
Alexandre Arnt
dfddcdcdcb - Refactorings. 2017-11-28 16:06:13 -02:00
Alexandre Arnt
139f3642aa - Make AUR button disable whenever user chooses a pkg group. 2017-11-28 15:53:04 -02:00
Alexandre Arnt
b6aab3a315 - Instantsearch fixes. 2017-11-28 13:01:20 -02:00
Alexandre Arnt
329fae945d - Instantsearch changes. 2017-11-28 15:03:33 -02:00
Alexandre Arnt
d14bb8ea31 - Updated translations. 2017-11-28 12:39:20 -02:00
Alexandre Arnt
23f0205037 - Instantsearch fixes. 2017-11-28 12:27:34 -02:00
Alexandre Arnt
4ad97ac0a1 - instantsearch fixes. 2017-11-28 12:08:48 -02:00
Alexandre Arnt
2d6d0f76b4 - instantsearch fixes. 2017-11-28 12:02:40 -02:00
Alexandre Arnt
ca25f656cb - InstantSearch fixes. 2017-11-28 11:58:42 -02:00
Alexandre Arnt
1fbcb598ce - KCP needs diff treat. 2017-11-28 10:55:56 -02:00
Alexandre Arnt
67e2e1f246 - BugFix: When user selected another search option, line edit was not
being cleared.
2017-11-28 10:39:27 -02:00
Alexandre Arnt
bb8636c5ee - bugfix in instant search behaviour. 2017-11-27 19:07:43 -02:00
Alexandre Arnt
1f4cee54f6 - BugFix: kcp pkg listing was not being printed. 2017-11-27 17:58:04 -02:00
Alexandre Arnt
7cd00bbc05 - Updated translations. 2017-11-27 12:45:46 -02:00
Alexandre Arnt
08b7ec4999 - Trying to behave better in AUR searches. 2017-11-27 17:25:03 -02:00
Alexandre Arnt
e8779ccbf6 - BugFix: Notifier's about dialog was never screen centered. 2017-11-27 12:41:35 -02:00
Alexandre Arnt
f94457f12c - Updated translation. 2017-11-27 10:08:34 -02:00
Alexandre Arnt
e9c6174942 - Added support for ESC key to close cachecleaner;
- Refactorings in mainwindow code.
2017-11-27 11:52:41 -02:00
Alexandre Arnt
d6fcc3cf56 - UI fix. 2017-11-26 20:45:04 -02:00
Alexandre Arnt
b09b9de684 - Disable stop transaction when synching db finds pkgfile str. 2017-11-27 10:31:54 -02:00
Alexandre Arnt
ff118927ed - Updated README.md file. 2017-11-27 10:03:07 -02:00
Alexandre Arnt
c36eb4095d - Updated translations;
- Use pkg numbers and stop transaction button as default config.
2017-11-26 22:33:26 -02:00
Alexandre Arnt
50a8036f4d - BugFix: No tooltip in notifier when green icon. 2017-11-26 22:23:41 -02:00
Alexandre Arnt
930fc5ac77 - Updated translations. 2017-11-26 22:04:35 -02:00
Alexandre Arnt
fb0947ae7c - We only search for outdated AUR pkgs if the option is enabled. 2017-11-26 21:53:52 -02:00
Alexandre Arnt
967a6328f9 - Never show stop transaction button if no progress bar visible;
- Do not check for outdated AUR pkgs if we have outdated standard ones
in notifier.
2017-11-26 20:11:29 -02:00
Alexandre Arnt
8ae9b55214 - Arch BSD now is PacBSD. 2017-11-26 19:34:29 -02:00
Alexandre Arnt
be36c2937b - Updated translations. 2017-11-26 19:25:00 -02:00
Alexandre Arnt
0dde2ab86e - Updated README.md file. 2017-11-26 19:11:55 -02:00
Alexandre Arnt
d54d3d8cd0 - Updated README.md file. 2017-11-26 19:08:32 -02:00
Alexandre Arnt
22622a7d71 Merge branch 'master' of https://github.com/aarnt/octopi 2017-11-26 19:05:09 -02:00
Alexandre Arnt
e0817e2fb0 - Overhaul in distro url news feeds. 2017-11-26 19:04:38 -02:00
Alexandre Arnt
f3898716f3 - Updated translations. 2017-11-26 17:15:37 -02:00
Alexandre Arnt
4eaca6c9b3 - Let's PacmanExec determines when the stop transaction button can
appear.
2017-11-26 16:23:28 -02:00
Alexandre Arnt
f09bfc7003 - Removed Arming as a green word. 2017-11-26 15:51:27 -02:00
Alexandre Arnt
d5d756d82d - BugFix in OptionsDialog UI. 2017-11-26 15:24:06 -02:00
Alexandre Arnt
941aece11e - Group pane now spans all window's height. 2017-11-26 14:49:05 -02:00
Alexandre Arnt
21953d09d4 - BugFix: Opens file selector in current file path. 2017-11-26 14:26:45 -02:00
Alexandre Arnt
9e4fa4b7a3 - BugFix: repoeditor now runs as normal user and asks for root password
on save;
- Added stop transaction button in notifier;
- BugFix: Forbid repoeditor root running.
2017-11-26 14:14:48 -02:00
Alexandre Arnt
347bd0ceb1 - Added option to enable/disable search for outdated AUR pkgs;
- Fixes in AUR code;
2017-11-25 19:27:37 -02:00
Alexandre Arnt
b8747195ed - Added General tab in optionsdialog code.
- BugFix in pkg counters code.
2017-11-25 16:33:20 -02:00
Alexandre Arnt
8800c47f55 - Updated translation;
- BugFix: new image.
2017-11-25 12:14:53 -02:00
Alexandre Arnt
e9773c1c86 - Added button after progressbar to stop current running transaction;
- BugFix: never let pkgcounter value be higher than numberofpkgs.
2017-11-25 12:01:22 -02:00
Alexandre Arnt
5289caadff - Returned to previous 'terminate transaction' code. 2017-11-25 02:06:41 -02:00
Alexandre Arnt
dd04860401 - Parser changes: added counter for processed packages.
- BugFix in optionsdialog code.
2017-11-25 01:33:50 -02:00
Alexandre Arnt
eed57cf144 - Added option to remove pacman db lock from notifier. 2017-11-20 19:30:17 -02:00
Alexandre Arnt
6e0ebe9fc0 - Get the info about instant search at loadSettings. 2017-11-20 18:07:06 -02:00
Alexandre Arnt
404a156f2b - Added "Search/Use Instant Search" toggle. 2017-11-20 17:39:30 -02:00
Alexandre Arnt
a699915ea7 - BugFixes in cancelProcess code. 2017-11-20 15:46:30 -02:00
Alexandre Arnt
fbc4b54811 - Do not sync nor upgrade in notifier if pacman db is locked. 2017-11-20 12:31:10 -02:00
Alexandre Arnt
a4de722874 - Reverted lineedit focus. 2017-11-20 12:12:48 -02:00
Alexandre Arnt
c82f3c02fc - BugFix: After outdated AUR pkg check, the pkg list lost current index
info.
2017-11-20 12:10:37 -02:00
Alexandre Arnt
17101da9b2 - BugFix: System upgrade shortcut changed to "ctrl+P" as "ctrl+U" is
used to cut text in QLineEdit widgets.
2017-11-20 11:25:54 -02:00
Alexandre Arnt
ccb1418a34 - Removed unused qml file. 2017-11-19 23:39:05 -02:00
Alexandre Arnt
0864632d9e - Changed most of "RegExp" code to "RegularExpression".
- BugFix: If Notifier hid Octopi and was closed, Octopi's window would
stay hidden.
2017-11-19 23:07:43 -02:00
Alexandre Arnt
7ca2f7e93e - BugFix: Anchor description was not working when there was a "<" char;
- BugFix: Reworked drag code;
- BugFix: orange strings must be caught before green ones!
2017-11-17 10:05:35 -02:00
Alexandre Arnt
be162818cb - Added support fo drag pacman packages to Octopi's mainwindow so they
can be installed.
2017-11-16 23:03:16 -02:00
Alexandre Arnt
a1759d85fa - BugFix for aurupgrade message. 2017-11-16 22:06:21 -02:00
Alexandre Arnt
af32397c04 - Added option to upgrade outdated foreign packages from Octopi
Notifier.
2017-11-16 20:49:22 -02:00
Alexandre Arnt
d74618d332 - Better way to kill running pacman transaction. 2017-11-16 16:09:50 -02:00
Alexandre Arnt
5c9be7cbd1 - Removed cleanCache (ctrl+shift+C) command, as we have octopi-cache-
cleaner for that!
2017-11-16 15:40:07 -02:00
Alexandre Arnt
4121c1e2a9 - BugFix: AUR tab in optionsdialog should honor which tool is installed
and disables it when not.
2017-11-16 15:34:03 -02:00
Alexandre Arnt
11fd4530ce - BugFix: When no AUR helper exists, the group of packages panel stayed
disabled.
2017-11-16 14:20:22 -02:00
Alexandre Arnt
b456284f75 - BugFix: Cache Cleaner now saves its window geometry. 2017-11-15 22:55:10 -02:00
Alexandre Arnt
122ae6a6ff - If we do not have more than 1 terminal, we do not show option to
change it.
2017-11-15 22:31:14 -02:00
Alexandre Arnt
e09727b56d - Updated translations 2017-11-15 22:15:10 -02:00
Alexandre Arnt
10c114a867 - Bugfixes when dealing with outdated aur pkgs. 2017-11-15 20:08:59 -02:00
Alexandre Arnt
a6bcf4ddbf - BugFix: Every time we change AUR tool we must refresh notifier icon. 2017-11-15 19:29:24 -02:00
Alexandre Arnt
b7936681cf - Add option to do not use an AUR tool. 2017-11-15 19:19:12 -02:00
Alexandre Arnt
e232c0bb5e - BugFix: check box too small. 2017-11-15 13:40:52 -02:00
Alexandre Arnt
e235be9895 - Added "pacman" info at Notifier's about dialog. 2017-11-15 13:35:11 -02:00
Alexandre Arnt
95d5debfee - Added configurable "--noconfirm" and "--noedit" options to pacaur and
"--noconfirm" to yaourt.
2017-11-15 13:21:54 -02:00
Alexandre Arnt
a274a3d9ae - Added "ctrl+Z" to cancel running transaction;
- BugFix: crash when sysupgrading with pacman lock file.
2017-11-14 17:11:04 -02:00
Alexandre Arnt
51e8d51562 - Code cleanup. 2017-11-14 12:09:53 -02:00
Alexandre Arnt
3ddf0118fc - Changed F12 behaviour to F11 key. 2017-11-14 11:56:26 -02:00
Alexandre Arnt
31f980ff4f - UI string fix. 2017-11-13 11:42:43 -02:00
Alexandre Arnt
dfb0dbfa90 - Updated translations. 2017-10-10 12:33:01 -03:00
Alexandre Arnt
9d566cc6c1 Merge pull request #297 from bwendell/master
Open Octopi if left click on SystemTray icon
2017-10-10 12:23:19 -03:00
Alexandre Arnt
0c2d4dddd5 Merge pull request #298 from totte/master
Update utils.cpp with the new address for the Chakra RSS feed
2017-09-08 13:14:39 -03:00
totte
e34c251523 Update utils.cpp with the new address for the Chakra RSS feed 2017-09-08 14:38:24 +02:00
Benjamin Wendell
8325cb6b43 Open Octopi if left click on SystemTray icon 2017-09-06 15:44:13 -07:00
Alexandre Arnt
7eead7588d - Updated translations. 2017-08-22 11:54:35 -03:00
Alexandre Arnt
ae100280e3 Merge branch 'master' of https://github.com/aarnt/octopi 2017-08-22 11:52:14 -03:00
Alexandre Arnt
5b951aac4f - Remove test code. 2017-08-22 11:51:42 -03:00
Alexandre Arnt
ff5cdadf4d Merge pull request #268 from bwendell/master
Remove empty error box in CacheCleaner
2017-08-21 10:56:25 -03:00
Alexandre Arnt
1e669d08a0 Merge pull request #295 from txe/fix-issue-235
BugFix: no outdated AUR packages detected
2017-08-21 10:55:35 -03:00
Evgenii Guryanov
c5ae8d2980 BugFix: no outdated AUR packages detected 2017-08-19 13:37:43 +03:00
Benjamin Wendell
ec8f49b0d7 Remove empty error box 2017-08-05 18:26:52 -07:00
Alexandre Arnt
a1b0a5ec97 - Updated translations. 2017-06-29 13:33:15 -03:00
Alexandre Arnt
487c80b475 - Updated translations. 2017-06-20 17:19:44 -03:00
Alexandre Arnt
cec926a090 - BugFix: squashed a warning compiling with clang :) 2017-06-16 13:56:18 -03:00
Alexandre Arnt
23623f9cee - Updated translations. 2017-06-16 10:58:25 -03:00
Alexandre Arnt
f92aa3426c - BugFix: sync packages was disabled when returnig to pkg list after
clicking AUR button.
2017-06-14 15:14:41 -03:00
Alexandre Arnt
989617366a - We must maintain "else" clause in case ALPM stop working. 2017-06-14 10:58:39 -03:00
Alexandre Arnt
96324d4595 - Removed unused strs. 2017-06-14 10:41:22 -03:00
Alexandre Arnt
17ba947380 - Updated translations. 2017-06-14 10:26:32 -03:00
Alexandre Arnt
bab0aa8ebc - Fix in aur refresh list. 2017-06-13 17:59:12 -03:00
Alexandre Arnt
b44226bea7 - Updated project file. 2017-06-13 12:55:51 -03:00
Alexandre Arnt
d56ebd1ff9 - Updated translations. 2017-06-13 10:52:22 -03:00
Alexandre Arnt
e034d1bf03 - BugFix in enable/disable action code. 2017-06-12 18:04:53 -03:00
Alexandre Arnt
e99ae35661 - Update translations. 2017-06-12 17:39:45 -03:00
Alexandre Arnt
d283de66b5 - BugFix in OptionsDialog text. 2017-06-12 17:16:20 -03:00
Alexandre Arnt
4d690d6ca8 - Bugfix in translatable text. 2017-06-12 15:42:33 -03:00
Alexandre Arnt
604ab88b09 - Added SU tool value analysis on startup. 2017-06-09 12:54:23 -03:00
Alexandre Arnt
cad306b6de - Implement "AUTOMATIC" for SU Tool value. 2017-06-09 11:21:30 -03:00
Alexandre Arnt
6363f7c386 - BugFix in OptionsDialog code. 2017-06-08 23:21:12 -03:00
Alexandre Arnt
c8abdc6343 - Bugfix in OptionsDialog. 2017-06-08 22:58:33 -03:00
Alexandre Arnt
9a12e9831b - Fixed KAOS condition. 2017-06-08 22:49:55 -03:00
Alexandre Arnt
d470485c49 - Removed unused code. 2017-06-08 22:40:30 -03:00
Alexandre Arnt
ad292fa496 - Added code for SU tool tab in OptionsDialog. 2017-06-08 22:31:47 -03:00
Alexandre Arnt
0f4cb05418 - Add more tabs to OptionsDialog. 2017-06-08 18:09:49 -03:00
Alexandre Arnt
3f3fb1e2ab - Removed some unused defines. 2017-06-07 14:37:48 -03:00
Alexandre Arnt
fc44e72bb1 - Fix for strconstants.cpp in pro files. 2017-06-07 10:27:44 -03:00
Alexandre Arnt
de915f748f - Add strconstants.cpp to project. 2017-06-06 12:12:26 -03:00
Alexandre Arnt
968f1f213d - Fix for string loss (in certain locales) in installation.log. 2017-05-16 13:01:09 -03:00
Alexandre Arnt
19eb70e425 - Fix for pacaur outdated list. 2017-05-05 15:08:08 -03:00
Alexandre Arnt
e5544644a7 Merge pull request #234 from flying-sheep/unicode-arrows
switched “->” to “→”
2017-05-04 13:17:54 -03:00
Philipp A
8781c23939 switched “->” to “→” 2017-05-04 10:32:13 +02:00
Alexandre Arnt
8e89cae659 - removed unused include. 2017-05-01 21:57:32 -03:00
Alexandre Arnt
a22f80c053 - Refactored method. 2017-05-01 18:51:08 -03:00
Alexandre Arnt
9a1d042fb8 - BugFix: 'yaourt' and 'pacaur' no longer honor "-a" option when
querying outdated foreign packages;
- Refactored getForeignRepositoryToolName method.
2017-05-01 18:44:10 -03:00
Alexandre Arnt
f7dbf97c53 - Useless assignment. 2017-04-29 23:18:20 -03:00
Alexandre Arnt
eb34d25272 - BugFix: No tools menu was shown when no tools available, but there was
'Options'!
2017-04-29 22:32:59 -03:00
Alexandre Arnt
d6a8313a19 - Modified KDE code for searchlineedit style sheet. 2017-04-18 17:44:21 -03:00
Alexandre Arnt
1020f7a498 - Updated CHANGELOG. 2017-04-18 15:29:48 -03:00
Alexandre Arnt
4232475053 - Updated some translations. 2017-04-18 15:11:47 -03:00
Alexandre Arnt
42d4126a5d Merge pull request #225 from mbb78/master
Change font family from "sansserif" to "Sans Serif"
2017-02-28 22:44:14 -03:00
Luís Coimbra
aa9f71cfd7 Change font family from "sansserif" to "Sans Serif"
Issue #222: Font family "sansserif" creates a conflict with Microsoft's font "SansSerif" if installed. Qt is unable to draw this font because of a bad cmap table. Aliases and substitutions by using fontconfig don't work, only blacklisting. Working formats include "sans serif" and "sans-serif". I went with "Sans Serif" to stay coherent with the patch applied by Manjaro Team.
2017-02-28 22:15:47 +00:00
Alexandre Arnt
18bccb8e5b - Find line edit is always focused when the program starts. 2017-02-22 17:16:06 -03:00
Alexandre Arnt
e3576c31a3 - BugFix: Forgot to call alpm_utils free code in alpmbackend.cpp.
- Removed unused notifier code.
2017-01-17 12:10:49 -02:00
Alexandre Arnt
53f06c0382 - BugFix: System upgrade button was not disabled while synching packages
in notifier;
- BugFix: searchlineedit font fix.
2017-01-12 14:57:22 -02:00
Alexandre Arnt
cfad0498b8 Merge pull request #215 from aarnt/revert-210-outputdialog-ui
Revert "Created ui file for OutputDialog"
2017-01-11 18:22:43 -02:00
Alexandre Arnt
24e3ad5ed5 Revert "Created ui file for OutputDialog" 2017-01-11 18:22:07 -02:00
Alexandre Arnt
7a2abbc325 Merge pull request #210 from flying-sheep/outputdialog-ui
Created ui file for OutputDialog
2017-01-11 13:31:24 -03:00
Alexandre Arnt
30adc49bc0 Merge branch 'master' into outputdialog-ui 2017-01-11 13:31:14 -03:00
Alexandre Arnt
c9cbafcf40 - Code cleanup at OptionsDialog. 2016-12-21 16:59:37 -02:00
Alexandre Arnt
80d5fed085 - Suppress translations of some interface itens. 2016-12-20 17:53:27 -02:00
Alexandre Arnt
d3a1a4bf1b - Added some comments in OptionsDialog. 2016-12-20 15:11:21 -02:00
Philipp A
b7560ca07b extracted more to UI files 2016-12-17 12:46:52 +01:00
Alexandre Arnt
0f814c8e16 - Updated OptionsDialog code. 2016-12-16 21:03:15 -02:00
Alexandre Arnt
e864ea1999 - Updated OptionsDialog code.
- Now Notifier calls OptionsDialog instead of SetupDialog.
2016-12-16 17:52:59 -02:00
Philipp A
89d47bf147 created ui file for OutputDialog 2016-12-16 19:29:07 +01:00
Alexandre Arnt
9929836cc4 - Updated OptionsDialog code. 2016-12-16 12:43:19 -02:00
Alexandre Arnt
0b31ebdee6 - Updated Options Dialog code.
- Added Tools/Options menu entry.
2016-12-15 18:00:20 -02:00
Alexandre Arnt
ff25031d1e - Updated Options Dialog code. 2016-12-14 18:02:19 -02:00
Alexandre Arnt
4a540cfd7b - Updated code in OptionsDialog. 2016-12-13 17:33:42 -02:00
Alexandre Arnt
bf39bfe921 - Added new OptionsDialog class/UI. 2016-12-12 17:22:59 -02:00
Alexandre Arnt
b95a8f985e - Changed default values in CacheCleaner. 2016-12-02 16:12:24 -02:00
Alexandre Arnt
144c3f2ed7 Merge pull request #205 from tsujan/fix_lxqt
Use lxqt-sudo under LXQt
2016-11-10 11:57:07 -02:00
Tsu Jan
bc5a017695 Use lxqt-sudo under LXQt
Fixes https://github.com/aarnt/octopi/issues/204.
2016-10-25 16:34:47 +03:30
Alexandre Arnt
0cff45f88c Merge branch 'master' of https://github.com/aarnt/octopi 2016-10-22 21:28:21 -02:00
Alexandre Arnt
b54f6904d4 - BugFix: Let's not forget the important "break" statement in switches,
so Octopi icons can change color.
2016-10-22 21:27:58 -02:00
Alexandre Arnt
7a2e7850ad Merge pull request #202 from scachemaille/patch-1
Make KSTATUS works with ALPM_BACKEND addition
2016-10-17 16:21:30 -02:00
Alexandre Arnt
4d0bc6caa9 - Fixed method name bug. 2016-10-17 07:11:11 -02:00
Alexandre Arnt
13bb6b516a - Updated code for App icon. 2016-10-16 21:31:19 -02:00
Stéphane
872d5fc7f7 Make KSTATUS works with ALPM_BACKEND addition
Makes KSTATUS definiton works with the addition of ALPM_BACKEND definition in the project file
2016-10-17 00:29:34 +02:00
Alexandre Arnt
13e19d0c16 - BugFix: Use right object to test AUR package size;
- Added Config Dialog core methods.
2016-10-16 16:05:16 -02:00
Alexandre Arnt
1d334f5e27 Merge branch 'master' of https://github.com/aarnt/octopi 2016-10-16 11:24:35 -02:00
Alexandre Arnt
a8e998993c BugFix: Whenever user syncs databases (notifier included), we set new
lastsynctime value in .conf.
2016-10-16 11:23:55 -02:00
Alexandre Arnt
dfaa9b0a00 Update README.md
Fixed ArchBang web site.
2016-10-13 13:09:19 -03:00
Alexandre Arnt
9b34e85cea - Removed a refresh code. 2016-10-03 11:21:17 -03:00
Alexandre Arnt
22f8b2b12f - Removed alpm_octopi_utils line. 2016-09-26 16:03:14 -03:00
Alexandre Arnt
cdea76dd14 - Notifier: Removed unneeded division from upgrade size. 2016-09-26 15:17:47 -03:00
Alexandre Arnt
88bee2da43 Merge pull request #199 from demmm/master
Move autostart to octopi-notifier.pro
2016-09-26 14:34:57 -03:00
demmm
e5b27d290b move autostart to octopi-notifier.pro 2016-09-26 12:21:39 -04:00
demmm
3cc847e532 Merge pull request #2 from aarnt/master
merge master
2016-09-26 16:18:12 +00:00
Alexandre Arnt
b97a2bbb6d - Moved .desktop file to correct place. 2016-09-26 13:05:24 -03:00
Alexandre Arnt
b390774d1b - Removed "Version 5.3" test in ".pro". 2016-09-26 12:46:04 -03:00
Alexandre Arnt
112e2783f8 Merge pull request #190 from demmm/master
Update build files
2016-09-26 12:27:07 -03:00
Alexandre Arnt
d69961746d - Added a separator "\". 2016-09-26 12:12:52 -03:00
demmm
494cb645bd license is gpl 2.0 2016-09-26 11:08:30 -04:00
Alexandre Arnt
2b1c527171 Update README.md
Update qmake to qmake-qt5
2016-09-26 10:37:01 -03:00
demmm
695b1ad660 move the .desktop install to the respective pro files 2016-09-26 01:46:06 -04:00
demmm
97d244cb4c add install section to all .pro files
remove lib section & most of bin section from octopi.pro
adjust PKGBUILD to use make install in each subdir
cp the needed .png in prepare, or ship in the resources dir?
2016-09-26 01:32:07 -04:00
Alexandre Arnt
a91978941d Updated README instructions 2016-09-25 15:40:21 -03:00
Alexandre Arnt
6564a2cebd Updated README instructions 2016-09-25 15:39:27 -03:00
Alexandre Arnt
2d1fe16358 Updated README instructions 2016-09-25 15:38:18 -03:00
demmm
56e1d5577c add octopi.png to pro file for install 2016-09-25 12:22:47 -04:00
demmm
67a4a6d85d adjusted PKGBUILD 2016-09-25 12:11:58 -04:00
demmm
a8bc660efa Merge pull request #1 from aarnt/master
Merge upstream changes
2016-09-25 15:51:18 +00:00
Alexandre Arnt
74d6b88fb0 - Added link support in all package lists at Info tab;
- BugFix: implement ALPM backend in notifier.
2016-09-25 12:36:05 -03:00
Alexandre Arnt
7b464f2f2e - Fix doc. 2016-09-24 22:10:42 -03:00
Alexandre Arnt
e43ceb07cc - Updated translations. 2016-09-24 22:03:54 -03:00
demmm
5f23e1bbd6 added install section to octopi.pro
this means package section in PKGBUILD is complete simplified
2016-09-02 18:06:00 -04:00
demmm
b6e53777bd Not a GTK app
Make it a generic desktop entry, not Gnome specific
Might need testing if this still works on a Gnome install
2016-09-01 17:51:12 -04:00
demmm
271c7e191f Update octopi.install
Remove parts that are replaced with pacman hooks
correct the remove systemctl call
2016-09-01 17:48:42 -04:00
demmm
ef2589b73b Redo PKGBUILD
Ship as one complete app
Remove obsolete startdir refs
Add knotifications & alpm_octopi_utils depends, show in the optional sed lines they can be removed
add system as group
stable release build does not have a git depend
2016-09-01 17:46:33 -04:00
Alexandre Arnt
a45ca53c2e - Moved alpm_octopi_utils to its own repository. 2016-08-31 18:13:40 -03:00
Alexandre Arnt
6b57c75bd6 - Add AUTHORS file. 2016-08-31 17:46:12 -03:00
Alexandre Arnt
014ef652ff - Added new subproject alpm_octopi_utils. 2016-08-31 17:36:03 -03:00
Alexandre Arnt
eeefd39035 - BugFix: Pkg Column width save/restore code. 2016-08-29 16:10:40 -03:00
Alexandre Arnt
a76e2daa0a - Added support for building the pkg list with alpm lib (plus a new
Download size column).
2016-08-28 21:01:49 -03:00
Alexandre Arnt
c33bbd30c6 - BugFix: Some pkg download/installed sizes were not showing properly at
Info tab.
2016-08-26 23:20:51 -03:00
Alexandre Arnt
1e7bbed24b - BugFix: If we find an outdated AUR pkg in the official pkg list, we
remove it.
2016-08-24 22:51:24 -03:00
Alexandre Arnt
37629fa69b - BugFix: If we find an outdated AUR pkg in the official pkg list, we
remove it.
2016-08-24 22:06:02 -03:00
Alexandre Arnt
51759fa6dd - BugFix: Using the alpm algorithm for package version comparison.
Previous code was reporting false newer packages.
2016-08-24 12:18:43 -03:00
Alexandre Arnt
deaa0f8911 Merge pull request #186 from Oxalin/master
Add an AUR filter submenu
2016-08-24 10:43:30 -03:00
Alexandre Demers
922b042914 Add an AUR filter submenu
Signed-off-by: Alexandre Demers <alexandre.f.demers@gmail.com>
2016-08-23 23:27:53 -04:00
Alexandre Arnt
12c1295761 Merge pull request #185 from AlmAck/master
removed "--nofork" and "-c" option
2016-08-23 18:09:00 -03:00
AlmAck
7326de54c6 removed the "-c" option, pass directly the file with the instructions 2016-08-22 19:52:48 +02:00
AlmAck
9a6a03cf79 removed "--nofork" parameter, removed upstream with konsole >=16.08.0 2016-08-22 19:50:44 +02:00
Alexandre Arnt
cdea9b37a3 Merge pull request #184 from totte/master
Update source with the new address for Chakra
2016-08-22 12:18:09 -03:00
H W Tovetjärn
6e50e5adcb Update utils.cpp with new address for Chakra
The new address is chakralinux.org
2016-08-22 17:13:43 +02:00
H W Tovetjärn
ebb5aecc82 Update README.md with new address for Chakra
It's chakralinux.org now, rather than chakraos.org
2016-08-22 17:11:42 +02:00
Alexandre Arnt
b4c825b9c9 Merge pull request #182 from Pilzschaf/fix-issue-#180
Fix issue #180 shows the user a message box when close event is ignored
2016-08-18 15:58:39 -03:00
pilzschaf
e53d10d736 Improved indentation of code 2016-08-18 19:10:46 +02:00
pilzschaf
2701df7a9b Added message box when user tries to close octopi when there is a command executing. Fixes issue #180 2016-08-18 19:04:33 +02:00
Alexandre Arnt
f07959e06b BugFix: Install local packages did not work with space separated paths
(thanks to voanhcuoc for pointing it out).
2016-08-13 22:32:07 -03:00
Alexandre Arnt
9e710f3ec7 - Updated Croatian translation;
- Added default english translation to minimize translation work when
fixing string bugs;
2016-08-13 21:50:24 -03:00
Alexandre Arnt
28777174bc - BugFix: Optional dependencies dialog can now be resized and new value
is persisted on disk.
2016-08-06 19:31:09 -03:00
Alexandre Arnt
8fd614e8ca Merge branch 'master' of https://github.com/aarnt/octopi 2016-08-06 18:50:06 -03:00
Alexandre Arnt
2978da8b46 - Updated translations;
- BugFix: Max time in minutes for notification interval was not honoring
> 1380.
2016-08-06 18:49:29 -03:00
Alexandre Arnt
dfdb01424a Merge pull request #174 from philmmanjaro/patch-2
- Updated Manjaro RSS site
2016-07-30 08:45:01 -03:00
Philip Müller
632e58de8f - Updated Manjaro RSS site 2016-07-30 11:15:11 +02:00
Alexandre Arnt
752e52f75e - Added slovenian translation (thanks to the translation crew);
- Updated ukrainian translation.
2016-07-17 15:39:53 -03:00
Alexandre Arnt
ec6349230b - BugFix: Whenever we get a "pkgX: requires pkgY" upgrade bug, we show
the terminal to the user.
2016-07-17 15:22:21 -03:00
Alexandre Arnt
bb4512614b - Tries to do a manual sysupgrade when "pacman -Spu" prints a "breaks
dependency" string.
2016-06-26 19:09:33 -03:00
Alexandre Arnt
59140395e9 Merge pull request #171 from ccr-tools/master
Replace ccr with chaser
2016-06-08 15:08:45 -03:00
Alexandre Arnt
d051250a57 - Updated KaOS RSS site. 2016-06-08 15:05:22 -03:00
rshipp
a3687cbd21 Replace ccr with chaser 2016-06-06 19:12:45 -06:00
Alexandre Arnt
468fcd881c Merge pull request #168 from flying-sheep/noframe
Remove frame on output dialog
2016-05-25 21:24:08 -03:00
Philipp A
34f7ddd3bd Removing frame on output dialog 2016-05-25 09:56:45 +02:00
Alexandre Arnt
dea7426857 - Speed up the method. 2016-05-08 21:21:26 -03:00
Alexandre Arnt
fb117c4a65 - BugFix: Do not let some keys work when running a transaction... 2016-05-07 18:38:15 -03:00
Alexandre Arnt
8ca633171a - Added "Install Reason" field at Info tab;
- Prevent the user to install partial upgrades in his system (some of
the outdated packages).
2016-05-07 18:30:48 -03:00
Alexandre Arnt
c43008fed5 - Updated translations. 2016-05-05 22:51:50 -03:00
Alexandre Arnt
4a03666e82 - Another dev cycle begins...
- BugFix: About and System Upgrade dialogs could be opened twice in
notifier.
2016-04-08 19:04:15 -03:00
Alexandre Arnt
6d92b42636 Update README.md
Fixed wrong url in README.
2016-03-31 11:05:09 -03:00
Alexandre Arnt
0d98280272 - Bugfix in groups code. 2016-03-27 16:54:26 -03:00
Alexandre Arnt
9fa9190813 - Added ccr to getAUR URL code. 2016-03-27 12:36:15 -03:00
Alexandre Arnt
2557f971fe - Bugfix in url aur code. 2016-03-27 12:13:10 -03:00
Alexandre Arnt
fa3b31a7ac - Bugfix in url show code. 2016-03-27 12:07:42 -03:00
Alexandre Arnt
4454ed520f - Add AUR pkg URL information at Info tab. 2016-03-27 11:59:13 -03:00
Alexandre Arnt
3fabfcda1c - BugFix: Whenever a pkg is called "sh" in optional list, let's anchor
it to "bash".
2016-03-27 10:55:03 -03:00
Alexandre Arnt
6e0debe014 - Bugfixes in groups code. 2016-03-27 10:06:17 -03:00
Alexandre Arnt
739c336a78 - Removed useless code. 2016-03-27 09:04:22 -03:00
Alexandre Arnt
96b06ca89f - Bugfix in toolbutton code. 2016-03-27 08:52:33 -03:00
Alexandre Arnt
002b207fcc - Let's refresh AUR tool button just in the main package list screen. 2016-03-27 08:07:44 -03:00
Alexandre Arnt
6034fc7ac9 - Optimize code. 2016-03-26 12:16:58 -03:00
Alexandre Arnt
d45645bb7c - Bugfix in buildPackageList. 2016-03-26 12:12:36 -03:00
Alexandre Arnt
c0bed628d2 - BugFix in pkglist method. 2016-03-26 12:09:26 -03:00
Alexandre Arnt
742ce81bce - Package list now also preserves sort column and sort order while in
AUR/KCP/CCR mode.
2016-03-26 11:19:19 -03:00
Alexandre Arnt
9596adc9c3 - Bugfix to comply to new pacaur tool;
- Preparation for release.
2016-03-25 23:06:00 -03:00
Alexandre Arnt
28a7f96f78 - Added <F2> shortcut to focus package list. 2016-03-25 20:00:21 -03:00
Alexandre Arnt
89de8dcc62 - Fixed a crash in anchor click while package list did not have focus. 2016-03-25 18:39:44 -03:00
Alexandre Arnt
1115b0e345 - BugFix: When user commits a transaction, commit and cancel buttons
must get disabled.
2016-03-24 20:23:58 -03:00
Alexandre Arnt
ed557f5677 - Use DELETE key to remove pkgs. 2016-03-24 19:34:51 -03:00
Alexandre Arnt
8573e748c2 - Added a shortcut to repoeditor. 2016-03-20 18:29:28 -03:00
Alexandre Arnt
76df1ffb28 - Added shortcuts to some tools. 2016-03-20 12:29:38 -03:00
Alexandre Arnt
ac922ca980 - Small fixes. 2016-03-20 10:43:36 -03:00
Alexandre Arnt
4922e18a1a - Pressing <ENTER> or <RETURN> key on package list triggers package
actions.
2016-03-20 10:31:22 -03:00
Alexandre Arnt
d3c89e293b - Make Octopi more keyboard friendly;
- Some refactorings.
2016-03-20 00:04:21 -03:00
Alexandre Arnt
66fd0746ba - Forgot header info. 2016-03-12 19:05:05 -03:00
Alexandre Arnt
2e45b25cc6 - Refactor in debug mode. 2016-03-12 19:02:49 -03:00
Alexandre Arnt
390cfdc1c5 - Refactoring in remove AUR pkg in a kcp environment. 2016-03-12 18:11:01 -03:00
Alexandre Arnt
3bfa9a1c09 - BugFix: removing AUR pkgs with ccr and kcp were buggy. 2016-03-12 17:37:11 -03:00
Alexandre Arnt
97e63a7b2a - Warn for plasma5 systems using notifier code. 2016-03-12 12:20:20 -03:00
Alexandre Arnt
881b80ad1e - Enhance debugmode output. 2016-03-12 11:54:50 -03:00
Alexandre Arnt
dd09f19d8a - Stop using 'notify-send' in octopi-notifier: the era of annoying
notifiers is over;
- Updated translations.
2016-03-12 10:23:43 -03:00
Alexandre Arnt
1829a288be - Back to defaulting to qt4 for notifier (PKGBUILD). 2016-03-03 17:22:42 -03:00
Alexandre Arnt
aeddfc5816 - Tries to keep notifier compatible with Qt4 libs. 2016-03-03 17:10:04 -03:00
Alexandre Arnt
d1c52c07f1 - Tries to keep notifier compatible with Qt4. 2016-03-03 17:06:17 -03:00
Alexandre Arnt
5a27a68d29 - Use only Qt5 in PKGBUILD. 2016-03-03 15:48:09 -03:00
Alexandre Arnt
2c629c7fcc - BugFix in cache cleaner .pro file. 2016-03-03 14:31:32 -03:00
Alexandre Arnt
f34408cf11 - OutputDialog: first add progressBar. 2016-03-03 12:27:39 -03:00
Alexandre Arnt
e3ccd48c17 - BugFix in get AUR pkg list. 2016-03-03 12:00:45 -03:00
Alexandre Arnt
9827c4231a - BugFix in Get AUR package list. 2016-03-03 11:53:47 -03:00
Alexandre Arnt
9765d48bda - BugFix in makeAnchorOfPackage code. 2016-03-03 11:32:26 -03:00
Alexandre Arnt
b459545aa2 - Refactor to make code generic. 2016-03-03 10:41:57 -03:00
Alexandre Arnt
63cf13150a - Fix in action code. 2016-03-02 21:29:40 -03:00
Alexandre Arnt
e7dddc4b65 - BugFix: test action before seting value. 2016-03-02 21:24:44 -03:00
Alexandre Arnt
2214b1ea40 - Fix outputdialog code. 2016-03-02 18:37:11 -03:00
Alexandre Arnt
92bab445f4 - Missed command execute flag. 2016-03-02 18:18:39 -03:00
Alexandre Arnt
8cc5ef5b76 - Fix slot parameter. 2016-03-02 18:11:02 -03:00
Alexandre Arnt
e034267666 - BugFix in slot parameter. 2016-03-02 18:08:15 -03:00
Alexandre Arnt
71bb830f46 - BugFix in slot parameters. 2016-03-02 18:06:10 -03:00
Alexandre Arnt
0504431389 - Forgot to lock notifier interface... 2016-03-02 18:01:47 -03:00
Alexandre Arnt
9709ce3486 - BugFix in notifier code. 2016-03-02 17:43:34 -03:00
Alexandre Arnt
db87a8f904 - Changed some headers. 2016-03-02 17:35:01 -03:00
Alexandre Arnt
559c025832 - Fix. 2016-03-02 17:02:37 -03:00
Alexandre Arnt
f0af41bfb3 - Add another include. 2016-03-02 17:00:21 -03:00
Alexandre Arnt
28560aca23 - Those files missed default project header. 2016-03-02 16:06:26 -03:00
Alexandre Arnt
08a62b466a - Updated translations. 2016-03-02 15:57:51 -03:00
Alexandre Arnt
f1ef4fa4c0 - Oooops :-) 2016-03-02 15:52:22 -03:00
Alexandre Arnt
93cc403567 Merge branch 'master' of https://github.com/aarnt/octopi 2016-03-02 15:50:32 -03:00
Alexandre Arnt
800cd164e8 - Major refactoring: Decoupling of Pacman executor and parser code from
the UI as well as SearchBar slots for QTextBrowser objects;
- Added an output dialog to notifier, so users can do a system upgrade
without a terminal.
2016-03-02 15:50:06 -03:00
Alexandre Arnt
0c1deb4c22 - Major refactoring: Decoupling of Pacman executor and parser code from
the UI as well as SearchBar slots for QTextBrowser objects;
- Added an output dialog to notifier, so users can do a system upgrade
without a terminal.
2016-03-02 15:47:08 -03:00
Alexandre Arnt
d81bf0e28d - spaces... 2016-03-01 19:02:35 -03:00
Alexandre Arnt
8344157840 - BugFix: When you were searching for a pkg and the Files tab was
selected, focus got lost;
- BugFix: Package dependencies with >, <, =, >= and <= signals were not
clickable in Info tab;
- Major refactoring: Decoupling of Pacman executor and parser code from
the UI.
2016-03-01 19:01:04 -03:00
Alexandre Arnt
a114840c3c - BugFix: When there's a pkg change outside Octopi, we trigger a flag to
refresh the lists.
2016-02-28 18:16:17 -03:00
Alexandre Arnt
d360d3a150 - Updated translation. 2016-02-28 14:31:37 -03:00
Alexandre Arnt
17fa8e7c04 - Updated translations. 2016-02-27 19:07:26 -03:00
Alexandre Arnt
6c0d32b401 - BugFix: Do not permit two or more octopi instances if one is in root
mode.
2016-02-27 15:37:56 -03:00
Alexandre Arnt
1a6f05a107 - Adjusted notifier to handle 1 month check intervals. 2016-02-27 15:22:18 -03:00
Alexandre Arnt
7002ed6471 - BugFix in run with root mode;
- BugFix: Got rid of that annoying ampersand in mainwindow.ui.
2016-02-27 15:02:30 -03:00
Alexandre Arnt
6d20a2817b - BugFix: Tab files was not refreshing when enabling KCP mode in KaOS. 2016-02-26 19:31:23 -03:00
Alexandre Arnt
6137cd17c7 - Added an entry for Mirror-check in Tools menu. 2016-02-26 17:55:44 -03:00
Alexandre Arnt
ceb8afca9f - Added an entry for Mirror-check in File menu;
- Added "pkgfile -u" (if available) in sync db transaction.
2016-02-26 16:57:16 -03:00
Alexandre Arnt
36c68e9567 - BugFix: Distro news now works with https KaOS site. 2016-02-25 16:48:42 -03:00
Alexandre Arnt
d1515168a5 - Updated README.md file. 2016-02-07 15:44:15 -02:00
Alexandre Arnt
2f32ea859f - Removed mirror-check from Chakra. 2016-02-06 18:16:39 -02:00
Alexandre Arnt
402bc37847 - Added Calamares install log when in KaOS. 2016-02-06 17:47:30 -02:00
Alexandre Arnt
34b2dcfec6 - BugFix: simplified chinese translation. 2016-02-06 17:36:49 -02:00
Alexandre Arnt
4d89648fe5 - Added Simplified Chinese translation. 2016-02-06 17:11:33 -02:00
Alexandre Arnt
55199bce21 Merge pull request #149 from philmmanjaro/master
Add lxqt-sudo support
2016-02-06 16:41:54 -02:00
Philip
9a1ebdbca7 lxqt-sudo support
add a method to retrieve lxqt-sudo used with su backend

Signed-off-by: udeved <artoo@manjaro.org>
Signed-off-by: philm <philm@manjaro.org>
2016-01-06 09:11:52 +01:00
Alexandre Arnt
e6fdecb6e3 - New dev cycle begins... 2015-11-14 12:07:51 -02:00
Alexandre Arnt
a32aef964a - Updated CHAKRA RSS site (thanks to s8321414). 2015-11-14 12:03:42 -02:00
227 changed files with 36516 additions and 14711 deletions

View File

@@ -1,3 +1,82 @@
0.9.0
Parser changes: added counter for processed packages.
Group pane now spans all window's height.
SysInfo now uses ptpb site and does not block interface.
Added Trizen (AUR tool) support.
Added Terminal tab if user compiles project with libqtermwidget5 support.
Added Terminal dialog in Notifier (AUR update) if user compiles project with
libqtermwidget5 support.
Added an Options dialog to Octopi and Notifier.
Added button after progressbar to stop current running transaction.
Added configurable "--noconfirm" and "--noedit" options to pacaur and "--noconfirm" to yaourt.
Added "Search/Use Instant Search" toggle.
Added slovenian translation (thanks to the translation crew).
Added support fo drag pacman packages to Octopi's mainwindow so they can be installed.
Added "Install Reason" field at Info tab.
Added support for ALPM utils lib (thanks to guinux, from Pamac project). So, now it's possible to
show "Download Size" in package list.
Added link support in all Info tab package lists.
Added option to upgrade outdated foreign packages from Octopi Notifier.
Added Hindi translation (thanks to Panwar108).
Name of AUR package in Info tab act as link to its site at https://aur.archlinux.org.
Search line edit is always focused when the program starts.
Prevent user to install partial upgrades in his system (ex: only some of the outdated packages).
Do NOT clear search string when switching between AUR/pacman.
BugFix: If threre are updated News after a synchronization, let's goto the News Tab.
BugFix: Remove only Octopi tools related temporary files (qtsingleapp*).
BugFix: Do not let program display an avalanche of internet related errors.
BugFix: Exec internet tests before some commands in Octopi and Notifier.
BugFix: Parser was not outputing repository errors when syncinc.
BugFix: repoeditor now runs as normal user and asks for root password on save.
BugFix: If Notifier hid Octopi and was closed, Octopi's window would stay hidden.
BugFix: Notifier's about dialog was never screen centered.
BugFix: When no AUR helper exists, the group of packages panel stayed disabled.
BugFix: Cache Cleaner now saves its window geometry.
BugFix: Infinite wait cursor in Cache Cleaner when user press Enter for more than two
seconds in the spin boxes.
BugFix: Some pkg download/installed sizes were not showing properly at Info tab.
BugFix: If we find an outdated AUR pkg in the official pkg list, we remove it.
BugFix: Install local packages did not work with space separated paths
(thanks to voanhcuoc for pointing it out).
BugFix: About and System Upgrade dialogs could be opened twice in notifier.
BugFix: Max time in minutes for notification interval was not honoring > 1380.
BugFix: Optional dependencies dialog can now be resized and new value is
persisted on disk.
BugFix: Using the alpm algorithm for package version comparison. Previous code
was reporting false newer packages.
BugFix: System upgrade button was not disabled while synching packages in notifier.
BugFix: searchlineedit font fix.
BugFix: 'yaourt' and 'pacaur' no longer honor "-a" option when querying outdated
foreign packages.
BugFix: System upgrade shortcut changed to "ctrl+P" as "ctrl+U" is used to cut text in
QLineEdit widgets.
BugFix: When user selected another search option, line edit was not being cleared.
BugFix: Disable alien icon while in transaction.
BugFix: Do not ask twice for password if a pacman lck file exists.
0.8.1
BugFix: Updated CHAKRA RSS site (thanks to s8321414).
BugFix: Distro news now works with https KaOS site.
BugFix: Files tab was not refreshing when enabling KCP mode in KaOS.
BugFix: Do not permit two or more octopi instances if one is in root mode.
BugFix: When there's a pkg change outside Octopi, we trigger a flag to refresh the lists.
BugFix: When you were searching for a pkg and the Files tab was selected, focus got lost.
BugFix: Package dependencies with >, <, =, >= and <= signals were not clickable in Info tab.
BugFix: When user commits a transaction, commit and cancel buttons must get disabled.
Package list now also preserves sort column and sort order while in AUR/KCP/CCR mode.
Make Octopi more keyboard friendly.
Pressing <ENTER>, <RETURN> and <DELETE> keys on package list triggers package actions.
Stop using 'notify-send' in octopi-notifier: the era of annoying notifiers is over.
Major refactoring: Decoupling of Pacman executor and parser code from the UI as well as
SearchBar slots for QTextBrowser objects.
Added URL information to yaourt/pacaur remote pkgs at Info tab.
Added <F2> shortcut to focus package list.
Added an output dialog to notifier, so users can do a system upgrade without a terminal.
Added an entry for Mirror-check in Tools menu.
Added support for Simplified Chinese (zh_CN).
Added support for lxqt-sudo tool (thanks to Manjaro team).
Added "pkgfile -u" (if available) in sync db transaction.
0.8.0
This is a Qt5 only version (with the exception of 'octopi-notifier').
BugFix: Speed optimizations in startup code (AUR outdated list).
@@ -18,7 +97,7 @@
BugFix: Added option to search files with "\+" (escaping the plus sign). This would find things such
as C++ => "c\+\+" (thanks to maxis11).
Added support to "kcp --information" at Info tab.
Now tab Files shows a progressbar while building the list of files.
Now Files tab shows a progressbar while building the list of files.
Yellow notifier icon tooltip now displays Foreign repo tool name.
When outdated packages are printed at Output tab, you can see their
information just hovering the mouse over them.
@@ -134,7 +213,7 @@
BugFix: Adapted ArchBang changes.
BugFix: Removed unused Ctrl+N help text.
BugFix: Some changes in LXQt support.
BugFix: Download and installed size info at info tab.
BugFix: Download and installed size info at Info tab.
BugFix: The 'Enter' key (numeric keyboard) is now supported.
BugFix: At start when there is no pacman db, octopi hangs (thanks to anex).
BugFix: After a pkg list rebuild the Files and Info cache were not
@@ -366,7 +445,7 @@ terminal, the package actions remained disabled.
0.1.3
Added better support to Qt dark themes.
Added context menu support inside Files tab.
Made URLs clickable inside output tab.
Made URLs clickable inside Output tab.
Fixed the annoying Packager information display bug.
0.1.2

154
PKGBUILD
View File

@@ -1,107 +1,71 @@
pkgname=('octopi' 'octopi-notifier' 'octopi-repoeditor' 'octopi-cachecleaner')
pkgver=0.8.0
pkgname=octopi
pkgver=0.9.0
pkgrel=1
pkgdesc="a powerful Pacman frontend using Qt libs"
pkgdesc="This is Octopi, a powerful Pacman frontend using Qt libs"
url="https://octopiproject.wordpress.com/"
arch=('i686' 'x86_64')
url="http://octopiproject.wordpress.com"
license=('GPL2')
install=$pkgname.install
makedepends=('git')
depends=('qt4' 'qt5-quickcontrols' 'xterm')
depends=('pacman' 'pacman-contrib' 'pkgfile' 'knotifications' 'alpm_octopi_utils' 'xterm' 'qtermwidget')
optdepends=('kdesu: for KDE'
'gksu: for XFCE, Gnome, LXDE, Cinnamon'
'gnome-keyring: for password management'
'gist: for SysInfo report'
'yaourt: for AUR support'
'octopi-notifier: for notifications'
'pkgfile: to view uninstalled pkg contents in ArchLinux')
provides=('octopi')
md5sums=()
'yaourt: for AUR support')
groups=('system')
install=octopi.install
source=("https://github.com/aarnt/octopi/archive/v${pkgver}.tar.gz")
#md5sums=('')
prepare() {
cd ${pkgname}-${pkgver}
# enable the kstatus switch, disable if you wish to build without Plasma/knotifications support
sed -e "s|DEFINES += ALPM_BACKEND #KSTATUS|DEFINES += ALPM_BACKEND KSTATUS|" -i notifier/octopi-notifier/octopi-notifier.pro
cp resources/images/octopi_green.png resources/images/octopi.png
}
build() {
cpucount=$(grep -c processor /proc/cpuinfo 2>/dev/null)
jc=$((${cpucount:-1}))
#cd "$srcdir"
msg "Starting build..."
cd $startdir
qmake-qt5 $pkgname.pro
make -j $jc
cd $startdir/notifier/pacmanhelper
msg "Building pacmanhelper..."
qmake-qt5 pacmanhelper.pro
make -j $jc
cd $startdir/notifier/octopi-notifier
msg "Building octopi-notifier..."
qmake-qt4 octopi-notifier.pro
make -j $jc
cd $startdir/repoeditor
msg "Building octopi-repoeditor..."
qmake-qt5 octopi-repoeditor.pro
make -j $jc
cd $startdir/cachecleaner
msg "Building octopi-cachecleaner..."
qmake-qt5 octopi-cachecleaner.pro
make -j $jc
}
package_octopi() {
#Octopi main files
install -D -m755 $startdir/bin/$pkgname ${pkgdir}/usr/bin/$pkgname
install -D -m644 $startdir/$pkgname.desktop ${pkgdir}/usr/share/applications/$pkgname.desktop
install -D -m644 $startdir/resources/images/${pkgname}_green.png ${pkgdir}/usr/share/icons/$pkgname.png
install -D -m644 $startdir/resources/images/${pkgname}_green.png ${pkgdir}/usr/share/icons/gnome/32x32/apps/$pkgname.png
install -D -m644 $startdir/resources/images/${pkgname}_red.png ${pkgdir}/usr/share/icons/${pkgname}_red.png
install -D -m644 $startdir/resources/images/${pkgname}_yellow.png ${pkgdir}/usr/share/icons/${pkgname}_yellow.png
#speedup files
install -D -m755 $startdir/speedup/speedup-octopi.sh ${pkgdir}/usr/bin/speedup-octopi.sh
install -D -m644 $startdir/speedup/${pkgname}.service ${pkgdir}/etc/systemd/system/${pkgname}.service
#Pacmaneditor files
install -D -m755 $startdir/repoeditor/bin/octopi-repoeditor ${pkgdir}/usr/bin/octopi-repoeditor
#Cachecleaner files
install -D -m755 $startdir/cachecleaner/bin/octopi-cachecleaner ${pkgdir}/usr/bin/octopi-cachecleaner
install -D -m644 $startdir/cachecleaner/octopi-cachecleaner.desktop ${pkgdir}/usr/share/applications/octopi-cachecleaner.desktop
}
package_octopi-notifier() {
pkgdesc="Notifier for Octopi"
depends=('libnotify')
optdepends=('octopi: launch graphical package manager from tray'
'xfce4-notifyd: for notifications in XFCE')
#Pacmanhelper service files
install -D -m755 $startdir/notifier/bin/pacmanhelper ${pkgdir}/usr/lib/octopi/pacmanhelper
install -D -m644 $startdir/notifier/pacmanhelper/polkit/org.octopi.pacman.policy ${pkgdir}/usr/share/polkit-1/actions/org.octopi.pacman.policy
install -D -m644 $startdir/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.conf ${pkgdir}/etc/dbus-1/system.d/org.octopi.pacmanhelper.conf
install -D -m644 $startdir/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.xml ${pkgdir}/usr/share/dbus-1/interfaces/org.octopi.pacmanhelper.xml
install -D -m644 $startdir/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.service ${pkgdir}/usr/share/dbus-1/system-services/org.octopi.pacmanhelper.service
#Octopi-notifier file
install -D -m755 $startdir/notifier/bin/octopi-notifier ${pkgdir}/usr/bin/octopi-notifier
install -D -m644 $startdir/octopi-notifier.desktop ${pkgdir}/etc/xdg/autostart/octopi-notifier.desktop
}
package_octopi-repoeditor() {
pkgdesc="Repoeditor for Octopi"
cd ${pkgname}-${pkgver}
#Octopi-repoeditor file
install -D -m755 $startdir/repoeditor/bin/octopi-repoeditor ${pkgdir}/usr/bin/octopi-repoeditor
qmake-qt5 octopi.pro
make
cd notifier/pacmanhelper
qmake-qt5 QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" pacmanhelper.pro
make
cd ../..
cd notifier/octopi-notifier
qmake-qt5 QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" octopi-notifier.pro
make
cd ../..
cd repoeditor
qmake-qt5 QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" octopi-repoeditor.pro
make
cd ..
cd cachecleaner
qmake-qt5 QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" octopi-cachecleaner.pro
make
}
package_octopi-cachecleaner() {
pkgdesc="Cachecleaner for Octopi"
#Octopi-cachecleaner file
install -D -m755 $startdir/cachecleaner/bin/octopi-cachecleaner ${pkgdir}/usr/bin/octopi-cachecleaner
install -D -m644 $startdir/cachecleaner/$pkgname.desktop ${pkgdir}/usr/share/applications/$pkgname.desktop
package() {
cd ${pkgname}-${pkgver}
make INSTALL_ROOT=${pkgdir} install
cd notifier/pacmanhelper
make INSTALL_ROOT=${pkgdir} install
cd ../..
cd notifier/octopi-notifier
make INSTALL_ROOT=${pkgdir} install
cd ../..
cd repoeditor
make INSTALL_ROOT=${pkgdir} install
cd ..
cd cachecleaner
make INSTALL_ROOT=${pkgdir} install
}

View File

@@ -2,32 +2,32 @@
The project site is hosted at https://octopiproject.wordpress.com
Currently, 10 Linux distros are compatible with it
Currently, 9 Linux distros are compatible with it
* [Antergos] (https://antergos.com/)
* [ArchBang] (http://wiki.archbang.org/index.php?title=Main_Page)
* [Arch] (https://www.archlinux.org/)
* [ArchBSD] (https://pacbsd.org/)
* [Chakra] (https://chakraos.org/)
* [KaOS] (http://kaosx.us/)
* [Manjaro] (http://manjaro.github.io/)
* [mooOS] (http://mooos.org/)
* [Netrunner (rolling)]
(http://www.netrunner.com/netrunner-rolling-release/)
* [Parabola GNU/Linux-libre] (http://www.parabola.nu/https/)
* [Antergos](https://antergos.com/)
* [ArchBang](http://archbang.org/)
* [Arch](https://www.archlinux.org/)
* [Chakra](https://chakralinux.org/)
* [KaOS](https://kaosx.us/)
* [Manjaro](https://manjaro.org/)
* [mooOS](http://mooos.sourceforge.net/)
* [Netrunner (rolling)](http://www.netrunner.com/netrunner-rolling-release/)
* [Parabola GNU/Linux-libre](https://www.parabola.nu/)
### What you must install in your system to have Octopi fully functional
You'll need a privilege escalation tool to use it, once running as
root will ONLY work in KDE. Octopi supports kdesu and gksu for that.
You'll need:
* [Alpm_octopi_utils](https://github.com/aarnt/alpm_octopi_utils/) library
* A privilege escalation tool to use it. Octopi supports gksu, kdesu and lxqt-sudo for that
* qtermwidget >= 0.8 in order to build Octopi with embedded terminal support
### Simple steps to build Octopi code
Assuming you have Qt5 libs properly installed, go to the directory that has the code:
Assuming you have Qt5 libs properly installed, go to the directory where the code is located:
```
$ cd OCTOPI_PATH
$ qmake
$ qmake-qt5
$ make
```
@@ -38,15 +38,16 @@ $ cd OCTOPI_PATH
$ makepkg -f
```
### How to enable the "alien" icon at toolbar
### How to enable AUR support (that "alien" icon at toolbar)
To enable AUR support, you'll need to install "yaourt" or "pacaur" in your system.
In Chakra, "ccr" will be supported out of the box.
In KaOS, "kcp" will be supported out of the box.
To enable AUR support, you'll need to install [yaourt](https://archlinux.fr/yaourt-en),
[pacaur](https://github.com/rmarquis/pacaur) or [trizen](https://github.com/trizen/trizen) in your system.
In Chakra, [chaser](https://github.com/ccr-tools/chaser) will be supported out of the box.
In KaOS, [kcp](https://github.com/bvaudour/kcp) will be supported out of the box.
### Ways to help/support Octopi
* You can "Star" it at the Github page - https://github.com/aarnt/octopi
* You can "Star" it at the Github page - https://github.com/aarnt/octopi/
* You can vote in the AUR package available at https://aur.archlinux.org/packages/octopi/
* You can translate it to your mother language at https://www.transifex.com/projects/p/octopi/
* You can follow author's twitter account at https://twitter.com/aaarnt

View File

@@ -20,9 +20,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "cachecleaner.h"
#include "ui_cachecleaner.h"
#include "../src/strconstants.h"
#include <QKeyEvent>
/*
* CacheCleaner window constructor
*/
@@ -30,7 +31,6 @@ CacheCleaner::CacheCleaner(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::CacheCleaner)
{
//UI initialization
ui->setupUi(this);
@@ -51,8 +51,10 @@ CacheCleaner::CacheCleaner(QWidget *parent) :
m_uninstalled = new PackageGroupModel("-u",
ui->uninstalledPackagesList,
ui->keepUninstalledPackagesSpinner,
ui->refreshUninstalledButton,
ui->refreshUninstalledButton,
ui->cleanUninstalledButton);
restoreGeometry(SettingsManager::getCacheCleanerWindowSize());
}
/*
@@ -70,6 +72,20 @@ CacheCleaner::~CacheCleaner()
*/
void CacheCleaner::closeEvent(QCloseEvent *)
{
QByteArray windowSize=saveGeometry();
SettingsManager::setCacheCleanerWindowSize(windowSize);
SettingsManager::setKeepNumInstalledPackages(ui->keepInstalledPackagesSpinner->value());
SettingsManager::setKeepNumUninstalledPackages(ui->keepUninstalledPackagesSpinner->value());
}
/*
* Whenever user presses ESC, we quit the program
*/
void CacheCleaner::keyPressEvent(QKeyEvent *ke)
{
if (ke->key() == Qt::Key_Escape)
{
close();
}
}

View File

@@ -38,7 +38,6 @@ class CacheCleaner : public QMainWindow
private:
Ui::CacheCleaner *ui;
PackageGroupModel *m_installed;
PackageGroupModel *m_uninstalled;
@@ -48,6 +47,7 @@ public:
protected:
void closeEvent(QCloseEvent *);
void keyPressEvent(QKeyEvent *);
};
#endif // CACHECLEANER_H

View File

@@ -19,10 +19,11 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "cachecleaner.h"
#include "../../src/strconstants.h"
#include "../src/QtSolutions/qtsingleapplication.h"
#include <QApplication>
#include <QMessageBox>
#include <QTranslator>
#include <QLocale>
#include <QLibraryInfo>
@@ -46,10 +47,20 @@ int main( int argc, char *argv[] )
QLocale::system().name());
app.installTranslator(&appTranslator);
if (UnixCommand::isRootRunning()){
QMessageBox::critical( 0, StrConstants::getApplicationName(), StrConstants::getErrorRunningWithRoot());
return ( -2 );
}
if (!UnixCommand::hasTheExecutable("paccache"))
{
QMessageBox::critical( 0, StrConstants::getApplicationName(), StrConstants::getExecutableCouldNotBeFound().arg("\"paccache\""));
return ( -3 );
}
CacheCleaner w;
app.setActivationWindow(&w);
w.show();
QResource::registerResource("./resources.qrc");
return app.exec();

View File

@@ -20,6 +20,7 @@ HEADERS += cachecleaner.h \
../src/wmhelper.h \
../src/terminal.h \
../src/settingsmanager.h \
../src/searchlineedit.h \
../src/utils.h \
../src/package.h \
../src/QtSolutions/qtsingleapplication.h \
@@ -31,10 +32,12 @@ HEADERS += cachecleaner.h \
SOURCES += main.cpp \
cachecleaner.cpp \
packagegroupmodel.cpp \
../src/strconstants.cpp \
../src/unixcommand.cpp \
../src/wmhelper.cpp \
../src/terminal.cpp \
../src/settingsmanager.cpp \
../src/searchlineedit.cpp \
../src/utils.cpp \
../src/package.cpp \
../src/QtSolutions/qtsingleapplication.cpp \
@@ -48,6 +51,7 @@ RESOURCES += resources.qrc
TRANSLATIONS += resources/translations/octopi_cachecleaner_pt_BR.ts \
resources/translations/octopi_cachecleaner_fr_FR.ts \
resources/translations/octopi_cachecleaner_fr.ts \
resources/translations/octopi_cachecleaner_es_ES.ts \
resources/translations/octopi_cachecleaner_es_419.ts \
resources/translations/octopi_cachecleaner_es_AR.ts \
@@ -64,6 +68,8 @@ TRANSLATIONS += resources/translations/octopi_cachecleaner_pt_BR.ts \
resources/translations/octopi_cachecleaner_da.ts \
resources/translations/octopi_cachecleaner_cs.ts \
resources/translations/octopi_cachecleaner_he.ts \
resources/translations/octopi_cachecleaner_hi.ts \
resources/translations/octopi_cachecleaner_hi_IN.ts \
resources/translations/octopi_cachecleaner_lt.ts \
resources/translations/octopi_cachecleaner_nb.ts \
resources/translations/octopi_cachecleaner_sr@latin.ts \
@@ -77,6 +83,7 @@ TRANSLATIONS += resources/translations/octopi_cachecleaner_pt_BR.ts \
resources/translations/octopi_cachecleaner_en_GB.ts \
resources/translations/octopi_cachecleaner_pt_PT.ts \
resources/translations/octopi_cachecleaner_sv.ts \
resources/translations/octopi_cachecleaner_sl.ts \
resources/translations/octopi_cachecleaner_hu.ts \
resources/translations/octopi_cachecleaner_zh_TW.ts \
resources/translations/octopi_cachecleaner_ms_MY.ts \
@@ -88,3 +95,26 @@ TRANSLATIONS += resources/translations/octopi_cachecleaner_pt_BR.ts \
resources/translations/octopi_cachecleaner_ast.ts \
resources/translations/octopi_cachecleaner_hr.ts \
resources/translations/octopi_cachecleaner_zh-Hans.ts
resources/translations/octopi_cachecleaner_zh_CN.ts
# install
isEmpty(PREFIX) {
PREFIX = /usr
}
isEmpty(BINDIR) {
BINDIR = $$PREFIX/bin
}
isEmpty(DATADIR) {
DATADIR = $$PREFIX/share
}
target.path = $$BINDIR
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
sources.path = .
desktop.path = $$DATADIR/applications
desktop.files += cachecleaner/octopi-cachecleaner.desktop
INSTALLS += target desktop

View File

@@ -56,6 +56,8 @@ PackageGroupModel::PackageGroupModel(QString optionsString,
connect( m_refreshButton, SIGNAL( clicked() ), SLOT( refreshCacheView() ) );
connect( m_cleanButton, SIGNAL( clicked() ), SLOT( cleanCache() ) );
isExecutingCommand = false;
//refresh cache informations at startup
refreshCacheView();
}
@@ -102,6 +104,8 @@ QString PackageGroupModel::getOptions()
*/
void PackageGroupModel::refreshCacheView()
{
if (isExecutingCommand) return;
//update UI for background refresh
QApplication::setOverrideCursor(Qt::WaitCursor);
m_acc->reset();
@@ -116,6 +120,7 @@ void PackageGroupModel::refreshCacheView()
this, SLOT( finishedDryrun ( int, QProcess::ExitStatus )) );
m_cmd->executeCommandAsNormalUser("paccache -v -d " + getOptions());
isExecutingCommand = true;
}
/*
@@ -144,6 +149,8 @@ bool PackageGroupModel::isSUAvailable()
*/
void PackageGroupModel::cleanCache()
{
if (isExecutingCommand) return;
if (!isSUAvailable())
return;
@@ -159,6 +166,7 @@ void PackageGroupModel::cleanCache()
QByteArray tmp = "paccache -r " + getOptions().toLatin1();
m_cmd->executeCommand(QLatin1String(tmp), ectn_LANG_USER_DEFINED);
isExecutingCommand = true;
}
/*
@@ -172,6 +180,8 @@ void PackageGroupModel::finishedDryrun(int exitCode, QProcess::ExitStatus)
QApplication::restoreOverrideCursor();
isExecutingCommand = false;
if(exitCode > 1)
{
//process failed, provide info on errors
@@ -198,10 +208,11 @@ void PackageGroupModel::finishedClean(int exitCode, QProcess::ExitStatus)
QApplication::restoreOverrideCursor();
isExecutingCommand = false;
if(exitCode != 0)
{
//process failed, provide info on errors
QMessageBox::critical(m_listView, "Error whith the underlying process",m_acc->getErrors());
//process failed, return to main window
m_refreshButton->setEnabled(true);
m_cleanButton->setEnabled(true);
}
@@ -218,7 +229,7 @@ void PackageGroupModel::finishedClean(int exitCode, QProcess::ExitStatus)
* @param output The output of the dryrun process
*/
void PackageGroupModel::processDryrunResult(QString output) {
QStringList lines = output.split(QRegExp("\\n"), QString::SkipEmptyParts);
QStringList lines = output.split(QRegularExpression("\\n"), QString::SkipEmptyParts);
if(lines.length() == 1 || output.contains("*.pkg.tar?(.+([^.]))"))
{

View File

@@ -82,6 +82,7 @@ class PackageGroupModel : public QObject
private:
bool isSUAvailable();
bool isExecutingCommand;
public:
PackageGroupModel(QString, QListWidget *, QSpinBox *, QPushButton *, QPushButton *);

View File

@@ -1,9 +0,0 @@
#/bin/sh
# Helper for Qt5 libs to generate all Octopi translations
TRANSLATIONS=./resources/translations/*
for f in $TRANSLATIONS
do
lrelease-qt5 $f
done

View File

@@ -18,7 +18,10 @@
<file>resources/translations/octopi_cachecleaner_fi.qm</file>
<file>resources/translations/octopi_cachecleaner_fi_FI.qm</file>
<file>resources/translations/octopi_cachecleaner_fr_FR.qm</file>
<file>resources/translations/octopi_cachecleaner_fr.qm</file>
<file>resources/translations/octopi_cachecleaner_he.qm</file>
<file>resources/translations/octopi_cachecleaner_hi.qm</file>
<file>resources/translations/octopi_cachecleaner_hi_IN.qm</file>
<file>resources/translations/octopi_cachecleaner_hu.qm</file>
<file>resources/translations/octopi_cachecleaner_id.qm</file>
<file>resources/translations/octopi_cachecleaner_it.qm</file>
@@ -36,12 +39,14 @@
<file>resources/translations/octopi_cachecleaner_sr@latin.qm</file>
<file>resources/translations/octopi_cachecleaner_sr_RS.qm</file>
<file>resources/translations/octopi_cachecleaner_sv.qm</file>
<file>resources/translations/octopi_cachecleaner_sl.qm</file>
<file>resources/translations/octopi_cachecleaner_tr_TR.qm</file>
<file>resources/translations/octopi_cachecleaner_uk.qm</file>
<file>resources/translations/octopi_cachecleaner_uz.qm</file>
<file>resources/translations/octopi_cachecleaner_vi.qm</file>
<file>resources/translations/octopi_cachecleaner_zh_TW.qm</file>
<file>resources/translations/octopi_cachecleaner_zh-Hans.ts</file>
<file>resources/translations/octopi_cachecleaner_zh-Hans.qm</file>
<file>resources/translations/octopi_cachecleaner_zh_CN.qm</file>
<file>resources/translations/octopi_cachecleaner_hr.qm</file>
</qresource>
</RCC>

View File

@@ -4,7 +4,7 @@
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
<source>Cache Cleaner - Octopi</source>
<translation>Netejador de la Cau/Cache - Octopi</translation>
<translation>Netejador de la cau - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
@@ -15,7 +15,7 @@
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
<source>Keep :</source>
<translation>Mantenir :</translation>
<translation>Mantén:</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>

View File

@@ -4,7 +4,7 @@
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
<source>Cache Cleaner - Octopi</source>
<translation>Cache Renser - Octopi</translation>
<translation>Cache-renser - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr" version="2.0">
<context>
<name>CacheCleaner</name>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
<source>Cache Cleaner - Octopi</source>
<translation>Nettoyeur de cache - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
<source>Uninstalled packages</source>
<translation>Paquets non installés</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
<source>Keep :</source>
<translation>Conserver :</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
<source>Number of old versions to keep</source>
<translation>Nombre d&apos;anciennes versions à conserver</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
<source>Refresh</source>
<translation>Actualiser</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
<source>Installed packages</source>
<translation>Paquets installés</translation>
</message>
</context>
<context>
<name>PackageGroupModel</name>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
<source>Clean</source>
<translation>Nettoyer</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
<source>Clean %1</source>
<translation>Nettoyer %1</translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hi" version="2.0">
<context>
<name>CacheCleaner</name>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
<source>Cache Cleaner - Octopi</source>
<translation> - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
<source>Uninstalled packages</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
<source>Keep :</source>
<translation> :</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
<source>Number of old versions to keep</source>
<translation> , ि </translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
<source>Refresh</source>
<translation> ि </translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
<source>Installed packages</source>
<translation> </translation>
</message>
</context>
<context>
<name>PackageGroupModel</name>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
<source>Clean</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
<source>Clean %1</source>
<translation>%1 </translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hi_IN" version="2.0">
<context>
<name>CacheCleaner</name>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
<source>Cache Cleaner - Octopi</source>
<translation> - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
<source>Uninstalled packages</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
<source>Keep :</source>
<translation> :</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
<source>Number of old versions to keep</source>
<translation> , ि </translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
<source>Refresh</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
<source>Installed packages</source>
<translation> </translation>
</message>
</context>
<context>
<name>PackageGroupModel</name>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
<source>Clean</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
<source>Clean %1</source>
<translation>%1 </translation>
</message>
</context>
</TS>

View File

@@ -4,12 +4,12 @@
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
<source>Cache Cleaner - Octopi</source>
<translation>Limpeza do Cache - Octopi</translation>
<translation>Limpador do Cache - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
<source>Uninstalled packages</source>
<translation>Pacotes não instalados</translation>
<translation>Pacotes desinstalados</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="sl" version="2.0">
<context>
<name>CacheCleaner</name>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
<source>Cache Cleaner - Octopi</source>
<translation>Čistilnik predpomnilnika - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
<source>Uninstalled packages</source>
<translation>Odstranjeni paketi</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
<source>Keep :</source>
<translation>Obdrži:</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
<source>Number of old versions to keep</source>
<translation>Število namestitvenih datotek za obržati</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
<source>Refresh</source>
<translation>Osveži</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
<source>Installed packages</source>
<translation>Nameščeni paketi</translation>
</message>
</context>
<context>
<name>PackageGroupModel</name>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
<source>Clean</source>
<translation>Počisti</translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
<source>Clean %1</source>
<translation>Počisti %1</translation>
</message>
</context>
</TS>

View File

@@ -32,7 +32,7 @@
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
<source>Installed packages</source>
<translation>Установлені пакунки</translation>
<translation>Встановлені пакунки</translation>
</message>
</context>
<context>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_CN" version="2.0">
<context>
<name>CacheCleaner</name>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
<source>Cache Cleaner - Octopi</source>
<translation> - Octopi </translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
<source>Uninstalled packages</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
<source>Keep :</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
<source>Number of old versions to keep</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
<source>Refresh</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
<source>Installed packages</source>
<translation></translation>
</message>
</context>
<context>
<name>PackageGroupModel</name>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
<source>Clean</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
<source>Clean %1</source>
<translation> %1</translation>
</message>
</context>
</TS>

View File

@@ -64,20 +64,6 @@ int main(int argc, char *argv[])
}
QApplication a(argc, argv);
#if QT_VERSION < 0x050000
#ifndef NO_GTK_STYLE
QApplication::setGraphicsSystem(QLatin1String("raster"));
if(!WMHelper::isKDERunning() && (!WMHelper::isLXQTRunning()) && (!WMHelper::isRazorQtRunning()))
{
qApp->setStyle(new QGtkStyle());
}
else
qApp->setStyle(new QCleanlooksStyle);
#endif
#endif
QTranslator appTranslator;
appTranslator.load(":/resources/translations/octopi_" +
QLocale::system().name());

View File

@@ -19,12 +19,13 @@
*/
#include "mainwindow.h"
#include "setupdialog.h"
#include "outputdialog.h"
#include "../pacmanhelper/pacmanhelperclient.h"
#include "../../src/strconstants.h"
#include "../../src/uihelper.h"
#include "../../src/package.h"
#include "../../src/transactiondialog.h"
#include "../../src/optionsdialog.h"
#include <QTimer>
#include <QSystemTrayIcon>
@@ -33,6 +34,7 @@
#include <QProcess>
#include <QMessageBox>
#include <QDebug>
#include <QScreen>
#ifdef KSTATUS
#include <kstatusnotifieritem.h>
@@ -48,14 +50,17 @@
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
m_pacmanExec = nullptr;
m_transactionDialog = nullptr;
m_debugInfo = false;
m_configDialog = nullptr;
m_optionsDialog = nullptr;
m_pacmanDatabaseSystemWatcher =
new QFileSystemWatcher(QStringList() << ctn_PACMAN_DATABASE_DIR, this);
connect(m_pacmanDatabaseSystemWatcher,
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
initActions();
initSystemTrayIcon();
}
@@ -66,6 +71,45 @@ MainWindow::~MainWindow()
#endif
}
/*
* Let's initialize all notifier's actions...
*/
void MainWindow::initActions()
{
m_actionExit = new QAction(IconHelper::getIconExit(), tr("Exit"), this);
connect(m_actionExit, SIGNAL(triggered()), this, SLOT(exitNotifier()));
m_actionAbout = new QAction(StrConstants::getHelpAbout(), this);
m_actionAbout->setIconVisibleInMenu(true);
connect(m_actionAbout, SIGNAL(triggered()), this, SLOT(aboutOctopiNotifier()));
m_actionOctopi = new QAction(this);
m_actionOctopi->setText("Octopi...");
connect(m_actionOctopi, SIGNAL(triggered()), this, SLOT(startOctopi()));
m_actionOptions = new QAction(this);
m_actionOptions->setText(StrConstants::getOptions());
connect(m_actionOptions, SIGNAL(triggered()), this, SLOT(showOptionsDialog()));
m_actionSyncDatabase = new QAction(this);
m_actionSyncDatabase->setIconVisibleInMenu(true);
m_actionSyncDatabase->setText(StrConstants::getSyncDatabase());
m_actionSyncDatabase->setIcon(IconHelper::getIconSyncDatabase());
connect(m_actionSyncDatabase, SIGNAL(triggered()), this, SLOT(syncDatabase()));
m_actionSystemUpgrade = new QAction(this);
m_actionSystemUpgrade->setIconVisibleInMenu(true);
m_actionSystemUpgrade->setText(tr("System upgrade"));
m_actionSystemUpgrade->setIcon(IconHelper::getIconSystemUpgrade());
connect(m_actionSystemUpgrade, SIGNAL(triggered()), this, SLOT(runOctopiSysUpgrade()));
m_actionAURUpgrade = new QAction(this);
m_actionAURUpgrade->setIconVisibleInMenu(true);
m_actionAURUpgrade->setText(tr("System upgrade"));
m_actionAURUpgrade->setIcon(IconHelper::getIconForeignGreen());
connect(m_actionAURUpgrade, SIGNAL(triggered()), this, SLOT(runOctopiAURUpgrade()));
}
/*
* Let's initialize the system tray object...
*/
@@ -93,42 +137,17 @@ void MainWindow::initSystemTrayIcon()
m_systemTrayIcon->setIcon(m_icon);
#endif
m_actionExit = new QAction(IconHelper::getIconExit(), tr("Exit"), this);
connect(m_actionExit, SIGNAL(triggered()), this, SLOT(exitNotifier()));
m_actionAbout = new QAction(StrConstants::getHelpAbout(), this);
m_actionAbout->setIconVisibleInMenu(true);
connect(m_actionAbout, SIGNAL(triggered()), this, SLOT(aboutOctopiNotifier()));
m_actionOctopi = new QAction(this);
m_actionOctopi->setText("Octopi...");
connect(m_actionOctopi, SIGNAL(triggered()), this, SLOT(startOctopi()));
m_actionSetInterval = new QAction(this);
m_actionSetInterval->setText(StrConstants::getSetInterval());
connect(m_actionSetInterval, SIGNAL(triggered()), this, SLOT(showConfigDialog()));
m_actionSyncDatabase = new QAction(this);
m_actionSyncDatabase->setIconVisibleInMenu(true);
m_actionSyncDatabase->setText(StrConstants::getSyncDatabase());
m_actionSyncDatabase->setIcon(IconHelper::getIconSyncDatabase());
connect(m_actionSyncDatabase, SIGNAL(triggered()), this, SLOT(syncDatabase()));
m_actionSystemUpgrade = new QAction(this);
m_actionSystemUpgrade->setIconVisibleInMenu(true);
m_actionSystemUpgrade->setText(tr("System upgrade"));
m_actionSystemUpgrade->setIcon(IconHelper::getIconSystemUpgrade());
connect(m_actionSystemUpgrade, SIGNAL(triggered()), this, SLOT(runOctopiSysUpgrade()));
m_systemTrayIconMenu = new QMenu( this );
if (UnixCommand::hasTheExecutable("octopi"))
m_systemTrayIconMenu->addAction(m_actionOctopi);
m_systemTrayIconMenu->addAction(m_actionSetInterval);
m_systemTrayIconMenu->addAction(m_actionSyncDatabase);
m_systemTrayIconMenu->addAction(m_actionAURUpgrade);
m_systemTrayIconMenu->addAction(m_actionSystemUpgrade);
m_systemTrayIconMenu->addSeparator();
m_systemTrayIconMenu->addAction(m_actionOptions);
m_systemTrayIconMenu->addSeparator();
m_systemTrayIconMenu->addAction(m_actionAbout);
m_systemTrayIconMenu->addAction(m_actionExit);
m_systemTrayIcon->setContextMenu(m_systemTrayIconMenu);
@@ -160,14 +179,14 @@ void MainWindow::pacmanHelperTimerTimeout()
{
static bool firstTime=true;
if (!UnixCommand::hasInternetConnection() || m_commandExecuting != ectn_NONE) return;
if (/*!UnixCommand::hasInternetConnection() ||*/ m_commandExecuting != ectn_NONE) return;
if (firstTime)
{
refreshAppIcon();
#ifdef KSTATUS
m_systemTrayIcon->setToolTipTitle("Octopi");
m_systemTrayIcon->setToolTipTitle("Octopi Notifier");
#else
m_systemTrayIcon->show();
#endif
@@ -240,15 +259,48 @@ void MainWindow::runOctopiSysUpgrade()
runOctopi(ectn_SYSUPGRADE_EXEC_OPT);
}
/*
* Helper to a runOctopi with a call to AUR upgrade
*/
void MainWindow::runOctopiAURUpgrade()
{
runOctopi(ectn_AUR_UPGRADE_EXEC_OPT);
}
/*
* Shows Octopi About Dialog...
*/
void MainWindow::aboutOctopiNotifier()
{
QString aboutText = "<b>Octopi Notifier - " + StrConstants::getApplicationVersion() + "</b>" + " (" + StrConstants::getQtVersion() + ")<br>";
aboutText += "<a href=\"http://octopiproject.wordpress.com/\">http://octopiproject.wordpress.com</a><br><br>";
aboutText += "&copy; Alexandre Albuquerque Arnt";
QMessageBox::about(this, StrConstants::getHelpAbout(), aboutText);
m_actionAbout->setEnabled(false);
//First we create a fake window to act as about dialog's parent
//Otherwise the dialog appears at a random screen point!
QMainWindow *fake = new QMainWindow();
fake->setWindowIcon(m_icon);
fake->setVisible(false);
QScreen *sc = QGuiApplication::primaryScreen();
fake->setGeometry(sc->geometry());
QString aboutText = "<b>Octopi Notifier</b><br>";
aboutText += StrConstants::getVersion() + ": " + StrConstants::getApplicationVersion() + "</b>" + " - " + StrConstants::getQtVersion() + "<br>";
aboutText += StrConstants::getURL() + ": " + "<a href=\"http://octopiproject.wordpress.com/\">http://octopiproject.wordpress.com</a><br>";
aboutText += StrConstants::getLicenses() + ": " + QString("<a href=\"http://www.gnu.org/licenses/gpl-2.0.html\">GPL v2</a><br>");
aboutText += "&copy; Alexandre Albuquerque Arnt<br><br>";
aboutText += "<b>Pacman</b><br>";
QString pacmanV = UnixCommand::getPacmanVersion();
if (pacmanV.at(0) == 'v') pacmanV.remove(0, 1);
aboutText += StrConstants::getVersion() + ": " + pacmanV + "<br>";
aboutText += StrConstants::getURL() + ": " + "<a href=\"https://www.archlinux.org/pacman/\">https://www.archlinux.org/pacman</a><br>";
QDate d = QDate::currentDate();
aboutText += "&copy; 2006-%1 Pacman Development Team<br>";
aboutText += "&copy; 2002-2006 Judd Vinet";
aboutText = aboutText.arg(d.year());
QMessageBox::about(fake, StrConstants::getHelpAbout(), aboutText);
delete fake;
m_actionAbout->setEnabled(true);
}
/*
@@ -259,6 +311,14 @@ void MainWindow::hideOctopi()
QProcess::startDetached("octopi -hide");
}
/*
* Shows Octopi Window if it is hidden
*/
void MainWindow::showOctopi()
{
QProcess::startDetached("octopi -show");
}
/*
* Checks if some SU utility is available...
* Returns false if not!
@@ -282,6 +342,31 @@ bool MainWindow::_isSUAvailable()
*/
void MainWindow::doSystemUpgrade()
{
if (!isInternetAvailable()) return;
//If, for whatever reason, the pacman db is locked, let's ask for lock removal
if (PacmanExec::isDatabaseLocked())
{
int res = QMessageBox::question(this, StrConstants::getConfirmation(),
StrConstants::getRemovePacmanTransactionLockFileConfirmation(),
QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
if (res == QMessageBox::Yes)
{
PacmanExec::removeDatabaseLock();
}
else return;
}
if (m_transactionDialog != nullptr)
{
if (m_transactionDialog->isMinimized())
m_transactionDialog->setWindowState(Qt::WindowNoState);
else
m_transactionDialog->activateWindow();
return;
}
//Shows a dialog indicating the targets needed to be retrieved and asks for the user's permission.
QList<PackageListData> * targets = Package::getTargetUpgradeList();
@@ -305,31 +390,42 @@ void MainWindow::doSystemUpgrade()
}
list.remove(list.size()-1, 1);
totalDownloadSize = totalDownloadSize / 1024;
QString ds = Package::kbytesToSize(totalDownloadSize);
TransactionDialog question(this);
//If we're in Chakra, there are no graphical system upgrades!
if (UnixCommand::getLinuxDistro() == ectn_CHAKRA || !UnixCommand::hasTheExecutable("octopi"))
question.removeYesButton();
m_transactionDialog = new TransactionDialog(this);
if(targets->count()==1)
question.setText(StrConstants::getRetrievePackage() +
m_transactionDialog->setText(StrConstants::getRetrievePackage() +
"\n\n" + StrConstants::getTotalDownloadSize().arg(ds).remove(" KB"));
else
question.setText(StrConstants::getRetrievePackages(targets->count()) +
m_transactionDialog->setText(StrConstants::getRetrievePackages(targets->count()) +
"\n\n" + StrConstants::getTotalDownloadSize().arg(ds).remove(" KB"));
question.setWindowTitle(StrConstants::getConfirmation());
question.setInformativeText(StrConstants::getConfirmationQuestion());
question.setDetailedText(list);
m_transactionDialog->setWindowTitle(StrConstants::getConfirmation());
m_transactionDialog->setInformativeText(StrConstants::getConfirmationQuestion());
m_transactionDialog->setDetailedText(list);
m_systemUpgradeDialog = true;
int result = question.exec();
int result = m_transactionDialog->exec();
m_transactionDialog = nullptr;
if (result == QDialogButtonBox::Yes)
{
runOctopi(ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT);
m_commandExecuting = ectn_SYSTEM_UPGRADE;
m_systemUpgradeDialog = false;
toggleEnableInterface(false);
m_actionSystemUpgrade->setEnabled(false);
OutputDialog *dlg = new OutputDialog(this);
dlg->setPacmanSystemUpgrade(true);
//dlg->setFrameShape(QFrame::NoFrame);
if (m_debugInfo)
dlg->setDebugMode(true);
QObject::connect(dlg, SIGNAL( finished(int)),
this, SLOT( doSystemUpgradeFinished() ));
dlg->show();
}
else if(result == QDialogButtonBox::AcceptRole)
{
@@ -346,7 +442,7 @@ void MainWindow::doSystemUpgrade()
m_unixCommand = new UnixCommand(this);
QObject::connect(m_unixCommand, SIGNAL( finished ( int, QProcess::ExitStatus )),
this, SLOT( doSystemUpgradeFinished(int, QProcess::ExitStatus) ));
this, SLOT( doSystemUpgradeFinished() ));
toggleEnableInterface(false);
m_actionSystemUpgrade->setEnabled(false);
@@ -366,10 +462,55 @@ void MainWindow::doSystemUpgrade()
}
/*
* When system upgrade process is finished...
* Calls the OutputDialog with TermWidget to execute the AUR upgrade commands
*/
void MainWindow::doSystemUpgradeFinished(int, QProcess::ExitStatus)
void MainWindow::doAURUpgrade()
{
QString listOfTargets;
QString auxPkg;
foreach(QString pkg, *m_outdatedAURStringList)
{
auxPkg = pkg;
auxPkg.remove("[1;39m");
auxPkg.remove("[0m");
auxPkg.remove("");
listOfTargets += auxPkg + " ";
}
#ifndef QTERMWIDGET
if (SettingsManager::getTerminal() == ctn_QTERMWIDGET)
SettingsManager::setTerminal(ctn_AUTOMATIC);
#endif
if (SettingsManager::getTerminal() == ctn_QTERMWIDGET)
{
OutputDialog *dlg = new OutputDialog(this);
dlg->setPacmanSystemUpgrade(false);
dlg->setListOfAURPackagesToUpgrade(listOfTargets);
QObject::connect(dlg, SIGNAL( finished(int)),
this, SLOT( doSystemUpgradeFinished() ));
dlg->show();
//QObject::connect(m_pacmanExec, SIGNAL( finished ( int, QProcess::ExitStatus )),
// this, SLOT( refreshAppIcon()) );
}
else
{
m_pacmanExec = new PacmanExec();
QObject::connect(m_pacmanExec, SIGNAL( finished ( int, QProcess::ExitStatus )),
this, SLOT( refreshAppIcon()) );
m_pacmanExec->doAURUpgrade(listOfTargets);
}
}
/*
* When system upgrade process has finished...
*/
void MainWindow::doSystemUpgradeFinished()
{
m_commandExecuting = ectn_NONE;
refreshAppIcon();
//Does it still need to upgrade another packages due to SyncFirst issues???
@@ -384,7 +525,6 @@ void MainWindow::doSystemUpgradeFinished(int, QProcess::ExitStatus)
return;
}
m_commandExecuting = ectn_NONE;
m_unixCommand->removeTemporaryFile();
toggleEnableInterface(true);
}
@@ -396,7 +536,8 @@ void MainWindow::toggleEnableInterface(bool state)
{
m_actionOctopi->setEnabled(state);
m_actionSyncDatabase->setEnabled(state);
m_actionSetInterval->setEnabled(state);
m_actionOptions->setEnabled(state);
m_actionSystemUpgrade->setEnabled(state);
m_actionExit->setEnabled(state);
}
@@ -435,7 +576,6 @@ void MainWindow::afterPacmanHelperSyncDatabase()
notification, m_systemTrayIcon->iconName());
#else
m_systemTrayIcon->setToolTip(notification);
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
#endif
}
else if (m_numberOfOutdatedPackages > 1)
@@ -448,7 +588,6 @@ void MainWindow::afterPacmanHelperSyncDatabase()
notification, m_systemTrayIcon->iconName());
#else
m_systemTrayIcon->setToolTip(notification);
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
#endif
}
}
@@ -467,7 +606,6 @@ void MainWindow::afterPacmanHelperSyncDatabase()
notification, m_systemTrayIcon->iconName());
#else
m_systemTrayIcon->setToolTip(notification);
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
#endif
}
else if (numberOfOutdatedPackages > 1)
@@ -480,17 +618,58 @@ void MainWindow::afterPacmanHelperSyncDatabase()
notification, m_systemTrayIcon->iconName());
#else
m_systemTrayIcon->setToolTip(notification);
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
#endif
}
}
}
/*
* Checks if Internet connection is up/down
*/
bool MainWindow::isInternetAvailable()
{
bool res=true;
//First we create a fake window to act as about dialog's parent
//Otherwise the dialog appears at a random screen point!
QMainWindow *fake = new QMainWindow();
fake->setWindowIcon(m_icon);
fake->setVisible(false);
QScreen *sc = QGuiApplication::primaryScreen();
fake->setGeometry(sc->geometry());
//Test if Internet access exists
if (!UnixCommand::hasInternetConnection())
{
QMessageBox::critical(fake, StrConstants::getError(), StrConstants::getInternetUnavailableError());
res=false;
delete fake;
}
return res;
}
/*
* Called every time user selects "Sync databases..." menu option
*/
void MainWindow::syncDatabase()
{
if (!isInternetAvailable()) return;
//If, for whatever reason, the pacman db is locked, let's ask for lock removal
if (PacmanExec::isDatabaseLocked())
{
int res = QMessageBox::question(this, StrConstants::getConfirmation(),
StrConstants::getRemovePacmanTransactionLockFileConfirmation(),
QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
if (res == QMessageBox::Yes)
{
PacmanExec::removeDatabaseLock();
}
else return;
}
disconnect(m_pacmanDatabaseSystemWatcher,
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
@@ -498,7 +677,7 @@ void MainWindow::syncDatabase()
if (m_debugInfo)
qDebug() << now.currentTime().toString("HH:mm").toLatin1().data() << ": At syncDatabase()...";
toggleEnableInterface(false);
m_icon = IconHelper::getIconOctopiTransparent();
m_icon = IconHelper::getIconOctopiBusy();
#ifdef KSTATUS
m_systemTrayIcon->setIconByPixmap(m_icon);
@@ -528,6 +707,7 @@ void MainWindow::syncDatabase()
}
m_pacmanHelperClient->syncdb();
SettingsManager::setLastSyncDbTime(QDateTime::currentDateTime());
}
/*
@@ -550,17 +730,41 @@ void MainWindow::sendNotification(const QString &msg)
*/
void MainWindow::refreshAppIcon()
{
if (m_pacmanExec != nullptr)
{
delete m_pacmanExec;
m_pacmanExec = nullptr;
}
disconnect(m_pacmanDatabaseSystemWatcher,
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
if (m_debugInfo)
qDebug() << "At refreshAppIcon()...";
m_outdatedStringList = Package::getOutdatedStringList();
bool hasAURTool = UnixCommand::hasTheExecutable(StrConstants::getForeignRepositoryToolName());
if (hasAURTool)
//We only need to check for outdated AUR pkgs IF we do NOT have outdated standard ones!
if (m_outdatedStringList->count() == 0)
{
m_outdatedAURStringList = Package::getOutdatedAURStringList();
bool hasAURTool = UnixCommand::hasTheExecutable(Package::getForeignRepositoryToolName());
if (hasAURTool && SettingsManager::getSearchOutdatedAURPackages())
{
m_outdatedAURStringList = Package::getOutdatedAURStringList();
for(int c=0; c<m_outdatedAURStringList->count(); ++c)
{
//If we find an outdated AUR pkg in the official pkg list, let's remove it
if (UnixCommand::hasPackage(m_outdatedAURStringList->at(c)))
{
m_outdatedAURStringList->removeAt(c);
}
}
}
else
{
m_outdatedAURStringList = new QStringList();
}
}
else
{
@@ -573,9 +777,9 @@ void MainWindow::refreshAppIcon()
if (m_numberOfOutdatedPackages == 0 && m_numberOfOutdatedAURPackages == 0)
{
#ifdef KSTATUS
m_systemTrayIcon->setToolTipSubTitle("");
m_systemTrayIcon->setToolTipSubTitle("Octopi Notifier");
#else
m_systemTrayIcon->setToolTip("");
m_systemTrayIcon->setToolTip("Octopi Notifier");
#endif
}
else if (m_numberOfOutdatedPackages > 0)
@@ -627,12 +831,14 @@ void MainWindow::refreshAppIcon()
{
if(m_commandExecuting == ectn_NONE)
{
m_actionAURUpgrade->setVisible(false);
m_actionSystemUpgrade->setEnabled(true);
m_actionSystemUpgrade->setVisible(true);
}
if (m_debugInfo)
qDebug() << "Got a RED icon!";
m_icon = IconHelper::getIconOctopiRed();
@@ -643,6 +849,8 @@ void MainWindow::refreshAppIcon()
}
else if(m_outdatedAURStringList->count() > 0) //YELLOW ICON!
{
m_actionAURUpgrade->setEnabled(true);
m_actionAURUpgrade->setVisible(true);
m_actionSystemUpgrade->setVisible(false);
m_icon = IconHelper::getIconOctopiYellow();
if (m_debugInfo)
@@ -655,6 +863,7 @@ void MainWindow::refreshAppIcon()
}
else //YEAHHH... GREEN ICON!
{
m_actionAURUpgrade->setVisible(false);
m_actionSystemUpgrade->setVisible(false);
m_icon = IconHelper::getIconOctopiGreen();
if (m_debugInfo)
@@ -706,6 +915,10 @@ void MainWindow::execSystemTrayActivated(QSystemTrayIcon::ActivationReason ar)
{
hideOctopi();
}
else
{
runOctopi(ectn_NORMAL_EXEC_OPT);
}
break;
}
@@ -738,6 +951,9 @@ void MainWindow::exitNotifier()
{
if (m_debugInfo)
qDebug() << "At exitNotifier()...";
//If Octopi was hidden, let's show its window again...
if (UnixCommand::isAppRunning("octopi", true)) showOctopi();
qApp->quit();
}
@@ -748,7 +964,7 @@ void MainWindow::runOctopi(ExecOpt execOptions)
{
if (execOptions == ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT)
{
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
if (!WMHelper::isKDERunning() && (!WMHelper::isLXQTRunning()))
{
QProcess::startDetached("octopi -sysupgrade-noconfirm -style gtk");
}
@@ -765,7 +981,7 @@ void MainWindow::runOctopi(ExecOpt execOptions)
else if (execOptions == ectn_SYSUPGRADE_EXEC_OPT &&
UnixCommand::isAppRunning("octopi", true) && m_outdatedStringList->count() > 0)
{
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
if (!WMHelper::isKDERunning() && (!WMHelper::isLXQTRunning()))
{
QProcess::startDetached("octopi -sysupgrade -style gtk");
}
@@ -774,9 +990,19 @@ void MainWindow::runOctopi(ExecOpt execOptions)
QProcess::startDetached("octopi -sysupgrade");
}
}
else if (execOptions == ectn_AUR_UPGRADE_EXEC_OPT &&
!UnixCommand::isAppRunning("octopi", true) && m_outdatedAURStringList->count() > 0)
{
doAURUpgrade();
}
else if (execOptions == ectn_AUR_UPGRADE_EXEC_OPT &&
UnixCommand::isAppRunning("octopi", true) && m_outdatedAURStringList->count() > 0)
{
QProcess::startDetached("octopi -aurupgrade");
}
else if (execOptions == ectn_NORMAL_EXEC_OPT)
{
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
if (!WMHelper::isKDERunning() && (!WMHelper::isLXQTRunning()))
{
QProcess::startDetached("octopi -style gtk");
}
@@ -790,14 +1016,23 @@ void MainWindow::runOctopi(ExecOpt execOptions)
/*
* Calls the QDialog to set notifier interval
*/
void MainWindow::showConfigDialog()
void MainWindow::showOptionsDialog()
{
if (m_configDialog == nullptr)
if (m_optionsDialog == nullptr)
{
m_configDialog = new SetupDialog(this);
m_configDialog->exec();
m_optionsDialog = new OptionsDialog(this);
connect(m_optionsDialog, SIGNAL(AURToolChanged()), this, SLOT(refreshAppIcon()));
delete m_configDialog;
m_configDialog = nullptr;
utils::positionWindowAtScreenCenter(m_optionsDialog);
m_optionsDialog->exec();
Options::result res = m_optionsDialog->result();
if (res & Options::ectn_ICON)
{
refreshAppIcon();
}
delete m_optionsDialog;
m_optionsDialog = nullptr;
}
}

View File

@@ -22,7 +22,9 @@
#define MAINWINDOW_H
#include "../../src/unixcommand.h"
#include "../../src/pacmanexec.h"
#include <QDialog>
#include <QProcess>
#include <QString>
#include <QMainWindow>
@@ -33,19 +35,13 @@ class QMenu;
class QAction;
class QFileSystemWatcher;
class PacmanHelperClient;
class SetupDialog;
class OptionsDialog;
class TransactionDialog;
#ifdef KSTATUS
class KStatusNotifierItem;
#endif
const QString ctn_PACMANHELPER_BINARY = "/usr/lib/octopi/pacmanhelper";
const QString ctn_DBUS_PACMANHELPER_SERVICE = "/usr/share/dbus-1/system-services/org.octopi.pacmanhelper.service";
enum ExecOpt { ectn_NORMAL_EXEC_OPT, ectn_SYSUPGRADE_EXEC_OPT,
ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT };
class MainWindow : public QMainWindow
{
Q_OBJECT
@@ -68,19 +64,23 @@ private slots:
void refreshAppIcon();
void runOctopi(ExecOpt execOptions = ectn_SYSUPGRADE_EXEC_OPT);
void runOctopiSysUpgrade();
void runOctopiAURUpgrade();
inline void startOctopi() { runOctopi(ectn_NORMAL_EXEC_OPT); }
void aboutOctopiNotifier();
void hideOctopi();
void showOctopi();
void exitNotifier();
void doSystemUpgrade();
void doSystemUpgradeFinished(int, QProcess::ExitStatus);
void doAURUpgrade();
void doSystemUpgradeFinished();
void toggleEnableInterface(bool state);
void showConfigDialog();
void showOptionsDialog();
private:
SetupDialog *m_configDialog;
TransactionDialog *m_transactionDialog;
OptionsDialog *m_optionsDialog;
int m_numberOfOutdatedPackages;
int m_numberOfOutdatedAURPackages;
bool m_systemUpgradeDialog;
@@ -88,17 +88,19 @@ private:
UnixCommand *m_unixCommand;
QAction *m_actionOctopi;
QAction *m_actionSetInterval;
QAction *m_actionOptions;
QAction *m_actionSyncDatabase;
QAction *m_actionSystemUpgrade;
QAction *m_actionAURUpgrade;
QAction *m_actionAbout;
QAction *m_actionExit;
PacmanExec *m_pacmanExec;
QIcon m_icon;
QStringList *m_outdatedStringList;
QStringList *m_outdatedAURStringList;
QTimer *m_pacmanHelperTimer;
bool m_debugInfo;
#ifdef KSTATUS
@@ -112,6 +114,8 @@ private:
PacmanHelperClient *m_pacmanHelperClient;
bool _isSUAvailable();
bool isInternetAvailable();
void initActions();
void initSystemTrayIcon();
void sendNotification(const QString &msg);
};

View File

@@ -7,7 +7,21 @@
QT += core xml gui network dbus
# This controls whether octopi-notifier uses KStatusNotifier lib
#DEFINES += KSTATUS
# You SHOULD REALLY enable KSTATUS define in plasma 5 desktops!
DEFINES += ALPM_BACKEND QTERMWIDGET #KSTATUS
CONFIG += qt warn_on debug link_pkgconfig ALPM_BACKEND QTERMWIDGET
ALPM_BACKEND {
QMAKE_CXXFLAGS += -std=c++11
PKGCONFIG += glib-2.0 libalpm
LIBS += -lalpm_octopi_utils
} else {
QMAKE_CXXFLAGS += -std=c++11
}
QTERMWIDGET {
LIBS += -lqtermwidget5
}
contains(DEFINES, KSTATUS){
QT += KNotifications
@@ -24,22 +38,9 @@ OBJECTS_DIR += ../build-octopi-notifier
MOC_DIR += ../build-octopi-notifier
UI_DIR += ../build-octopi-notifier
SOURCES += main.cpp \
mainwindow.cpp \
setupdialog.cpp \
../../src/terminal.cpp \
../../src/unixcommand.cpp \
../../src/package.cpp \
../../src/wmhelper.cpp \
../../src/settingsmanager.cpp \
../pacmanhelper/pacmanhelperclient.cpp \
../../src/utils.cpp \
../../src/transactiondialog.cpp \
../../src/argumentlist.cpp
HEADERS += \
mainwindow.h \
setupdialog.h \
outputdialog.h \
../../src/uihelper.h \
../../src/terminal.h \
../../src/unixcommand.h \
@@ -49,10 +50,77 @@ HEADERS += \
../pacmanhelper/pacmanhelperclient.h \
../../src/utils.h \
../../src/transactiondialog.h \
../../src/argumentlist.h
../../src/argumentlist.h \
../../src/pacmanexec.h \
../../src/searchlineedit.h \
../../src/searchbar.h \
../../src/optionsdialog.h
QTERMWIDGET{
HEADERS += ../../src/termwidget.h
}
ALPM_BACKEND{
HEADERS += ../../src/alpmbackend.h
}
SOURCES += main.cpp \
mainwindow.cpp \
outputdialog.cpp \
../../src/terminal.cpp \
../../src/unixcommand.cpp \
../../src/package.cpp \
../../src/wmhelper.cpp \
../../src/strconstants.cpp \
../../src/settingsmanager.cpp \
../pacmanhelper/pacmanhelperclient.cpp \
../../src/utils.cpp \
../../src/transactiondialog.cpp \
../../src/argumentlist.cpp \
../../src/pacmanexec.cpp \
../../src/searchlineedit.cpp \
../../src/searchbar.cpp \
../../src/optionsdialog.cpp
QTERMWIDGET{
SOURCES += ../../src/termwidget.cpp
}
ALPM_BACKEND{
SOURCES += ../../src/alpmbackend.cpp
}
FORMS += ../../ui/transactiondialog.ui \
ui/setupdialog.ui
../../ui/optionsdialog.ui
RESOURCES += \
../../resources.qrc
# install
isEmpty(PREFIX) {
PREFIX = /usr
}
isEmpty(BINDIR) {
BINDIR = $$PREFIX/bin
}
isEmpty(DATADIR) {
DATADIR = $$PREFIX/share
}
isEmpty(ETCDIR) {
ETCDIR = /etc
}
target.path = $$BINDIR
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
sources.path = .
autostart.path = $$ETCDIR/xdg/autostart
autostart.files += octopi-notifier.desktop
desktop.path = $$DATADIR/applications
desktop.files += octopi-notifier.desktop
INSTALLS += target autostart desktop

View File

@@ -0,0 +1,435 @@
/*
* This file is part of Octopi, an open-source GUI for pacman.
* Copyright (C) 2013 Alexandre Albuquerque Arnt
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "outputdialog.h"
#include "../../src/pacmanexec.h"
#include "../../src/searchbar.h"
#include "../../src/uihelper.h"
#include "../../src/strconstants.h"
#ifdef QTERMWIDGET
#include "../../src/termwidget.h"
#endif
#include <QTextBrowser>
#include <QVBoxLayout>
#include <QProgressBar>
#include <QCloseEvent>
#include <QMessageBox>
#include <QAction>
#include <QToolButton>
/*
* Class that displays pacman output for system upgrade
*/
/*
* The obligatory constructor...
*/
OutputDialog::OutputDialog(QWidget *parent): QDialog(parent)
{
m_upgradeRunning = false;
m_debugInfo = false;
}
/*
* Sets if pacmanExec will be called in debugMode or not
*/
void OutputDialog::setDebugMode(bool newValue)
{
m_debugInfo = newValue;
}
/*
* Sets the list of AUR packages that need to be upgraded
*/
void OutputDialog::setListOfAURPackagesToUpgrade(const QString &list)
{
m_listOfAURPackagesToUpgrade = list;
}
/*
* Controls if this dialog was called for Pacman or AUR upgrade
*/
void OutputDialog::setPacmanSystemUpgrade(bool value)
{
m_pacmanSystemUpgrade = value;
}
/*
* Let's build the main widgets for Pacman System Upgrade...
*/
void OutputDialog::initAsTextBrowser()
{
this->resize(650, 500);
setWindowTitle(QCoreApplication::translate("MainWindow", "System upgrade"));
setWindowIcon(IconHelper::getIconSystemUpgrade());
m_actionStopTransaction = new QAction(this);
m_actionStopTransaction->setIcon(IconHelper::getIconStop());
m_actionStopTransaction->setText(StrConstants::getStop());
connect(m_actionStopTransaction, SIGNAL(triggered()), this, SLOT(stopTransaction()));
m_toolButtonStopTransaction = new QToolButton(this);
m_toolButtonStopTransaction->setDefaultAction(m_actionStopTransaction);
m_toolButtonStopTransaction->setVisible(false);
m_toolButtonStopTransaction->setAutoRaise(true);
m_mainLayout = new QVBoxLayout(this);
m_horizLayout = new QHBoxLayout();
m_textBrowser = new QTextBrowser(this);
m_progressBar = new QProgressBar(this);
m_horizLayout->addWidget(m_progressBar);
m_horizLayout->addSpacing(2);
m_horizLayout->addWidget(m_toolButtonStopTransaction);
m_textBrowser->setGeometry(QRect(0, 0, 650, 500));
m_textBrowser->setFrameShape(QFrame::NoFrame);
m_mainLayout->addWidget(m_textBrowser);
m_searchBar = new SearchBar(this);
connect(m_searchBar, SIGNAL(textChanged(QString)), this, SLOT(onSearchBarTextChanged(QString)));
connect(m_searchBar, SIGNAL(closed()), this, SLOT(onSearchBarClosed()));
connect(m_searchBar, SIGNAL(findNext()), this, SLOT(onSearchBarFindNext()));
connect(m_searchBar, SIGNAL(findPrevious()), this, SLOT(onSearchBarFindPrevious()));
m_mainLayout->addLayout(m_horizLayout);
m_mainLayout->addWidget(m_searchBar);
m_mainLayout->setSpacing(0);
m_mainLayout->setSizeConstraint(QLayout::SetMinimumSize);
m_mainLayout->setContentsMargins(2, 2, 2, 2);
m_progressBar->setMinimum(0);
m_progressBar->setMaximum(100);
m_progressBar->setValue(0);
m_progressBar->close();
//m_searchBar->show();
}
#ifdef QTERMWIDGET
/*
* Let's build the main widgets for AUR Upgrade...
*/
void OutputDialog::initAsTermWidget()
{
this->resize(650, 500);
setWindowTitle(QCoreApplication::translate("MainWindow", "System upgrade"));
setWindowIcon(IconHelper::getIconSystemUpgrade());
m_mainLayout = new QVBoxLayout(this);
m_console = new TermWidget(this);
//connect(m_console, SIGNAL(finished()), this, SLOT(initAsTermWidget()));
m_mainLayout->addWidget(m_console);
m_mainLayout->setSpacing(0);
m_mainLayout->setSizeConstraint(QLayout::SetMinimumSize);
m_mainLayout->setContentsMargins(2, 2, 2, 2);
m_console->setFocus();
}
/*
* When user wants to start an AUR upgrade transaction
*/
void OutputDialog::doAURUpgrade()
{
m_pacmanExec = new PacmanExec();
QObject::connect(m_pacmanExec, SIGNAL(commandToExecInQTermWidget(QString)), this,
SLOT(onExecCommandInTabTerminal(QString)));
m_upgradeRunning = true;
m_pacmanExec->doAURUpgrade(m_listOfAURPackagesToUpgrade);
}
/*
* When there is a command to exec in the terminal
*/
void OutputDialog::onExecCommandInTabTerminal(QString command)
{
disconnect(m_console, SIGNAL(onPressAnyKeyToContinue()), this, SLOT(onPressAnyKeyToContinue()));
disconnect(m_console, SIGNAL(onCancelControlKey()), this, SLOT(onCancelControlKey()));
connect(m_console, SIGNAL(onPressAnyKeyToContinue()), this, SLOT(onPressAnyKeyToContinue()));
connect(m_console, SIGNAL(onCancelControlKey()), this, SLOT(onCancelControlKey()));
m_console->enter();
m_console->execute("clear");
m_console->execute(command);
m_console->setFocus();
}
/*
* Whenever the terminal transaction has finished, we can update the UI
*/
void OutputDialog::onPressAnyKeyToContinue()
{
m_console->enter();
m_console->execute("clear");
m_console->setFocus();
if (!m_upgradeRunning) return;
if (m_pacmanExec == nullptr)
delete m_pacmanExec;
m_upgradeRunning = false;
reject();
}
/*
* Whenever a user strikes Ctrl+C, Ctrl+D or Ctrl+Z in the terminal
*/
void OutputDialog::onCancelControlKey()
{
if (m_upgradeRunning)
{
if (m_pacmanExec == nullptr)
delete m_pacmanExec;
m_pacmanExec = nullptr;
m_upgradeRunning = false;
reject();
}
}
#endif
/*
* Calls PacmanExec to begin system upgrade
*/
void OutputDialog::doSystemUpgrade()
{
m_pacmanExec = new PacmanExec();
if (m_debugInfo)
m_pacmanExec->setDebugMode(true);
QObject::connect(m_pacmanExec, SIGNAL( finished ( int, QProcess::ExitStatus )),
this, SLOT( pacmanProcessFinished(int, QProcess::ExitStatus) ));
QObject::connect(m_pacmanExec, SIGNAL(percentage(int)), this, SLOT(onPencertange(int)));
QObject::connect(m_pacmanExec, SIGNAL(textToPrintExt(QString)), this, SLOT(onWriteOutput(QString)));
QObject::connect(m_pacmanExec, SIGNAL(canStopTransaction(bool)), this, SLOT(onCanStopTransaction(bool)));
m_upgradeRunning = true;
m_pacmanExec->doSystemUpgrade();
}
/*
* Centers the dialog in the screen
*/
void OutputDialog::show()
{
//If we are asking for a Pacman system upgrade...
if (m_pacmanSystemUpgrade) initAsTextBrowser();
#ifdef QTERMWIDGET
else initAsTermWidget();
#endif
//utils::positionWindowAtScreenCenter(this);
//Let's restore the dialog size saved...
restoreGeometry(SettingsManager::getOutputDialogWindowSize());
QDialog::show();
if (m_pacmanSystemUpgrade) doSystemUpgrade();
#ifdef QTERMWIDGET
else doAURUpgrade();
#endif
}
/*
* Whenever the user presses the ESC key
*/
void OutputDialog::reject()
{
if (!m_upgradeRunning)
{
//Let's save the dialog size value before closing it.
QByteArray windowSize=saveGeometry();
SettingsManager::setOutputDialogWindowSize(windowSize);
QDialog::reject();
}
}
/*
* Slot called whenever PacmanExec emits a new percentage change
*/
void OutputDialog::onPencertange(int percentage)
{
if (percentage > 0 && !m_progressBar->isVisible())
{
m_progressBar->show();
if (SettingsManager::getShowStopTransaction()) m_toolButtonStopTransaction->show();
}
m_progressBar->setValue(percentage);
}
/*
* Helper method to position the text cursor always in the end of doc
*/
void OutputDialog::positionTextEditCursorAtEnd()
{
QTextCursor tc = m_textBrowser->textCursor();
tc.clearSelection();
tc.movePosition(QTextCursor::End);
m_textBrowser->setTextCursor(tc);
}
/*
* A helper method which writes the given string to the textbrowser
*/
void OutputDialog::writeToTabOutput(const QString &msg, TreatURLLinks treatURLLinks)
{
utils::writeToTextBrowser(m_textBrowser, msg, treatURLLinks);
}
/*
* Slot called whenever PacmanExec emits a new output
*/
void OutputDialog::onWriteOutput(const QString &output)
{
utils::positionTextEditCursorAtEnd(m_textBrowser);
m_textBrowser->insertHtml(output);
m_textBrowser->ensureCursorVisible();
}
/*
* Helper method to find the given "findText" in a TextEdit
*/
bool OutputDialog::textInTabOutput(const QString& findText)
{
return (utils::strInQTextEdit(m_textBrowser, findText));
}
/*
* Slot called whenever PacmanExec finishes its job
*/
void OutputDialog::pacmanProcessFinished(int exitCode, QProcess::ExitStatus exitStatus)
{
m_progressBar->close();
if (SettingsManager::getShowStopTransaction()) m_toolButtonStopTransaction->close();
if ((exitCode == 0) && exitStatus == QProcess::NormalExit)
{
writeToTabOutput("<br><b>" + StrConstants::getCommandFinishedOK() + "</b><br>");
}
else
{
writeToTabOutput("<br><b>" + StrConstants::getCommandFinishedWithErrors() + "</b><br>");
}
if (exitCode != 0 && (textInTabOutput("conflict"))) //|| _textInTabOutput("could not satisfy dependencies")))
{
int res = QMessageBox::question(this, StrConstants::getThereHasBeenATransactionError(),
StrConstants::getConfirmExecuteTransactionInTerminal(),
QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
if (res == QMessageBox::Yes)
{
m_pacmanExec->runLastestCommandInTerminal();
return;
}
}
delete m_pacmanExec;
m_upgradeRunning = false;
}
/*
* Whenever PacmanExec says we can show/close the stop transaction toolbutton...
*/
void OutputDialog::onCanStopTransaction(bool yesNo)
{
if (yesNo == true && m_progressBar->isHidden()) return;
if (SettingsManager::getShowStopTransaction()) m_toolButtonStopTransaction->setVisible(yesNo);
}
/*
* Kills all pacman processes
*/
void OutputDialog::stopTransaction()
{
m_pacmanExec->cancelProcess();
}
/*
* User changed text to search in the line edit
*/
void OutputDialog::onSearchBarTextChanged(QString strToSearch)
{
utils::searchBarTextChangedInTextBrowser(m_textBrowser, m_searchBar, strToSearch);
}
/*
* User closed the search bar
*/
void OutputDialog::onSearchBarClosed()
{
utils::searchBarClosedInTextBrowser(m_textBrowser, m_searchBar);
}
/*
* User requested next found string
*/
void OutputDialog::onSearchBarFindNext()
{
utils::searchBarFindNextInTextBrowser(m_textBrowser, m_searchBar);
}
/*
* User requested previous found string
*/
void OutputDialog::onSearchBarFindPrevious()
{
utils::searchBarFindPreviousInTextBrowser(m_textBrowser, m_searchBar);
}
/*
* Let's not exit the dialog if a system upgrade is running
*/
void OutputDialog::closeEvent(QCloseEvent *event)
{
//We cannot quit while there is a running transaction!
if(m_upgradeRunning)
{
event->ignore();
}
else
{
event->accept();
emit finished(0);
}
}
/*
* Whenever user presses Ctrl+F, we show the searchbar again
*/
void OutputDialog::keyPressEvent(QKeyEvent *ke)
{
if(ke->key() == Qt::Key_F && ke->modifiers() == Qt::ControlModifier)
{
m_searchBar->show();
}
else if(ke->key() == Qt::Key_Escape)
{
reject();
}
else ke->accept();
}

View File

@@ -0,0 +1,107 @@
/*
* This file is part of Octopi, an open-source GUI for pacman.
* Copyright (C) 2013 Alexandre Albuquerque Arnt
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef OUTPUTDIALOG_H
#define OUTPUTDIALOG_H
#include "../../src/constants.h"
#include <QDialog>
#include <QProcess>
#include <QFrame>
class PacmanExec;
class QString;
class QTextBrowser;
class QVBoxLayout;
class QHBoxLayout;
class QProgressBar;
class SearchBar;
class QWidget;
class QCloseEvent;
class QKeyEvent;
class QToolButton;
class TermWidget;
class OutputDialog : public QDialog
{
Q_OBJECT
private:
QTextBrowser *m_textBrowser;
QProgressBar *m_progressBar;
QVBoxLayout *m_mainLayout;
QHBoxLayout *m_horizLayout;
PacmanExec *m_pacmanExec;
SearchBar *m_searchBar;
TermWidget *m_console;
QString m_listOfAURPackagesToUpgrade;
bool m_upgradeRunning;
bool m_debugInfo;
bool m_pacmanSystemUpgrade;
QAction *m_actionStopTransaction;
QToolButton *m_toolButtonStopTransaction;
void initAsTextBrowser();
void doSystemUpgrade();
void positionTextEditCursorAtEnd();
bool textInTabOutput(const QString& findText);
void writeToTabOutput(const QString &msg, TreatURLLinks treatURLLinks = ectn_TREAT_URL_LINK);
private slots:
#ifdef QTERMWIDGET
void initAsTermWidget();
void doAURUpgrade();
void onExecCommandInTabTerminal(QString command);
void onPressAnyKeyToContinue();
void onCancelControlKey();
#endif
void onPencertange(int percentage);
void onWriteOutput(const QString &output);
void pacmanProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
void onCanStopTransaction(bool yesNo);
void stopTransaction();
//SearchBar slots
void onSearchBarTextChanged(QString strToSearch);
void onSearchBarClosed();
void onSearchBarFindNext();
void onSearchBarFindPrevious();
protected:
virtual void closeEvent(QCloseEvent * event);
virtual void keyPressEvent(QKeyEvent * ke);
public:
explicit OutputDialog(QWidget *parent = 0);
void setDebugMode(bool newValue);
void setListOfAURPackagesToUpgrade(const QString& list);
void setPacmanSystemUpgrade(bool value);
public slots:
void show();
void reject();
};
#endif // OUTPUTDIALOG_H

View File

@@ -1,165 +0,0 @@
/*
* This file is part of Octopi, an open-source GUI for pacman.
* Copyright (C) 2013 Alexandre Albuquerque Arnt
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "../../src/settingsmanager.h"
#include "../../src/strconstants.h"
#include "setupdialog.h"
#include "ui_setupdialog.h"
SetupDialog::SetupDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::SetupDialog)
{
ui->setupUi(this);
init();
}
SetupDialog::~SetupDialog()
{
delete ui;
}
/*
* Here we read the values from ~/.config/octopi.conf...
*/
void SetupDialog::init()
{
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
setWindowTitle(StrConstants::getNotifierSetupDialogTitle());
ui->groupBox->setTitle(StrConstants::getNotiferSetupDialogGroupBoxTitle());
ui->rbOnceADay->setText(StrConstants::getOnceADay());
ui->rbOnceADayAt->setText(StrConstants::getOnceADayAt());
ui->lblOnceADayAt->setText(StrConstants::getOnceADayAtDesc());
ui->rbOnceEvery->setText(StrConstants::getOnceEvery());
ui->lblOnceEvery->setText(StrConstants::getOnceEveryDesc());
connect(ui->rbOnceADay, SIGNAL(clicked()), this, SLOT(selectOnceADay()));
connect(ui->rbOnceADayAt, SIGNAL(clicked()), this, SLOT(selectOnceADayAt()));
connect(ui->rbOnceEvery, SIGNAL(clicked()), this, SLOT(selectOnceEvery()));
//First, which radio button do we select?
int syncDbInterval = SettingsManager::getSyncDbInterval();
int syncDbHour = SettingsManager::getSyncDbHour();
bool useSyncDbInterval = false;
bool useSyncDbHour = false;
if (syncDbInterval == -1)
{
ui->spinOnceEvery->setValue(5);
}
else if (syncDbInterval != -1)
{
ui->spinOnceEvery->setValue(syncDbInterval);
useSyncDbInterval = true;
}
if (syncDbHour == -1)
{
ui->spinOnceADayAt->setValue(0);
}
else if (syncDbHour != -1)
{
ui->spinOnceADayAt->setValue(syncDbHour);
useSyncDbHour = true;
}
if (useSyncDbInterval)
{
ui->rbOnceEvery->setChecked(true);
selectOnceEvery();
}
else if (useSyncDbHour)
{
ui->rbOnceADayAt->setChecked(true);
selectOnceADayAt();
}
else //We are using just "Once a day"!!!
{
ui->rbOnceADay->setChecked(true);
selectOnceADay();
}
}
/*
* Every time user clicks on OK button, we save his choice.
*/
void SetupDialog::accept()
{
saveChanges();
QDialog::accept();
}
/*
* Here we save the changes back into ~/.config/octopi.conf...
*/
void SetupDialog::saveChanges()
{
if (ui->rbOnceADay->isChecked())
{
SettingsManager::setSyncDbHour(-1);
SettingsManager::setSyncDbInterval(-1);
}
else if (ui->rbOnceADayAt->isChecked())
{
SettingsManager::setSyncDbHour(ui->spinOnceADayAt->value());
SettingsManager::setSyncDbInterval(-1);
}
else if (ui->rbOnceEvery->isChecked())
{
SettingsManager::setSyncDbInterval(ui->spinOnceEvery->value());
}
}
/*
* Whenever user selects the first radio button, we have to disable some widgets
*/
void SetupDialog::selectOnceADay()
{
ui->rbOnceADay->setChecked(true);
ui->spinOnceADayAt->setEnabled(false);
ui->spinOnceEvery->setEnabled(false);
ui->rbOnceADayAt->setChecked(false);
ui->rbOnceEvery->setChecked(false);
}
/*
* Whenever user selects the second radio button, we have to disable some widgets
*/
void SetupDialog::selectOnceADayAt()
{
ui->rbOnceADayAt->setChecked(true);
ui->spinOnceADayAt->setEnabled(true);
ui->spinOnceEvery->setEnabled(false);
ui->rbOnceADay->setChecked(false);
ui->rbOnceEvery->setChecked(false);
}
/*
* Whenever user selects the third radio button, we have to disable some widgets
*/
void SetupDialog::selectOnceEvery()
{
ui->rbOnceEvery->setChecked(true);
ui->spinOnceADayAt->setEnabled(false);
ui->spinOnceEvery->setEnabled(true);
ui->rbOnceADay->setChecked(false);
ui->rbOnceADayAt->setChecked(false);
}

View File

@@ -1,238 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SetupDialog</class>
<widget class="QDialog" name="SetupDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>510</width>
<height>295</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>510</width>
<height>295</height>
</size>
</property>
<property name="windowTitle">
<string>Setup</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string notr="true">rgTitle</string>
</property>
<property name="flat">
<bool>false</bool>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<widget class="QRadioButton" name="rbOnceADay">
<property name="geometry">
<rect>
<x>8</x>
<y>33</y>
<width>371</width>
<height>21</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">Once a day</string>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>8</x>
<y>71</y>
<width>481</width>
<height>62</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QRadioButton" name="rbOnceADayAt">
<property name="text">
<string notr="true">Once a day, but at:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>24</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinOnceADayAt">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>69</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>23</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblOnceADayAt">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>(value in 24-hour format: 0 to 23)</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget_1">
<property name="geometry">
<rect>
<x>8</x>
<y>147</y>
<width>481</width>
<height>62</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QRadioButton" name="rbOnceEvery">
<property name="text">
<string notr="true">Once e&amp;very:</string>
</property>
<property name="autoExclusive">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>24</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinOnceEvery">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>66</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>1380</number>
</property>
<property name="value">
<number>60</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblOnceEvery">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>(value in minutes: 5 to 1380)</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
<item row="1" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -5,6 +5,8 @@
#include <QProcess>
#include <QDebug>
#include <QFile>
PacmanHelper::PacmanHelper(QObject *parent) :
QObject(parent)
{
@@ -28,8 +30,23 @@ void PacmanHelper::syncdb()
env.insert("LANG", "us_EN");
pacman.setProcessEnvironment(env);
QString command = "pacman -Sy"; //-Syy or -Sy - eternal doubt!
pacman.execute(command);
QStringList params;
params << "-Sy"; //-Syy or -Sy - eternal doubt!
QString command = "/usr/bin/pacman";
/*int code = */pacman.execute(command, params);
/*QString out;
out += "Return code of pacman command: " + QString::number(code) + "\n";
out += "Return of pacman command (stdout): " + pacman.readAllStandardOutput() + "\n";
out += "Return of pacman command (stderr): " + pacman.readAllStandardError() + "\n\n";
QString filename = QDir::homePath() + QDir::separator() + "output_pacmanhelper.txt";
QFile file( filename );
if ( file.open(QIODevice::ReadWrite) )
{
QTextStream stream( &file );
stream << out << endl;
}*/
emit syncdbcompleted();
}

View File

@@ -21,3 +21,18 @@ HEADERS += pacmanhelper.h \
SOURCES += main.cpp \
pacmanhelper.cpp \
pacmanhelperadaptor.cpp
# install
isEmpty(PREFIX) {
PREFIX = /usr
}
isEmpty(LIBDIR) {
LIBDIR = $$PREFIX/lib
}
target.path = $$LIBDIR/octopi
sources.files = $$SOURCES $$HEADERS *.pro
sources.path = .
INSTALLS += target

View File

@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by Qt Creator 2.6.2, 2013-06-03T23:20:52. -->
<!-- Written by QtCreator 4.1.0, 2016-09-25T11:28:08. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{dfbd4275-dad0-467b-b22e-ce4c855454cc}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
@@ -15,13 +19,13 @@
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QString" key="CurrentPreferences">CppGlobal</value>
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
@@ -29,10 +33,14 @@
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
@@ -53,27 +61,33 @@
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">{0dce8b8b-e9b7-4159-956b-f4c9f1085a56}</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{319f7b06-0ff3-4bf0-8a17-29f64ac46087}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/arnt/Projects/octopi/notifier/build</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
@@ -81,14 +95,18 @@
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
@@ -96,85 +114,38 @@
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/arnt/Projects/octopi/notifier/build</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/arnt/Projects/octopi/notifier/pacmanhelper/</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Project.UseGlobal">true</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
@@ -184,8 +155,12 @@
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
@@ -205,18 +180,20 @@
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">pacmanhelper</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/arnt/Projects/octopi/notifier/pacmanhelper/pacmanhelper.pro</value>
<value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/arnt/Projects/octopi/notifier/pacmanhelper/pacmanhelper.pro</value>
<value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">pacmanhelper.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">/home/arnt/Projects/octopi/notifier/bin</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
@@ -229,11 +206,11 @@
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
<value type="QString">{e7ed0845-58e4-42af-91c6-0506d885beb7}</value>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">18</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">12</value>
<variable>Version</variable>
<value type="int">18</value>
</data>
</qtcreator>

View File

@@ -1,5 +1,5 @@
[Desktop Entry]
Categories=GNOME;GTK;System;
Categories=System;Tools;
Comment[en_US]=Add or remove software installed on the system
Comment=Add or remove software installed on the system
Comment[af]=Voeg by of verwyder sagteware geïnstalleer op die stelsel

View File

@@ -1,14 +1,14 @@
post_install() {
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
update-desktop-database -q
systemctl enable octopi.service &> /dev/null
}
post_upgrade() {
post_install $1
}
post_remove() {
post_install $1
systemctl disable octopi.service &> /dev/null
}

View File

@@ -4,10 +4,22 @@
#
#-------------------------------------------------
QT += core gui network xml dbus widgets quick quickwidgets
DEFINES += OCTOPI_EXTENSIONS
CONFIG += qt warn_on debug
QMAKE_CXXFLAGS += -std=c++11
QT += core gui network xml dbus widgets
DEFINES += OCTOPI_EXTENSIONS ALPM_BACKEND QTERMWIDGET
CONFIG += qt warn_on debug link_pkgconfig ALPM_BACKEND QTERMWIDGET
ALPM_BACKEND {
QMAKE_CXXFLAGS += -std=c++11
PKGCONFIG += glib-2.0 libalpm
LIBS += -lalpm_octopi_utils
} else {
QMAKE_CXXFLAGS += -std=c++11
}
QTERMWIDGET {
LIBS += -lqtermwidget5
}
TEMPLATE = app
DESTDIR += bin
OBJECTS_DIR += build
@@ -36,9 +48,18 @@ HEADERS += src/QtSolutions/qtsingleapplication.h \
src/model/packagemodel.h \
src/ui/octopitabinfo.h \
src/utils.h \
src/terminal.h
src/terminal.h \
src/pacmanexec.h \
src/constants.h \
src/optionsdialog.h
greaterThan(QT_VERSION, 5.3): HEADERS += src/terminalselectordialog.h
QTERMWIDGET{
HEADERS += src/termwidget.h
}
ALPM_BACKEND{
HEADERS += src/alpmbackend.h
}
SOURCES += src/QtSolutions/qtsingleapplication.cpp \
src/QtSolutions/qtlocalpeer.cpp \
@@ -46,6 +67,7 @@ SOURCES += src/QtSolutions/qtsingleapplication.cpp \
src/repoconf.cpp \
src/main.cpp\
src/mainwindow.cpp \
src/strconstants.cpp \
src/searchlineedit.cpp \
src/argumentlist.cpp \
src/settingsmanager.cpp \
@@ -68,17 +90,27 @@ SOURCES += src/QtSolutions/qtsingleapplication.cpp \
src/model/packagemodel.cpp \
src/ui/octopitabinfo.cpp \
src/utils.cpp \
src/terminal.cpp
src/terminal.cpp \
src/pacmanexec.cpp \
src/optionsdialog.cpp
greaterThan(QT_VERSION, 5.3): SOURCES += src/terminalselectordialog.cpp
QTERMWIDGET{
SOURCES += src/termwidget.cpp
}
ALPM_BACKEND{
SOURCES += src/alpmbackend.cpp
}
FORMS += ui/mainwindow.ui \
ui/transactiondialog.ui \
ui/multiselectiondialog.ui
ui/multiselectiondialog.ui \
ui/optionsdialog.ui
RESOURCES += resources.qrc
TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
resources/translations/octopi_fr \
resources/translations/octopi_fr_FR.ts \
resources/translations/octopi_es_ES.ts \
resources/translations/octopi_es_419.ts \
@@ -96,6 +128,8 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
resources/translations/octopi_da.ts \
resources/translations/octopi_cs.ts \
resources/translations/octopi_he.ts \
resources/translations/octopi_hi.ts \
resources/translations/octopi_hi_IN.ts \
resources/translations/octopi_lt.ts \
resources/translations/octopi_nb.ts \
resources/translations/octopi_sr@latin.ts \
@@ -106,9 +140,11 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
resources/translations/octopi_fi.ts \
resources/translations/octopi_fi_FI.ts \
resources/translations/octopi_vi.ts \
resources/translations/octopi_en.ts \
resources/translations/octopi_en_GB.ts \
resources/translations/octopi_pt_PT.ts \
resources/translations/octopi_sv.ts \
resources/translations/octopi_sl.ts \
resources/translations/octopi_hu.ts \
resources/translations/octopi_zh_TW.ts \
resources/translations/octopi_ms_MY.ts \
@@ -119,4 +155,67 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
resources/translations/octopi_gl_ES.ts \
resources/translations/octopi_ast.ts \
resources/translations/octopi_hr.ts \
resources/translations/octopi_zh-Hans.ts
resources/translations/octopi_zh-Hans.ts \
resources/translations/octopi_zh_CN.ts
# install
isEmpty(PREFIX) {
PREFIX = /usr
}
isEmpty(BINDIR) {
BINDIR = $$PREFIX/bin
}
isEmpty(DATADIR) {
DATADIR = $$PREFIX/share
}
isEmpty(ETCDIR) {
ETCDIR = /etc
}
isEmpty(LIBDIR) {
LIBDIR = $$PREFIX/lib
}
target.path = $$BINDIR
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
sources.path = .
bin.path = $$BINDIR
bin.files += speedup/speedup-octopi.sh
dbus.path = $$ETCDIR/dbus-1/system.d
dbus.files += notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.conf
desktop.path = $$DATADIR/applications
desktop.files += octopi.desktop
desktop.files += cachecleaner/octopi-cachecleaner.desktop
gnome.path = $$DATADIR/icons/gnome/32x32/apps
gnome.files += resources/images/octopi_green.png
gnome.files += resources/images/octopi.png
icon.path = $$DATADIR/icons
icon.files += resources/images/octopi.png
icon.files += resources/images/octopi_green.png
icon.files += resources/images/octopi_red.png
icon.files += resources/images/octopi_yellow.png
interfaces.path = $$DATADIR/dbus-1/interfaces
interfaces.files += notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.xml
license.path = $$DATADIR/licenses/octopi
license.files += LICENSE
polkit.path = $$DATADIR/polkit-1/actions
polkit.files += notifier/pacmanhelper/polkit/org.octopi.pacman.policy
service.path = $$LIBDIR/systemd/system
service.files += speedup/octopi.service
sys_service.path = $$DATADIR/dbus-1/system-services
sys_service.files += notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.service
INSTALLS += target bin dbus desktop gnome icon interfaces license polkit service sys_service

View File

@@ -1,9 +0,0 @@
#/bin/sh
# Helper for Qt5 libs to generate all Octopi translations
TRANSLATIONS=./resources/translations/*
for f in $TRANSLATIONS
do
lrelease-qt5 $f
done

34
release-translations.sh Executable file
View File

@@ -0,0 +1,34 @@
#! /bin/sh
# Helper for Qt5 libs to generate all Octopi translations
# First we get all translations from Transifex
tx pull
# Then we release each of them
TRANSLATIONS="./resources/translations/*"
for f in $TRANSLATIONS
do
lrelease-qt5 "$f"
done
# Repeat for Cachecleaner
cd cachecleaner || exit
tx pull
# And release each of them
for f in $TRANSLATIONS
do
lrelease-qt5 "$f"
done
# Repeat for Repoeditor
cd ../repoeditor || exit
tx pull
# And release each of them
for f in $TRANSLATIONS
do
lrelease-qt5 "$f"
done

View File

@@ -20,10 +20,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "repoeditor.h"
#include "repoconf.h"
#include "../src/strconstants.h"
#include "../src/unixcommand.h"
#include "../src/QtSolutions/qtsingleapplication.h"
#include <QApplication>
#include <QMessageBox>
#include <QTranslator>
#include <QLocale>
#include <QLibraryInfo>
@@ -47,6 +49,11 @@ int main( int argc, char *argv[] )
QLocale::system().name());
app.installTranslator(&appTranslator);
if (UnixCommand::isRootRunning()){
QMessageBox::critical( 0, StrConstants::getApplicationName(), StrConstants::getErrorRunningWithRoot());
return ( -2 );
}
RepoEditor w;
app.setActivationWindow(&w);
w.show();

View File

@@ -4,7 +4,7 @@
#
#-------------------------------------------------
QT += core gui network widgets
QT += core gui network xml widgets
CONFIG += qt console warn_on debug
@@ -19,7 +19,15 @@ HEADERS += addrepo.h \
optionsdelegate.h \
repoconf.h \
repoeditor.h \
repoentry.h \
repoentry.h \
../src/unixcommand.h \
../src/strconstants.h \
../src/wmhelper.h \
../src/terminal.h \
../src/settingsmanager.h \
../src/searchlineedit.h \
../src/utils.h \
../src/package.h \
../src/QtSolutions/qtsingleapplication.h \
../src/QtSolutions/qtlocalpeer.h \
../src/QtSolutions/qtlockedfile.h \
@@ -32,6 +40,14 @@ SOURCES += addrepo.cpp \
repoconf.cpp \
repoeditor.cpp \
repoentry.cpp \
../src/unixcommand.cpp \
../src/strconstants.cpp \
../src/wmhelper.cpp \
../src/terminal.cpp \
../src/settingsmanager.cpp \
../src/searchlineedit.cpp \
../src/utils.cpp \
../src/package.cpp \
../src/QtSolutions/qtsingleapplication.cpp \
../src/QtSolutions/qtlocalpeer.cpp \
../src/QtSolutions/qtlockedfile.cpp \
@@ -44,6 +60,7 @@ RESOURCES += resources.qrc
TRANSLATIONS += resources/translations/octopi_repoeditor_pt_BR.ts \
resources/translations/octopi_repoeditor_fr_FR.ts \
resources/translations/octopi_repoeditor_fr.ts \
resources/translations/octopi_repoeditor_es_ES.ts \
resources/translations/octopi_repoeditor_es_419.ts \
resources/translations/octopi_repoeditor_es_AR.ts \
@@ -60,6 +77,8 @@ TRANSLATIONS += resources/translations/octopi_repoeditor_pt_BR.ts \
resources/translations/octopi_repoeditor_da.ts \
resources/translations/octopi_repoeditor_cs.ts \
resources/translations/octopi_repoeditor_he.ts \
resources/translations/octopi_repoeditor_hi.ts \
resources/translations/octopi_repoeditor_hi_IN.ts \
resources/translations/octopi_repoeditor_lt.ts \
resources/translations/octopi_repoeditor_nb.ts \
resources/translations/octopi_repoeditor_sr@latin.ts \
@@ -73,6 +92,7 @@ TRANSLATIONS += resources/translations/octopi_repoeditor_pt_BR.ts \
resources/translations/octopi_repoeditor_en_GB.ts \
resources/translations/octopi_repoeditor_pt_PT.ts \
resources/translations/octopi_repoeditor_sv.ts \
resources/translations/octopi_repoeditor_sl.ts \
resources/translations/octopi_repoeditor_hu.ts \
resources/translations/octopi_repoeditor_zh_TW.ts \
resources/translations/octopi_repoeditor_ms_MY.ts \
@@ -84,3 +104,19 @@ TRANSLATIONS += resources/translations/octopi_repoeditor_pt_BR.ts \
resources/translations/octopi_repoeditor_ast.ts \
resources/translations/octopi_repoeditor_hr.ts \
resources/translations/octopi_repoeditor_zh-Hans.ts
resources/translations/octopi_repoeditor_zh_CN.ts
# install
isEmpty(PREFIX) {
PREFIX = /usr
}
isEmpty(BINDIR) {
BINDIR = $$PREFIX/bin
}
target.path = $$BINDIR
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
sources.path = .
INSTALLS += target

View File

@@ -1,9 +0,0 @@
#/bin/sh
# Helper for Qt5 libs to generate all Octopi translations
TRANSLATIONS=./resources/translations/*
for f in $TRANSLATIONS
do
lrelease-qt5 $f
done

View File

@@ -18,26 +18,27 @@ along with AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "repoconf.h"
#include "../src/unixcommand.h"
#include <QApplication>
#include <QStyle>
#include <QFont>
#include <QFile>
#include <QTextStream>
#include <QMessageBox>
#include <QTemporaryFile>
QString RepoConf::commentString = "";
QRegExp RepoConf::repoMatch = QRegExp();
QRegExp RepoConf::detailMatch = QRegExp();
QRegExp RepoConf::sigLevelMatch = QRegExp();
QRegularExpression RepoConf::repoMatch = QRegularExpression();
QRegularExpression RepoConf::detailMatch = QRegularExpression();
QRegularExpression RepoConf::sigLevelMatch = QRegularExpression();
RepoConf::RepoConf()
{
repoConfFilePath = "/etc/pacman.conf";
repoMatch = QRegExp("^\\[(?!(options|repo-name|\\[|\\s))");
detailMatch = QRegExp("^(Server|Include)\\s*=\\s*.+");
sigLevelMatch = QRegExp("^(SigLevel)\\s*=\\s*.+");
RepoEntry::nameFilter = QRegExp("(\\s+|\\[|\\])");
repoMatch = QRegularExpression("^\\[(?!(options|repo-name|\\[|\\s))");
detailMatch = QRegularExpression("^(Server|Include)\\s*=\\s*.+");
sigLevelMatch = QRegularExpression("^(SigLevel)\\s*=\\s*.+");
RepoEntry::nameFilter = QRegularExpression("(\\s+|\\[|\\])");
commentString = "#";
RepoEntry::repoFormat = "[%repo%]";
@@ -169,34 +170,43 @@ void RepoConf::reload()
loadConf( repoConfFilePath );
}
/*
* Saves changes in pacman.conf using the available SU tool
*/
bool RepoConf::saveChanges( const QString & backup )
{
QTemporaryFile tempFile;
UnixCommand *unixC = new UnixCommand(this);
QString command;
if( !backup.isEmpty() ) {
QMessageBox mbexists( QMessageBox::Warning,
tr( "Backup error" ),
tr( "Backup file already exists." ) + QString( "\n" ) + tr( "Do you want to overwrite it?" ),
QMessageBox::Yes | QMessageBox::No );
//First we test if backup file already exists. If so, we remove it!
if( QFile::exists( backup ) && mbexists.exec() == QMessageBox::Yes ) {
QFile::remove( backup );
command = "rm " + backup;
}
QMessageBox mberror( QMessageBox::Critical,
tr( "Backup error" ),
tr( "Can't create backup file." ) + QString( "\n" ) + tr( "Do you want to proceed without a backup?" ),
QMessageBox::Yes | QMessageBox::No );
if( !QFile::copy( repoConfFilePath, backup ) && mberror.exec() == QMessageBox::No ) {
return false;
}
//Then we create a backup, with the user defined name
if (!command.isEmpty()) command += "; ";
command += "cp /etc/pacman.conf " + backup;
}
QFile confFile( repoConfFilePath );
if( !confFile.open( QIODevice::WriteOnly ) )
if (!tempFile.open())
return false;
confFile.write( toString().toLatin1() );
confFile.close();
tempFile.write( toString().toLatin1() );
tempFile.close();
//Last, we copy the tempfile to the repoconf path
if (!command.isEmpty()) command += "; ";
command += "cp " + tempFile.fileName() + " /etc/pacman.conf; chown root /etc/pacman.conf; chgrp root /etc/pacman.conf; chmod 644 /etc/pacman.conf";
unixC->execCommand(command);
reload();
return true;
}

View File

@@ -43,9 +43,9 @@ public:
explicit RepoConf();
static QString commentString;
static QRegExp repoMatch;
static QRegExp detailMatch;
static QRegExp sigLevelMatch;
static QRegularExpression repoMatch;
static QRegularExpression detailMatch;
static QRegularExpression sigLevelMatch;
static bool matchRepo( QString line );
static bool matchRepoDetails( QString line );

View File

@@ -87,7 +87,16 @@ RepoEditor::~RepoEditor()
void RepoEditor::loadBackup()
{
RepoConf conf;
QString file = QFileDialog::getOpenFileName( this );
QFileInfo fi;
QString file;
if (!ui->backupFile->text().isEmpty())
{
fi.setFile(ui->backupFile->text());
file = QFileDialog::getOpenFileName( this, "Open file", fi.path() );
}
else
file = QFileDialog::getOpenFileName( this );
if( file.isEmpty() )
return;
@@ -121,7 +130,6 @@ void RepoEditor::editEntry()
{
QModelIndex repoMI = ui->tableView->model()->index(ui->tableView->currentIndex().row(), 1, QModelIndex());
QModelIndex locationMI = ui->tableView->model()->index(ui->tableView->currentIndex().row(), 2, QModelIndex());
addRepoDialog->setRepoName(ui->tableView->model()->data(repoMI).toString());
// take the location

View File

@@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "repoentry.h"
QRegExp RepoEntry::nameFilter = QRegExp( "" );
QRegularExpression RepoEntry::nameFilter = QRegularExpression( "" );
QString RepoEntry::commentString = "";
QString RepoEntry::repoFormat = "";

View File

@@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include <QString>
#include <QStringList>
#include <QRegExp>
#include <QRegularExpression>
class RepoEntry{
@@ -42,7 +42,7 @@ public:
explicit RepoEntry();
explicit RepoEntry( QString name, bool active = false );
static QRegExp nameFilter; //Contains the filter to obtain the unformatted repo name (e.g. [main] -> main)
static QRegularExpression nameFilter; //Contains the filter to obtain the unformatted repo name (e.g. [main] -> main)
static QString commentString;
static QString repoFormat;

View File

@@ -19,7 +19,10 @@
<file>resources/translations/octopi_repoeditor_fi.qm</file>
<file>resources/translations/octopi_repoeditor_fi_FI.qm</file>
<file>resources/translations/octopi_repoeditor_fr_FR.qm</file>
<file>resources/translations/octopi_repoeditor_fr.qm</file>
<file>resources/translations/octopi_repoeditor_he.qm</file>
<file>resources/translations/octopi_repoeditor_hi.qm</file>
<file>resources/translations/octopi_repoeditor_hi_IN.qm</file>
<file>resources/translations/octopi_repoeditor_hu.qm</file>
<file>resources/translations/octopi_repoeditor_id.qm</file>
<file>resources/translations/octopi_repoeditor_it.qm</file>
@@ -34,6 +37,7 @@
<file>resources/translations/octopi_repoeditor_ro.qm</file>
<file>resources/translations/octopi_repoeditor_ru.qm</file>
<file>resources/translations/octopi_repoeditor_sk.qm</file>
<file>resources/translations/octopi_repoeditor_sl.qm</file>
<file>resources/translations/octopi_repoeditor_sr@latin.qm</file>
<file>resources/translations/octopi_repoeditor_sr_RS.qm</file>
<file>resources/translations/octopi_repoeditor_sv.qm</file>
@@ -42,7 +46,8 @@
<file>resources/translations/octopi_repoeditor_uz.qm</file>
<file>resources/translations/octopi_repoeditor_vi.qm</file>
<file>resources/translations/octopi_repoeditor_zh_TW.qm</file>
<file>resources/translations/octopi_repoeditor_zh-Hans.ts</file>
<file>resources/translations/octopi_repoeditor_hr.qm</file>
<file>resources/translations/octopi_repoeditor_zh-Hans.qm</file>
<file>resources/translations/octopi_repoeditor_zh_CN.qm</file>
<file>resources/translations/octopi_repoeditor_hr.qm</file>
</qresource>
</RCC>

View File

@@ -4,17 +4,17 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation>Добави източник - Octopi</translation>
<translation>Добави хранилище - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
<source>Repository:</source>
<translation>Източник:</translation>
<translation>Хранилище:</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
<source>Repository name</source>
<translation>Име на източник</translation>
<translation>Име на хранилище</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
@@ -24,22 +24,22 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation>Не може без име на източник</translation>
<translation>Не може без име на хранилище.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation>Полето за място не е валидно</translation>
<translation>Полето за място не е валидно.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation>Името на източника не е валидно</translation>
<translation>Името на хранилището не е валидно.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation>Адрес на външен или локален източник за пакети</translation>
<translation>Адрес на външно или локално хранилище за пакети</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
@@ -54,12 +54,12 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation>Не мога да добавя източник.</translation>
<translation>Не може да се добави хранилище.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation>Избери локален източник </translation>
<translation>Избери локално хранилище</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
@@ -73,12 +73,12 @@
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
<source>Backup error</source>
<translation>Backup грешка</translation>
<translation>Грешка при създаване на резервно копие</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Backup file already exists.</source>
<translation>Backup файла вече съществува.</translation>
<translation>Резервното копие вече съществува.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
@@ -88,12 +88,12 @@
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Can&apos;t create backup file.</source>
<translation>Не може да се направи backup файл.</translation>
<translation>Не може да се направи резервен файл.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Do you want to proceed without a backup?</source>
<translation>Искате ли да продължим без backup?</translation>
<translation>Искате ли да продължите без резервен файл?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
@@ -103,7 +103,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Repository</source>
<translation>Източник</translation>
<translation>Хранилище</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
@@ -116,12 +116,12 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation>Редактор на източници - Octopi</translation>
<translation>Редактор на хранилища - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
<source>Available Repositories</source>
<translation>Достъпни източници</translation>
<translation>Достъпни хранилища</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
@@ -151,27 +151,27 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
<source>Backup</source>
<translation>Backup</translation>
<translation>Резервирай</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
<source>Create backup on save</source>
<translation>Направи backup при запис</translation>
<translation>Направи резерва при запис</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
<source>Load a backup file</source>
<translation>Зареди backup файл</translation>
<translation>Зареди резервен файл</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
<source>Backup file:</source>
<translation>Backup файл:</translation>
<translation>Резервен файл:</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
<source>Can&apos;t load backup file</source>
<translation>Backup файла не се зарежда</translation>
<translation>Резервния файл не може да се зареди</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
@@ -186,7 +186,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation>Настройките за източниците са запазени.</translation>
<translation>Настройките за хранилищата са запазени.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
@@ -196,7 +196,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation>Настройките за източниците не са запазени.</translation>
<translation>Настройките за хранилищата не са запазени.</translation>
</message>
</context>
</TS>

View File

@@ -4,7 +4,7 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation>Afegeix un repositori - Octopi</translation>
<translation>Afegeix repositoris - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
@@ -44,7 +44,7 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
<source>Path to mirrors list file</source>
<translation>Camí al fitxer de la llista de miralls</translation>
<translation>Camí al fitxer de la llista de rèpliques</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
@@ -64,7 +64,7 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
<source>Select mirrors list</source>
<translation>Seleccioneu una llista de miralls</translation>
<translation>Seleccioneu una llista de rèpliques</translation>
</message>
</context>
<context>
@@ -116,7 +116,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation>Editor del repositori - Octopi</translation>
<translation>Editor de repositoris - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
@@ -136,7 +136,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
<source>Remove</source>
<translation>Suprimeix</translation>
<translation>Elimina</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
@@ -156,7 +156,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
<source>Create backup on save</source>
<translation>Crea una còpia de seguretat en desar</translation>
<translation>Crea una còpia de seguretat en desar-ho</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>

View File

@@ -4,17 +4,17 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation>Tilføj Repository - Octopi</translation>
<translation>Tilføj arkiv - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
<source>Repository:</source>
<translation>Repository:</translation>
<translation>Arkiv:</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
<source>Repository name</source>
<translation>Repository navn</translation>
<translation>Arkivnavn</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
@@ -24,22 +24,22 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation>Repository navne feltet kan ikke være tomt.</translation>
<translation>Arkivnavn-feltet ikke være tomt.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation>Repository belligenhed er ikke gyldig.</translation>
<translation>Arkivplacering-feltet er ikke gyldigt.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation>Repository navn er ikke gydig.</translation>
<translation>Arkivnavn-feltet er ikke gydigt.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation>Adresse til fjern eller lokal pakke repository.</translation>
<translation>Adresse til fjern eller lokalt pakkearkiv</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
@@ -54,12 +54,12 @@
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation>Kan ikke tilføje repository.</translation>
<translation>Kan ikke tilføje arkiv.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation>Vælg lokal repository</translation>
<translation>Vælg lokalt arkiv</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
@@ -103,7 +103,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Repository</source>
<translation>Repository</translation>
<translation>Arkiv</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
@@ -116,12 +116,12 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation>Repository Editor - Octopi</translation>
<translation>Arkivredigering - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
<source>Available Repositories</source>
<translation>Tilgængelige Repositories</translation>
<translation>Tilgængelige arkiver</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
@@ -181,12 +181,12 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
<source>Success</source>
<translation>Success</translation>
<translation>Succes</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation>Repositories konfiguration gemt med success.</translation>
<translation>Arkivkonfiguration gemt med succes.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
@@ -196,7 +196,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation>Repositories konfiguration ikke gemt.</translation>
<translation>Arkivkonfiguration ikke gemt.</translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr" version="2.0">
<context>
<name>AddRepo</name>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation>Ajouter un dépôt - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
<source>Repository:</source>
<translation>Dépôt :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
<source>Repository name</source>
<translation>Nom du dépôt</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
<source>Location:</source>
<translation>Emplacement :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation>Le champ de nom du dépôt ne peut pas être vide.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation>Le champ d&apos;emplacement du dépôt n&apos;est pas valide.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation>Le champ de nom du dépôt n&apos;est pas valide.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation>Adresse du dépôt de paquets local ou distant</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
<source>Path to mirrors list file</source>
<translation>Chemin vers le fichier liste de miroirs</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation>Impossible d&apos;ajouter le dépôt.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation>Sélectionner un dépôt local</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
<source>Select mirrors list</source>
<translation>Sélectionner une liste de miroirs</translation>
</message>
</context>
<context>
<name>RepoConf</name>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
<source>Backup error</source>
<translation>Erreur de sauvegarde</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Backup file already exists.</source>
<translation>Le fichier de sauvegarde existe déjà.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Do you want to overwrite it?</source>
<translation>Voulez-vous l&apos;écraser?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Can&apos;t create backup file.</source>
<translation>Impossible de créer le fichier de sauvegarde.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Do you want to proceed without a backup?</source>
<translation>Voulez-vous continuer sans sauvegarde?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Active</source>
<translation>Actif</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Repository</source>
<translation>Dépôt</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Options</source>
<translation>Options</translation>
</message>
</context>
<context>
<name>RepoEditor</name>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation>Éditeur de dépôt - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
<source>Available Repositories</source>
<translation>Dépôts disponibles</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
<source>Edit</source>
<translation>Éditer</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
<source>Add</source>
<translation>Ajouter</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
<source>Remove</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
<source>Move Up</source>
<translation>Monter</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
<source>Move Down</source>
<translation>Descendre</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
<source>Backup</source>
<translation>Sauvegarder</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
<source>Create backup on save</source>
<translation>Créer une sauvegarde</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
<source>Load a backup file</source>
<translation>Charger un fichier de sauvegarde</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
<source>Backup file:</source>
<translation>Fichier de sauvegarde :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
<source>Can&apos;t load backup file</source>
<translation>Impossible de charger le fichier de sauvegarde</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
<source>Selected file is not valid</source>
<translation>Le fichier sélectionné n&apos;est pas valide</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
<source>Success</source>
<translation>Succès</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation>Configuration des dépôts sauvegardée avec succès.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation>Configuration des dépôts non sauvegardée.</translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hi" version="2.0">
<context>
<name>AddRepo</name>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation>- - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
<source>Repository:</source>
<translation>- :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
<source>Repository name</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
<source>Location:</source>
<translation> :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation> - </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
<source>Path to mirrors list file</source>
<translation>ि- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
<source>Error</source>
<translation>ि</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation> - </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
<source>Select mirrors list</source>
<translation>ि- </translation>
</message>
</context>
<context>
<name>RepoConf</name>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
<source>Backup error</source>
<translation> ि</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Backup file already exists.</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Do you want to overwrite it?</source>
<translation> िि ?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Can&apos;t create backup file.</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Do you want to proceed without a backup?</source>
<translation> ि ?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Active</source>
<translation>ि</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Repository</source>
<translation>-</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Options</source>
<translation>ि</translation>
</message>
</context>
<context>
<name>RepoEditor</name>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation>- - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
<source>Available Repositories</source>
<translation> -</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
<source>Edit</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
<source>Add</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
<source>Remove</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
<source>Move Up</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
<source>Move Down</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
<source>Backup</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
<source>Create backup on save</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
<source>Load a backup file</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
<source>Backup file:</source>
<translation> :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
<source>Can&apos;t load backup file</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
<source>Selected file is not valid</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
<source>Success</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation>- ि ि ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
<source>Error</source>
<translation>ि</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation>- ि ि ि </translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hi_IN" version="2.0">
<context>
<name>AddRepo</name>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation>- - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
<source>Repository:</source>
<translation>- :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
<source>Repository name</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
<source>Location:</source>
<translation> :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation> - </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
<source>Path to mirrors list file</source>
<translation>ि- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
<source>Error</source>
<translation>ि</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation>- </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation> - </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
<source>Select mirrors list</source>
<translation>ि- </translation>
</message>
</context>
<context>
<name>RepoConf</name>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
<source>Backup error</source>
<translation> ि</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Backup file already exists.</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Do you want to overwrite it?</source>
<translation> िि ?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Can&apos;t create backup file.</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Do you want to proceed without a backup?</source>
<translation> ि ?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Active</source>
<translation>ि</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Repository</source>
<translation>-</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Options</source>
<translation>ि</translation>
</message>
</context>
<context>
<name>RepoEditor</name>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation>- - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
<source>Available Repositories</source>
<translation> -</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
<source>Edit</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
<source>Add</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
<source>Remove</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
<source>Move Up</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
<source>Move Down</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
<source>Backup</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
<source>Create backup on save</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
<source>Load a backup file</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
<source>Backup file:</source>
<translation> :</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
<source>Can&apos;t load backup file</source>
<translation> </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
<source>Selected file is not valid</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
<source>Success</source>
<translation>ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation>- ि ि ि </translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
<source>Error</source>
<translation>ि</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation>- ि ि ि </translation>
</message>
</context>
</TS>

View File

@@ -116,7 +116,7 @@
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation>Editor de Repositóios - Octopi</translation>
<translation>Editor de Repositório - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="sl" version="2.0">
<context>
<name>AddRepo</name>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation>Dodaj repozitorij - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
<source>Repository:</source>
<translation>Repozitorij:</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
<source>Repository name</source>
<translation>Ime repozitorija</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
<source>Location:</source>
<translation>Lokacija:</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation>Navedite ime repozitorija.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation>Neveljavna lokacija repozitorija.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation>Neveljavno ime repozitorija.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation>Naslov oddaljenega ali lokalnega repozitorija paketov</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
<source>Path to mirrors list file</source>
<translation>Pot do datoteke zrcalnih strežnikov</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
<source>Error</source>
<translation>Napaka</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation>Ni mogoče dodati repozitorija.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation>Izberite lokalni repozitorij</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
<source>Select mirrors list</source>
<translation>Izberite seznam zrcalnih strežnikov</translation>
</message>
</context>
<context>
<name>RepoConf</name>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
<source>Backup error</source>
<translation>Napaka pri kreiranju varnostne kopije</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Backup file already exists.</source>
<translation>Varnostna kopija že obstaja.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Do you want to overwrite it?</source>
<translation>Jo želite prepisati?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Can&apos;t create backup file.</source>
<translation>Ni mogoče ustvariti varnostne kopije.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Do you want to proceed without a backup?</source>
<translation>Želite nadaljevati brez varnostne kopije?</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Active</source>
<translation>Dejaven</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Repository</source>
<translation>Repozitorij</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Options</source>
<translation>Možnosti</translation>
</message>
</context>
<context>
<name>RepoEditor</name>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation>Urejevalnik repozitorijev - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
<source>Available Repositories</source>
<translation>Možni repozitoriji</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
<source>Edit</source>
<translation>Uredi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
<source>Add</source>
<translation>Dodaj</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
<source>Remove</source>
<translation>Odstrani</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
<source>Move Up</source>
<translation>Pomakni gor</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
<source>Move Down</source>
<translation>Pomakni dol</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
<source>Backup</source>
<translation>Ustvari varnostno kopijo</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
<source>Create backup on save</source>
<translation>Ustvari varnostno kopijo ob shranjevanju</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
<source>Load a backup file</source>
<translation>Naloži varnostno kopijo</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
<source>Backup file:</source>
<translation>Varnostna kopija:</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
<source>Can&apos;t load backup file</source>
<translation>Ni možno naložiti varnostne kopije</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
<source>Selected file is not valid</source>
<translation>Izbrana datoteka je neveljavna</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
<source>Success</source>
<translation>Zaključeno</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation>Konfiguracija repozitorijev je bila uspešno shranjena.</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
<source>Error</source>
<translation>Napaka</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation>Konfiguracija repozitorijev ni bila shranjena.</translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_CN" version="2.0">
<context>
<name>AddRepo</name>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation> - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
<source>Repository:</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
<source>Repository name</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
<source>Location:</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
<source>Path to mirrors list file</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
<source>Select mirrors list</source>
<translation></translation>
</message>
</context>
<context>
<name>RepoConf</name>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
<source>Backup error</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Backup file already exists.</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
<source>Do you want to overwrite it?</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Can&apos;t create backup file.</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
<source>Do you want to proceed without a backup?</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Active</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Repository</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
<source>Options</source>
<translation></translation>
</message>
</context>
<context>
<name>RepoEditor</name>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation> - Octopi</translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
<source>Available Repositories</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
<source>Edit</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
<source>Add</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
<source>Remove</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
<source>Move Up</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
<source>Move Down</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
<source>Backup</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
<source>Create backup on save</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
<source>Load a backup file</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
<source>Backup file:</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
<source>Can&apos;t load backup file</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
<source>Selected file is not valid</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
<source>Success</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation></translation>
</message>
</context>
</TS>

View File

@@ -46,8 +46,10 @@
<file>resources/images/show_groups.png</file>
<file>resources/images/mirror-check.png</file>
<file>resources/images/cachecleaner.png</file>
<file>resources/images/stop_small_red.png</file>
<file>resources/translations/octopi_pt_BR.qm</file>
<file>resources/translations/octopi_fr_FR.qm</file>
<file>resources/translations/octopi_fr.qm</file>
<file>resources/translations/octopi_es_ES.qm</file>
<file>resources/translations/octopi_el.qm</file>
<file>resources/translations/octopi_de.qm</file>
@@ -62,6 +64,8 @@
<file>resources/translations/octopi_da.qm</file>
<file>resources/translations/octopi_cs.qm</file>
<file>resources/translations/octopi_he.qm</file>
<file>resources/translations/octopi_hi.qm</file>
<file>resources/translations/octopi_hi_IN.qm</file>
<file>resources/translations/octopi_lt.qm</file>
<file>resources/translations/octopi_nb.qm</file>
<file>resources/translations/octopi_sr@latin.qm</file>
@@ -72,9 +76,11 @@
<file>resources/translations/octopi_fi_FI.qm</file>
<file>resources/translations/octopi_vi.qm</file>
<file>resources/translations/octopi_es_419.qm</file>
<file>resources/translations/octopi_en.qm</file>
<file>resources/translations/octopi_en_GB.qm</file>
<file>resources/translations/octopi_pt_PT.qm</file>
<file>resources/translations/octopi_sv.qm</file>
<file>resources/translations/octopi_sl.qm</file>
<file>resources/translations/octopi_sr_RS.qm</file>
<file>resources/translations/octopi_hu.qm</file>
<file>resources/translations/octopi_zh_TW.qm</file>
@@ -87,7 +93,7 @@
<file>resources/translations/octopi_eu.qm</file>
<file>resources/translations/octopi_gl_ES.qm</file>
<file>resources/translations/octopi_hr.qm</file>
<file>resources/translations/octopi_zh-Hans.ts</file>
<file>resources/qml/chooseterminal.qml</file>
<file>resources/translations/octopi_zh-Hans.qm</file>
<file>resources/translations/octopi_zh_CN.qm</file>
</qresource>
</RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

View File

@@ -1,55 +0,0 @@
import QtQuick 2.0
import QtQuick.Controls 1.2
Rectangle {
id: terminals
signal terminalSelected(int index)
signal dialogOK()
width: 300
height: 215
TableView {
id: list
anchors.fill: parent
model: terminalModel
visible: true
TableViewColumn{
role: "terminal"
title: "Terminal"
width: 150
resizable: false
movable: false
}
itemDelegate: Item {
Text {
renderType: Text.NativeRendering
text: " " + styleData.value
}
}
backgroundVisible: true
alternatingRowColors: true
headerVisible: true
focus: true
onActivated: {
terminals.terminalSelected(row)
}
onClicked: {
terminals.terminalSelected(row)
}
onDoubleClicked: {
terminals.terminalSelected(row)
terminals.dialogOK()
}
}
function resetIndex(initialTerminalIndex){
list.selection.clear()
list.selection.select(initialTerminalIndex)
terminals.terminalSelected(initialTerminalIndex)
}
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,4 +1,6 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en" version="2.1">
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en">
<context>
<name>MainWindow</name>
<message>
@@ -455,12 +457,12 @@
<message>
<location filename="Projects/octopi/src/mainwindow_help.cpp" line="160"/>
<source>F4 to open a Terminal whitin the selected directory at Files tab</source>
<translation>F4 to open a Terminal whitin the selected directory at Files tab</translation>
<translation>F4 to open a Terminal within the selected directory at Files tab</translation>
</message>
<message>
<location filename="Projects/octopi/src/mainwindow_help.cpp" line="162"/>
<source>F6 to open a File Manager whitin the selected directory at Files tab</source>
<translation>F6 to open a File Manager whitin the selected directory at Files tab</translation>
<translation>F6 to open a File Manager within the selected directory at Files tab</translation>
</message>
<message>
<location filename="Projects/octopi/src/mainwindow_help.cpp" line="164"/>
@@ -788,7 +790,10 @@
<message numerus="yes">
<location filename="Projects/octopi/src/strconstants.h" line="349"/>
<source>There are %n outdated packages in your system:</source>
<translation><numerusform>There are %n outdated packages in your system:</numerusform><numerusform>There are %n outdated packages in your system:</numerusform></translation>
<translation>
<numerusform>There are %n outdated packages in your system:</numerusform>
<numerusform>There are %n outdated packages in your system:</numerusform>
</translation>
</message>
<message>
<location filename="Projects/octopi/src/strconstants.h" line="353"/>
@@ -798,22 +803,34 @@
<message numerus="yes">
<location filename="Projects/octopi/src/strconstants.h" line="357"/>
<source>%n (%2) packages</source>
<translation><numerusform>%n (%2) packages</numerusform><numerusform>%n (%2) packages</numerusform></translation>
<translation>
<numerusform>%n (%2) packages</numerusform>
<numerusform>%n (%2) packages</numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="Projects/octopi/src/strconstants.h" line="361"/>
<source>%n installed</source>
<translation><numerusform>%n installed</numerusform><numerusform>%n installed</numerusform></translation>
<translation>
<numerusform>%n installed</numerusform>
<numerusform>%n installed</numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="Projects/octopi/src/strconstants.h" line="365"/>
<source>%n outdated</source>
<translation><numerusform>%n outdated</numerusform><numerusform>%n outdated</numerusform></translation>
<translation>
<numerusform>%n outdated</numerusform>
<numerusform>%n outdated</numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="Projects/octopi/src/strconstants.h" line="369"/>
<source>%n available</source>
<translation><numerusform>%n available</numerusform><numerusform>%n available</numerusform></translation>
<translation>
<numerusform>%n available</numerusform>
<numerusform>%n available</numerusform>
</translation>
</message>
<message>
<location filename="Projects/octopi/src/strconstants.h" line="373"/>
@@ -913,12 +930,18 @@
<message numerus="yes">
<location filename="Projects/octopi/src/strconstants.h" line="453"/>
<source>The following %n packages need to be retrieved</source>
<translation><numerusform>The following %n packages need to be retrieved</numerusform><numerusform>The following %n packages need to be retrieved</numerusform></translation>
<translation>
<numerusform>The following %n packages need to be retrieved</numerusform>
<numerusform>The following %n packages need to be retrieved</numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="Projects/octopi/src/strconstants.h" line="457"/>
<source>The following %n packages will be removed</source>
<translation><numerusform>The following %n packages will be removed</numerusform><numerusform>The following %n packages will be removed</numerusform></translation>
<translation>
<numerusform>The following %n packages will be removed</numerusform>
<numerusform>The following %n packages will be removed</numerusform>
</translation>
</message>
<message>
<location filename="Projects/octopi/src/strconstants.h" line="461"/>
@@ -938,7 +961,10 @@
<message numerus="yes">
<location filename="Projects/octopi/src/strconstants.h" line="473"/>
<source>There are %n updates available!</source>
<translation><numerusform>There are %n updates available!</numerusform><numerusform>There are %n updates available!</numerusform></translation>
<translation>
<numerusform>There are %n updates available!</numerusform>
<numerusform>There are %n updates available!</numerusform>
</translation>
</message>
<message>
<location filename="Projects/octopi/src/strconstants.h" line="477"/>
@@ -1119,4 +1145,4 @@ Are you sure you want to open it?</translation>
<translation>Run in terminal</translation>
</message>
</context>
</TS>
</TS>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More