523 Commits

Author SHA1 Message Date
Alexandre Arnt
0cd9398b83 - BugFix: Sometimes got a gconf bug string at sync db;
- Updated a bunch of translations;
- Bumped version number to 0.4.2.
2014-07-26 11:42:26 -03:00
A
6e8e09db42 - Updated indonesian translation. 2014-07-15 22:55:57 -03:00
A
e6b9550a3a - Changed version number... back do dev :) 2014-07-15 22:07:30 -03:00
A
cfa8111533 - BugFix: when searching AUR pkgs, given search string was not being
matched by package descriptions;
- Added support for new kcp (Go version).
2014-07-15 22:05:36 -03:00
Alexandre Arnt
767855b15f - Bumped version number to 0.4.1. 2014-07-12 09:50:45 -03:00
Alexandre Arnt
4f456456e8 - Updated basque translation. 2014-07-08 22:50:22 -03:00
Alexandre Arnt
2a1677c6ee Merge branch 'master' of https://github.com/aarnt/octopi
Conflicts:
	src/packagecontroller.h
2014-07-07 01:05:01 -03:00
Alexandre Arnt
2ada4e2333 - Added basque translation (thanks to tarteka);
- Created utils namespace (removed utils/processwrapper.*);
- Removed 'packagecontroller' file.
2014-07-07 01:02:29 -03:00
Alexandre Arnt
9e47ddcc5a - Added basque translation (thanks to tarteka);
- Created utils namespace (removed utils/processwrapper.*).
2014-07-07 00:46:31 -03:00
Alexandre Arnt
1ecfa48022 - Updated slovak translation;
- Updated README file.
2014-07-05 10:41:51 -03:00
Alexandre Arnt
bd3b812797 - BugFix: Tools menu was not being refreshed after a package
removal/installation.
- Added more characters in default SearchLineEdit validator.
2014-07-01 10:48:18 -03:00
Alexandre Arnt
6577fcff11 - Updated catalan and norwegian bokmål translations. 2014-07-01 09:25:28 -03:00
Alexandre Arnt
b86ee5dd07 - BugFix: Changed Yaourt references to 'AUR' in octopi-notifier code. 2014-06-23 15:26:52 -03:00
Alexandre Arnt
e2d13ef10b - Updated turkish translation (thanks to tulliana). 2014-06-21 18:26:30 -03:00
Alexandre Arnt
c3c383a9cb - BugFix: After a pkg list rebuild the Files and Info cache were not
being emptied;
- Now downgrading operations appears in orange in Output tab.
2014-06-21 17:53:48 -03:00
Alexandre Arnt
35ea5b463a - BugFix: When going to 'search by file', we have to restore all pkgs in
the list, first.
2014-06-21 16:24:17 -03:00
Alexandre Arnt
c884270dd2 Merge branch 'master' of https://github.com/aarnt/octopi 2014-06-21 11:39:49 -03:00
Alexandre Arnt
d825efdb0b - A new way to search by files: do not clear the pkg list, just position
at the found package name;
- Updated japanese translation;
- Removed last Yaourt references, to favour AUR instead.
2014-06-21 11:39:45 -03:00
Alexandre Arnt
49282078d0 - A new way to search by files: do not clear the pkg list, just position
at the found package name;
- Updated japanese translation.
2014-06-21 11:05:59 -03:00
Alexandre Arnt
e5e54acb41 - BugFix: When 'Search By file', always reset View mode (All/All) and
disable the menu.
2014-06-21 00:21:32 -03:00
Alexandre Arnt
54573e8c14 - BugFix: At start when there is no pacman db, octopi hangs (thanks to
anex);
- BugFix: include '*' in default string validator of searchlineedit.
2014-06-20 19:45:34 -03:00
Alexandre Arnt
ab0b464dac - Updated translations. 2014-06-20 18:04:19 -03:00
Alexandre Arnt
6411fd735c - Added japanese translation - thanks to (UTUMI Hirosi) utuhiro78;
- Updated czech translation.
2014-06-20 16:26:58 -03:00
Alexandre Arnt
67b95d8c73 - BugFix: The 'Enter' key (numeric keyboard) is now supported. 2014-06-20 15:41:58 -03:00
Alexandre Arnt
bee9924a29 - Updated some translations. 2014-06-20 01:24:29 -03:00
Alexandre Arnt
235ea7d982 Merge branch 'master' of https://github.com/aarnt/octopi 2014-06-20 01:24:21 -03:00
Alexandre Arnt
bec920f07f Merge branch 'master' of https://github.com/aarnt/octopi 2014-06-20 01:20:59 -03:00
Alexandre Arnt
d0e0e61c85 - Switched position of name/description in Search menu. 2014-06-20 01:20:54 -03:00
Alexandre Arnt
786050926c - Switched position of name/description in Search menu. 2014-06-20 00:53:45 -03:00
Alexandre Arnt
88a75d0629 - BugFix: kcp search stoped working. 2014-06-20 00:21:57 -03:00
Alexandre Arnt
1464355c71 - BugFix: if user did not enter a file in Search by file, then no
results!
2014-06-19 23:37:58 -03:00
Alexandre Arnt
a8635c059d - Some coding refactorings regarding Yaourt/AUR;
- Added Search by file feature (pacman -Qo).
2014-06-19 23:19:55 -03:00
Alexandre Arnt
2490e95516 - BugFix: Download and installed size info at info tab. 2014-06-19 12:33:26 -03:00
Alexandre Arnt
74b793ee74 - Added 'installed size' information in package tooltips. 2014-06-19 11:21:00 -03:00
Alexandre Arnt
8b69cecd4a - Updated portuguese (Portugal) translation. 2014-06-18 21:05:27 -03:00
Alexandre Arnt
85477cf6bc - BugFix: Compile error in mainwindow_events.cpp with Qt4 libs. 2014-06-15 13:53:14 -03:00
Alexandre Arnt
fc69de5d66 - BugFix: Ctrl and Shift key pkg actions not behaving right in Qt5
builds.
2014-06-14 23:02:21 -03:00
Alexandre Arnt
53720a5b23 - BugFix: Chakra does not have popularity support in CCR. 2014-06-14 17:52:24 -03:00
Alexandre Arnt
784de2139f - BugFix: When clicking a pkg on the outdated list, it could scroll to a
wrong pkg info.
2014-06-08 11:56:14 -03:00
Alexandre Arnt
fd884ca728 - BugFix in ArchBang edit file code. 2014-06-07 12:38:06 -03:00
Alexandre Arnt
52d4b6f7b0 - Missed file in commit :-) 2014-06-07 12:28:09 -03:00
Alexandre Arnt
e9c0c24829 - BugFix: Adapted ArchBang changes. 2014-06-07 12:27:36 -03:00
Alexandre Arnt
fba995f794 - Updated es_AR translation. 2014-06-07 09:50:11 -03:00
Alexandre Arnt
13d2fd0c5b - String breaks to beautify code. 2014-06-05 21:54:21 -03:00
Alexandre Arnt
d62304a988 - Bugfix in copy to clip code. 2014-06-04 22:08:59 -03:00
Alexandre Arnt
8d51bc9133 - Ctrl+C over an item in Files tab copies it's full path to Clipboard. 2014-06-04 22:00:55 -03:00
Alexandre Arnt
1265a76d72 - Updated translations;
- Small fixes in packagemodel/package code (thanks to tbinkau).
2014-06-04 21:43:21 -03:00
Alexandre Arnt
84b1548106 Merge pull request #39 from tbinkau/fb3
small bugfixes
2014-06-04 15:32:59 -03:00
Thomas Binkau
19f65cc8fb small bugfixes
- variable used before init (minor)
- import uses incorrect check for empty pacman group (minor)
2014-06-04 19:44:26 +02:00
Alexandre Arnt
b9b048a4c3 - Reworked code to count installed packages (based on filters). 2014-06-04 00:13:00 -03:00
Alexandre Arnt
dfba96224d - Leave most actions disabled while mirror-checking... 2014-06-01 14:57:33 -03:00
Alexandre Arnt
728b04aa53 - Removed unused Ctrl+N help text;
- Updated es_AR translation.
2014-06-01 11:57:47 -03:00
Alexandre Arnt
157c0c3e4e - Updated es_AR translation. 2014-06-01 11:29:32 -03:00
Alexandre Arnt
3fc552312a - Bumped version number in PKGBUILD file. 2014-06-01 11:06:27 -03:00
Alexandre Arnt
29359ea87f - Leave some actions disabled before building pkg list;
- Added es_AR translation (thanks to javier).
2014-06-01 10:58:47 -03:00
Alexandre Arnt
7620e1cf22 - 0.4.1 dev starts... 2014-05-31 11:51:26 -03:00
Alexandre Arnt
cebe039944 - Octopi 0.4.0 released. 2014-05-24 23:31:59 -03:00
Alexandre Arnt
6eecb0f697 - String fix in CHANGELOG. 2014-05-24 23:30:27 -03:00
Alexandre Arnt
83e191b44c - More LXQt support changes. 2014-05-24 17:29:47 -03:00
Alexandre Arnt
e6667ebd81 - Better stick with xterm dependency, for scary moments ;-P 2014-05-24 17:06:33 -03:00
Alexandre Arnt
92d33c6c4c - Added support for LxQt DE. 2014-05-24 16:25:01 -03:00
Alexandre Arnt
35fb7ae3ff - Changed some Antergos wm settings. 2014-05-24 14:17:31 -03:00
Alexandre Arnt
bb233dbd91 - Some changes in wm guessing preferences. 2014-05-24 12:44:34 -03:00
Alexandre Arnt
a4239a518c - BugFix: Open Root terminals while in gnome/cinnamon. 2014-05-24 12:32:01 -03:00
Alexandre Arnt
1d71716bb2 - Changed some gnome tools calling. 2014-05-24 12:22:07 -03:00
Alexandre Arnt
3b3ae1d5c3 - Added support for Antergos distro (thanks to Yoyo). 2014-05-24 11:45:21 -03:00
Alexandre Arnt
1f46765b00 - BugFix: Sync db with downloading string. 2014-05-23 13:06:13 -03:00
Alexandre Arnt
41e10ddf7c - Changed notify-send timeout. 2014-05-22 21:32:18 -03:00
Alexandre Arnt
535fa8243a - BugFix: pacaur upgrade code. 2014-05-22 21:24:06 -03:00
Alexandre Arnt
08727254f6 - BugFix: Pacaur upgrade pkgs code. 2014-05-22 21:09:47 -03:00
Alexandre Arnt
c35347f0a5 - Pacaur upgrade code refactoring. 2014-05-22 20:30:45 -03:00
Alexandre Arnt
a514c716cf - Changed notify-send timeout. 2014-05-22 19:53:53 -03:00
Alexandre Arnt
21b6f4c05f - BugFix: Synchronize pkg list in certain systems. 2014-05-22 18:36:35 -03:00
Arnt
b617c69fd3 - Changed urxvtc terminal launch code. 2014-05-21 23:12:44 -03:00
Arnt
642627648d Changed urxvt launch code. 2014-05-21 22:49:29 -03:00
Arnt
1627fffa8b - Uses urxvtc if the deamon is running. 2014-05-21 22:18:49 -03:00
Arnt
1b3a4207fa - BugFix: Urxvt starting code. 2014-05-21 21:42:32 -03:00
Arnt
286220d07a - Back to "pacman -Sy" when syncing dbs running as root. 2014-05-20 22:43:20 -03:00
Alexandre Arnt
3566a30074 - Running as root in KDE... 2014-05-20 19:09:51 -03:00
Alexandre Arnt
1bd98c9c38 - BugFix: Transparent octopi notifier icon no longer shows a white bar
in the eyes (thanks to Anke Boersma);
- Transparent octopi notifier icon tooltip added.
2014-05-19 23:10:07 -03:00
Alexandre Arnt
da16c21ab5 - BugFix: Fixed a jump bug when key-navigating in pkg list with Qt5
octopi;
- Updated asturian translation.
2014-05-19 21:49:03 -03:00
Alexandre Arnt
c048408aba - BugFix: When a pkg is outdated, show all available info,
- Updated viatnamese translation.
2014-05-19 08:56:03 -03:00
Alexandre Arnt
9baef907d2 - BugFix: Get list of outdated pkgs with pacaur was not working. 2014-05-18 09:31:48 -03:00
Alexandre Arnt
d743be5ba6 - BugFix: Disable group widget while searching for AUR packages. 2014-05-17 22:38:48 -03:00
Alexandre Arnt
c74553085e - Fix popularity column issues for AUR searches;
- Added support for pacaur tool.
2014-05-17 22:17:55 -03:00
Alexandre Arnt
0cafd02010 - Patched transactiondialog so it doesn't show Yes button while in
ArchBSD too.
2014-05-17 16:45:07 -03:00
Alexandre Arnt
1e94463a06 - Added support to Netrunner news. 2014-05-17 15:39:05 -03:00
Alexandre Arnt
96f096c764 - BugFix: Only show popularity column when needed. 2014-05-17 11:09:27 -03:00
Alexandre Arnt
931e86c7b5 - A bunch of code cleanings;
- Fixed remove kcp pkg code.
2014-05-17 09:44:37 -03:00
Alexandre Arnt
0b92da973a - Changed QString toAscii() to toLatin1() method. 2014-05-16 22:00:06 -03:00
Alexandre Arnt
2efc5d4218 - KCP group name refactored :-) 2014-05-15 22:58:37 -03:00
Alexandre Arnt
b861cc8986 - BugFix: AUR search. 2014-05-15 22:47:31 -03:00
Alexandre Arnt
bcda9c21d5 - Initial support for kcp in KaOS (thanks to Cellix). 2014-05-15 22:40:49 -03:00
Arnt
3e4208ffc2 - Refactor in method for getting number of votes in AUR. 2014-05-12 22:38:47 -03:00
Arnt
7ad9cd61bf - BugFix: Which output in BSD systems. 2014-05-11 11:54:46 -03:00
Alexandre Arnt
fac2a3b0b2 - BugFix: system upgrade button could not appear in Yaourt mode. 2014-05-10 20:36:05 -03:00
Alexandre Arnt
627307e8a5 - Updated turkish translation. 2014-05-10 20:01:34 -03:00
Alexandre Arnt
75cdb0fb7f - Refactor in debug message. 2014-05-10 19:58:12 -03:00
Alexandre Arnt
7522bd8c42 - Reverted wrong commit. 2014-05-10 19:03:39 -03:00
Alexandre Arnt
35ae99199e - Added title to the urxvt terminal. 2014-05-10 18:24:59 -03:00
Alexandre Arnt
282e5df505 - BugFix: Updated MooOS terminal commands;
- BugFix: Reworked ArchBSD discover logic.
2014-05-10 18:05:52 -03:00
Alexandre Arnt
df119a577a - New logic for ArchBSD guessing. 2014-05-10 16:55:18 -03:00
Alexandre Arnt
8b0664423b - Removed xterm from dependencies in PKGBUILD file. 2014-05-10 11:58:07 -03:00
Alexandre Arnt
fbe76c37f6 - BugFix: updated installgroup logic. 2014-05-10 10:30:55 -03:00
Alexandre Arnt
63c42435db - BugFix: warning in doInstallLocalPackages. 2014-05-10 10:23:25 -03:00
Alexandre Arnt
2408a07190 - BugFix: Show warning when user do not have kdesu/gksu in install local
pkgs.
2014-05-10 10:20:56 -03:00
Alexandre Arnt
2af3c78c71 - BugFix: If we do not have kdesu/gksu, we do not show sys upgrade
dialog.
2014-05-10 10:15:58 -03:00
Alexandre Arnt
48f42e4a25 - BugFix: doRemovePacmanLockFile should return a bool to indicate
success.
2014-05-10 10:07:31 -03:00
Alexandre Arnt
af1c0768ac - Changed logic in pkg group actions. 2014-05-10 09:54:40 -03:00
Alexandre Arnt
ed5f19a88a - BugFixes in install group and install yourt logic. 2014-05-10 09:36:51 -03:00
Alexandre Arnt
3441ecf6d3 - Forgot to add asturian files to repo. 2014-05-09 23:51:37 -03:00
Alexandre Arnt
3c335bf66f - Added asturian translation in Qt5 builds (thanks to Llumex03);
- Updated dutch and slovak translations.
2014-05-09 22:54:44 -03:00
Alexandre Arnt
cad652e031 - BugFix: When in Yaourt mode, appicon would change to green color even
with outdated packages.
2014-05-08 20:45:01 -03:00
Alexandre Arnt
f956e0c17d Merge translations 2014-05-08 20:20:24 -03:00
Alexandre Arnt
af9934e308 - Added support for ArchBSD news (thanks to bkc_);
- Updated german translation.
2014-05-08 20:17:36 -03:00
Alexandre Arnt
36574af264 - Added support for ArchBSD news (thanks to bkc_). 2014-05-08 20:12:52 -03:00
Alexandre Arnt
a39db6c102 - Updated russian, uzbek and czech translations;
- Bumped version to 0.4.0 RC.
2014-05-07 21:46:19 -03:00
Arnt
5de4e3a511 - Added support for mooOS (thanks to pdq);
- Updated color status of mirror-check's 'not found repos'.
2014-05-06 21:45:00 -03:00
Alexandre Arnt
12f12f0e61 Merge branch 'master' of https://github.com/aarnt/octopi 2014-05-06 09:14:44 -03:00
Alexandre Arnt
63f708fb72 - Updated translations. 2014-05-06 09:11:59 -03:00
Arnt
dc776b673a - Mirror-check output changes... 2014-05-04 21:18:30 -03:00
Alexandre Arnt
e11c893475 - BugFix: removed color codes in mirror-check output;
- Updated indonesian translation.
2014-05-04 19:05:51 -03:00
Alexandre Arnt
79ce221302 - Removed unused #include clause in strconstants.h. 2014-05-04 11:57:09 -03:00
Alexandre Arnt
40470fabd9 - More code clean (unused methods). 2014-05-04 11:06:00 -03:00
Alexandre Arnt
d726dedc67 - Switched to repoeditor/repoentry.* files;
- BugFix: Removed color code in not synched mirror check repos (thanks
to AlmAck, from Chakra);
2014-05-04 10:45:20 -03:00
Alexandre Arnt
dfb222c581 - Updated italian translation;
- Stripped some unused code in repoconf.*.
2014-05-04 09:22:39 -03:00
Alexandre Arnt
b26d488be9 - Updated translations. 2014-05-04 08:08:45 -03:00
Alexandre Arnt
aacc0667f9 - Updated some translations. 2014-05-03 20:33:51 -03:00
Alexandre Arnt
8e606cf6b1 - BugFix: KaOS and Chakra do not use popularity column yet;
- Updated translatable strings;
- Updated pt_BR translation.
2014-05-03 16:40:03 -03:00
Alexandre Arnt
8c538ad6af - Switched to "pacman -Syy" command when synching. It's safer. 2014-05-03 15:42:18 -03:00
Alexandre Arnt
97123b05cc - BugFix: While in KaOS, let's hide popularity column for now;
- BugFix: Let's always refresh pkg counters after messing with View's
filter.
2014-05-03 15:28:05 -03:00
Alexandre Arnt
77c0fabb74 Merge branch 'master' of https://github.com/aarnt/octopi 2014-05-03 14:48:10 -03:00
Alexandre Arnt
a554f17cbf - Added popularity column (number of votes) in AUR/CCR mode (thanks to
tbinkau);
- Added more filter options in View menu.
2014-05-03 14:46:20 -03:00
Alexandre Arnt
79adad4cf2 - Added popularity column (number of votes) in AUR/CCR mode (thanks to
tbinkau);
- Added more filter options in View menu.
2014-05-03 14:44:52 -03:00
Alexandre Arnt
5488697d3e - BugFix: System upgrade can not be available while in yaourt mode;
- BugFix: Switching faster to yaourt mode if text field is empty.
2014-05-01 22:12:38 -03:00
Alexandre Arnt
906d9970d8 - BugFix: Ctrl+A is available in the pkg list panel. 2014-04-26 23:08:42 -03:00
Alexandre Arnt
40456e7961 - Updated CHANGELOG file. 2014-04-23 01:43:07 -03:00
Alexandre Arnt
52356e6b35 Merge pull request #31 from tbinkau/master
sorting first column will include package name as second sort criteria
2014-04-24 08:35:06 -03:00
Thomas Binkau
3d7f48b26d sorting first column will include package name as second sort criteria 2014-04-23 08:49:16 +02:00
Alexandre Arnt
6fa3b3f4ba - Updated CHANGELOG;
- BugFix: some notifier menu icons were not showing in xfce;
- Removed getIconOpenDirectory (same as getIconFolder).
2014-04-23 00:43:13 -03:00
Alexandre Arnt
77f9d237e4 - BugFix: openurl code when the clicked pkg is not at the list of
packages;
- BugFix: key navigation while in package list.
2014-04-23 00:00:38 -03:00
Alexandre Arnt
117003345d Merge pull request #30 from tbinkau/master
Merge BIG changes in model...
2014-04-23 21:24:52 -03:00
Thomas Binkau
bfa97587b9 Merge remote-tracking branch 'upstream/master'
Conflicts:
	CHANGELOG
	notifier/octopi-notifier/mainwindow.cpp
	src/mainwindow.cpp
	src/mainwindow_transaction.cpp
	src/searchlineedit.cpp
2014-04-22 21:08:42 +02:00
Thomas Binkau
a121036a77 reintegrate branch feature_pkgModel @21e9c87
- sorting first column
- first display of package tv
- concurrency fix for group members update
2014-04-22 20:34:05 +02:00
Arnt
50e15c94f5 - BugFix: the new define "OCTOPI_EXTENSIONS" was misplaced. 2014-04-21 21:56:12 -03:00
Alexandre Arnt
92770c720b - BugFix: Honor KDE icon for system upgrade in notifier. 2014-04-21 15:39:36 -03:00
Alexandre Arnt
e372b2de97 - BugFix: No graphical system upgrades while in Chakra. 2014-04-21 15:27:08 -03:00
Alexandre Arnt
97dc486b7b - BugFix: Let's not sendNotification to the desktop if spun is running! 2014-04-21 15:14:29 -03:00
Alexandre Arnt
9cb286be10 - Cleaned unused code;
- Fixed possible string bugs in syncdatabase code.
2014-04-21 12:30:08 -03:00
Alexandre Arnt
55fbb182a0 - Patched repoeditor to support QtSingleApplication. 2014-04-21 12:01:13 -03:00
Alexandre Arnt
4e6eae79e4 - BugFix in main.cpp code. 2014-04-21 08:30:32 -03:00
Alexandre Arnt
9f5a8c1640 - Reworked code to sysupgrade-noconfirm 2014-04-20 19:30:23 -03:00
Alexandre Arnt
fc3ad7e30b - Added sysupgrade noconfirm option to notifier. 2014-04-20 11:11:56 -03:00
Alexandre Arnt
8eab440bf2 BugFix: Fixed CCR (Chakra) package installation/removal (thanks to
dmnmsc).
2014-04-20 10:21:41 -03:00
Arnt
1771a3227a - Updates in README and CHANGELOG. 2014-04-19 22:53:59 -03:00
Arnt
3aa128d934 - Add new octopi parameter "-sysupgrade-noconfirm", so it jumps to the
upgrade process as soon as it is started, without asking confirmation
(needed by notifier in certain conditions).
2014-04-19 22:42:55 -03:00
Thomas Binkau
d8d6b1ffbf Refactored the packageView to use a single model.
Imho much better to read and build upon. Also it should be a bit faster.
2014-04-19 00:21:44 +02:00
Thomas Binkau
92270e91ec merged upstream change 2014-04-18 10:44:01 +02:00
Alexandre Arnt
62420fd91a Merge branch 'master' of https://github.com/aarnt/octopi 2014-04-17 22:17:56 -03:00
Arnt
b0ad9bc94d - Added Jordi (dmnmsc) in THANKS. 2014-04-18 18:37:46 -03:00
Arnt
3f48fe6a99 - BugFix: stylesheet bugs while in Chakra. 2014-04-18 18:23:12 -03:00
Arnt
36f7326596 - BugFix: Octopi's mirror-check was not outputing errors;
- Updated installation notes for KDE-centric distros.
2014-04-18 18:04:32 -03:00
Alexandre Arnt
1363079150 - BugFix: Chakra ccr was not working (thanks to dmnmsc). 2014-04-17 22:16:27 -03:00
Thomas Binkau
aa720896b4 Merged upstream changes
BugFix: Now Shift+F3 and F3 search keys (and also Esc) work outside
SearchLineEdit widget.
BugFix: fixed freeze for install orphaned/yaourt package (thanks to
tbinkau).
BugFix: fixed notify-send code in octopi-notifier (thanks to vedgy).
2014-04-18 01:03:46 +02:00
Alexandre Arnt
f9e1b5683b - Changed method for searching for a package URL. 2014-04-17 16:40:18 +00:00
Alexandre Arnt
1d6c60a79a - BugFix: Esc key now works outside SearchLineEdit widget. 2014-04-17 16:18:01 +00:00
Alexandre Arnt
50102b318e - Updated some translations;
- BugFix: Now user can use F3 and Shift+F3 buttons outside
SearchLineEdit;
- BugFix: Now konsole can be used with yaourt support while in KDE
(thanks to Thomas Binkau).
2014-04-17 15:23:18 +00:00
Alexandre Arnt
248ee6e2a6 Merge pull request #27 from tbinkau/master
fixed freeze for install orphaned/yaourt package
2014-04-17 14:04:00 +00:00
Thomas Binkau
765391b9f4 fixed freeze for install orphaned/yaourt package
when installing an AUR package (directly) via context menu from the
package list the group tree would freeze and octopi wouldnt shut down
afterwards. this happened because octopi didnt find a suitable terminal
but did wait for its execution.
This fix add "konsole" as terminal for kde and will abort in case no
suitable terminal was found. also the info tab will not indicate
successfull completion in this case.
2014-04-16 20:23:14 +02:00
Alexandre Arnt
4d9f0342b5 BugFix: Stylesheet code in SearchLineEdit was buggy. 2014-04-10 23:38:32 -03:00
Alexandre Arnt
c7fe445508 - Updated finish translation. 2014-04-10 00:25:42 +00:00
Manjaro Linux
493b2d6906 Merge pull request #25 from gcala/master
Change some gui details when using Chakra
2014-04-06 19:21:12 +02:00
Alexandre Arnt
22ce7d4099 - Updated two icons from KaOS icon set;
- Added/Changed some comments.
2014-04-06 15:19:41 +00:00
Giuseppe Calà
2d3ec9d137 Merge remote-tracking branch 'upstream/master' 2014-04-06 16:06:39 +02:00
Giuseppe Calà
ba23299cdc Give native look to search field when using Chakra.
Using QPalette to change its colors.
2014-04-06 15:59:59 +02:00
Alexandre Arnt
e39e43d8a9 - Updated hungarian translation. 2014-04-06 13:52:11 +00:00
Giuseppe Calà
8f76160d7c Use system windows style with Chakra 2014-04-06 12:29:57 +02:00
Manjaro Linux
35af4fe25c Merge pull request #24 from gcala/master
Fix: updated Chakra rss2 url
2014-04-06 10:29:49 +02:00
Giuseppe Calà
4c1b8d00a9 Fix: updated Chakra rss2 url 2014-04-06 09:57:37 +02:00
Philip
590098cc08 Manjaro RSS Feed
- restore back to http
- when we use https we can't post videos on our blog
- this might change later
2014-04-06 09:42:39 +02:00
Philip
4a703e04c9 Fix manjaro rss feed 2014-04-05 15:29:03 +02:00
Philip
2122f16622 update PKGBUILD 2014-04-05 12:07:20 +02:00
Alexandre Arnt
c230ccf09d Changes in CHANGELOG file 2014-04-04 11:06:35 +00:00
Alexandre Arnt
047560a351 Merge branch 'master' of https://github.com/aarnt/octopi 2014-04-04 11:06:26 +00:00
Alexandre Arnt
128addb910 Merge branch 'master' of https://github.com/aarnt/octopi 2014-04-04 11:05:15 +00:00
Alexandre Arnt
d47da6c11a - Code refactorings;
- BugFix: While in a transaction of remove/install pkgs, transaction
dialog was named "Form".
2014-04-04 11:05:01 +00:00
Alexandre Arnt
2a3cc4d8db - Code refactorings;
- BugFix: While in a transaction of remove/install pkgs, transaction
dialog was named "Form".
2014-04-04 11:02:46 +00:00
Alexandre Arnt
3861b0a2df - Updated romanian translation;
- Tab fixes in strconstants.h.
2014-04-04 10:26:10 +00:00
Manjaro Linux
975e99fd35 Merge pull request #23 from gcala/master
Added ccr support for Chakra.
2014-04-03 19:06:27 +02:00
Giuseppe Calà
26b534a9f1 Added ccr support for Chakra.
Unfortunately, had to disable outdated check since ccr not provides '-Qua' option.
2014-04-03 17:04:14 +02:00
Alexandre Arnt
872600c14e - Some changes in the tools menu code. 2014-04-03 01:35:57 +00:00
Manjaro Linux
d0a2ca8d65 Merge pull request #22 from gcala/master
Merge Tool menu by gcala
2014-04-02 20:36:57 +02:00
Giuseppe Calà
e9963e5b69 added translations 2014-04-02 15:41:19 +02:00
Giuseppe Calà
4aef61a74d removed useless files 2014-04-02 15:13:02 +02:00
Giuseppe Calà
3f8fe577f6 New Tools Menu 2014-04-02 15:08:27 +02:00
Alexandre Arnt
e80835ba1f - Added some KaOS conditional. 2014-03-30 16:46:30 -03:00
Alexandre Arnt
3cea7de87f - Updated bulgarian and serbian (latin) translations;
- Merged Giuseppe Calà (gcala) code from Oktopi changes.
2014-03-30 17:49:50 +00:00
Alexandre Arnt
820dbdddf4 Merge pull request #21 from gcala/master
Use theme icons when possible
2014-03-30 16:32:20 +00:00
Giuseppe Calà
1b0cb23c93 Revisited icon theme support 2014-03-30 15:28:52 +02:00
Giuseppe Calà
f7fcfcc31f use theme icons when possible 2014-03-29 16:14:56 +01:00
Alexandre Arnt
abbe406cac - Updated INSTALL file;
- Removed unneeded pro.user file;
- Updated some comments.
2014-03-27 22:02:46 -03:00
Alexandre Arnt
a029a5fbb3 - Filelist search now searches directories too;
- Updated hebrew translation.
2014-03-23 08:47:38 -03:00
Alexandre Arnt
e28b984c9a - More bugfixes in filelist code;
- BugFix in showFullPathOfItem code.
2014-03-21 15:51:04 -03:00
Alexandre Arnt
786aa46e04 - More bugfixes in the filelist logic. 2014-03-21 11:35:53 -03:00
Alexandre Arnt
7e7053dea6 - BugFix: Package::getContents() got buggy strings from pkgfile output
compromising filelist of uninstalled packages.
2014-03-20 23:49:47 -03:00
Alexandre Arnt
580a96ca60 - More bugfixes for running as root in KDE. 2014-03-20 23:01:56 -03:00
Alexandre Arnt
56ef8c1604 - Updated polish translation. 2014-03-20 22:07:17 +00:00
Alexandre Arnt
d889d4241b - BugFix: Files tab presented some nasty results sometimes and even a
GPF when it found symlinks to directories;
- Updated octopi main icons (thanks to Anke Boersma).
2014-03-20 21:54:54 +00:00
Arnt
a14acdaf59 Bugfix in define constant 2014-03-20 12:26:05 -03:00
Arnt
db321da222 - BugFix: running as root was broken in KDE;
- BugFix: The preventing code for always refresh the pkg list was
flawed;
- BugFix: hasInternetConnection code fixed to improve mirror-check
speed.
2014-03-20 12:24:32 -03:00
Arnt
eee3de641e - BugFix: running as root was broken in KDE;
- BugFix: The preventing code for always refresh the pkg list was
flawed;
- BugFix: hasInternetConnection code fixed to improve mirror-check
speed.
2014-03-20 11:17:57 -03:00
Arnt
1d81d90e01 - Refactorings here and there to make Octopi more Chakra friendly;
- Updated translations.
2014-03-19 21:21:45 -03:00
Arnt
6eb9f6753f - Updated some icons to unclutter the UI (thanks to Anke Boersma). 2014-03-19 19:03:44 -03:00
Arnt
49c399806e - BugFix in mirror-check code call (sometimes it was not called);
- Refactoring in some code to not generate translatable strings;
- Updated README file;
- Updated some translations;
2014-03-19 17:29:24 -03:00
Alexandre Arnt
5f2e72cd12 Merge branch 'master' of https://github.com/aarnt/octopi 2014-03-03 03:27:48 -03:00
Alexandre Arnt
75dd3fb8e3 - BugFix: getBuildDate was returning invalid dates in some cases. 2014-03-03 03:26:56 -03:00
Alexandre Arnt
812a8e3558 - BugFix: getBuildDate was returning invalid dates in some cases. 2014-03-03 03:22:02 -03:00
Alexandre Arnt
0fb43b9363 - Started 0.4 dev cycle;
- Updated turkish translation.
2014-03-02 21:53:19 -03:00
Alexandre Arnt
c19d9fa182 - Updated Portuguese (Portugal) translation;
- Tagged version number 0.3.2.
2014-02-14 22:58:58 -02:00
Alexandre Arnt
29d4bd7cd8 - Updated czech translation. 2014-02-03 21:05:28 -02:00
Alexandre Arnt
a2f52ba688 - Updated CHANGELOG. 2014-02-02 15:26:44 -02:00
Alexandre Arnt
39bd74c201 - BugFix: Navigating in the package list using [A..Z] keys did not work
as expected.
2014-02-02 15:25:17 -02:00
Alexandre Arnt
acea7c3f07 - BugFix in finish translation (thanks to SamiPerkele). 2014-02-01 09:27:46 -02:00
Alexandre Arnt
4a78bc9acc - BugFix: When the package list is filtered and you click in a package
which is in the outdated package list, you are redirected to a blank
information tab.
2014-01-30 09:23:16 -02:00
Alexandre Arnt
edbfa15f91 - Deleted misplaced header file. 2014-01-29 21:47:18 -02:00
Alexandre Arnt
1fdef5eb0f - Small code refactor;
- BugFix: when mirror checking, disable sysupgrade button.
2014-01-28 23:19:03 -02:00
Alexandre Arnt
cc8aee4fb4 - BugFix: Enable system upgrade button right after a sync db finds new
updates;
- Removed 3 KAOS defines.
2014-01-28 22:36:56 -02:00
Alexandre Arnt
a29934e8c1 - Put the mirror-check button at the far right. 2014-01-27 22:49:31 -02:00
Alexandre Arnt
b780cb234b - Code cleanings;
- Added icon for mirror-check while in KaOS;
- Does a mirror-check at startup while in KaOS.
2014-01-26 20:55:48 -02:00
Alexandre Arnt
7cdee5a619 - Hidden feature: ctrl+shift+D to show the list of packages with no
description.
2014-01-26 18:10:00 -02:00
Alexandre Arnt
515688be68 sysupgrade icon in notifier 2014-01-26 16:57:46 -02:00
Alexandre Arnt
928fafe636 Cleaned unused code;
Added icon for system upgrade;
Added system upgrade button in octopi's toolbar;
BugFix: When the groups button is pressed and the lower pane is
maximized, the former is hidden by the later;
BugFix: When the user had no yaourt in the system, there were a zombie
octopi process 'left running'.
2014-01-26 16:52:51 -02:00
Alexandre Arnt
54212085d9 Cleaned unused code;
Added icon for system upgrade;
Added system upgrade button in octopi's toolbar;
BugFix: When the groups button is pressed and the lower pane is
maximized, the former is hidden by the later;
BugFix: When the user had no yaourt in the system, there were a zombie
octopi process 'left running'.
2014-01-26 16:06:16 -02:00
Alexandre Arnt
ca49540cb2 - A small comment added... 2014-01-14 16:33:56 -02:00
Alexandre Arnt
90e3796c9a - Updated turkish translation;
- Updated CHANGELOG file;
- Bumped version number to 0.3.1.
2014-01-14 13:55:26 -02:00
Alexandre Arnt
02165991fe - Calls doRemovePacmanLockFile before all major transactions. 2014-01-18 11:39:14 -02:00
Alexandre Arnt
378b563dad - Let's deal with packages with "pkg.tar*" pattern. 2014-01-14 22:33:09 -02:00
Alexandre Arnt
11d37767c5 - BugFix: When changing groups too fast the program might crash. 2014-01-14 22:21:11 -02:00
Alexandre Arnt
9af37e9401 - Made octopi notifier faster, striping some code. 2014-01-06 23:46:44 -02:00
Alexandre Arnt
891915ec82 - BugFix in transparent octopi icon;
- BugFix: refresh the GUI while in refreshAppIcon code;
- Switched from pacman -Syy to -Sy in pacmanhelper code.
2014-01-06 22:31:38 -02:00
Alexandre Arnt
ce61acacc1 - Code cleanings. 2014-01-05 23:38:59 -02:00
Alexandre Arnt
a0bfee3f9e - BugFix: In the local package installation, it's better to stick with
the *.pkg.tar* pattern.
2014-01-05 23:25:59 -02:00
Alexandre Arnt
3658709051 - Added new transparent octopi icon (to use when the notifier is
checking for changes...);
- Some code cleanings and little refactorings;
2014-01-05 20:20:04 -02:00
Alexandre Arnt
e0c10b0fe5 - Made octopi-notifier compatible with Qt5. 2014-01-04 00:17:47 -02:00
Alexandre Arnt
798f587c4f - BugFix: Prevent header resizing in File and Transaction tabs;
- Added support for Qt5.
2014-01-03 23:55:57 -02:00
Alexandre Arnt
8ad766b8a6 - BugFix in code typos. 2014-01-02 23:05:02 -02:00
Alexandre Arnt
bcedb72249 Merge branch 'master' of https://github.com/aarnt/octopi
Conflicts:
	src/mainwindow_transaction.cpp
2014-01-02 22:59:19 -02:00
Alexandre Arnt
0238c0234e - After doing an install or remove while in a package group, always
return to all packages.
2014-01-02 22:57:20 -02:00
Alexandre Arnt
1f983e495c - After doing an install or remove while in a package group, always
return to all packages.
2014-01-02 22:19:10 -02:00
Alexandre Arnt
9124d2f1e2 - Added pkgfile support in KaOS too. 2013-12-28 22:45:24 -02:00
Alexandre Arnt
ef70d2aa24 - BugFix: Use new KDE4 tools to deal with files. 2013-12-28 23:23:40 -02:00
MAJO
4ed73e110b - Bugfixes in KaOS support;
- BugFix in install local package code.
2013-12-28 21:42:49 -02:00
Alexandre Arnt
fe479d09fb - Added slovak translation;
- Refactorings in package group methods;
- Some bugfixes in Kaos support.
2013-12-28 20:37:19 -02:00
Philip
b7ea5564cb Bugfix
- fix issue reported here: http://forum.manjaro.org/index.php?topic=9527.0
2013-12-26 17:13:16 +01:00
Alexandre Arnt
2cc5ef39f8 - BugFix in refreshGroupsWidget code. 2013-12-22 16:02:17 -02:00
Alexandre Arnt
e6441f7bf8 - Removed separator before the Group toolbutton. 2013-12-22 15:12:15 -02:00
Alexandre Arnt
c4e0c492f1 - Added new Groups toolbutton. 2013-12-22 13:48:55 -02:00
Alexandre Arnt
c3c5aafac6 - BugFix: We have to refresh package groups after transactions are
finished.
2013-12-22 11:58:44 -02:00
Alexandre Arnt
6524ea60ad - Package groups selection changed to a QTreeWidget. 2013-12-22 00:36:01 -02:00
Alexandre Arnt
628660c086 - Updated turkish translation. 2013-12-16 21:14:37 -02:00
Alexandre Arnt
6ba7859027 - BugFix in notifier: When the user cancel the update, "system update"
option wasn't enabled.
2013-12-15 11:43:02 -02:00
Alexandre Arnt
bc61ca8672 - Updated turkish translation;
- Added ukrainian translation.
2013-11-30 13:55:31 -02:00
Alexandre Arnt
62b8fda959 - Use just filename in transaction dialog while in local package
installation.
2013-11-24 14:49:19 -02:00
Alexandre Arnt
ee65991e8d - Added support to installation of local packages with GUI feedback; 2013-11-24 12:56:36 -02:00
Arnt
0d6cccf8f0 BugFix: When inserting an optional dependency package or removing a
dep, first searches into transaction queue for them.
2013-11-19 22:43:47 -02:00
Arnt
096068ccc3 - Changed minimun window size to 820 X 520 - thanks to Swâmi Petaramesh! 2013-11-17 09:37:25 -02:00
Arnt
708b60e50e - Added support for KaOS, a lean KDE centric Linux distro;
- Added Chinese (Taiwan) and Malay translations.
2013-11-13 23:05:29 -02:00
Alexandre Arnt
afca94762e Copied octopi icon also to another gnome folder. 2013-11-03 03:24:27 -02:00
Alexandre Arnt
b9be74eaf2 - Fixed a typo in CHANGELOG. 2013-11-02 09:35:38 -02:00
Alexandre Arnt
5a3209dcc7 - Updated translations. 2013-11-01 20:57:22 -02:00
Alexandre Arnt
f3f8041166 - Added more checks in getPackageGroups() code. 2013-10-23 02:08:44 -02:00
Alexandre Arnt
80ee334925 - Added hungarian translation (thanks to lajos - Lajos Pasztor);
- Updated some translations.
2013-10-23 02:00:23 -02:00
Alexandre Arnt
9cbc121992 - Added serbian translation (thanks to Milena Petrović). 2013-10-28 23:42:20 -02:00
Alexandre Arnt
eba451cf3a - Added an About Dialog to Octopi Notifier. 2013-10-28 10:08:17 -02:00
Alexandre Arnt
c585108118 - Code cleaning. 2013-10-27 23:01:48 -02:00
Alexandre Arnt
afb59dc6c2 - Bugfix in notifier code logic. 2013-10-27 22:01:05 -02:00
Alexandre Arnt
fcd73beae4 - Removed "dev" string from About Dialog. 2013-10-20 18:51:37 -02:00
Alexandre Arnt
169515a8c4 - Updated translations. 2013-10-20 18:03:23 -02:00
Alexandre Arnt
1fd0097963 - Added swedish translation (thanks to riiga);
- Updated other translations.
2013-10-22 22:28:08 -02:00
Alexandre Arnt
ba51e3f653 - Added portuguese (Portugal) translation;
- Updated translations.
2013-10-20 05:34:51 -02:00
Alexandre Arnt
ed594216cc - Added new method _rebuildPackageList, to fix a bug in
buildPackagesFromGroupList refresh.
2013-10-20 02:33:09 -02:00
Alexandre Arnt
78b16a0743 - Updated fr and nl translations. 2013-10-20 17:46:58 -02:00
Alexandre Arnt
dc91892634 - Updated pt_BR translation. 2013-10-20 15:52:12 -02:00
Alexandre Arnt
357c1212c1 - Added support to remove Pacman's transaction lock file;
- Added new strings to transalate;
- Couple of code cleanings and fixes.
2013-10-20 15:39:36 -02:00
Alexandre Arnt
1113611f2e - Xterm is now an official Octopi dependency. 2013-10-19 22:47:33 -03:00
Alexandre Arnt
31f7121901 - BugFix: Disable pacman and yaourt status bar buttons while in a
transaction.
2013-10-19 22:42:53 -03:00
Alexandre Arnt
c3d09a7095 - Added new english_GB translation (thanks to jonathon -J Fernyhough). 2013-10-19 20:28:05 -03:00
Alexandre Arnt
97b90cb7cc - Updated Uzbek translation. 2013-10-19 17:58:07 -03:00
Alexandre Arnt
9f4e80edd5 - Bug fixes in multiselectiondialog code. 2013-10-19 17:04:54 -03:00
Alexandre Arnt
2974bf900b - BugFixes in graphical remove code. 2013-10-19 14:59:39 -03:00
Alexandre Arnt
80b2a660cd - BugFixes in install and remove into transaction code. 2013-10-19 14:27:25 -03:00
Alexandre Arnt
01d4323f02 - BugFixes in remove and insert into transaction code. 2013-10-19 11:30:31 -03:00
Alexandre Arnt
957f907387 - Now when removing a package with dependencies, Octopi lets users
choose which one they want to remove.
2013-10-19 00:33:33 -03:00
Alexandre Arnt
e727a17ed9 - Bring back the option to do a graphical system upgrade;
- Updated bulgarian translation.
2013-10-17 21:10:04 -03:00
Alexandre Arnt
380b952606 - Bug fix in optional deps selection code. 2013-10-15 00:10:27 -03:00
Alexandre Arnt
8c9b422b69 - Added a checkbutton to the optional deps dialog. 2013-10-14 23:57:54 -03:00
Alexandre Arnt
bcd269b931 - Updated bulgarian and turkish translations;
- Updated MultiSelectionDialog code.
2013-10-14 00:20:36 -03:00
Alexandre Arnt
f4dd17fd4b Added "Optional Deps" to package menu to install the available
optional dependencies of the selected package.
2013-10-13 23:08:39 -03:00
Alexandre Arnt
c72810d69a - Using "Manjaro" style in all desktops. 2013-10-12 23:00:27 -03:00
Alexandre Arnt
983a5d36a1 - Updated finish translation;
- BugFix: Use "yaourt -S aur/pkgname" to install yaourt packages (thanks
to ringo32).
2013-10-12 22:44:30 -03:00
Alexandre Arnt
72036d1f43 - Updated arabic and indonesian translations 2013-10-05 14:47:10 -03:00
Alexandre Arnt
4b58718da0 - Added support for pkgfile to view uninstalled package file list while
in ArchLinux/ArchBang (thanks to Damián Nohales);
- Updated some translations and files.
2013-10-03 21:55:08 -03:00
Alexandre Arnt
01a0cf6686 Merge pull request #7 from eagleoneraptor/pkgfile
Add pkgfile support for listing noninstalled packages content
2013-10-03 16:44:47 -07:00
Damián Nohales
183681a4d1 Add pkgfile support for listing noninstalled packages content 2013-09-30 16:10:16 -03:00
Alexandre Arnt
d64446fe7d - Code cleanings in mainwindow.cpp code. 2013-09-28 09:54:09 -03:00
Alexandre Arnt
c9d34d5736 - BugFix: do not let outputOutdatedYaourtPackageList go on if we are
executing a transaction;
- Added xterm as optional dependency for octopi.
2013-09-27 22:46:45 -03:00
Alexandre Arnt
69ef11cae2 Merge branch 'master' of https://github.com/aarnt/octopi 2013-09-27 21:59:52 -03:00
Alexandre Arnt
ad5c395e30 - Changed some waitForFinished(-1) to the default 30 seconds version. 2013-09-27 21:59:19 -03:00
Alexandre Arnt
840bafb136 - Updated el and nb translations;
- Updated CHANGELOG file.
2013-09-20 01:11:34 -03:00
Philip
1613eca16b fix icon in octopi.desktop 2013-09-22 10:10:01 +02:00
Alexandre Arnt
4587132a3e Revert "- BugFix in notifier code."
This reverts commit 583a69195b.
2013-09-19 23:09:50 -03:00
Alexandre Arnt
583a69195b - BugFix in notifier code. 2013-09-19 22:58:58 -03:00
Alexandre Arnt
013669d2dc - Test action before setting it. 2013-09-18 23:56:03 -03:00
Alexandre Arnt
64e9346c8f - Now "Get Latest Distro News" doesn't freeze the interface;
- Refactorings in some methods.
2013-09-18 23:17:16 -03:00
Alexandre Arnt
be91726560 - Changed octopi main icon to octopi-green.png in PKGBUILD and
octopi.desktop;
- Added menu "Octopi" and "System Upgrade" in octopi-notifier;
- Bumped version number to 0.3.
2013-09-17 21:47:28 -03:00
Alexandre Arnt
a021e2d7fb - Now octopi-notifier opens only the transaction dialog if Octopi is not
running and user requests a system upgrade.
2013-09-16 23:23:09 -03:00
Alexandre Arnt
dcb42e6c42 - Added new octopi icons to the PKGBUILD;
- When there are pacman updates, start "notify-send" with red octopi
icon.
2013-09-16 21:11:15 -03:00
Alexandre Arnt
0139692edb - Added number of outdated packages text beside the proper icon at
statusbar.
2013-09-15 22:06:34 -03:00
Alexandre Arnt
8671c8f504 - BugFix: minor bugfixes in statusbar notification buttons. 2013-09-01 12:13:39 -03:00
Alexandre Arnt
36d5a5b3db - Updated translations;
- Show Yaourt packages as outdated in default package list;
- Now it's possible to upgrade Yaourt packages even outside Yaourt
group;
- Now the yellow octopi icon means there are outdated yaourt packages;
- Added a new notification for outdated packages on statusbar.
2013-09-15 15:08:10 -03:00
Alexandre Arnt
20a81da5cd - Show Yaourt packages as outdated in default package list;
- Updated CHANGELOG.
2013-09-12 23:22:01 -03:00
Manjaro Linux
7eb6773fbd Merge pull request #5 from anselmolsm/tooltip
Import patch by Anesl Molsm - Notifier: clear tooltip if no update is available
2013-09-11 22:20:26 -07:00
Anselmo L. S. Melo
209799ea95 Notifier: clear tooltip if no update is available 2013-09-11 23:14:21 -03:00
Alexandre Arnt
5a0fc235a0 - Now it's possible to upgrade Yaourt packages even outside Yaourt
group.
2013-09-11 22:41:58 -03:00
Alexandre Arnt
654cd5f7dc Updated CHANGELOG file. 2013-09-10 23:22:46 -03:00
Alexandre Arnt
67f8a689af - BugFix: Octopi was acting as in Openbox while in RazorQt Desktop. 2013-09-10 22:58:10 -03:00
Alexandre Arnt
a365bcf978 - BugFix: Use -Ss option while searching for yaourt packages;
- BugFix: Don't show package names in yaourt package descriptions.
2013-09-09 22:08:59 -03:00
Alexandre Arnt
9efe5e82e7 - Updated CHANGELOG file. 2013-09-08 00:02:36 -03:00
Alexandre Arnt
d1cb7bb7aa - BugFix: No need to refresh package list after a cache clean;
- Code cleanings in StrConstants class.
2013-09-08 00:00:26 -03:00
Alexandre Arnt
7884078f87 - Code cleaning. 2013-09-02 05:50:20 -03:00
Alexandre Arnt
4c78b0d33a - BugFix: Position of search icon in searchedit sometimes was
wrong;
- BugFix: Some actions did not get disabled while executing a
transaction;
- Updated ca, da, he and ro translations;
- Updated CHANGELOG file.
2013-09-02 05:47:16 -03:00
Alexandre Arnt
df2eb70601 Updated sr@latin translation. 2013-09-01 16:00:29 -03:00
Alexandre Arnt
e597daf289 Updated fi and de translations. 2013-09-01 15:04:29 -03:00
Alexandre Arnt
a574c1bf74 - Updated es_ES, fr_FR, it and vi translations;
- Updated CHANGELOG file.
2013-09-01 10:02:18 -03:00
Alexandre Arnt
9105033cad - Bugfixes in notifier systray menu while in system upgrade mode. 2013-08-24 12:51:37 -03:00
Alexandre Arnt
b78fe80e6f - Added new source string;
- Updated pt_BR translation.
2013-08-16 08:03:47 -03:00
Alexandre Arnt
9c8ecdd814 - Updated greek translation;
- Updated CHANGELOG file.
2013-08-16 04:27:07 -03:00
Alexandre Arnt
477e3a0a30 - BugFix: Outdated/Newer package code test. 2013-08-16 03:24:03 -03:00
Alexandre Arnt
6750b2880f - Updated he, vi and fr_FR translations;
- Updated CHANGELOG file.
2013-08-16 02:38:54 -03:00
Alexandre Arnt
0f17151cd1 Merge branch 'master' of https://github.com/aarnt/octopi 2013-08-29 23:07:05 -03:00
Alexandre Arnt
074915b8cb - Updated pt_BR translation;
- Updated runCommandInTerminalAsNormalUser logic for KDE.
2013-08-29 23:06:56 -03:00
Alexandre Arnt
b43a39084c - Updated pt_BR translation;
- Updated runCommandInTerminalAsNormalUser logic for KDE.
2013-08-29 23:04:46 -03:00
Alexandre Arnt
33d50107ac - Added "Required By" and "Optional For" in Info tab. 2013-08-29 22:43:03 -03:00
Alexandre Arnt
56146fa77c - Added icon and logic for newer than repository installed packages;
- Added new source string;
- Updated CHANGELOG;
- Updated pt_BR translation.
2013-08-29 21:54:16 -03:00
Alexandre Arnt
2b8287fa3e - BugFix: konsole was not working with yaourt, changed to xterm;
- Refactorings in style code.
2013-08-28 22:43:58 -03:00
Alexandre Arnt
17f390ed9c - Code cleanings;
- Added spanish (Latin America), thanks to CostGranda (Cost Granda);
- Updated CHANGELOG, PKGBUILD and TRANSLATIONS files.
2013-08-27 22:20:15 -03:00
Alexandre Arnt
2cda92a291 Merge branch 'master' of https://github.com/aarnt/octopi 2013-08-24 14:44:01 -03:00
Alexandre Arnt
2db3fbab65 - Updated CHANGELOG file;
- BugFix: Open root terminal was not testing for gksu/kdesu.
2013-08-24 14:43:26 -03:00
Alexandre Arnt
bb36311dee - Updated CHANGELOG file. 2013-08-24 01:24:08 -03:00
Alexandre Arnt
ec34f2e310 - BugFix: Open root terminal with xterm, code;
- BugFix: Unicode errors on empty pkg descriptions.
2013-08-24 01:04:02 -03:00
Alexandre Arnt
63560a25d4 - Updated CHANGELOG file. 2013-08-23 23:32:05 -03:00
Alexandre Arnt
c36dbd80a4 - Added support for Xterm terminal. 2013-08-23 23:31:05 -03:00
Alexandre Arnt
2083e0ef92 Merge branch 'master' of https://github.com/aarnt/octopi 2013-08-16 02:15:53 -03:00
Alexandre Arnt
a7c2dc19e7 - Code cleanup;
- Updated CHANGELOG file.
2013-08-16 02:15:36 -03:00
Alexandre Arnt
0a46f47d53 - Code cleanup. 2013-08-16 02:03:00 -03:00
Alexandre Arnt
8b81a019b2 - Updated CHANGELOG and TRANSLATIONS files;
- Added Vietnamese translation, thanks to ppanhh (Anh Phan);
- BugFix: Now Octopi honors "ignorePkg" option (from /etc/pacman.conf).
2013-08-16 01:59:50 -03:00
Alexandre Arnt
f96c77b4dd - Updated CHANGELOG file. 2013-08-22 21:57:23 -03:00
Alexandre Arnt
fceed3f9e6 - BugFix: english translation source string;
- Updated ALL translations;
- Added finnish translation;
- Updated TRANSLATIONS file;
- Updated THANKS file;
- Commemted some printouts.
2013-08-21 22:33:29 -03:00
Alexandre Arnt
d12cc4c83e - Another try... 2013-08-21 19:57:07 -03:00
Alexandre Arnt
d846f0cb25 Another test for Yaourt mode. 2013-08-21 19:12:36 -03:00
Alexandre Arnt
f0291a164c - Another try to fix Yaourt mode. 2013-08-20 23:35:55 -03:00
Alexandre Arnt
78e5eb7d1d - Another try to fix the Yaourt mode.
- Updated THANKS file.
2013-08-20 23:16:05 -03:00
Alexandre Arnt
b7d31f060d - A test... 2013-08-20 19:55:18 -03:00
Alexandre Arnt
26a69191a0 Merge branch 'master' of https://github.com/aarnt/octopi 2013-08-20 19:08:16 -03:00
Alexandre Arnt
c67efd002c - BugFix: Start timer only when process has started
(processwrapper.cpp).
2013-08-20 19:07:40 -03:00
Alexandre Arnt
58251a3bd5 - BugFix: Running Yaourt as root user was not good;
- Refactorings needed for the bugfix above.
2013-08-19 21:53:48 -03:00
Alexandre Arnt
6d063e6f7f - Refactorings and bugfixes in Yaourt code. 2013-08-18 22:01:58 -03:00
Alexandre Arnt
3aaf4a9970 - BugFix in Cinnamon support (thanks to dsngjoe);
- Updated THANKS file.
2013-08-18 16:49:19 -03:00
Alexandre Arnt
fedf3b3209 - Added another contributor :-) 2013-08-18 12:28:06 -03:00
Alexandre Arnt
b0753af034 - Updated a bunch of related files. 2013-08-18 02:10:49 -03:00
Alexandre Arnt
ab4a5e13fa - Added support for multiple selection while in Yaourt mode;
- Couple of code refactorings.
2013-08-18 02:01:02 -03:00
Alexandre Arnt
f43d31877f - Code cleaning. 2013-08-17 11:54:25 -03:00
Alexandre Arnt
cf061f2622 - Added Uzbek translation - thanks to ualmasov (Umidjon Almasov) 2013-08-17 00:06:01 -03:00
Alexandre Arnt
cd6e031a34 - Updated CHANGELOG file. 2013-08-16 21:22:17 -03:00
Alexandre Arnt
542a206d01 - BugFix: We have to disable/enable the install local package function
when Octopi is executing a transaction.
2013-08-16 21:07:43 -03:00
Alexandre Arnt
f97448429e - Added russian translation (thanks to macbet and ualmasov);
- Optimized some testing code;
- Updated TRANSLATIONS file.
2013-08-15 23:39:28 -03:00
Alexandre Arnt
95077c712b - Octopi tooltip is no longer used in notifier;
- Doesn't call refreshDistroNews when in sysUpgrade.
2013-08-15 22:20:05 -03:00
Alexandre Arnt
7aa6104e14 - Added processwrapper.cpp to notifier's project;
- Updated CHANGELOG file.
2013-08-14 23:04:40 -03:00
Alexandre Arnt
60902de817 - Modified the link colors when not in Manjaro;
- Removed unused help_en_US.html file.
2013-08-14 22:13:25 -03:00
Alexandre Arnt
1c851e1817 - Code cleanings. 2013-08-14 21:35:28 -03:00
Alexandre Arnt
161d1cb6c9 - BugFix: When in yaourt mode, never show outdated files at statusbar;
- BugFix: english source language had a bug string;
- Updated all translations to fix the source bug;
- Reverted the hiden icon in octopi-notifier;
- Added comments to wmhelper.cpp.
2013-08-13 22:30:04 -03:00
Alexandre Arnt
3b90e3e6a2 - BugFix: When not in Manjaro and KDE, let's put a cleanlooks style in
octopi notifier;
- Hide notifier when there's no more updates available.
2013-08-11 05:55:49 -03:00
Alexandre Arnt
86497ea2c8 - Updated Dutch translation. 2013-08-11 03:55:49 -03:00
Alexandre Arnt
2b8ed46a59 - BugFix: Locale bug in UnixCommand code (thanks to Philip Mueller's
patch);
- Added dutch translation (thanks to Jasper van der Marel).
2013-08-11 03:02:28 -03:00
Alexandre Arnt
4aef1245c9 - Updated polish translation;
- BugFix: When there are issues with pacman upgrade we show them in
Output tab.
2013-08-10 13:59:44 -03:00
Alexandre Arnt
e37cb11343 - BugFix: In doInstallYaourtPackage(), when the user selected to show
only installed packages, Octopi did not honor user selection.
2013-08-10 00:25:06 -03:00
Alexandre Arnt
26047e92a5 - Updated CHANGELOG file. 2013-08-09 19:55:35 -03:00
Alexandre Arnt
22586db454 - BugFix: In notifier, call sysupgrade only when Octopi's icon is red
and angry :-)
2013-08-09 19:40:34 -03:00
Alexandre Arnt
3e224391fe - Updated resources.qrc file. 2013-08-09 18:08:54 -03:00
Alexandre Arnt
beb6f9a114 - Updated some translations;
- Added Servian latin translation (thanks to GameBoyT)
- Updated TRANSLATIONS file.
2013-08-09 18:08:05 -03:00
Alexandre Arnt
2a84d8d728 BugFix: system upgrade was not being called by the notifier in Manjaro;
Updated system upgrade code, including a new qt singleapp message;
Updated italian translation.
2013-08-04 00:38:00 -03:00
Alexandre Arnt
bed9898498 - BugFix in retrieveDistroNews code. 2013-08-03 20:01:04 -03:00
Alexandre Arnt
4aa9a89ed5 Merge branch 'master' of https://github.com/aarnt/octopi 2013-08-03 18:41:26 -03:00
Alexandre Arnt
181257ab9e - Updated catalan and turkish translations;
- Small bugfixes in QProcess preparation code;
- Code cleaning in wmhelper.cpp.
- BugFix: code to search for yaourt.
2013-08-03 18:40:30 -03:00
Alexandre Arnt
680432877d - Updated catalan and turkish translations;
- Small bugfixes in QProcess preparation code;
- Code cleaning in wmhelper.cpp.
2013-08-03 11:49:23 -03:00
Alexandre Arnt
4080d95306 - BugFix: external terminals did not use translations;
- Added Cinnamon DM support;
- Modified PKGBUILD (thanks to Philip Mueller) to split octopi and
notifier;
- Updated lots of translations.
2013-08-01 23:22:41 -03:00
Alexandre Arnt
d92a78c563 - Added "install local package option";
- Updated english and brazilian translations.
2013-07-29 21:20:20 -03:00
Alexandre Arnt
64618001f4 - BugFix: progress bar of the package list building didn't show 100%;
- Octopi now installs local packages with pacman -U command.
2013-07-28 22:53:51 -03:00
Alexandre Arnt
e8089a9f7d - BugFix in octopi-notifier where it called notify-send several times;
- Added norwegian bokmål translation (thanks to viking60).
2013-07-26 22:25:30 -03:00
Alexandre Arnt
6821d6dca4 - BugFix: Important fix in GTKStyle code. 2013-07-25 22:54:12 -03:00
Alexandre Arnt
f266b18285 - Some small refactorings. 2013-07-25 22:25:19 -03:00
Alexandre Arnt
b1e966b6b6 - BugFix in notify-send code. 2013-07-23 20:39:46 -03:00
Alexandre Arnt
e3d8e6fe3f - Updated notify-send code. 2013-07-24 22:23:11 -03:00
Alexandre Arnt
4fa2a65db2 - Updated CHANGELOG file. 2013-07-24 21:49:48 -03:00
Alexandre Arnt
582a4ab7e4 - BugFix: refresh package list after a syncdb if the notifier is
running;
- Updated arabian translation.
2013-07-24 21:46:56 -03:00
Alexandre Arnt
f0c17ae27a - Added octopi_lt.ts file. 2013-07-23 19:47:16 -03:00
Alexandre Arnt
db74213976 - Updated CHANGELOG and TRANSLATIONS files. 2013-07-23 19:46:04 -03:00
Alexandre Arnt
f55cca4827 - Added Lithuanian translation. 2013-07-23 19:44:21 -03:00
Alexandre Arnt
0b53e96a71 BugFix: A missing test when using GTK style. 2013-07-23 19:32:18 -03:00
Alexandre Arnt
f477ba4cf8 Merge branch 'master' of https://github.com/aarnt/octopi 2013-07-22 23:12:23 -03:00
Alexandre Arnt
a24a187fe0 - Updated CHANGELOG file. 2013-07-23 00:23:21 -03:00
Alexandre Arnt
3da1929c70 - Changed octopi-notifier timer to 1 hour.
- BugFix in octopi-notifier's notify-send code.
2013-07-23 00:09:43 -03:00
Alexandre Arnt
f5e154d24a - BugFix: When running in Manjaro and not in KDE, Octopi uses GtkStyle. 2013-07-22 23:11:49 -03:00
Alexandre Arnt
54bde33675 - Added "notify-send" support to octopi-notifier. 2013-07-22 22:58:06 -03:00
Alexandre Arnt
a771c37ca6 - BugFix in gtk style code. 2013-07-22 22:09:59 -03:00
Alexandre Arnt
60c3b5fecb - Bugfix in xfce theme. 2013-07-21 22:49:37 -03:00
Alexandre Arnt
6d32f8ed06 - BUGFIX: setAlternatingRowColors(true) only if running in Manjaro and
not in KDE.
2013-07-21 22:35:40 -03:00
Alexandre Arnt
40c53d073b - Update: When the user closes notifier and Octopi was running, tries to
close it too;
- Removed styles from Manjaro theme, so it is almost GTK native.
2013-07-21 22:31:17 -03:00
Alexandre Arnt
31324ba240 - Updated TRANSLATIONS file. 2013-07-21 20:43:43 -03:00
Alexandre Arnt
c27e34da2c - Added hebrew translation (thanks to GenghisKhan) 2013-07-21 20:42:26 -03:00
Alexandre Arnt
75a2aba102 Merge branch 'master' of https://github.com/aarnt/octopi 2013-07-21 20:31:16 -03:00
Alexandre Arnt
cdcf75f60f - Now the notifier hides/shows octopi when clicked;
- Reworked logic of qtsingleapplication code;
- Some refactorings in some methods.
2013-07-21 20:30:15 -03:00
Alexandre Arnt
8f0146812b BugFix: call a QApplication::restoreOverrideCursor() before a
systemUpgrade inside buildPackageList code.
2013-07-20 23:49:57 -03:00
Alexandre Arnt
e3e709f69b - Updated PKGBUILD (thanks to Philm from Manjaro);
- BugFix in transaction code when Octopi starts straight in sysupgrade
mode.
2013-07-20 00:27:53 -03:00
Alexandre Arnt
0db39e04dc - Added a desktop file to the octopi-notifier util. 2013-07-20 00:02:49 -03:00
Alexandre Arnt
eb77f8cbdd - BugFix in sysupgrade code. 2013-07-20 22:31:30 -03:00
Alexandre Arnt
a471490e6e - Created octopi-notifier project;
- Lots of refactorings to cope with this;
- Bumped version number to 0.2.
2013-07-20 22:10:06 -03:00
Alexandre Arnt
99e04027a6 - Bugfix in style guessing code. 2013-07-19 23:44:02 -03:00
Alexandre Arnt
52b6ab1aac - Bugfixes in style guessing code. 2013-07-20 14:08:21 -03:00
Alexandre Arnt
f623438072 - Updated CHANGELOG. 2013-07-20 14:03:08 -03:00
Alexandre Arnt
57e906c403 - Bugfixes in style guessing code. 2013-07-20 13:59:06 -03:00
Alexandre Arnt
3e46942841 - Octopi now defaults to gtk style while in Manjaro, plastique in KDE
and CleanLooks elsewhere;
- Bugfixes in searchlineedit.cpp code.
2013-07-20 12:21:54 -03:00
Alexandre Arnt
ee5d7640d2 - Updated transaction code to remove a message. 2013-07-14 22:37:13 -03:00
Alexandre Arnt
d8d367986e - Added copyright header in globals.* files. 2013-07-14 16:55:05 -03:00
Alexandre Arnt
343c80486e - Created a parameter in buildPackageList method, indicating whether to
run it non-blocking (default) or not.
2013-07-14 15:54:57 -03:00
Alexandre Arnt
a8a486eb58 BugFix: when user cancelled a sysupgrade transaction inside a terminal,
the package actions remained disabled;
Updated CHANGELOG.
2013-07-14 14:53:02 -03:00
Alexandre Arnt
1cb131bff3 - Updated CHANGELOG and PKGBUILD files;
- Bumped version number to 0.1.9.1.
2013-07-14 12:10:58 -03:00
Alexandre Arnt
b0b2a5f1f8 - Missed files in the last commit... 2013-07-14 11:47:58 -03:00
Alexandre Arnt
bee7d84536 - Changed important logic in transaction, concerning multithreaded code.
- Added globals.cpp/.h files to group global future watchers.
- A couple of refactorings.
2013-07-14 11:47:19 -03:00
Alexandre Arnt
cb34e6dfef - Improved yaourt support.
- Bugfixes and refactorings.
2013-07-09 21:44:25 -03:00
Alexandre Arnt
de00f0739d - Lots of bugfixes related with yaourt support. 2013-07-07 22:00:41 -03:00
Alexandre Arnt
d9385ef82e - BugFix: After a yaourt transaction the package list was not being
refreshed.
2013-07-07 11:39:20 -03:00
Alexandre Arnt
692bc3eb3c - BugFix:: there was a nasty bug in getAvailablePackage code! 2013-07-07 11:05:29 -03:00
Alexandre Arnt
1393e4dcef - BugFix: ProgressBar code refactorings. 2013-07-07 00:10:26 -03:00
Alexandre Arnt
a3020a5136 - Bugfixes in package list refresh code. 2013-07-06 23:16:14 -03:00
Alexandre Arnt
baaf637a41 - Lots of refactorings to make package build code less blocking. 2013-07-06 22:41:24 -03:00
Alexandre Arnt
07c3339975 - Implemented a method to delete QStandardItem models;
- Refactorings in package list refreshing code.
2013-07-05 22:30:13 -03:00
Alexandre Arnt
29e9970d68 - Refactoring in _cloneModelPackages method. 2013-07-05 21:32:54 -03:00
Alexandre Arnt
abee17325d - Changed comment... 2013-07-05 20:47:14 -03:00
Alexandre Arnt
5cfb2f2a43 - Removes Yes button from the System Upgrade transaction dialog. 2013-07-05 19:21:35 -03:00
Alexandre Arnt
56471fb574 - Updated CHANGELOG and PKGBUILD files. 2013-07-05 18:53:45 -03:00
Alexandre Arnt
f259758f42 - BugFix: only insert Yaourt group if the user has the utility
installed.
2013-07-05 18:50:33 -03:00
Alexandre Arnt
c0e3ac8c60 - Added ctrl+shift+Y shortcut to go to the yaourt mode;
- Cleanup some unused code;
- Bugfix when returning from a yaourt transaction;
- Bugfix when yaourt searches return 0 entries.
2013-07-04 23:00:58 -03:00
Alexandre Arnt
6ddb4c98d6 - Updated catalan, danish and polish translations;
- Bunch of refactorings and code cleaning;
- Added support for yaourt;
- Bumped version number to 0.1.9.
2013-07-04 22:14:49 -03:00
Alexandre Arnt
fb67cd2b86 - Conflict issues in git. 2013-06-28 22:13:42 -03:00
Alexandre Arnt
04251cd9f9 - BugFix: We dont notify-sync while in a transaction! 2013-06-28 22:05:50 -03:00
Alexandre Arnt
d5ae2e0617 - Updated PKGBUILD and pacmanhelper service file to install binary at
/usr/lib.
2013-06-16 13:40:53 -03:00
Alexandre Arnt
f6fecd4df2 - Updated bulgarian translation. 2013-06-16 06:19:09 -03:00
Alexandre Arnt
38c12ec313 - Updated the way Octopi launches the PacmanHelper timer. 2013-06-16 02:03:30 -03:00
Alexandre Arnt
26813c7178 - Bugfix in buildPackageList code.
- Updated german and greek translations.
2013-06-15 19:16:08 -03:00
Alexandre Arnt
0ff2a6d5d0 - Changed notifier code to run "pacman -Syy". 2013-06-15 12:06:06 -03:00
Alexandre Arnt
401f0a5a42 - Changed notifier interval to 1 hour. 2013-06-15 11:55:26 -03:00
Alexandre Arnt
4334283cc6 - Let us count Octopi in the m_numberOfInstalledPackages... 2013-06-15 11:25:11 -03:00
Alexandre Arnt
1947269b11 - Updated romanian translation. 2013-06-15 09:46:35 -03:00
Alexandre Arnt
6be391371d - Updated CHANGELOG file. 2013-06-15 06:47:06 -03:00
Alexandre Arnt
b69baae4b8 - Added Czech translation (thanks to fri)! 2013-06-15 06:31:37 -03:00
Alexandre Arnt
47c0e647cc - Updated CHANGELOG file. 2013-06-15 05:57:22 -03:00
Alexandre Arnt
aa09b47c3a - Improved support for ArchBang Linux. 2013-06-15 05:43:05 -03:00
Alexandre Arnt
5f69d430a3 - Added a README file with instructions on how to
create PacmanHelper's QDbusAdaptor.
2013-06-15 02:07:20 -03:00
Alexandre Arnt
d87a0e2ce3 - Added support to ArchBang Linux. 2013-06-14 18:46:21 -03:00
Alexandre Arnt
4761671cac - When there are updated distro news and the mainwindow is hidden, let
it be shown!
2013-06-09 23:45:10 -03:00
Alexandre Arnt
e23fd407e7 - Cut package description tooltips with size greater than 120 chars. 2013-06-09 19:33:02 -03:00
Alexandre Arnt
891d94a66a - Updated INSTALL instructions. 2013-06-09 18:40:32 -03:00
Alexandre Arnt
371216bbe6 - Subtracts octopi from the package and outdated lists ;-) 2013-06-09 15:35:33 -03:00
Alexandre Arnt
66aa26788a - Updated some translations;
- BugFix in refreshSystemTrayIcon code.
2013-06-09 13:47:55 -03:00
Alexandre Arnt
0ebcb5ac2c - Updated french and turkish translations. 2013-06-06 21:39:40 -03:00
Alexandre Arnt
13f7240b01 - Updated CHANGELOG. 2013-06-05 23:22:42 -03:00
Alexandre Arnt
160f6b184e - Bugfix in refreshSystemTrayIcon code. 2013-06-05 23:14:19 -03:00
Alexandre Arnt
f724249202 - Updated translations (pt_BR and tr_TR). 2013-06-05 21:57:23 -03:00
Alexandre Arnt
078e555de3 - Adjusted PKGBUILD file;
- Added refreshDistroNews() to afterPacmanHelperSyncDatabase code.
2013-06-04 23:13:08 -03:00
Alexandre Arnt
eeba5e4a07 - Added notifier support! 2013-06-03 23:38:46 -03:00
Alexandre Arnt
1c2785c056 - Code cleaning. 2013-05-29 20:47:05 -03:00
Alexandre Arnt
d6136e6310 - Updated CHANGELOG. 2013-05-26 21:37:58 -03:00
Alexandre Arnt
4d564e6f23 - Added TRANSLATIONS file. 2013-05-26 20:11:26 -03:00
Alexandre Arnt
0837423de9 - Updated PKGBUILD file. 2013-05-25 23:41:27 -03:00
Alexandre Arnt
4fd661d042 - Updated danish translation (thanks to Snubbi). 2013-05-24 23:01:41 -03:00
Alexandre Arnt
1f65bda6d9 - Added danish translation. 2013-05-22 22:29:25 -03:00
Alexandre Arnt
544d2b8b48 - Added indonesian translation (thanks to Se7enTime);
- Added some missed ".ts" files;
- Updated CHANGELOG.
2013-05-23 20:57:34 -03:00
Alexandre Arnt
e4b53c6601 - Updated CHANGELOG. 2013-05-19 23:24:01 -03:00
Alexandre Arnt
4e49d5ee14 - Updated arabian translation;
- Added polish translation (thanks to kajtek!).
2013-05-19 23:20:37 -03:00
Alexandre Arnt
8dcaeba4f6 - Updated CHANGELOG;
- If it's a sysupgrade after a syncdatabase, do a package list refresh
before the sysupgrade.
2013-05-20 22:10:05 -03:00
Alexandre Arnt
7840590d2b - The command line option "-systemupgrade" now does a sync database too;
- If a system upgrade uses -SyncFirst, the second part of the upgrade
starts automatically.
2013-05-19 22:55:03 -03:00
Alexandre Arnt
d2b0cf37af - Bugfix in spanish translation (thx to tufadorin);
- Added rss icon.
2013-05-19 19:49:18 -03:00
Alexandre Arnt
cabe51b673 - Updated resources.qrc file.
- Bumped version number to 0.1.7.3.
2013-05-18 11:30:23 -03:00
Alexandre Arnt
2a3e5e5d2c - Added bulgarian translation (thanks to loot270). 2013-05-18 11:29:10 -03:00
Alexandre Arnt
3affb5e1e5 - BugFix in PKGBUILD file. 2013-05-17 19:37:52 -03:00
Alexandre Arnt
8cfc12b3c0 - Bugfix in spanish translation (thanks to tufadorin). 2013-05-17 15:19:51 -03:00
Alexandre Arnt
1ef438214e - Added arabian and catalan to the project file. 2013-05-12 21:05:52 -03:00
Alexandre Arnt
8832f929dd - Only present "edit File" if Octopi is not running with root priv. 2013-05-12 12:03:58 -03:00
Alexandre Arnt
a436f10782 - Updated PKGBUILD file. 2013-05-12 10:38:29 -03:00
Alexandre Arnt
eb7ec6aacf Updated CHANGELOG. 2013-05-12 10:23:58 -03:00
Alexandre Arnt
bf0af8658b - Added AR and CA source files. 2013-05-12 10:16:15 -03:00
Alexandre Arnt
e4dd711bc4 - Bugfix: updated all ".qrm" translation files;
- Added Arabian and Catalan translations;
- Fixes "xfce icons in menus bug";
- Bumped version number to 0.1.7.2
2013-05-12 10:10:26 -03:00
Alexandre Arnt
0c01347964 - Bugfix: menu icons were not being shown while in Xfce. 2013-05-11 23:05:11 -03:00
Alexandre Arnt
747b4024f0 - Added PKGBUILD file;
- Updated translations.
2013-05-11 12:29:57 -03:00
Alexandre Arnt
ada5312e5e - Changes in desktop file;
- Added option to execute Octopi with kdesu while in KDE.
2013-05-07 00:09:45 -03:00
Alexandre Arnt
b5a07ddad0 - Updated CHANGELOG file;
- Bumped version to 0.1.7.
2013-05-05 11:54:42 -03:00
Alexandre Arnt
83902fc977 - Updated italian translation. 2013-05-05 10:20:29 -03:00
Alexandre Arnt
99d7bdeb15 - Fix about dialog. 2013-05-04 23:38:27 -03:00
Alexandre Arnt
4897d42e4a - Updated French translation. 2013-05-04 16:15:27 -03:00
Alexandre Arnt
8dc42c3d36 - Updated Greek translation. 2013-05-04 13:06:38 -03:00
Alexandre Arnt
a4b20a3b5d - Updated Turkish translation. 2013-05-04 12:37:35 -03:00
Alexandre Arnt
0a3637e806 - Added Help/about dialog;
- Changed previous Help/about to Help/usage;
- Updated pt_BR translation.
2013-05-04 11:08:41 -03:00
Alexandre Arnt
7cdf4938fb - Bug fix in repo string;
- Always enable "system upgrade" option.
2013-05-03 22:10:30 -03:00
Alexandre Arnt
9f684e3198 - Updated translations. 2013-04-29 21:19:41 -03:00
Alexandre Arnt
13545cfd3a - Updated translations.
- Bugfix in refreshStatusBar code.
2013-04-28 22:05:11 -03:00
Alexandre Arnt
6dc29b1ab0 - Fixed "goto outdated pkg" code. 2013-04-28 19:29:03 -03:00
Alexandre Arnt
4ba02efdb3 - Added option to click on outdated package names, so it goes to Info
tab.
2013-04-28 11:45:24 -03:00
Alexandre Arnt
7d523af813 - Updated pt_BR translation. 2013-04-27 22:36:57 -03:00
Alexandre Arnt
09fb50d444 - Added "-removecmd" command line otpion;
- Updated command line "-help" option.
2013-04-27 22:27:08 -03:00
Alexandre Arnt
b934dcd9ac - Added greek (el) translation. 2013-04-27 19:59:33 -03:00
Alexandre Arnt
e39b9b853f - Updated CHANGELOG;
- Bumped version to 0.1.6.2.
2013-04-27 15:59:06 -03:00
Alexandre Arnt
54b5529670 - Added "-sysupgrade" option to call the system upgrade transaction
dialog as soom as Octopi starts;
- Added frech translation.
2013-04-27 14:46:39 -03:00
196 changed files with 53051 additions and 3011 deletions

228
CHANGELOG
View File

@@ -1,3 +1,231 @@
0.4.2
BugFix: when searching AUR pkgs, given search string was not being matched by package
descriptions.
BugFix: Sometimes got a gconf bug string at sync db.
Updated a bunch of translations.
Added support for the new kcp tool (Go version).
0.4.1
Added basque translation (thanks to tarteka).
Added es_AR translation (thanks to javier).
Added japanese translation (thanks to UTUMI Hirosi - utuhiro78).
Some coding refactorings regarding Yaourt/AUR as well as utils namespace.
BugFix: Tools menu was not being refreshed after a package
removal/installation.
BugFix: Ctrl and Shift key pkg actions not behaving right in Qt5
builds.
BugFix: When clicking a pkg on the outdated list, it could scroll
to a wrong pkg info.
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: 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
being emptied.
Now downgrading operations appears in orange in Output tab.
Small fixes in packagemodel/package code (thanks to tbinkau).
Ctrl+C over an item in Files tab copies it's full path to Clipboard.
Reworked code to count installed packages (based on filters).
Leave some actions disabled before building pkg list and mirror-checking.
Added 'installed size' information in package tooltips.
Added Search by file feature (pacman -Qo).
Added a string validator in the search edit widget.
0.4.0
Huge refactorings in model/view that brings consistent memory and
speed improvements - a single model and a central data storage (thanks to
Thomas Binkau - tbinkau).
BugFix: The transparent octopi notifier icon no longer shows a white bar in the
eyes (thanks to Ankde Boersma) .
BugFix: Fixed a jump bug when key-navigating in pkg list with Qt5 octopi.
BugFix: When a pkg is outdated, show all available information.
BugFix: Show warning if user do not have kdesu/gksu in sysupgrade/install local pkgs.
BugFix: System upgrade can not be available while in yaourt mode.
BugFix: Switching faster to yaourt mode if text field is empty.
BugFix: Ctrl+A is available in the package list panel.
BugFix: Now Shift+F3 and F3 search keys (and also Esc) work outside
SearchLineEdit widget.
BugFix: fixed freeze for install orphaned/yaourt package (thanks to
tbinkau).
BugFix: fixed notify-send code in octopi-notifier (thanks to vedgy).
BugFix: Files tab presented some nasty results sometimes and even a GPF when it
found symlinks to directories.
BugFix: running as root was broken in KDE.
BugFix: The preventing code for always refresh the pkg list was flawed.
BugFix: hasInternetConnection code fixed to improve mirror-check speed.
BugFix: Fixed CCR (Chakra) package installation/removal (thanks to dmnmsc).
BugFix: Disable group widget while searching for AUR packages.
Switched to "pacman -Syy" command when synching. It's safer.
Added support for Pacaur tool.
Added support to kcp in KaOS (thanks to Cellix).
Added support to LXQt DE.
Added support to ArchBSD news (thanks to bkc_).
Added support to Netrunner news.
Added support to mooOS distro (thanks to pdq).
Added support to Antergos distro (thanks to Yoyo).
Added popularity column (number of votes) in AUR/CCR mode (thanks to
tbinkau).
Added more filter options in View menu.
Added parameter "sysupgrade-noconfirm" so Octopi can jump automatically
to distro upgrade (if any new packages available) without prompt for
confirmation. Also added a "Yes" button to the sysupgrade
confirmation dialog at octopi-notifier (thanks to wget).
Merged Oktopi's code for using KDE icon theme, tools menu and CCR support
(thanks to Giuseppe Calà - gcala).
Changed sorting of the first column to also include the name column as second
sort criteria (thanks to tbinkau).
Added pacman log viewer and repoeditor support in tools menu (thanks to gcala).
Added asturian language in Qt5 builds (thanks to Llumex03).
Patched repoeditor to run just one instance at a time.
The filelist search now searches directories too.
Refactorings here and there to make it more Chakra friendly.
Updated README file.
Updated some icons to unclutter the UI (thanks to Anke Boersma).
Refactoring in some code to not generate translatable strings.
Fixed getBuildDate code to always convert dates to english format.
Updated some translations.
0.3.2
Cleaned unused code.
Added icon for mirror-check while in KaOS.
Does a mirror-check at startup while in KaOS.
Added icon for system upgrade.
Added system upgrade button in octopi's toolbar.
BugFix: Navigating in the package list using [A..Z] keys did not work as
expected.
BugFix: When the package list is filtered and you click in a package which is in
the outdated package list, you are redirected to a blank information tab.
BugFix: When the groups button is pressed and the lower pane is maximized, the
former is hidden by the later.
BugFix: When the user had no yaourt in the system, there were a zombie
octopi process 'left running'.
0.3.1
Added support for Qt5.
Added chinese (Taiwan), malay, slovak and ukrainian translations.
Added support to KaOS, a lean KDE centric Linux distro.
Added support to installation of local packages with GUI feedback.
Updated translations.
Changed widget for package groups, from combobox to treeview.
BugFix: When inserting an optional dependency package or removing a dep,
first searches into transaction queue for them.
BugFix: Prevent header resizing in File and Transaction tabs.
0.3
Code cleanings.
BugFix: No need to refresh package list after a cache clean.
BugFix: Konsole was not working with yaourt package installation.
BugFix: Position of search icon in searchedit sometimes was wrong.
BugFix: Some actions did not get disabled while executing a transaction.
BugFix: Use -Ss option while searching for yaourt packages.
BugFix: Don't show package names in yaourt package descriptions.
BugFix: Better RazorQt compatibility.
BugFix: Notifier: clear tooltip if no update is available (thanks to
Anselmo L. S. Melo - anselmolsm).
BugFix: When refreshing packages from a group, the list could become
outdated if the user had installed/removed some package.
BugFix: Use "yaourt -S aur/pkgname" to install yaourt packages
(thanks to ringo32).
BugFix: Octopi was only showing the first Optional Deps in some cases.
Brought back the option to do a graphical system upgrade.
Now when installing a package with optional dependencies, Octopi lets users choose
which optional dependencies (if any) they want to install.
Now when removing a package with dependencies, Octopi lets users choose which one they
want to remove.
Now Get Latest Distro News doesn't freeze the interface.
Changed octopi main icon to octopi-green.png in PKGBUILD and
octopi.desktop.
Added menu "Octopi" and "System Upgrade" in octopi-notifier.
Show Yaourt packages as outdated in default package list.
Now it's possible to upgrade Yaourt packages even outside Yaourt group.
Now the yellow octopi icon means there are outdated yaourt packages.
Now octopi-notifier opens only the transaction dialog if Octopi is not running
and user requests a system upgrade.
Added support to remove Pacman's transaction lock file.
Added a new notification for outdated packages on statusbar.
Added a new status icon: an orange one for newer than repo
installed packages.
Added spanish (Latin America) translation.
Added english (Great Britain) translation.
Added portuguese (Portugal) translation.
Added swedish translation.
Added serbian translation.
Added hungarian translation.
Added new "foreign_red.png" and "octopi_green.png" icons (thanks to Alex
Fredrich).
Added support for pkgfile to view uninstalled package file list while in
ArchLinux/ArchBang (thanks to Damián Nohales).
Added an About Dialog to Octopi Notifier.
Updated translations.
0.2
Splitted the project in "octopi" and "octopi-notifier".
Yaourt no longer runs with root permissions.
Added support for package multi selection in Yaourt mode.
Added option to install local packages.
Added support for "notify-send" in "octopi-notifier".
Added hebrew translation.
Added lithuanian translation.
Added norwegian bokmål translation.
Added servian latin translation.
Added dutch translation.
Added russian translation.
Added uzbek translation.
Added finnish translation.
Added vietnamese translation.
Updated all other translations.
GTK native theme is used by default in Manjaro (while not in KDE).
Added support for Xterm terminal.
IgnorePkg option is now used to build outdated package list.
BugFix: Empty pkg descriptions are now shown as empty.
0.1.9.1
Important bugfixes to deal with multithreaded code.
Added a "globals.h/.cpp" file to group QFutureWatcher globals.
Updated style changing code in main.cpp.
BugFix: when user cancelled a sysupgrade transaction inside a
terminal, the package actions remained disabled.
0.1.9
Added yaourt support.
Updated most of the translations.
0.1.8
Added czech translation.
Added support to ArchBang Linux.
Added a systemtray icon notifier feature using DBus technology.
0.1.7.3
Added a TRANSLATIONS file.
Added danish translation.
Added indonesian translation.
Added polish translation.
Added bulgarian translation.
sysupgrade command line option now synchronizes database.
Bugfix: sysupgrade must refresh packagelist after syncdatabase.
Bugfix: if sysupgrade uses SyncFirst, makes it automatically start a second upgrade.
0.1.7.2
Added catalan translation.
Bugfix: updated new binary translation files to the resources.
0.1.7.1
Bugfix: menu icons were not being shown while in Xfce.
0.1.7
Added "-sysupgrade" command line option.
Added "-removecmd" command line option.
Added lots of translations.
Added links to outdated package names in outdated package list.
Added an About dialog.
Changed the old About tab to Usage tab.
0.1.6.1
Added pt_BR translation.
Added "Open root terminal" option in File menu.
0.1.6
Added a new Transaction Dialog.
Added a Firefox-like search inside Files, News and About tabs.

30
INSTALL
View File

@@ -1,10 +1,28 @@
Installing Octopi is a pretty straightforward task.
Assuming you have updated Qt4 libs installed in your system, just:
Assuming you have updated Qt4(*) libs installed in your system, all
you have to do is run:
1) ./qmake
2) make
Octopi's binary will be generated in "./bin" dir.
makepkg -f
Enjoy!
Wait for the compilation and then install the generated package (as
root), using:
pacman -U [--force] <nameOfTheGeneratedOctopiPackage.tar.xz>
You can also install the generated package notifier, using:
pacman -U [--force] <nameOfTheGeneratedOctopiNotifierPackage.tar.xz>
Octopi is located at the system utilities menu of your Desktop
Environment.
Enjoy!
(*) Octopi is also Qt5 compatible, you'll only have to adjust the
"depends" section in PKGBUILD.
If you are compiling Octopi in a KDE centric-distro like KaOS and Chakra, you should
first uncomment the "#define NO_GTK_STYLE" string located at "src/main.cpp" and
"notifier/octopi-notifier/main.cpp", otherwise it won't compile at all.

76
PKGBUILD Normal file
View File

@@ -0,0 +1,76 @@
pkgname=('octopi' 'octopi-notifier')
pkgver=0.4.2
pkgrel=1
pkgdesc="a powerful Pacman frontend using Qt libs"
arch=('i686' 'x86_64')
url="http://octopiproject.wordpress.com"
license=('GPL2')
install=$pkgname.install
makedepends=('git')
depends=('qt4' 'xterm')
optdepends=('kdesu: for KDE'
'gksu: for XFCE, Gnome, LXDE, Cinnamon'
'gnome-keyring: for password management'
'yaourt: for AUR support'
'octopi-notifier: for notifications'
'pkgfile: to view uninstalled pkg contents in ArchLinux')
provides=('octopi')
md5sums=()
build() {
cpucount=$(grep -c processor /proc/cpuinfo 2>/dev/null)
jc=$((${cpucount:-1}))
#cd "$srcdir"
msg "Starting build..."
cd $startdir
qmake-qt4 $pkgname.pro
make -j $jc
cd $startdir/notifier/pacmanhelper
msg "Building pacmanhelper..."
qmake-qt4 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-qt4 repoeditor.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
#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
#Pacmaneditor files
install -D -m755 $startdir/repoeditor/bin/octopi-repoeditor ${pkgdir}/usr/bin/octopi-repoeditor
}
package_octopi-notifier() {
pkgdesc="Notifier for Octopi"
depends=('octopi' 'libnotify')
optdepends=('xfce4-notifyd: for notifications in XFCE')
#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
}

18
README
View File

@@ -1,8 +1,18 @@
This is Octopi, a powerful Pacman frontend using Qt libs.
This is Octopi, a powerful Pacman/AUR frontend using Qt libs.
================================================================
The project's source code is hosted at https://github.com/aarnt/octopi.
The project's source code is hosted at
https://github.com/aarnt/octopi.
You'll need a privilege escalation tool to use it, once running it as
root will not work. Octopi supports kdesu and gksu for that.
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.
For AUR support, "yaourt" and "pacaur" are supported.
When you are in Chakra, "ccr" is supported.
While in KaOS, "kcp" is supported.
Do you understand english? Wanna help this project?
You can translate it to your mother language at
https://www.transifex.com/projects/p/octopi/.
Enjoy!

16
THANKS
View File

@@ -1,13 +1,25 @@
A very special thanks goes to:
- Alex Fredrich, for testing and suggestions
- All Octopi translators listed in TRANSLATIONS file!
- Alex Fredrich, for testing, suggestions and icons
- Anke Boersma (demm), for supporting Octopi in KaOS
- Bernardo M. Savone (Bersil), for testing and spreading the word
- Damián Nohales (eagleoneraptor), for pkgfile support
- Edgar Aloísio Berger, for spreading the word by email
- Giuseppe Calà (gcala), for merging changes from Oktopi's code
- Jordi (dmnmsc), for testing in Chakra Linux
- Jose Martinez (dsngjoe), for testing under Cinnamon
- Manjaro community, for testing and suggestions
- Manuel Tortosa, for testing, suggestions and code
- Philip Müller, for testing, patches and suggestions
- Philip Müller (philm), for testing, patches and suggestions
- pdq, for implementing mooOS compatibility
- Riberti de Almeida Felisbino (Holmes), for spreading the word at Manjaro Linux
Brasil
- Ringo de kroon (ringo32), for testing and lots of suggestions
- Sami Korkalainen (Sami-Perkele), for testing and suggestions
- Thomas Binkau (tbinkau), for patches and suggestions
- Valdir Rossi Belmonte Filho, for patching the site
- vedgy, for patches and suggestions
- Yoyo Fernández (Yoyo), for spreading the word and testing
Octopi has got much better with all your help!

39
TRANSLATIONS Normal file
View File

@@ -0,0 +1,39 @@
Arabic: karim (Karim Oulad Chalha)
Asturian: Llumex03
Basque: tarteka (Sergio Moreno)
Brazilian Portuguese: arnt (Alexandre Albuquerque Arnt)
Bulgarian: loot270 (Galin Iskrenov)
Catalan: oriolfa (Oriol Fernandez)
Chinese (Taiwan): s8321414 (冥王歐西里斯)
Czech: fri
Danish: Snubbi (Carl Andersen)
Dutch: jsm (Jasper van der Marel)
English: source language
English (Great Britain): jonathon (J Fernyhough)
Finnish: Sami Korkalainen (Sami-Perkele)
French: Loubrix (David Roux)
German: Veraendert
Greek: angel_solomos
Hebrew: GenghisKhan
Hungarian: lajos (Lajos Pasztor)
Indonesian: Se7enTime (Mohamad Hasan Al Banna)
Italian: bersil (Bernardo Miguel Savone)
Japanese: (UTUMI Hirosi) utuhiro78
Lithuanian: liudas (Liudas Ališauskas)
Malay: Puretech
Norwegian Bokmål: viking60
Polish: poker98face (Kuba Kaczmarzyk)
Portuguese: arcorreia (António Correia)
Romanian: Ayceman (Alexandru Ianu)
Russian: macbet (Daniil) and ualmasov (Umidjon Almasov)
Serbian: milenkin (Milena Petrović)
Serbian-latin: GameBoyT (GameBoy)
Slovak: roslav
Spanish: tufadorin and yoyo308 (Yoyo Fernández)
Spanish - Argentina: (javier)
Spanish - Latin America: CostGranda (Cost Granda)
Swedish: riiga
Turkish: yfdogan (Yusuf Faruk DOĞAN)
Ukrainian: zubr139
Uzbek: ualmasov (Umidjon Almasov)
Vietnamese: ppanhh (Anh Phan)

View File

@@ -0,0 +1,38 @@
#include "../../src/unixcommand.h"
#include "../../src/wmhelper.h"
#include "mainwindow.h"
#include <QApplication>
#include <QtGui>
//#define NO_GTK_STYLE
int main(int argc, char *argv[])
{
if (UnixCommand::isAppRunning("octopi-notifier")) return (-1);
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());
a.installTranslator(&appTranslator);
a.setQuitOnLastWindowClosed(false);
MainWindow w;
QResource::registerResource("./resources.qrc");
return a.exec();
}

View File

@@ -0,0 +1,523 @@
#include "mainwindow.h"
#include "../../src/strconstants.h"
#include "../../src/uihelper.h"
#include "../../src/package.h"
#include "../../src/pacmanhelperclient.h"
#include "../../src/transactiondialog.h"
#include <QTimer>
#include <QSystemTrayIcon>
#include <QAction>
#include <QMenu>
#include <QProcess>
#include <QMessageBox>
/*
* This is Octopi Notifier slim interface code :-)
*/
/*
* The obligatory constructor...
*/
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
m_pacmanDatabaseSystemWatcher =
new QFileSystemWatcher(QStringList() << ctn_PACMAN_DATABASE_DIR, this);
initSystemTrayIcon();
}
/*
* Let's initialize the system tray object...
*/
void MainWindow::initSystemTrayIcon()
{
m_commandExecuting = ectn_NONE;
m_outdatedPackageList = new QStringList();
m_systemTrayIcon = new QSystemTrayIcon(this);
m_systemTrayIcon->setObjectName("systemTrayIcon");
m_icon = IconHelper::getIconOctopiTransparent();
m_systemTrayIcon->setIcon(m_icon);
setWindowIcon(m_icon);
m_systemTrayIcon->show();
m_systemTrayIcon->setToolTip(StrConstants::getSyncDatabases());
qApp->processEvents();
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_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 );
m_systemTrayIconMenu->addAction(m_actionOctopi);
m_systemTrayIconMenu->addAction(m_actionSystemUpgrade);
m_systemTrayIconMenu->addSeparator();
m_systemTrayIconMenu->addAction(m_actionAbout);
m_systemTrayIconMenu->addAction(m_actionExit);
m_systemTrayIcon->setContextMenu(m_systemTrayIconMenu);
connect ( m_systemTrayIcon , SIGNAL( activated( QSystemTrayIcon::ActivationReason ) ),
this, SLOT( execSystemTrayActivated ( QSystemTrayIcon::ActivationReason ) ) );
m_pacmanHelperClient = new PacmanHelperClient("org.octopi.pacmanhelper", "/", QDBusConnection::systemBus(), 0);
connect(m_pacmanHelperClient, SIGNAL(syncdbcompleted()), this, SLOT(afterPacmanHelperSyncDatabase()));
m_pacmanHelperTimer = new QTimer();
m_pacmanHelperTimer->setInterval(100);
m_pacmanHelperTimer->start();
connect(m_pacmanHelperTimer, SIGNAL(timeout()), this, SLOT(pacmanHelperTimerTimeout()));
}
/*
* Execs Octopi
*/
void MainWindow::runOctopi(ExecOpt execOptions)
{
if (execOptions == ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT)
{
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
{
QProcess::startDetached("octopi -sysupgrade-noconfirm -style gtk");
}
else
{
QProcess::startDetached("octopi -sysupgrade-noconfirm");
}
}
else if (execOptions == ectn_SYSUPGRADE_EXEC_OPT &&
!UnixCommand::isAppRunning("octopi", true) && m_outdatedPackageList->count() > 0)
{
doSystemUpgrade();
}
else if (execOptions == ectn_SYSUPGRADE_EXEC_OPT &&
UnixCommand::isAppRunning("octopi", true) && m_outdatedPackageList->count() > 0)
{
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
{
QProcess::startDetached("octopi -sysupgrade -style gtk");
}
else
{
QProcess::startDetached("octopi -sysupgrade");
}
}
else if (execOptions == ectn_NORMAL_EXEC_OPT)
{
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
{
QProcess::startDetached("octopi -style gtk");
}
else
{
QProcess::startDetached("octopi");
}
}
}
/*
* Helper to a runOctopi with a call to SystemUpgrade
*/
void MainWindow::runOctopiSysUpgrade()
{
runOctopi(ectn_SYSUPGRADE_EXEC_OPT);
}
/*
* Shows Octopi Notifier About Dialog...
*/
void MainWindow::aboutOctopiNotifier()
{
QString aboutText = "<b>Octopi Notifier - " + StrConstants::getApplicationVersion() + "</b><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);
}
/*
* Hides Octopi
*/
void MainWindow::hideOctopi()
{
QProcess::startDetached("octopi -hide");
}
/*
* Checks if some SU utility is available...
* Returns false if not!
*/
bool MainWindow::_isSUAvailable()
{
//If there are no means to run the actions, we must warn!
if (WMHelper::getSUCommand() == ctn_NO_SU_COMMAND){
QMessageBox::critical( 0, StrConstants::getApplicationName(),
StrConstants::getErrorNoSuCommand() +
"\n" + StrConstants::getYoullNeedSuFrontend());
return false;
}
else
return true;
}
/*
* Calls only the Octopi system upgrade window
*/
void MainWindow::doSystemUpgrade()
{
//Shows a dialog indicating the targets needed to be retrieved and asks for the user's permission.
QList<PackageListData> * targets = Package::getTargetUpgradeList();
//There are no new updates to install!
if (targets->count() == 0 && m_outdatedPackageList->count() == 0)
{
return;
}
else if (targets->count() == 0 && m_outdatedPackageList->count() > 0)
{
return;
}
QString list;
double totalDownloadSize = 0;
foreach(PackageListData target, *targets)
{
totalDownloadSize += target.downloadSize;
list = list + target.name + "-" + target.version + "\n";
}
list.remove(list.size()-1, 1);
totalDownloadSize = totalDownloadSize / 1024;
QString ds = QString::number(totalDownloadSize, 'f', 2);
TransactionDialog question(this);
//If we're in Chakra, there are no graphical system upgrades!
if (UnixCommand::getLinuxDistro() == ectn_CHAKRA) question.removeYesButton();
if(targets->count()==1)
question.setText(StrConstants::getRetrieveTarget() +
"\n\n" + StrConstants::getTotalDownloadSize().arg(ds));
else
question.setText(StrConstants::getRetrieveTargets().arg(targets->count()) +
"\n\n" + StrConstants::getTotalDownloadSize().arg(ds));
question.setWindowTitle(StrConstants::getConfirmation());
question.setInformativeText(StrConstants::getConfirmationQuestion());
question.setDetailedText(list);
m_systemUpgradeDialog = true;
int result = question.exec();
if (result == QDialogButtonBox::Yes)
{
runOctopi(ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT);
}
else if(result == QDialogButtonBox::AcceptRole)
{
m_systemUpgradeDialog = false;
//If there are no means to run the actions, we must warn!
if (!_isSUAvailable()) return;
QStringList lastCommandList;
lastCommandList.append("pacman -Su;");
lastCommandList.append("echo -e;");
lastCommandList.append("read -n1 -p \"" + StrConstants::getPressAnyKey() + "\"");
m_unixCommand = new UnixCommand(this);
QObject::connect(m_unixCommand, SIGNAL( finished ( int, QProcess::ExitStatus )),
this, SLOT( doSystemUpgradeFinished(int, QProcess::ExitStatus) ));
toggleEnableInterface(false);
m_actionSystemUpgrade->setEnabled(false);
if (result == QDialogButtonBox::AcceptRole)
{
m_commandExecuting = ectn_RUN_SYSTEM_UPGRADE_IN_TERMINAL;
m_unixCommand->runCommandInTerminal(lastCommandList);
}
}
else if (result == QDialogButtonBox::No)
{
m_systemUpgradeDialog = false;
toggleEnableInterface(true);
refreshAppIcon();
}
}
/*
* When system upgrade process is finished...
*/
void MainWindow::doSystemUpgradeFinished(int, QProcess::ExitStatus)
{
refreshAppIcon();
//Does it still need to upgrade another packages due to SyncFirst issues???
if ((m_commandExecuting == ectn_RUN_SYSTEM_UPGRADE_IN_TERMINAL)
&& m_outdatedPackageList->count() > 0)
{
m_commandExecuting = ectn_NONE;
m_unixCommand->removeTemporaryActionFile();
doSystemUpgrade();
return;
}
m_commandExecuting = ectn_NONE;
m_unixCommand->removeTemporaryActionFile();
toggleEnableInterface(true);
}
/*
* Enables and Disables some UI elements of Octopi-notifier
*/
void MainWindow::toggleEnableInterface(bool state)
{
m_actionOctopi->setEnabled(state);
m_actionExit->setEnabled(state);
}
/*
* Whenever this timer ticks, we need to call the PacmanHelper DBus interface to sync Pacman's dbs
*/
void MainWindow::pacmanHelperTimerTimeout()
{
static bool firstTime=true;
if (m_commandExecuting != ectn_NONE) return;
if (firstTime)
{
m_pacmanHelperTimer->setInterval(1000 * 60 * 60);
firstTime=false;
}
m_actionOctopi->setEnabled(false);
if (m_outdatedPackageList->count() > 0)
{
m_actionSystemUpgrade->setEnabled(false);
}
else
{
m_actionSystemUpgrade->setVisible(false);
}
m_icon = IconHelper::getIconOctopiTransparent();
m_systemTrayIcon->setIcon(m_icon);
m_systemTrayIcon->setToolTip(StrConstants::getSyncDatabases());
qApp->processEvents();
m_systemTrayIconMenu->close();
m_systemTrayIcon->setContextMenu(0);
m_commandExecuting = ectn_SYNC_DATABASE;
m_pacmanHelperClient->syncdb();
}
/*
* Called right after the PacmanHelper syncdb() method has finished!
*/
void MainWindow::afterPacmanHelperSyncDatabase()
{
m_actionOctopi->setEnabled(true);
m_systemTrayIcon->setContextMenu(m_systemTrayIconMenu);
m_systemTrayIconMenu->close();
m_commandExecuting = ectn_NONE;
disconnect(m_pacmanDatabaseSystemWatcher,
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
int numberOfOutdatedPackages = m_numberOfOutdatedPackages;
refreshAppIcon();
if (numberOfOutdatedPackages != m_numberOfOutdatedPackages)
{
if (m_numberOfOutdatedPackages > 0)
{
QString notification;
if (m_numberOfOutdatedPackages == 1)
{
notification = StrConstants::getOneNewUpdate();
m_systemTrayIcon->setToolTip(notification);
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
}
else if (m_numberOfOutdatedPackages > 1)
{
notification = StrConstants::getNewUpdates().arg(m_numberOfOutdatedPackages);
m_systemTrayIcon->setToolTip(notification);
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
}
}
}
else
{
QString notification;
if (numberOfOutdatedPackages == 1)
{
notification = StrConstants::getOneNewUpdate();
m_systemTrayIcon->setToolTip(notification);
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
}
else if (numberOfOutdatedPackages > 1)
{
notification = StrConstants::getNewUpdates().arg(numberOfOutdatedPackages);
m_systemTrayIcon->setToolTip(notification);
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
}
}
connect(m_pacmanDatabaseSystemWatcher,
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
}
/*
* Uses notify-send to send a notification to the systray area
*/
void MainWindow::sendNotification(const QString &msg)
{
QString processToExec("notify-send");
if (UnixCommand::hasTheExecutable(processToExec))
{
processToExec += " -i /usr/share/icons/octopi_red.png -t 5000 \"" + StrConstants::getApplicationName() +
"\" \"" + msg + "\"";
QProcess::startDetached(processToExec);
}
}
/*
* If we have some outdated packages, let's put an angry red face icon in this app!
*/
void MainWindow::refreshAppIcon()
{
m_outdatedPackageList = Package::getOutdatedPackageList();
bool hasAURTool = UnixCommand::hasTheExecutable(StrConstants::getForeignRepositoryToolName());
if (hasAURTool)
{
m_outdatedAURPackageList = Package::getOutdatedAURPackageList();
}
else
{
m_outdatedAURPackageList = new QStringList();
}
m_numberOfOutdatedPackages = m_outdatedPackageList->count();
m_numberOfOutdatedAURPackages = m_outdatedAURPackageList->count();
if (m_numberOfOutdatedPackages == 0 && m_numberOfOutdatedAURPackages == 0)
{
m_systemTrayIcon->setToolTip("");
}
else if (m_numberOfOutdatedPackages > 0)
{
if (m_numberOfOutdatedPackages == 1)
{
m_systemTrayIcon->setToolTip(StrConstants::getOneNewUpdate());
}
else if (m_numberOfOutdatedPackages > 1)
{
m_systemTrayIcon->setToolTip(StrConstants::getNewUpdates().arg(m_numberOfOutdatedPackages));
}
}
else if (m_numberOfOutdatedAURPackages > 0)
{
if (m_numberOfOutdatedAURPackages == 1)
{
m_systemTrayIcon->setToolTip(StrConstants::getOneNewUpdate());
}
else if (m_numberOfOutdatedAURPackages > 1)
{
m_systemTrayIcon->setToolTip(StrConstants::getNewUpdates().arg(m_numberOfOutdatedAURPackages));
}
}
if(m_outdatedPackageList->count() > 0) //RED ICON!
{
if(m_commandExecuting == ectn_NONE)
{
m_actionSystemUpgrade->setEnabled(true);
m_actionSystemUpgrade->setVisible(true);
}
m_icon = IconHelper::getIconOctopiRed();
}
else if(m_outdatedAURPackageList->count() > 0) //YELLOW ICON!
{
m_actionSystemUpgrade->setVisible(false);
m_icon = IconHelper::getIconOctopiYellow();
}
else //YEAHHH... GREEN ICON!
{
m_actionSystemUpgrade->setVisible(false);
m_icon = IconHelper::getIconOctopiGreen();
}
setWindowIcon(m_icon);
m_systemTrayIcon->setIcon(m_icon);
}
/*
* Whenever the user clicks on the systemTray icon...
*/
void MainWindow::execSystemTrayActivated(QSystemTrayIcon::ActivationReason ar)
{
if (m_commandExecuting != ectn_NONE) return;
switch (ar)
{
case QSystemTrayIcon::DoubleClick:
{
if (m_outdatedPackageList->count() > 0)
{
runOctopi(ectn_SYSUPGRADE_EXEC_OPT);
}
else
{
runOctopi(ectn_NORMAL_EXEC_OPT);
}
break;
}
case QSystemTrayIcon::Trigger:
{
if (UnixCommand::isAppRunning("octopi", true))
{
hideOctopi();
}
break;
}
default: break;
}
}
/*
* When the users quit this notifier...
*/
void MainWindow::exitNotifier()
{
if (UnixCommand::isAppRunning("octopi", true))
{
QProcess::startDetached("octopi -close");
}
qApp->quit();
}

View File

@@ -0,0 +1,71 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "../../src/unixcommand.h"
#include <QProcess>
#include <QString>
#include <QMainWindow>
#include <QSystemTrayIcon>
class QIcon;
class QMenu;
class QAction;
class QFileSystemWatcher;
class PacmanHelperClient;
enum ExecOpt { ectn_NORMAL_EXEC_OPT, ectn_SYSUPGRADE_EXEC_OPT, ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT };
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
private slots:
void pacmanHelperTimerTimeout();
void afterPacmanHelperSyncDatabase();
void execSystemTrayActivated(QSystemTrayIcon::ActivationReason);
void refreshAppIcon();
void runOctopi(ExecOpt execOptions = ectn_SYSUPGRADE_EXEC_OPT);
void runOctopiSysUpgrade();
inline void startOctopi() { runOctopi(ectn_NORMAL_EXEC_OPT); }
void aboutOctopiNotifier();
void hideOctopi();
void exitNotifier();
void doSystemUpgrade();
void doSystemUpgradeFinished(int, QProcess::ExitStatus);
void toggleEnableInterface(bool state);
private:
int m_numberOfOutdatedPackages;
int m_numberOfOutdatedAURPackages;
bool m_systemUpgradeDialog;
CommandExecuting m_commandExecuting;
UnixCommand *m_unixCommand;
QAction *m_actionOctopi;
QAction *m_actionSystemUpgrade;
QAction *m_actionAbout;
QAction *m_actionExit;
QIcon m_icon;
QStringList *m_outdatedPackageList;
QStringList *m_outdatedAURPackageList;
QTimer *m_pacmanHelperTimer;
QSystemTrayIcon *m_systemTrayIcon;
QMenu *m_systemTrayIconMenu;
QFileSystemWatcher *m_pacmanDatabaseSystemWatcher;
PacmanHelperClient *m_pacmanHelperClient;
bool _isSUAvailable();
void initSystemTrayIcon();
void sendNotification(const QString &msg);
};
#endif // MAINWINDOW_H

View File

@@ -0,0 +1,45 @@
#-------------------------------------------------
#
# Project created by QtCreator 2013-07-20T16:15:14
#
#-------------------------------------------------
QT += core xml gui network dbus
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += qt console warn_on debug
TARGET = octopi-notifier
TEMPLATE = app
DESTDIR += ../bin
OBJECTS_DIR += ../build-octopi-notifier
MOC_DIR += ../build-octopi-notifier
UI_DIR += ../build-octopi-notifier
SOURCES += main.cpp \
mainwindow.cpp \
../../src/unixcommand.cpp \
../../src/package.cpp \
../../src/wmhelper.cpp \
../../src/settingsmanager.cpp \
../../src/pacmanhelperclient.cpp \
../../src/utils.cpp \
../../src/transactiondialog.cpp
HEADERS += \
mainwindow.h \
../../src/uihelper.h \
../../src/unixcommand.h \
../../src/wmhelper.h \
../../src/strconstants.h \
../../src/package.h \
../../src/pacmanhelperclient.h \
../../src/utils.h \
../../src/transactiondialog.h
FORMS += ../../ui/transactiondialog.ui
RESOURCES += \
../../resources.qrc

View File

@@ -0,0 +1,5 @@
Command used to generate the PacmanHelperAdaptor:
qdbusxml2cpp -c PacmanHelperAdaptor
-a pacmanhelperadaptor.h:pacmanhelperadaptor.cpp
polkit/org.octopi.pacmanhelper.xml

View File

@@ -0,0 +1,11 @@
#include "pacmanhelper.h"
#include <QCoreApplication>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
PacmanHelper pacmanHelper;
return a.exec();
}

View File

@@ -0,0 +1,35 @@
#include "pacmanhelper.h"
#include "pacmanhelperadaptor.h"
#include <QCoreApplication>
#include <QDBusConnection>
#include <QProcess>
#include <QDebug>
PacmanHelper::PacmanHelper(QObject *parent) :
QObject(parent)
{
(void) new PacmanHelperAdaptor(this);
if (!QDBusConnection::systemBus().registerService("org.octopi.pacmanhelper")) {
qDebug() << "Another helper is already running!";
QCoreApplication::instance()->quit();
}
if (!QDBusConnection::systemBus().registerObject("/", this)) {
qDebug() << "Unable to register service interface to dbus!";
QCoreApplication::instance()->quit();
}
}
void PacmanHelper::syncdb()
{
QProcess pacman;
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("LANG", "us_EN");
pacman.setProcessEnvironment(env);
QString command = "pacman -Sy"; //-Syy or -Sy - eternal doubt!
pacman.execute(command);
emit syncdbcompleted();
}

View File

@@ -0,0 +1,21 @@
#ifndef PACMANHELPER_H
#define PACMANHELPER_H
#include <QObject>
#include <QtDBus/QDBusContext>
class PacmanHelper : public QObject, protected QDBusContext
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.octopi.pacmanhelper")
public:
explicit PacmanHelper(QObject *parent = 0);
public slots:
void syncdb();
signals:
void syncdbcompleted();
};
#endif // PACMANHELPER_H

View File

@@ -0,0 +1,23 @@
#-------------------------------------------------
#
# Project created by QtCreator 2013-06-01T15:00:00
#
#-------------------------------------------------
QT += core dbus
CONFIG += qt console warn_on
TEMPLATE = app
DESTDIR += ../bin
OBJECTS_DIR += ../build
MOC_DIR += ../build
UI_DIR += ../build
HEADERS += pacmanhelper.h \
pacmanhelperadaptor.h
SOURCES += main.cpp \
pacmanhelper.cpp \
pacmanhelperadaptor.cpp

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by Qt Creator 2.6.2, 2013-02-21T18:58:46. -->
<!-- Written by Qt Creator 2.6.2, 2013-06-03T23:20:52. -->
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -53,8 +53,8 @@
<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">{1fc85a80-1e16-441f-8613-8eb60c31a7cf}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">{0dce8b8b-e9b7-4159-956b-f4c9f1085a56}</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">
@@ -105,7 +105,7 @@
<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">2</value>
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/arnt/Projects/octopi/octopi-build-Desktop-Debug</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">
@@ -156,8 +156,8 @@
<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/octopi-build-Desktop-Release</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</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>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
@@ -205,12 +205,12 @@
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">octopi</value>
<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/octopi/octopi.pro</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="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">octopi.pro</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"/>
@@ -230,7 +230,7 @@
</data>
<data>
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
<value type="QString">{e429abb4-2b4e-4ad1-a132-46a4737661bf}</value>
<value type="QString">{e7ed0845-58e4-42af-91c6-0506d885beb7}</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>

View File

@@ -0,0 +1,41 @@
/*
* This file was generated by qdbusxml2cpp version 0.7
* Command line was: qdbusxml2cpp -c PacmanHelperAdaptor -a pacmanhelperadaptor.h:pacmanhelperadaptor.cpp polkit/org.octopi.pacmanhelper.xml
*
* qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
*
* This is an auto-generated file.
* Do not edit! All changes made to it will be lost.
*/
#include "pacmanhelperadaptor.h"
#include <QtCore/QMetaObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
/*
* Implementation of adaptor class PacmanHelperAdaptor
*/
PacmanHelperAdaptor::PacmanHelperAdaptor(QObject *parent)
: QDBusAbstractAdaptor(parent)
{
// constructor
setAutoRelaySignals(true);
}
PacmanHelperAdaptor::~PacmanHelperAdaptor()
{
// destructor
}
void PacmanHelperAdaptor::syncdb()
{
// handle method call org.octopi.pacmanhelper.syncdb
QMetaObject::invokeMethod(parent(), "syncdb");
}

View File

@@ -0,0 +1,48 @@
/*
* This file was generated by qdbusxml2cpp version 0.7
* Command line was: qdbusxml2cpp -c PacmanHelperAdaptor -a pacmanhelperadaptor.h:pacmanhelperadaptor.cpp polkit/org.octopi.pacmanhelper.xml
*
* qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
*
* This is an auto-generated file.
* This file may have been hand-edited. Look for HAND-EDIT comments
* before re-generating it.
*/
#ifndef PACMANHELPERADAPTOR_H_1370179068
#define PACMANHELPERADAPTOR_H_1370179068
#include <QtCore/QObject>
#include <QtDBus/QtDBus>
class QByteArray;
template<class T> class QList;
template<class Key, class Value> class QMap;
class QString;
class QStringList;
class QVariant;
/*
* Adaptor class for interface org.octopi.pacmanhelper
*/
class PacmanHelperAdaptor: public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.octopi.pacmanhelper")
Q_CLASSINFO("D-Bus Introspection", ""
" <interface name=\"org.octopi.pacmanhelper\">\n"
" <method name=\"syncdb\"/>\n"
" <signal name=\"syncdbcompleted\"/>\n"
" </interface>\n"
"")
public:
PacmanHelperAdaptor(QObject *parent);
virtual ~PacmanHelperAdaptor();
public: // PROPERTIES
public Q_SLOTS: // METHODS
void syncdb();
Q_SIGNALS: // SIGNALS
void syncdbcompleted();
};
#endif

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>
<action id="org.octopi.pacman.syncdb">
<description>Synchronizes databases</description>
<message>Prevents from doing action syncdb</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
</action>
</policyconfig>

View File

@@ -0,0 +1,18 @@
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Only user root can own the foo helper -->
<policy user="root">
<allow own="org.octopi.pacmanhelper"/>
</policy>
<!-- Allow anyone to call into the service - we'll reject callers using PolicyKit -->
<policy context="default">
<allow send_interface="org.octopi.pacmanhelper"/>
<allow receive_sender="org.octopi.pacmanhelper"/>
<allow receive_interface="org.octopi.pacmanhelper"/>
</policy>
</busconfig>

View File

@@ -0,0 +1,4 @@
[D-BUS Service]
Name=org.octopi.pacmanhelper
Exec=/usr/lib/octopi/pacmanhelper
User=root

View File

@@ -0,0 +1,9 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.octopi.pacmanhelper">
<method name="syncdb" >
</method>
<signal name="syncdbcompleted">
</signal>
</interface>
</node>

9
octopi-notifier.desktop Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Name=Octopi Notifier
Icon=octopi
Exec=octopi-notifier
Terminal=false
Type=Application
Categories=GNOME;GTK;System;
#NotShowIn=GNOME;XFCE;LXDE;KDE;
StartupNotify=true

View File

@@ -1,4 +1,77 @@
[Desktop Entry]
Categories=GNOME;GTK;System;
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
Comment[ar]=أضف أو أزل البرمجيات المثبتة على النظام
Comment[as]=ব্যৱস্থাপ্ৰণালীত সংস্থাপিত চালনাজ্ঞান উন্নয়ন কৰক
Comment[ast]=Amestar o quitar software instaláu nel sistema
Comment[be]=Дадаць ці выдаліць апраграмаванне, усталяванае ў сістэме
Comment[bg]=Инсталиране и деинсталиране на софтуер към системата
Comment[bn]=সিস্টেমে সফ্টওয়্যার যোগ করুন অথবা ইনস্টল করা সফ্টওয়্যার অপসারণ
Comment[bn_IN]=সিস্টেমে সফ্টওয়্যার যোগ করুন অথবা ইনস্টল করা সফ্টওয়্যার সরিয়ে ফেলুন
Comment[ca@valencia]=Afig o suprimeix programari instal·lat en el sistema
Comment[ca]=Afegeix o suprimeix programari instal·lat en el sistema
Comment[cs]=Přidat nebo odebrat software instalovaný v systému
Comment[da]=Tilføj eller fjern software installeret på systemet
Comment[de]=Auf dem System installierte Software aktualisieren oder neue Software hinzufügen
Comment[el]=Προσθαφαίρεση λογισμικού στο σύστημα
Comment[en@shaw]=𐑨𐑛 𐑹 𐑮𐑦𐑥𐑵𐑝 𐑕𐑪𐑓𐑑𐑢𐑺 𐑦𐑯𐑕𐑑𐑷𐑤𐑛 𐑪𐑯 𐑞 𐑕𐑦𐑕𐑑𐑩𐑥
Comment[en_GB]=Add or remove software installed on the system
Comment[eo]=Aldoni aŭ forigi instalitan pogramaron sur via sistemo
Comment[es]=Añadir o quitar software instalado en el sistema
Comment[et]=Arvutisse paigaldatud tarkvara lisamine ja eemaldamine
Comment[eu]=Gehitu edo kendu sisteman instalatutako softwarea
Comment[fa]=حذف یا افزودن نرم‌افزارهای نصب شده بر روی این سیستم
Comment[fi]=Lisää tai poista järjestelmään asennettuja ohjelmistoja
Comment[fr]=Ajouter ou supprimer des logiciels installés sur le système
Comment[gl]=Engadir e eliminar o software instalado no sistema
Comment[gu]=સિસ્ટમ પર સ્થાપિત થયેલ સોફ્ટવેરને ઉમેરો અથવા દૂર કરો
Comment[he]=הוספה או הסרה של יישומי המערכת
Comment[hi]=सिस्टम पर संस्थापित सॉफ्टवेयर जोड़ें या हटाएँ
Comment[hu]=Szoftverek rendszerre telepítése vagy eltávolítása
Comment[id]=Tambah atau hapus perangkat lunak yang terpasang pada sistem
Comment[it]=Aggiunge o rimuove software installato sul sistema
Comment[ja]=システムにインストールされたパッケージの追加と削除
Comment[kn]=ಗಣಕಕ್ಕೆ ತಂತ್ರಾಂಶವನ್ನು ಸೇರಿಸು ಅಥವ ಅನುಸ್ಥಾಪಿತಗೊಂಡಿರುವುದನ್ನು ತೆಗೆದು ಹಾಕು
Comment[ko]=시스템에 설치하는 소프트웨어를 추가하거나 제거합니다
Comment[lt]=Įdiegti ar šalinti sistemoje įdiegtą programinę įrangą
Comment[lv]=Pievienot vai izņemt programmatūru sistēmā
Comment[mk]=Инсталирајте или избришете софтвер на системот
Comment[ml]=സിസ്റ്റത്തില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്ന സോഫ്റ്റ്‌വെയര്‍ ചേര്‍ക്കുക അല്ലെങ്കില്‍ നീക്കം ചെയ്യുക
Comment[mr]=प्रणालीवर प्रतिष्ठापीत सॉफ्टवेअर समावेष करा किंवा काढूण टाका
Comment[ms]=Menambah atau memadam perisian yang dipasang pada sistem
Comment[nb]=Legg til eller fjern programvare på systemet
Comment[nl]=Software installeren op, of verwijderen van het systeem
Comment[nn]=Legg til eller fjern programvare som er installert på systemet
Comment[or]=ତନ୍ତ୍ରରେ ସ୍ଥାପିତ ସଫ୍ଟୱେରରେ ଯୋଗକରନ୍ତୁ କିମ୍ବା କାଢ଼ି ଦିଅନ୍ତୁ
Comment[pa]=ਸਿਸਟਮ ਉੱਤੇ ਸਾਫਟਵੇਅਰ ਇੰਸਟਾਲ ਕਰੋ ਜਾਂ ਇੰਸਟਾਲ ਕੀਤੇ ਹਟਾਓ
Comment[pl]=Instalowanie lub usuwanie oprogramowania zainstalowanego w systemie
Comment[pt]=Adicionar ou remover software instalado no sistema
Comment[pt_BR]=Adicione ou remova programas instalados no sistema
Comment[ro]=Adăugați sau ștergeți programe instalate pe sistem
Comment[ru]=Установка и удаление программ, установленных в системе
Comment[sk]=Pridať alebo odstrániť softvér nainštalovaný na systéme
Comment[sl]=Nameščanje in odstranjevanje programske opreme sistema
Comment[sr@latin]=Dodajte ili uklonite programe instalirane na ovom sistemu
Comment[sr]=Додајте или уклоните програме инсталиране на овом систему
Comment[sv]=Lägg till eller ta bort programvara installerad på systemet
Comment[ta]=கணினியில் நிறுவப்பட்ட மென்பொருளை சேர்க்கவும் அல்லது நீக்கவும்
Comment[te]=ఈ వ్యవస్థ నందు స్థాపించిన సాఫ్ట్‍వేర్‌ను జతచేయి లేదా తీసివేయి
Comment[th]=เพิ่มหรือลบซอฟต์แวร์ที่ติดตั้งในระบบ
Comment[tr]=Sisteminizde yüklü yazılımları ekleyin veya kaldırın
Comment[ug]=سىستېمىڭىزغا ئورنىتىلغان يۇمشاق دېتاللارنى قوشىدۇ ياكى ئۆچۈرىدۇ
Comment[uk]=Встановлення та вилучення програм у системі
Comment[vi]=Thêm hoặc gỡ phần mềm cài đặt trên hệ thống
Comment[zh_CN]=添加或删除系统中安装的软件
Comment[zh_HK]=加入或移除系統上安裝的軟件
Comment[zh_TW]=加入或移除系統上安裝的軟體
Exec=octopi
GenericName[en_US]=
GenericName=
Icon=octopi
MimeType=
Name[en_US]=Add/Remove Software
Name=Add/Remove Software
Name[af]=Voeg by/verwyder sagteware
Name[ar]=إضافة وإزالة البرمجيات
@@ -8,8 +81,8 @@ Name[be]=Дадаць/выдаліць апраграмаванне
Name[bg]=Инсталиране/деинсталиране на софтуер
Name[bn]=সফ্টওয়্যার যোগ/অপসারণ
Name[bn_IN]=সফ্টওয়্যার যোগ/অপসারণ করুন
Name[ca]=Afegeix/Suprimeix programari
Name[ca@valencia]=Afig/Suprimeix programari
Name[ca]=Afegeix/Suprimeix programari
Name[cs]=Přidat/odebrat software
Name[da]=Tilføj/fjern software
Name[de]=Software hinzufügen/entfernen
@@ -52,8 +125,8 @@ Name[ro]=Adăugare sau ștergere programe
Name[ru]=Установка и удаление программ
Name[sk]=Pridať/odstrániť softvér
Name[sl]=Upravljanje programske opreme
Name[sr]=Додај-уклони програме
Name[sr@latin]=Dodaj-ukloni programe
Name[sr]=Додај-уклони програме
Name[sv]=Lägg till/Ta bort programvara
Name[ta]=மென்பொருளை சேர்த்தல்/நீக்குதல்
Name[te]=సాఫ్ట్‍వేర్ జతచేయి/తీసివేయి
@@ -65,76 +138,12 @@ Name[vi]=Thêm/Gỡ phần mềm
Name[zh_CN]=添加/删除软件
Name[zh_HK]=加入或移除軟件
Name[zh_TW]=加入或移除軟體
Comment=Add or remove software installed on the system
Comment[af]=Voeg by of verwyder sagteware geïnstalleer op die stelsel
Comment[ar]=أضف أو أزل البرمجيات المثبتة على النظام
Comment[as]=ব্যৱস্থাপ্ৰণালীত সংস্থাপিত চালনাজ্ঞান উন্নয়ন কৰক
Comment[ast]=Amestar o quitar software instaláu nel sistema
Comment[be]=Дадаць ці выдаліць апраграмаванне, усталяванае ў сістэме
Comment[bg]=Инсталиране и деинсталиране на софтуер към системата
Comment[bn]=সিস্টেমে সফ্টওয়্যার যোগ করুন অথবা ইনস্টল করা সফ্টওয়্যার অপসারণ
Comment[bn_IN]=সিস্টেমে সফ্টওয়্যার যোগ করুন অথবা ইনস্টল করা সফ্টওয়্যার সরিয়ে ফেলুন
Comment[ca]=Afegeix o suprimeix programari instal·lat en el sistema
Comment[ca@valencia]=Afig o suprimeix programari instal·lat en el sistema
Comment[cs]=Přidat nebo odebrat software instalovaný v systému
Comment[da]=Tilføj eller fjern software installeret på systemet
Comment[de]=Auf dem System installierte Software aktualisieren oder neue Software hinzufügen
Comment[el]=Προσθαφαίρεση λογισμικού στο σύστημα
Comment[en@shaw]=𐑨𐑛 𐑹 𐑮𐑦𐑥𐑵𐑝 𐑕𐑪𐑓𐑑𐑢𐑺 𐑦𐑯𐑕𐑑𐑷𐑤𐑛 𐑪𐑯 𐑞 𐑕𐑦𐑕𐑑𐑩𐑥
Comment[en_GB]=Add or remove software installed on the system
Comment[eo]=Aldoni aŭ forigi instalitan pogramaron sur via sistemo
Comment[es]=Añadir o quitar software instalado en el sistema
Comment[et]=Arvutisse paigaldatud tarkvara lisamine ja eemaldamine
Comment[eu]=Gehitu edo kendu sisteman instalatutako softwarea
Comment[fa]=حذف یا افزودن نرم‌افزارهای نصب شده بر روی این سیستم
Comment[fi]=Lisää tai poista järjestelmään asennettuja ohjelmistoja
Comment[fr]=Ajouter ou supprimer des logiciels installés sur le système
Comment[gl]=Engadir e eliminar o software instalado no sistema
Comment[gu]=સિસ્ટમ પર સ્થાપિત થયેલ સોફ્ટવેરને ઉમેરો અથવા દૂર કરો
Comment[he]=הוספה או הסרה של יישומי המערכת
Comment[hi]=सिस्टम पर संस्थापित सॉफ्टवेयर जोड़ें या हटाएँ
Comment[hu]=Szoftverek rendszerre telepítése vagy eltávolítása
Comment[id]=Tambah atau hapus perangkat lunak yang terpasang pada sistem
Comment[it]=Aggiunge o rimuove software installato sul sistema
Comment[ja]=システムにインストールされたパッケージの追加と削除
Comment[kn]=ಗಣಕಕ್ಕೆ ತಂತ್ರಾಂಶವನ್ನು ಸೇರಿಸು ಅಥವ ಅನುಸ್ಥಾಪಿತಗೊಂಡಿರುವುದನ್ನು ತೆಗೆದು ಹಾಕು
Comment[ko]=시스템에 설치하는 소프트웨어를 추가하거나 제거합니다
Comment[lt]=Įdiegti ar šalinti sistemoje įdiegtą programinę įrangą
Comment[lv]=Pievienot vai izņemt programmatūru sistēmā
Comment[mk]=Инсталирајте или избришете софтвер на системот
Comment[ml]=സിസ്റ്റത്തില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്ന സോഫ്റ്റ്‌വെയര്‍ ചേര്‍ക്കുക അല്ലെങ്കില്‍ നീക്കം ചെയ്യുക
Comment[mr]=प्रणालीवर प्रतिष्ठापीत सॉफ्टवेअर समावेष करा किंवा काढूण टाका
Comment[ms]=Menambah atau memadam perisian yang dipasang pada sistem
Comment[nb]=Legg til eller fjern programvare på systemet
Comment[nl]=Software installeren op, of verwijderen van het systeem
Comment[nn]=Legg til eller fjern programvare som er installert på systemet
Comment[or]=ତନ୍ତ୍ରରେ ସ୍ଥାପିତ ସଫ୍ଟୱେରରେ ଯୋଗକରନ୍ତୁ କିମ୍ବା କାଢ଼ି ଦିଅନ୍ତୁ
Comment[pa]=ਸਿਸਟਮ ਉੱਤੇ ਸਾਫਟਵੇਅਰ ਇੰਸਟਾਲ ਕਰੋ ਜਾਂ ਇੰਸਟਾਲ ਕੀਤੇ ਹਟਾਓ
Comment[pl]=Instalowanie lub usuwanie oprogramowania zainstalowanego w systemie
Comment[pt]=Adicionar ou remover software instalado no sistema
Comment[pt_BR]=Adicione ou remova programas instalados no sistema
Comment[ro]=Adăugați sau ștergeți programe instalate pe sistem
Comment[ru]=Установка и удаление программ, установленных в системе
Comment[sk]=Pridať alebo odstrániť softvér nainštalovaný na systéme
Comment[sl]=Nameščanje in odstranjevanje programske opreme sistema
Comment[sr]=Додајте или уклоните програме инсталиране на овом систему
Comment[sr@latin]=Dodajte ili uklonite programe instalirane na ovom sistemu
Comment[sv]=Lägg till eller ta bort programvara installerad på systemet
Comment[ta]=கணினியில் நிறுவப்பட்ட மென்பொருளை சேர்க்கவும் அல்லது நீக்கவும்
Comment[te]=ఈ వ్యవస్థ నందు స్థాపించిన సాఫ్ట్‍వేర్‌ను జతచేయి లేదా తీసివేయి
Comment[th]=เพิ่มหรือลบซอฟต์แวร์ที่ติดตั้งในระบบ
Comment[tr]=Sisteminizde yüklü yazılımları ekleyin veya kaldırın
Comment[ug]=سىستېمىڭىزغا ئورنىتىلغان يۇمشاق دېتاللارنى قوشىدۇ ياكى ئۆچۈرىدۇ
Comment[uk]=Встановлення та вилучення програм у системі
Comment[vi]=Thêm hoặc gỡ phần mềm cài đặt trên hệ thống
Comment[zh_CN]=添加或删除系统中安装的软件
Comment[zh_HK]=加入或移除系統上安裝的軟件
Comment[zh_TW]=加入或移除系統上安裝的軟體
Icon=octopi
Exec=octopi
Terminal=false
Type=Application
Categories=GNOME;GTK;System;
#NotShowIn=KDE;
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

12
octopi.install Normal file
View File

@@ -0,0 +1,12 @@
post_install() {
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
update-desktop-database -q
}
post_upgrade() {
post_install $1
}
post_remove() {
post_install $1
}

View File

@@ -4,14 +4,15 @@
#
#-------------------------------------------------
QT += core gui network xml
QT += core gui network xml dbus
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
DEFINES += OCTOPI_EXTENSIONS
CONFIG += qt console warn_on debug
TEMPLATE = app
DESTDIR += bin
OBJECTS_DIR += build
MOC_DIR += build
@@ -19,6 +20,12 @@ UI_DIR += build
HEADERS += src/QtSolutions/qtsingleapplication.h \
src/QtSolutions/qtlocalpeer.h \
src/QtSolutions/qtsinglecoreapplication.h \
src/QtSolutions/QtSingleApplication \
src/QtSolutions/qtlockedfile.h \
src/QtSolutions/QtLockedFile \
repoeditor/repoentry.h \
src/repoconf.h \
src/mainwindow.h \
src/strconstants.h \
src/searchlineedit.h \
@@ -26,51 +33,101 @@ HEADERS += src/QtSolutions/qtsingleapplication.h \
src/settingsmanager.h \
src/uihelper.h \
src/package.h \
src/packagecontroller.h \
src/unixcommand.h \
src/wmhelper.h \
src/QtSolutions/qtsinglecoreapplication.h \
src/QtSolutions/QtSingleApplication \
src/QtSolutions/qtlockedfile.h \
src/QtSolutions/QtLockedFile \
src/treeviewpackagesitemdelegate.h \
src/searchbar.h \
src/transactiondialog.h
src/treeviewpackagesitemdelegate.h \
src/searchbar.h \
src/transactiondialog.h \
src/pacmanhelperclient.h \
src/globals.h \
src/multiselectiondialog.h \
src/packagerepository.h \
src/model/packagemodel.h \
src/ui/octopitabinfo.h \
src/utils.h
SOURCES += src/QtSolutions/qtsingleapplication.cpp \
src/QtSolutions/qtlocalpeer.cpp \
src/QtSolutions/qtsinglecoreapplication.cpp \
src/QtSolutions/qtlockedfile.cpp \
src/QtSolutions/qtlockedfile_win.cpp \
src/QtSolutions/qtlockedfile_unix.cpp \
repoeditor/repoentry.cpp \
src/repoconf.cpp \
src/main.cpp\
src/mainwindow.cpp \
src/searchlineedit.cpp \
src/argumentlist.cpp \
src/settingsmanager.cpp \
src/package.cpp \
src/packagecontroller.cpp \
src/unixcommand.cpp \
src/wmhelper.cpp \
src/QtSolutions/qtsinglecoreapplication.cpp \
src/QtSolutions/qtlockedfile.cpp \
src/QtSolutions/qtlockedfile_win.cpp \
src/QtSolutions/qtlockedfile_unix.cpp \
src/treeviewpackagesitemdelegate.cpp \
src/mainwindow_init.cpp \
src/mainwindow_transaction.cpp \
src/mainwindow_events.cpp \
src/mainwindow_help.cpp \
src/searchbar.cpp \
src/mainwindow_searchbar.cpp \
src/transactiondialog.cpp \
src/mainwindow_news.cpp \
src/mainwindow_refresh.cpp
src/treeviewpackagesitemdelegate.cpp \
src/mainwindow_init.cpp \
src/mainwindow_transaction.cpp \
src/mainwindow_events.cpp \
src/mainwindow_help.cpp \
src/searchbar.cpp \
src/mainwindow_searchbar.cpp \
src/transactiondialog.cpp \
src/mainwindow_news.cpp \
src/mainwindow_refresh.cpp \
src/pacmanhelperclient.cpp \
src/globals.cpp \
src/multiselectiondialog.cpp \
src/packagerepository.cpp \
src/model/packagemodel.cpp \
src/ui/octopitabinfo.cpp \
src/utils.cpp
FORMS += ui/mainwindow.ui \
ui/transactiondialog.ui
FORMS += ui/mainwindow.ui \
ui/transactiondialog.ui \
ui/multiselectiondialog.ui
RESOURCES += \
resources.qrc
RESOURCES += resources.qrc
OTHER_FILES += \
src/QtSolutions/qtsinglecoreapplication.pri \
src/QtSolutions/qtsingleapplication.pri
TRANSLATIONS += resources/translations/octopi_pt_BR.ts
TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
resources/translations/octopi_fr_FR.ts \
resources/translations/octopi_es_ES.ts \
resources/translations/octopi_es_419.ts \
resources/translations/octopi_es_AR.ts \
resources/translations/octopi_el.ts \
resources/translations/octopi_de.ts \
resources/translations/octopi_it.ts \
resources/translations/octopi_ro.ts \
resources/translations/octopi_tr_TR.ts \
resources/translations/octopi_ar.ts \
resources/translations/octopi_ca.ts \
resources/translations/octopi_bg.ts \
resources/translations/octopi_pl.ts \
resources/translations/octopi_id.ts \
resources/translations/octopi_da.ts \
resources/translations/octopi_cs.ts \
resources/translations/octopi_he.ts \
resources/translations/octopi_lt.ts \
resources/translations/octopi_nb.ts \
resources/translations/octopi_sr@latin.ts \
resources/translations/octopi_sr_RS.ts \
resources/translations/octopi_nl.ts \
resources/translations/octopi_ru.ts \
resources/translations/octopi_uz.ts \
resources/translations/octopi_fi.ts \
resources/translations/octopi_vi.ts \
resources/translations/octopi_en_GB.ts \
resources/translations/octopi_pt_PT.ts \
resources/translations/octopi_sv.ts \
resources/translations/octopi_hu.ts \
resources/translations/octopi_zh_TW.ts \
resources/translations/octopi_ms_MY.ts \
resources/translations/octopi_uk.ts \
resources/translations/octopi_sk.ts \
resources/translations/octopi_ja.ts \
resources/translations/octopi_eu.ts
greaterThan(QT_MAJOR_VERSION, 4){
TRANSLATIONS += resources/translations/octopi_ast.ts
}

155
repoeditor/addrepo.cpp Normal file
View File

@@ -0,0 +1,155 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "addrepo.h"
#include "ui_addrepo.h"
#include <QMessageBox>
#include <QFileDialog>
#include <QUrl>
AddRepo::AddRepo( QWidget *parent ) :
QDialog(parent),
ui(new Ui::AddRepo)
{
ui->setupUi( this );
connect( ui->buttonBox, SIGNAL( accepted() ),
SLOT( checkAndApply() ) );
connect( ui->locationCB, SIGNAL( currentIndexChanged( int ) ),
SLOT( locationChanged( int ) ) );
connect( ui->selectLocalDirectory, SIGNAL( clicked() ),
SLOT( selectLocalRepository() ) );
connect( ui->selectServerList, SIGNAL( clicked() ),
SLOT( selectServerList() ) );
ui->locationCB->setCurrentIndex( 1 ); // 0 : Include, 1 : Server
}
AddRepo::~AddRepo()
{
delete ui;
}
void AddRepo::setRepoName( const QString &name )
{
ui->repo->setText( name );
}
void AddRepo::setRepoLocation( const QString &location )
{
ui->location->setText( location );
}
void AddRepo::setLocationType( int type)
{
ui->locationCB->setCurrentIndex( type );
}
QString AddRepo::getRepoName() const
{
return ui->repo->text().trimmed();
}
QString AddRepo::getRepoLocation() const
{
return ui->location->text().trimmed();
}
int AddRepo::getLocationType() const
{
return ui->locationCB->currentIndex();
}
void AddRepo::checkAndApply()
{
if( ui->repo->text().remove( RepoConf::commentString ).trimmed().isEmpty() ) {
showError( tr( "The repository name field can't be blank." ) );
} else if ( RepoConf::matchRepo( RepoEntry::formatRepoName( ui->repo->text() ) ) ) {
QString prefix = "";
QString location = ui->locationCB->currentText() + " = " + ui->location->text();
bool valid = true;
if( !RepoConf::matchRepoDetails( location ) )
valid = false;
if( valid ) {
entry.setName( ui->repo->text() );
entry.setDetails( QStringList() << location );
done( QDialog::Accepted );
} else {
showError( tr( "The repository location field is not valid." ) );
}
} else {
showError( tr( "The repository name field is not valid." ) );
}
}
void AddRepo::locationChanged( int )
{
if( ui->locationCB->currentText() == "Server" ) {
ui->location->setPlaceholderText( tr( "Address of remote or local packages repository" ) );
ui->selectLocalDirectory->setVisible( true );
ui->selectServerList->setVisible( false );
} else {
ui->location->setPlaceholderText( tr( "Path to mirrors list file" ) );
ui->selectLocalDirectory->setVisible( false );
ui->selectServerList->setVisible( true );
}
}
void AddRepo::showError(QString error)
{
QMessageBox mb( QMessageBox::Critical,
tr( "Error" ),
tr( "Can't add repository." ) + QString( "\n" ) + error,
QMessageBox::Ok,
this);
mb.exec();
}
void AddRepo::selectLocalRepository()
{
QStringList list;
QFileDialog dialog( this );
dialog.setDirectory( "/" );
dialog.setWindowTitle( tr( "Select local repository" ) );
dialog.setFileMode( QFileDialog::Directory );
if( dialog.exec() )
list = dialog.selectedFiles();
if( list.count() > 0 )
ui->location->setText( ( ui->locationCB->currentIndex() == 1 ? "file://" : "") + list.at( 0 ) );
}
void AddRepo::selectServerList()
{
QStringList list;
QFileDialog dialog( this );
dialog.setDirectory( "/" );
dialog.setWindowTitle( tr( "Select mirrors list" ) );
dialog.setFileMode( QFileDialog::AnyFile );
if ( dialog.exec() )
list = dialog.selectedFiles();
if( list.count() > 0 )
ui->location->setText( list.at( 0 ) );
}

63
repoeditor/addrepo.h Normal file
View File

@@ -0,0 +1,63 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef ADDREPO_H
#define ADDREPO_H
#include <QDialog>
#include "repoconf.h"
#include "repoentry.h"
namespace Ui {
class AddRepo;
}
class AddRepo : public QDialog
{
Q_OBJECT
public:
explicit AddRepo( QWidget *parent = 0 );
~AddRepo();
RepoEntry entry;
void setRepoName( const QString & );
void setRepoLocation( const QString & );
void setLocationType( int );
QString getRepoName() const;
QString getRepoLocation() const;
int getLocationType() const;
private:
Ui::AddRepo *ui;
QString examples;
void showError( QString error );
private slots:
void checkAndApply();
void locationChanged( int );
void selectLocalRepository();
void selectServerList();
};
#endif // ADDREPO_H

173
repoeditor/addrepo.ui Normal file
View File

@@ -0,0 +1,173 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AddRepo</class>
<widget class="QDialog" name="AddRepo">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>613</width>
<height>106</height>
</rect>
</property>
<property name="windowTitle">
<string>Add Repository - Octopi</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Repository:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="repo">
<property name="placeholderText">
<string>Repository name</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Location:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QComboBox" name="locationCB">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string notr="true">Include</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Server</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QLineEdit" name="location">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="selectLocalDirectory">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="folder">
<normaloff/>
</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="selectServerList">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="document-open">
<normaloff/>
</iconset>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>478</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>142</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<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>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>AddRepo</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -0,0 +1,58 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "checkboxdelegate.h"
#include <QApplication>
#include <QCheckBox>
CheckBoxDelegate::CheckBoxDelegate( QObject *parent )
: QStyledItemDelegate(parent)
{
}
void CheckBoxDelegate::paint( QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index ) const
{
bool value = index.data().toBool();
QStyleOptionButton cbo;
cbo.rect = option.rect;
cbo.rect.setLeft( option.rect.center().x() - 10 );
cbo.state = value ? QStyle::State_On : QStyle::State_Off;
cbo.text = "";
cbo.state = cbo.state | QStyle::State_Enabled;
qApp->style()->drawControl( QStyle::CE_CheckBox,&cbo, painter );
}
bool CheckBoxDelegate::editorEvent( QEvent *event,
QAbstractItemModel *model,
const QStyleOptionViewItem &option,
const QModelIndex &index )
{
if( event->type() == QEvent::MouseButtonRelease )
return false;
model->setData( index, !index.data().toBool() );
return event->type() == QEvent::MouseButtonDblClick ? true : false;
}

View File

@@ -0,0 +1,41 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef CHECKBOXDELEGATE_H
#define CHECKBOXDELEGATE_H
#include <QStyledItemDelegate>
class CheckBoxDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit CheckBoxDelegate( QObject *parent = 0 );
void paint( QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index ) const;
bool editorEvent( QEvent *event,
QAbstractItemModel *model,
const QStyleOptionViewItem &option,
const QModelIndex &index );
};
#endif // CHECKBOXDELEGATE_H

52
repoeditor/main.cpp Normal file
View File

@@ -0,0 +1,52 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "repoeditor.h"
#include "repoconf.h"
#include "../src/QtSolutions/qtsingleapplication.h"
#include <QtGui/QApplication>
#include <QTranslator>
#include <QLocale>
#include <QLibraryInfo>
int main( int argc, char *argv[] )
{
QtSingleApplication app( "Repository Editor - Octopi", argc, argv );
//If there is already an instance running...
if (app.isRunning())
{
app.sendMessage("RAISE");
return 0;
}
app.sendMessage("RAISE");
QTranslator appTranslator;
appTranslator.load(":/resources/translations/octopi_repoeditor_" +
QLocale::system().name());
app.installTranslator(&appTranslator);
RepoEditor w;
app.setActivationWindow(&w);
w.show();
return app.exec();
}

View File

@@ -0,0 +1,35 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "optionsdelegate.h"
#include <QPlainTextEdit>
OptionsDelegate::OptionsDelegate( QObject *parent )
: QStyledItemDelegate( parent )
{
}
QWidget* OptionsDelegate::createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index ) const
{
QPlainTextEdit *pte = new QPlainTextEdit( parent );
return pte;
}

View File

@@ -0,0 +1,36 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef OPTIONSDELEGATE_H
#define OPTIONSDELEGATE_H
#include <QStyledItemDelegate>
class OptionsDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit OptionsDelegate( QObject *parent = 0 );
QWidget* createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index ) const;
};
#endif // OPTIONSDELEGATE_H

293
repoeditor/repoconf.cpp Normal file
View File

@@ -0,0 +1,293 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "repoconf.h"
#include <QApplication>
#include <QStyle>
#include <QFont>
#include <QFile>
#include <QTextStream>
#include <QMessageBox>
QString RepoConf::commentString = "";
QRegExp RepoConf::repoMatch = QRegExp();
QRegExp RepoConf::detailMatch = QRegExp();
RepoConf::RepoConf()
{
repoConfFilePath = "/etc/pacman.conf";
repoMatch = QRegExp("^\\[(?!(options|repo-name|\\[|\s))");
detailMatch = QRegExp("^(Server|Include)\\s*=\\s*.+");
RepoEntry::nameFilter = QRegExp("(\\s+|\\[|\\])");
commentString = "#";
RepoEntry::repoFormat = "[%repo%]";
loadConf( repoConfFilePath );
}
bool RepoConf::isEmpty(QString line)
{
return line.remove( commentString ).trimmed().isEmpty();
}
bool RepoConf::matchRepo( QString line ){
return line.remove( commentString ).trimmed().contains( repoMatch );
}
bool RepoConf::matchRepoDetails( QString line )
{
return line.remove( commentString ).trimmed().contains( detailMatch );
}
RepoEntry RepoConf::extractRepo( QString line )
{
line = line.trimmed();
bool active = line.mid( 0, commentString.length() ) != commentString;
return RepoEntry( line.remove( commentString ), active );
}
bool RepoConf::exists( const QString &name )
{
bool found=false;
for( int i=0; !found && i < entries.count(); ++i )
if( ( ( RepoEntry & )entries.at( i ) ).getName() == name)
found = true;
return found;
}
bool RepoConf::loadConf( const QString &eFile )
{
QFile confFile( eFile );
QTextStream confFileStream( &confFile );
RepoEntry actual;
bool preamble = true;
if( !confFile.exists() || !confFile.open( QIODevice::ReadOnly ) ) {
return false;
}
RepoEntry::commentString = RepoConf::commentString;
beginResetModel();
entries.clear();
QStringList comments;
while( !confFileStream.atEnd() ) {
QString line = confFileStream.readLine();
bool commented = !isEmpty( line ) &&
line.trimmed().mid( 0, commentString.length() ) == commentString;
if( !preamble && isEmpty( line ) ) {
actual.setDetailsComments( comments );
comments.clear();
} else if( matchRepo( line ) ) {
if( preamble )
preamble = false;
if( actual.isValid() )
addEntry( actual );
actual = extractRepo( line );
actual.setComments( comments );
comments.clear();
} else if( !preamble && matchRepoDetails( line ) ) {
if( actual.isActive() && commented )
actual.addDetailsComment( line );
else actual.addDetail( line.remove( commentString ) );
} else if( !preamble && commented )
comments << line;
else if( preamble ) {
if( isEmpty(line) || !commented ) {
this->preamble << comments << line;
comments.clear();
} else if( commented )
comments << line;
}
}
if( actual.isValid() )
addEntry(actual);
endResetModel();
return true;
}
void RepoConf::addEntry( const RepoEntry & entry )
{
beginInsertRows( QModelIndex(), entries.count(), entries.count() );
entries.push_back( entry );
endInsertRows();
}
void RepoConf::reload()
{
loadConf( repoConfFilePath );
}
bool RepoConf::saveChanges( const QString & backup )
{
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 );
if( QFile::exists( backup ) && mbexists.exec() == QMessageBox::Yes ) {
QFile::remove( 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;
}
}
QFile confFile( repoConfFilePath );
if( !confFile.open( QIODevice::WriteOnly ) )
return false;
confFile.write( toString().toLatin1() );
confFile.close();
reload();
return true;
}
bool RepoConf::removeRows( int row, int count, const QModelIndex & )
{
beginRemoveRows( QModelIndex(), row, row + count - 1);
for( int i = 0; i < count; ++i ) {
entries.removeAt( row + i );
}
endRemoveRows();
}
QString RepoConf::toString() const
{
QStringList ret;
for( int i = 0; i < entries.count(); ++i ) {
ret << ( ( RepoEntry & )entries.at( i ) ).toString();
}
return preamble.join( "\n" ).trimmed() + QString( "\n\n" ) + ret.join( "\n\n" );
}
bool RepoConf::detailsExists() const
{
bool found = false;
for( int i = 0; !found && i < entries.count(); ++i )
found = !( ( const RepoEntry & )entries.at( i ) ).getDetails().isEmpty();
return found;
}
QVariant RepoConf::headerData( int section, Qt::Orientation orientation, int role ) const
{
QStringList headers;
headers << tr( "Active" ) << tr( "Repository" ) << tr( "Options" );
switch( role ) {
case Qt::DisplayRole:
if( orientation == Qt::Horizontal ) {
return headers.at( section );
} else {
return section + 1;
}
break;
}
return QVariant();
}
QVariant RepoConf::data( const QModelIndex &index, int role ) const
{
switch( role ){
case Qt::DisplayRole :
case Qt::EditRole :
switch( index.column() ) {
case 0 :
return ( ( RepoEntry & )entries.at( index.row() ) ).isActive();
case 1 :
return ( ( RepoEntry & )entries.at( index.row() ) ).getName();
case 2 :
return ( ( RepoEntry & )entries.at( index.row() ) ).getDetails().join( "\n" );
}
break;
case Qt::FontRole :
switch( index.column() ) {
case 1 :
QFont font( qApp->font() );
font.setBold( true );
return font;
}
break;
case Qt::ToolTipRole :
switch( index.column() ) {
case 2 :
return ( ( ( ( RepoEntry & )entries.at( index.row() ) ).getDetailsComments().isEmpty() )
? ( ( ( RepoEntry & )entries.at( index.row() ) ).getComments().join( "\n" ) )
: ( ( ( RepoEntry & )entries.at( index.row() ) ).getDetailsComments().join( "\n" ) ) );
default :
return ( ( RepoEntry & )entries.at( index.row() ) ).getComments().join( "\n" );
}
break;
}
return QVariant();
}
bool RepoConf::setData( const QModelIndex &index, const QVariant &value, int role )
{
switch( role ) {
case Qt::DisplayRole :
case Qt::EditRole :
switch( index.column() ) {
case 0 :
( ( RepoEntry & )entries.at( index.row() ) ).setActive( value.toBool() );
break;
case 1 :
if( !matchRepo( RepoEntry::formatRepoName( value.toString() ) ) )
return false;
( ( RepoEntry & )entries.at( index.row() ) ).setName( value.toString() );
break;
case 2:
QStringList list = value.toString().trimmed().split( "\n" );
for( int i = 0; i < list.count(); ++i) {
list[i] = list.at( i ).trimmed();
if( !matchRepoDetails( list.at(i) ) )
return false;
}
( ( RepoEntry & )entries.at( index.row() ) ).setDetails( list );
break;
}
emit dataChanged( index, index );
return true;
}
return false;
}

113
repoeditor/repoconf.h Normal file
View File

@@ -0,0 +1,113 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef REPOCONF_H
#define REPOCONF_H
#include <QAbstractTableModel>
#include <QList>
#include <QStringList>
#include "repoentry.h"
class RepoConf : public QAbstractTableModel
{
Q_OBJECT
private:
QList<RepoEntry> entries;
QStringList preamble;
QString repoConfFilePath;
bool isEmpty( QString line );
RepoEntry extractRepo( QString line );
public:
explicit RepoConf();
static QString commentString;
static QRegExp repoMatch;
static QRegExp detailMatch;
static bool matchRepo( QString line );
static bool matchRepoDetails( QString line );
QString toString() const;
RepoEntry at( int i ) const {
return ( ( i <= entries.count() ) ? entries.at(i) : RepoEntry() );
}
int count() const {
return entries.count();
}
bool detailsExists() const;
void addEntry( const RepoEntry & entry );
bool exists( const QString & name );
const QString & getConfPath() const {
return repoConfFilePath;
}
//Table Model
int rowCount( const QModelIndex & ) const {
return count();
}
int columnCount( const QModelIndex & ) const {
return detailsExists()?3:2;
}
QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
QVariant headerData( int section, Qt::Orientation orientation, int role ) const;
Qt::ItemFlags flags( const QModelIndex & ) const {
return Qt::ItemIsSelectable|Qt::ItemIsEnabled|Qt::ItemIsEditable;
}
bool setData( const QModelIndex &index, const QVariant &value, int role );
public slots:
bool loadConf( const QString &eFile );
void reload(); //Reloads entries from configured file
bool saveChanges( const QString & backup = "" );
void moveUp( int i ) {
if( entries.count() && i > 0 ) {
entries.swap( i, i - 1 );
emit dataChanged( QModelIndex(), QModelIndex() );
}
}
void moveDown( int i ){
if( entries.count() && i < entries.count() - 1 ) {
entries.swap( i, i + 1 );
emit dataChanged( QModelIndex(), QModelIndex() );
}
}
bool removeRows(int row, int count, const QModelIndex &);
};
#endif // REPOCONF_H

219
repoeditor/repoeditor.cpp Normal file
View File

@@ -0,0 +1,219 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "repoeditor.h"
#include "ui_repoeditor.h"
#include "repoconf.h"
#include "checkboxdelegate.h"
#include "optionsdelegate.h"
#include <QFileDialog>
#include <QMessageBox>
#include <QProcess>
RepoEditor::RepoEditor( QWidget *parent )
: QDialog( parent )
, ui( new Ui::RepoEditor )
{
ui->setupUi( this );
repoConf = new RepoConf();
addRepoDialog = new AddRepo( this );
ui->tableView->setModel( repoConf );
ui->tableView->setItemDelegateForColumn( 0, new CheckBoxDelegate( this) );
ui->tableView->setItemDelegateForColumn( 2, new OptionsDelegate( this) );
ui->tableView->setColumnWidth( 1, 133 );
ui->backupFile->setText( repoConf->getConfPath() + ".bak" );
connect( ui->moveUp, SIGNAL( clicked() ),
SLOT( moveUp() ) );
connect( ui->moveDown, SIGNAL( clicked() ),
SLOT( moveDown() ) );
QItemSelectionModel *selModel = ui->tableView->selectionModel();
connect( selModel, SIGNAL( selectionChanged( QItemSelection,QItemSelection ) ),
SLOT( updateMovers( QItemSelection,QItemSelection ) ) );
connect( ui->buttonBox->button( QDialogButtonBox::Reset ), SIGNAL( clicked() ),
repoConf, SLOT( reload() ) );
connect( ui->buttonBox->button( QDialogButtonBox::Save ), SIGNAL( clicked() ),
SLOT( apply() ) );
connect( ui->buttonBox->button( QDialogButtonBox::Discard ), SIGNAL( clicked() ),
SLOT( discard() ) );
connect( ui->remove, SIGNAL( clicked() ),
SLOT( removeEntry() ) );
connect( ui->add, SIGNAL( clicked() ),
SLOT( addEntry() ) );
connect( ui->edit, SIGNAL( clicked() ),
SLOT( editEntry() ) );
connect( ui->loadBackup, SIGNAL( clicked() ),
SLOT( loadBackup() ) );
ui->tableView->selectRow(0);
}
RepoEditor::~RepoEditor()
{
delete ui;
}
void RepoEditor::loadBackup()
{
RepoConf conf;
QString file = QFileDialog::getOpenFileName( this );
if( file.isEmpty() )
return;
conf.loadConf( file );
if( !conf.count() ) {
QMessageBox mb(QMessageBox::Critical,
tr( "Can't load backup file" ),
tr( "Selected file is not valid" ),
QMessageBox::Ok,
this);
mb.exec();
} else {
repoConf->loadConf( file );
ui->backupFile->setText( repoConf->getConfPath() + ".bak" );
}
}
void RepoEditor::addEntry()
{
addRepoDialog->setRepoName("");
addRepoDialog->setRepoLocation("");
if( addRepoDialog->exec() == QDialog::Accepted ) {
if( !repoConf->exists( addRepoDialog->entry.getName() ) )
repoConf->addEntry( addRepoDialog->entry );
}
}
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
QString location = ui->tableView->model()->data(locationMI).toString();
// take the type and address
QRegExp locationMatch("^(Server|Include)\\s*=\\s*(.+)");
locationMatch.indexIn(location);
location = locationMatch.cap(2);
// fill remaining fields
addRepoDialog->setRepoLocation(location);
addRepoDialog->setLocationType(locationMatch.cap(1) == "Server" ? 1 : 0);
if( addRepoDialog->exec() == QDialog::Accepted ) {
ui->tableView->model()->setData( repoMI, addRepoDialog->getRepoName() );
ui->tableView->model()->setData( locationMI, ( addRepoDialog->getLocationType() == 0 ? "Include = " : "Server = " ) + addRepoDialog->getRepoLocation() );
}
}
void RepoEditor::apply()
{
if( repoConf->saveChanges( ui->checkBox->isChecked() ? ui->backupFile->text() : "" ) ) {
QMessageBox::information( this,
tr( "Success" ),
tr( "Repositories configuration successfully saved." ),
QMessageBox::Ok );
qApp->quit();
} else {
QMessageBox::critical( this,
tr( "Error" ),
tr( "Repositories configuration not saved." ),
QMessageBox::Ok );
}
}
void RepoEditor::discard()
{
done( QDialog::Rejected );
}
void RepoEditor::updateMovers( const QItemSelection &cur, const QItemSelection &)
{
QModelIndexList list = cur.indexes();
if( !list.count() )
return;
int row = list.at( 0 ).row();
if( row > 0 )
ui->moveUp->setEnabled( true );
else
ui->moveUp->setEnabled( false );
if( row < ui->tableView->model()->rowCount() - 1)
ui->moveDown->setEnabled( true );
else
ui->moveDown->setEnabled( false );
}
void RepoEditor::moveUp()
{
QModelIndexList list = ui->tableView->selectionModel()->selectedRows();
if( !list.count() )
return;
int row = list.at( 0 ).row();
repoConf->moveUp( row );
ui->tableView->selectRow( row - 1 );
}
void RepoEditor::moveDown()
{
QModelIndexList list = ui->tableView->selectionModel()->selectedRows();
if( !list.count() )
return;
int row = list.at( 0 ).row();
repoConf->moveDown( row );
ui->tableView->selectRow( row + 1 );
}
void RepoEditor::removeEntry()
{
QModelIndexList list = ui->tableView->selectionModel()->selectedRows();
if( !list.count() )
return;
int row = list.at( 0 ).row();
repoConf->removeRow( row );
}

68
repoeditor/repoeditor.h Normal file
View File

@@ -0,0 +1,68 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef REPOEDITOR_H
#define REPOEDITOR_H
#include <QDialog>
#include <QItemSelection>
#include "repoconf.h"
#include "addrepo.h"
namespace Ui {
class RepoEditor;
}
class RepoEditor : public QDialog
{
Q_OBJECT
RepoConf *repoConf;
AddRepo *addRepoDialog;
public:
explicit RepoEditor( QWidget *parent = 0 );
~RepoEditor();
QString toString() const {
return repoConf->toString();
}
private:
Ui::RepoEditor *ui;
public slots:
void moveUp();
void moveDown();
void updateMovers( const QItemSelection &, const QItemSelection & );
void apply();
void discard();
void removeEntry();
void addEntry();
void editEntry();
void loadBackup();
};
#endif // REPOEDITOR_H

52
repoeditor/repoeditor.pro Normal file
View File

@@ -0,0 +1,52 @@
#-------------------------------------------------
#
# Project created by QtCreator 2013-02-21T18:57:08
#
#-------------------------------------------------
TARGET = octopi-repoeditor
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += qt console warn_on debug
TEMPLATE = app
DESTDIR += bin
OBJECTS_DIR += build
MOC_DIR += build
UI_DIR += build
HEADERS += addrepo.h \
checkboxdelegate.h \
optionsdelegate.h \
repoconf.h \
repoeditor.h \
repoentry.h \
../src/QtSolutions/qtsingleapplication.h \
../src/QtSolutions/qtlocalpeer.h \
../src/QtSolutions/qtlockedfile.h \
../src/QtSolutions/qtsinglecoreapplication.h
SOURCES += addrepo.cpp \
checkboxdelegate.cpp \
main.cpp \
optionsdelegate.cpp \
repoconf.cpp \
repoeditor.cpp \
repoentry.cpp \
../src/QtSolutions/qtsingleapplication.cpp \
../src/QtSolutions/qtlocalpeer.cpp \
../src/QtSolutions/qtlockedfile.cpp \
../src/QtSolutions/qtsinglecoreapplication.cpp
FORMS += addrepo.ui \
repoeditor.ui
RESOURCES += \
resources.qrc
TRANSLATIONS += resources/translations/octopi_repoeditor_en.ts \
resources/translations/octopi_repoeditor_it.ts

255
repoeditor/repoeditor.ui Normal file
View File

@@ -0,0 +1,255 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>RepoEditor</class>
<widget class="QDialog" name="RepoEditor">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>900</width>
<height>400</height>
</rect>
</property>
<property name="windowTitle">
<string>Repository Editor - Octopi</string>
</property>
<property name="windowIcon">
<iconset resource="resources.qrc">
<normaloff>:/resources/images/octopi_red.png</normaloff>:/resources/images/octopi_red.png</iconset>
</property>
<property name="modal">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Available Repositories</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QTableView" name="tableView">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="showGrid">
<bool>false</bool>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
<property name="cornerButtonEnabled">
<bool>false</bool>
</property>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>66</number>
</attribute>
<attribute name="horizontalHeaderHighlightSections">
<bool>false</bool>
</attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>10</number>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="edit">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Edit</string>
</property>
<property name="icon">
<iconset theme="edit-rename">
<normaloff/>
</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="add">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Add</string>
</property>
<property name="icon">
<iconset theme="list-add">
<normaloff/>
</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="remove">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Remove</string>
</property>
<property name="icon">
<iconset theme="list-remove">
<normaloff/>
</iconset>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="moveUp">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Move Up</string>
</property>
<property name="icon">
<iconset theme="go-up">
<normaloff/>
</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="moveDown">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Move Down</string>
</property>
<property name="icon">
<iconset theme="go-down">
<normaloff/>
</iconset>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="horizontalGroupBox">
<property name="title">
<string>Backup</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Create backup on save</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="loadBackup">
<property name="text">
<string>Load a backup file</string>
</property>
<property name="icon">
<iconset theme="document-open">
<normaloff/>
</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Backup file:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="backupFile"/>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Discard|QDialogButtonBox::Reset|QDialogButtonBox::Save</set>
</property>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="resources.qrc"/>
</resources>
<connections>
<connection>
<sender>checkBox</sender>
<signal>toggled(bool)</signal>
<receiver>backupFile</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>117</x>
<y>262</y>
</hint>
<hint type="destinationlabel">
<x>411</x>
<y>298</y>
</hint>
</hints>
</connection>
</connections>
</ui>

112
repoeditor/repoentry.cpp Normal file
View File

@@ -0,0 +1,112 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "repoentry.h"
QRegExp RepoEntry::nameFilter = QRegExp( "" );
QString RepoEntry::commentString = "";
QString RepoEntry::repoFormat = "";
RepoEntry::RepoEntry()
: valid( false )
, active( false )
{
}
RepoEntry::RepoEntry( QString name, bool active )
: active( active )
, valid( true )
, name( name )
{
}
QString RepoEntry::getName() const
{
if( !nameFilter.isValid() || !isValid() )
return "";
QString ret = name;
return ret.remove( nameFilter );
}
void RepoEntry::addDetail( const QString & detail )
{
details << detail;
}
void RepoEntry::setDetails( const QStringList &details )
{
this->details = details;
}
void RepoEntry::addComment( const QString &comment )
{
this->comments << comment;
}
void RepoEntry::setName( const QString &name )
{
this->name = formatRepoName( name );
valid = true;
}
QString RepoEntry::toString() const
{
QStringList list,list2,retList;
if( !isValid() )
return "";
if( comments.isEmpty() )
list << ( active ? name : commentString + name );
else
list << comments.join( "\n" ) << name;
if( detailsComments.isEmpty() ) {
if( !active && !details.isEmpty() ) {
QStringList detailsCopy = details;
detailsCopy[0] = commentString + details.at( 0 );
list2 << detailsCopy;
} else
list2 << details;
} else
list2 << detailsComments.join( "\n" ) << details;
retList << list.join( QString( "\n" ) + ( active ? "" : commentString ) );
retList << list2.join( QString( "\n" ) + ( active ? "" : commentString ) );
return retList.join( "\n" );
}
void RepoEntry::setRealName( const QString &realName )
{
name = realName;
valid = true;
}
bool RepoEntry::setActive( bool active )
{
if( !valid )
return false;
this->active = active;
return true;
}

106
repoeditor/repoentry.h Normal file
View File

@@ -0,0 +1,106 @@
/*
Copyright 2011 Simone Tobia
This file is part of AppSet.
AppSet 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.
AppSet 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 AppSet; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef REPOENTRY_H
#define REPOENTRY_H
#include <QString>
#include <QStringList>
#include <QRegExp>
class RepoEntry{
private:
QString name; //Contains the formatted name (e.g. [main])
QStringList details;
QStringList comments;
QStringList detailsComments;
bool valid;
bool active;
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 QString commentString;
static QString repoFormat;
static QString formatRepoName( const QString & name ) {
QString aux = repoFormat;
return aux.replace("%repo%",name);
}
QString getName() const; //returns the unformatted repo name
const QStringList & getDetails() const {
return details;
}
void addDetail( const QString & detail );
void setDetails( const QStringList & details );
void addComment( const QString & comment );
void setComments( const QStringList & comments ) {
this->comments = comments;
}
void addComments( const QStringList & comments ) {
this->comments << comments;
}
const QStringList & getComments() const {
return comments;
}
void addDetailsComment( const QString & comment ) {
detailsComments << comment;
}
const QStringList & getDetailsComments() const {
return detailsComments;
}
void setDetailsComments( const QStringList & comments ) {
detailsComments = comments;
}
const QString & getRealName(){
return name;
}
void setRealName( const QString & realName );
void setName( const QString & name );
bool isValid() const {
return valid;
}
bool isActive() const {
return active;
}
bool setActive( bool active );
QString toString() const;
};
#endif // REPOENTRY_H

5
repoeditor/resources.qrc Normal file
View File

@@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/">
<file>resources/images/octopi_red.png</file>
</qresource>
</RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,204 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="en_US">
<context>
<name>AddRepo</name>
<message>
<location filename="../../addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.ui" line="22"/>
<source>Repository:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.ui" line="32"/>
<source>Repository name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.ui" line="39"/>
<source>Location:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="115"/>
<source>Path to mirrors list file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="124"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="149"/>
<source>Select mirrors list</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RepoConf</name>
<message>
<location filename="../../repoconf.cpp" line="148"/>
<location filename="../../repoconf.cpp" line="157"/>
<source>Backup error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="149"/>
<source>Backup file already exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="149"/>
<source>Do you want to overwrite it?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="158"/>
<source>Can&apos;t create backup file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="158"/>
<source>Do you want to proceed without a backup?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="211"/>
<source>Active</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="211"/>
<source>Repository</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="211"/>
<source>Location</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RepoEditor</name>
<message>
<location filename="../../repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="27"/>
<source>Available Repositories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="75"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="90"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="105"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="133"/>
<source>Move Up</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="148"/>
<source>Move Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="165"/>
<source>Backup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="173"/>
<source>Create backup on save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="196"/>
<source>Load a backup file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="212"/>
<source>Backup file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="99"/>
<source>Can&apos;t load backup file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="100"/>
<source>Selected file is not valid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="149"/>
<source>Success</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="155"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,204 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="it_IT">
<context>
<name>AddRepo</name>
<message>
<location filename="../../addrepo.ui" line="14"/>
<source>Add Repository - Octopi</source>
<translation type="unfinished">Aggiunta repository - Octopi</translation>
</message>
<message>
<location filename="../../addrepo.ui" line="22"/>
<source>Repository:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../addrepo.ui" line="32"/>
<source>Repository name</source>
<translation type="unfinished">Nome repository</translation>
</message>
<message>
<location filename="../../addrepo.ui" line="39"/>
<source>Location:</source>
<translation type="unfinished">Posizione:</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="86"/>
<source>The repository name field can&apos;t be blank.</source>
<translation type="unfinished">Il nome del repository non può essere vuoto.</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="101"/>
<source>The repository location field is not valid.</source>
<translation type="unfinished">La posizione del repository non è valida.</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="104"/>
<source>The repository name field is not valid.</source>
<translation type="unfinished">Il nome del repository non è valido.</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="111"/>
<source>Address of remote or local packages repository</source>
<translation type="unfinished">Indirizzo remoto o locale del repository dei pacchetti</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="115"/>
<source>Path to mirrors list file</source>
<translation type="unfinished">Percorso al file dei mirror</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="124"/>
<source>Error</source>
<translation type="unfinished">Errore</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="125"/>
<source>Can&apos;t add repository.</source>
<translation type="unfinished">Non è possibile aggiungere il repository.</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="136"/>
<source>Select local repository</source>
<translation type="unfinished">Seleziona un repository locale</translation>
</message>
<message>
<location filename="../../addrepo.cpp" line="149"/>
<source>Select mirrors list</source>
<translation type="unfinished">Seleziona l&apos;elenco dei mirror</translation>
</message>
</context>
<context>
<name>RepoConf</name>
<message>
<location filename="../../repoconf.cpp" line="148"/>
<location filename="../../repoconf.cpp" line="157"/>
<source>Backup error</source>
<translation type="unfinished">Errore durante il backup</translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="149"/>
<source>Backup file already exists.</source>
<translation type="unfinished">Il file di backup esiste già.</translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="149"/>
<source>Do you want to overwrite it?</source>
<translation type="unfinished">Lo si vuole sovrascriverlo?</translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="158"/>
<source>Can&apos;t create backup file.</source>
<translation type="unfinished">Non è possibile creare il file di backup.</translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="158"/>
<source>Do you want to proceed without a backup?</source>
<translation type="unfinished">Si vuole procedere senza il backup?</translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="211"/>
<source>Active</source>
<translation type="unfinished">Attivo</translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="211"/>
<source>Repository</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoconf.cpp" line="211"/>
<source>Location</source>
<translation type="unfinished">Posizione</translation>
</message>
</context>
<context>
<name>RepoEditor</name>
<message>
<location filename="../../repoeditor.ui" line="14"/>
<source>Repository Editor - Octopi</source>
<translation type="unfinished">Editor dei repository - Octopi</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="27"/>
<source>Available Repositories</source>
<translation type="unfinished">Repository disponibili</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="75"/>
<source>Edit</source>
<translation type="unfinished">Modifica</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="90"/>
<source>Add</source>
<translation type="unfinished">Aggiungi</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="105"/>
<source>Remove</source>
<translation type="unfinished">Rimuovi</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="133"/>
<source>Move Up</source>
<translation type="unfinished">Sposta su</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="148"/>
<source>Move Down</source>
<translation type="unfinished">sposta giù</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="165"/>
<source>Backup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="173"/>
<source>Create backup on save</source>
<translation type="unfinished">Crea backup durante il salvataggio</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="196"/>
<source>Load a backup file</source>
<translation type="unfinished">Caricare il file di backup</translation>
</message>
<message>
<location filename="../../repoeditor.ui" line="212"/>
<source>Backup file:</source>
<translation type="unfinished">File di backup:</translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="99"/>
<source>Can&apos;t load backup file</source>
<translation type="unfinished">Non è possibile caricare il file di backup</translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="100"/>
<source>Selected file is not valid</source>
<translation type="unfinished">Il file selezionato non è valido</translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="149"/>
<source>Success</source>
<translation type="unfinished">Successo</translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="150"/>
<source>Repositories configuration successfully saved.</source>
<translation type="unfinished">Configurazione dei repository salvata con successo.</translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="155"/>
<source>Error</source>
<translation type="unfinished">Errore</translation>
</message>
<message>
<location filename="../../repoeditor.cpp" line="156"/>
<source>Repositories configuration not saved.</source>
<translation type="unfinished">Configurazione dei repositori non salvata.</translation>
</message>
</context>
</TS>

View File

@@ -1,12 +1,5 @@
<RCC>
<qresource prefix="/">
<file>resources/images/octopi_red.png</file>
<file>resources/images/octopi_yellow.png</file>
<file>resources/images/esf-search.png</file>
<file>resources/images/esf-clear-active.png</file>
<file>resources/images/esf-clear-hover.png</file>
<file>resources/images/esf-border.png</file>
<file>resources/images/esf-clear.png</file>
<file>resources/styles/branch-closed_BW.png</file>
<file>resources/styles/branch-closed.png</file>
<file>resources/styles/branch-end.png</file>
@@ -14,6 +7,15 @@
<file>resources/styles/branch-open_BW.png</file>
<file>resources/styles/branch-open.png</file>
<file>resources/styles/vline.png</file>
<file>resources/images/octopi_transparent.png</file>
<file>resources/images/octopi_red.png</file>
<file>resources/images/octopi_yellow.png</file>
<file>resources/images/octopi_green.png</file>
<file>resources/images/esf-search.png</file>
<file>resources/images/esf-clear-active.png</file>
<file>resources/images/esf-clear-hover.png</file>
<file>resources/images/esf-border.png</file>
<file>resources/images/esf-clear.png</file>
<file>resources/images/installed.png</file>
<file>resources/images/noninstalled.png</file>
<file>resources/images/toinstall.png</file>
@@ -22,9 +24,9 @@
<file>resources/images/binary.png</file>
<file>resources/images/outdated.png</file>
<file>resources/images/unrequired.png</file>
<file>resources/images/foreign.png</file>
<file>resources/images/commit.png</file>
<file>resources/images/refresh.png</file>
<file>resources/images/fast_forward.png</file>
<file>resources/images/exit.png</file>
<file>resources/images/rollback.png</file>
<file>resources/images/editfile.png</file>
@@ -36,6 +38,49 @@
<file>resources/images/install_item.png</file>
<file>resources/images/remove_item.png</file>
<file>resources/images/find.png</file>
<file>resources/images/rss.png</file>
<file>resources/images/newer.png</file>
<file>resources/images/foreign_green.png</file>
<file>resources/images/foreign_red.png</file>
<file>resources/images/show_groups.png</file>
<file>resources/images/mirror-check.png</file>
<file>resources/translations/octopi_pt_BR.qm</file>
<file>resources/translations/octopi_fr_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>
<file>resources/translations/octopi_it.qm</file>
<file>resources/translations/octopi_ro.qm</file>
<file>resources/translations/octopi_tr_TR.qm</file>
<file>resources/translations/octopi_ar.qm</file>
<file>resources/translations/octopi_ca.qm</file>
<file>resources/translations/octopi_bg.qm</file>
<file>resources/translations/octopi_pl.qm</file>
<file>resources/translations/octopi_id.qm</file>
<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_lt.qm</file>
<file>resources/translations/octopi_nb.qm</file>
<file>resources/translations/octopi_sr@latin.qm</file>
<file>resources/translations/octopi_nl.qm</file>
<file>resources/translations/octopi_ru.qm</file>
<file>resources/translations/octopi_uz.qm</file>
<file>resources/translations/octopi_fi.qm</file>
<file>resources/translations/octopi_vi.qm</file>
<file>resources/translations/octopi_es_419.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_sr_RS.qm</file>
<file>resources/translations/octopi_hu.qm</file>
<file>resources/translations/octopi_zh_TW.qm</file>
<file>resources/translations/octopi_ms_MY.qm</file>
<file>resources/translations/octopi_uk.qm</file>
<file>resources/translations/octopi_sk.qm</file>
<file>resources/translations/octopi_ast.qm</file>
<file>resources/translations/octopi_es_AR.qm</file>
<file>resources/translations/octopi_ja.qm</file>
<file>resources/translations/octopi_eu.qm</file>
</qresource>
</RCC>

View File

@@ -1,56 +0,0 @@
<h2>Octopi</h2>
<h3><p>A Qt4-based Pacman frontend,
licensed under the terms of <a style="color:'#4BC413'" href="http://www.gnu.org/licenses/gpl-2.0.html">GPL v2</a>.</p></h3>
<h4><p>For more information, visit:
<a style="color:'#4BC413'" href="http://octopiproject.wordpress.com">http://octopiproject.wordpress.com</a>.</p></h4>
<br>
Package classification:
<ul type="square">
<li><img height="16" width="16" src=":/resources/images/installed.png"> An installed package</li>
<li><img height="16" width="16" src=":/resources/images/unrequired.png"> An installed package (not required by others)</li>
<li><img height="16" width="16" src=":/resources/images/foreign.png"> A foreign package, installed from AUR</li>
<li><img height="16" width="16" src=":/resources/images/noninstalled.png"> A non installed package</li>
<li><img height="16" width="16" src=":/resources/images/outdated.png"> An outdated package</li>
</ul>
Basic usage help:
<ul>
<li>Position the mouse over a package to see its description</li>
<li>Double click an installed package to see its contents</li>
<li>Right click package to install/reinstall or remove it</li>
</ul>
Alt+key sequences:
<ul>
<li>Alt+1 to swtich to "Info" tab</li>
<li>Alt+2 to swtich to "Files" tab</li>
<li>Alt+3 to swtich to "Transaction" tab</li>
<li>Alt+4 to swtich to "Output" tab</li>
<li>Alt+5 to swtich to "News" tab</li>
<li>Alt+6 or "F1" to show this help page</li>
</ul>
Control+key sequences:
<ul>
<li>Ctrl+D or "File/Sync database" to sync the local database with latest remote changes (pacman -Sy)</li>
<li>Ctrl+U or "File/System upgrade" to make a full system upgrade (pacman -Su)</li>
<li>Ctrl+L to find a package in the package list</li>
<li>Ctrl+N or "View/Non installed" to show/hide non installed packages</li>
<li>Ctrl+M or "Transaction/Commit" to start installation/removal of selected packages</li>
<li>Ctrl+B or "Transaction/Rollback" to clear the selection of to be removed/installed packages</li>
<li>Ctrl+G or "File/Get latest distro news" to retrieve the latest RSS based distro news</li>
<li>Ctrl+Q or "File/Exit" to exit the application</li>
</ul>
Control+shift+key sequences:
<ul>
<li>Ctrl+Shift+C to clean local packages cache (pacman -Sc)</li>
<li>Ctrl+Shift+G to display all package groups</li>
</ul>
F+key sequences:
<ul>
<li>F1 to show this help page</li>
<li>F4 to open a Terminal within the selected directory at Files tab</li>
<li>F6 to open a File Manager whitin the selected directory at Files tab</li>
<li>F10 to maximize/demaximize package list view</li>
<li>F12 to maximize/demaximize Tab's view</li>
</ul>
<p>
<br>
<i>Alexandre Albuquerque Arnt - Author</i>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 B

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 873 B

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

BIN
resources/images/newer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 857 B

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 328 B

BIN
resources/images/rss.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 856 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 460 B

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

View File

@@ -0,0 +1,840 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en" version="2.0">
<context>
<name>MainWindow</name>
<message>
<source>Octopi</source>
<translation>Octopi</translation>
</message>
<message>
<source>Info</source>
<translation>Info</translation>
</message>
<message>
<source>Files</source>
<translation>Files</translation>
</message>
<message>
<source>Transaction</source>
<translation>Transaction</translation>
</message>
<message>
<source>Output</source>
<translation>Output</translation>
</message>
<message>
<source>Help</source>
<translation>Help</translation>
</message>
<message>
<source>View</source>
<translation>View</translation>
</message>
<message>
<source>File</source>
<translation>File</translation>
</message>
<message>
<source>Search</source>
<translation>Search</translation>
</message>
<message>
<source>About</source>
<translation>About</translation>
</message>
<message>
<source>Non installed</source>
<translation>Non installed</translation>
</message>
<message>
<source>Ctrl+N</source>
<translation>Ctrl+N</translation>
</message>
<message>
<source>Commit</source>
<translation>Commit</translation>
</message>
<message>
<source>Ctrl+M</source>
<translation>Ctrl+M</translation>
</message>
<message>
<source>Rollback</source>
<translation>Rollback</translation>
</message>
<message>
<source>Ctrl+B</source>
<translation>Ctrl+B</translation>
</message>
<message>
<source>Sync database</source>
<translation>Sync database</translation>
</message>
<message>
<source>Ctrl+D</source>
<translation>Ctrl+D</translation>
</message>
<message>
<source>Exit</source>
<translation>Exit</translation>
</message>
<message>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
<source>System upgrade</source>
<translation>System upgrade</translation>
</message>
<message>
<source>Ctrl+U</source>
<translation>Ctrl+U</translation>
</message>
<message>
<source>Install</source>
<translation>Install</translation>
</message>
<message>
<source>Remove</source>
<translation>Remove</translation>
</message>
<message>
<source>Outdated packages</source>
<translation>Outdated packages</translation>
</message>
<message>
<source>Get latest distro news</source>
<translation>Get latest distro news</translation>
</message>
<message>
<source>Ctrl+G</source>
<translation>Ctrl+G</translation>
</message>
<message>
<source>Remove group</source>
<translation>Remove group</translation>
</message>
<message>
<source>Install group</source>
<translation>Install group</translation>
</message>
<message>
<source>Collapse item</source>
<translation>Collapse item</translation>
</message>
<message>
<source>Expand item</source>
<translation>Expand item</translation>
</message>
<message>
<source>Collapse all items</source>
<translation>Collapse all items</translation>
</message>
<message>
<source>Expand all items</source>
<translation>Expand all items</translation>
</message>
<message>
<source>Open file</source>
<translation>Open file</translation>
</message>
<message>
<source>Edit file</source>
<translation>Edit file</translation>
</message>
<message>
<source>Open directory</source>
<translation>Open directory</translation>
</message>
<message>
<source>Open terminal here</source>
<translation>Open terminal here</translation>
</message>
<message>
<source>Remove item</source>
<translation>Remove item</translation>
</message>
<message>
<source>Remove items</source>
<translation>Remove items</translation>
</message>
<message>
<source>By description</source>
<translation>By description</translation>
</message>
<message>
<source>By name</source>
<translation>By name</translation>
</message>
<message>
<source>Find a file</source>
<translation>Find a file</translation>
</message>
<message>
<source>Open root terminal</source>
<translation>Open root terminal</translation>
</message>
<message>
<source>Usage</source>
<translation>Usage</translation>
</message>
<message>
<source>F1</source>
<translation>F1</translation>
</message>
<message>
<source>Install local package...</source>
<translation>Install local package...</translation>
</message>
<message>
<source>For more information, visit:</source>
<translation>For more information, visit:</translation>
</message>
<message>
<source>A Qt-based Pacman frontend,</source>
<translation>A Qt-based Pacman frontend,</translation>
</message>
<message>
<source>licensed under the terms of</source>
<translation>licensed under the terms of</translation>
</message>
<message>
<source>Package classification:</source>
<translation>Package classification:</translation>
</message>
<message>
<source>An installed package</source>
<translation>An installed package</translation>
</message>
<message>
<source>An installed package (not required by others)</source>
<translation>An installed package (not required by others)</translation>
</message>
<message>
<source>A foreign package, installed from</source>
<translation>A foreign package, installed from</translation>
</message>
<message>
<source>A non installed package</source>
<translation>A non installed package</translation>
</message>
<message>
<source>An outdated package</source>
<translation>An outdated package</translation>
</message>
<message>
<source>An outdated foreign package</source>
<translation>An outdated foreign package</translation>
</message>
<message>
<source>A newer than repository package</source>
<translation>A newer than repository package</translation>
</message>
<message>
<source>Basic usage help:</source>
<translation>Basic usage help:</translation>
</message>
<message>
<source>Position the mouse over a package to see its description</source>
<translation>Position the mouse over a package to see its description</translation>
</message>
<message>
<source>Double click an installed package to see its contents</source>
<translation>Double click an installed package to see its contents</translation>
</message>
<message>
<source>Right click package to install/reinstall or remove it</source>
<translation>Right click package to install/reinstall or remove it</translation>
</message>
<message>
<source>Alt+key sequences:</source>
<translation>Alt+key sequences:</translation>
</message>
<message>
<source>Alt+1 to switch to &apos;Info&apos; tab</source>
<translation>Alt+1 to switch to &apos;Info&apos; tab</translation>
</message>
<message>
<source>Alt+2 to switch to &apos;Files&apos; tab</source>
<translation>Alt+2 to switch to &apos;Files&apos; tab</translation>
</message>
<message>
<source>Alt+3 to switch to &apos;Transaction&apos; tab</source>
<translation>Alt+3 to switch to &apos;Transaction&apos; tab</translation>
</message>
<message>
<source>Alt+4 to switch to &apos;Output&apos; tab</source>
<translation>Alt+4 to switch to &apos;Output&apos; tab</translation>
</message>
<message>
<source>Alt+5 to switch to &apos;News&apos; tab</source>
<translation>Alt+5 to switch to &apos;News&apos; tab</translation>
</message>
<message>
<source>Alt+6 or &apos;F1&apos; to show this help page</source>
<translation>Alt+6 or &apos;F1&apos; to show this help page</translation>
</message>
<message>
<source>Control+key sequences:</source>
<translation>Control+key sequences:</translation>
</message>
<message>
<source>Ctrl+D or &apos;File/Sync database&apos; to sync the local database with latest remote changes (pacman -Sy)</source>
<translation>Ctrl+D or &apos;File/Sync database&apos; to sync the local database with latest remote changes (pacman -Sy)</translation>
</message>
<message>
<source>Ctrl+U or &apos;File/System upgrade&apos; to make a full system upgrade (pacman -Su)</source>
<translation>Ctrl+U or &apos;File/System upgrade&apos; to make a full system upgrade (pacman -Su)</translation>
</message>
<message>
<source>Ctrl+L to find a package in the package list</source>
<translation>Ctrl+L to find a package in the package list</translation>
</message>
<message>
<source>Ctrl+F to search for text inside tab Files, News and Usage</source>
<translation>Ctrl+F to search for text inside tab Files, News and Usage</translation>
</message>
<message>
<source>Ctrl+N or &apos;View/Non installed&apos; to show/hide non installed packages</source>
<translation>Ctrl+N or &apos;View/Non installed&apos; to show/hide non installed packages</translation>
</message>
<message>
<source>Ctrl+M or &apos;Transaction/Commit&apos; to start installation/removal of selected packages</source>
<translation>Ctrl+M or &apos;Transaction/Commit&apos; to start installation/removal of selected packages</translation>
</message>
<message>
<source>Ctrl+B or &apos;Transaction/Rollback&apos; to clear the selection of to be removed/installed packages</source>
<translation>Ctrl+B or &apos;Transaction/Rollback&apos; to clear the selection of to be removed/installed packages</translation>
</message>
<message>
<source>Ctrl+G or &apos;File/Get latest distro news&apos; to retrieve the latest RSS based distro news</source>
<translation>Ctrl+G or &apos;File/Get latest distro news&apos; to retrieve the latest RSS based distro news</translation>
</message>
<message>
<source>Ctrl+Q or &apos;File/Exit&apos; to exit the application</source>
<translation>Ctrl+Q or &apos;File/Exit&apos; to exit the application</translation>
</message>
<message>
<source>Control+shift+key sequences:</source>
<translation>Control+shift+key sequences:</translation>
</message>
<message>
<source>Ctrl+Shift+C to clean local packages cache (pacman -Sc)</source>
<translation>Ctrl+Shift+C to clean local packages cache (pacman -Sc)</translation>
</message>
<message>
<source>Ctrl+Shift+G to display all package groups</source>
<translation>Ctrl+Shift+G to display all package groups</translation>
</message>
<message>
<source>Ctrl+Shift+R to remove Pacman&apos;s transaction lock file</source>
<translation>Ctrl+Shift+R to remove Pacman&apos;s transaction lock file</translation>
</message>
<message>
<source>Ctrl+Shift+Y to display Yaourt group</source>
<translation>Ctrl+Shift+Y to display Yaourt group</translation>
</message>
<message>
<source>F+key sequences:</source>
<translation>F+key sequences:</translation>
</message>
<message>
<source>F1 to show this help page</source>
<translation>F1 to show this help page</translation>
</message>
<message>
<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>
</message>
<message>
<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>
</message>
<message>
<source>F10 to maximize/demaximize package list view</source>
<translation>F10 to maximize/demaximize package list view</translation>
</message>
<message>
<source>F12 to maximize/demaximize Tab&apos;s view</source>
<translation>F12 to maximize/demaximize Tab&apos;s view</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>Octopi usage help:</source>
<translation>Octopi usage help:</translation>
</message>
<message>
<source>show application version.</source>
<translation>show application version.</translation>
</message>
<message>
<source>use a different Qt4 style (ex: -style gtk).</source>
<translation>use a different Qt4 style (ex: -style gtk).</translation>
</message>
<message>
<source>use a different remove command (ex: -removecmd R).</source>
<translation>use a different remove command (ex: -removecmd R).</translation>
</message>
<message>
<source>force a system upgrade at startup.</source>
<translation>force a system upgrade at startup.</translation>
</message>
<message>
<source>Arch Linux news</source>
<translation>Arch Linux news</translation>
</message>
<message>
<source>Chakra news</source>
<translation>Chakra news</translation>
</message>
<message>
<source>KaOS news</source>
<translation>KaOS news</translation>
</message>
<message>
<source>Manjaro Linux news</source>
<translation>Manjaro Linux news</translation>
</message>
<message>
<source>No news could be found! Press Ctrl+G to download the latest news.</source>
<translation>No news could be found! Press Ctrl+G to download the latest news.</translation>
</message>
<message>
<source>This Linux distro seems to be incompatible with Octopi!</source>
<translation>This Linux distro seems to be incompatible with Octopi!</translation>
</message>
<message>
<source>Internet seems unavailable!</source>
<translation>Internet seems unavailable!</translation>
</message>
<message>
<source>Display all groups</source>
<translation>Display all groups</translation>
</message>
<message>
<source>Usage</source>
<translation>Usage</translation>
</message>
<message>
<source>About</source>
<translation>About</translation>
</message>
<message>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<source>Outdated version</source>
<translation>Outdated version</translation>
</message>
<message>
<source>Available version</source>
<translation>Available version</translation>
</message>
<message>
<source>No description available.</source>
<translation>No description available.</translation>
</message>
<message>
<source>URL</source>
<translation>URL</translation>
</message>
<message>
<source>Repository</source>
<translation>Repository</translation>
</message>
<message>
<source>Licenses</source>
<translation>Licenses</translation>
</message>
<message>
<source>Group</source>
<translation>Group</translation>
</message>
<message>
<source>Groups</source>
<translation>Groups</translation>
</message>
<message>
<source>Provides</source>
<translation>Provides</translation>
</message>
<message>
<source>Depends On</source>
<translation>Depends On</translation>
</message>
<message>
<source>Required By</source>
<translation>Required By</translation>
</message>
<message>
<source>Optional For</source>
<translation>Optional For</translation>
</message>
<message>
<source>Optional Deps</source>
<translation>Optional Deps</translation>
</message>
<message>
<source>Conflicts With</source>
<translation>Conflicts With</translation>
</message>
<message>
<source>Replaces</source>
<translation>Replaces</translation>
</message>
<message>
<source>Download Size</source>
<translation>Download Size</translation>
</message>
<message>
<source>Installed Size</source>
<translation>Installed Size</translation>
</message>
<message>
<source>Packager</source>
<translation>Packager</translation>
</message>
<message>
<source>Package</source>
<translation>Package</translation>
</message>
<message>
<source>Packages</source>
<translation>Packages</translation>
</message>
<message>
<source>Architecture</source>
<translation>Architecture</translation>
</message>
<message>
<source>Build Date</source>
<translation>Build Date</translation>
</message>
<message>
<source>Description</source>
<translation>Description</translation>
</message>
<message>
<source>Attention</source>
<translation>Attention</translation>
</message>
<message>
<source>automatic</source>
<translation>automatic</translation>
</message>
<message>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
<source>Info</source>
<translation>Info</translation>
</message>
<message>
<source>Files</source>
<translation>Files</translation>
</message>
<message>
<source>Transaction</source>
<translation>Transaction</translation>
</message>
<message>
<source>Output</source>
<translation>Output</translation>
</message>
<message>
<source>News</source>
<translation>News</translation>
</message>
<message>
<source>Contents of &quot;%1&quot;</source>
<translation>Contents of &quot;%1&quot;</translation>
</message>
<message>
<source>Find</source>
<translation>Find</translation>
</message>
<message>
<source>Clear</source>
<translation>Clear</translation>
</message>
<message>
<source> (outdated installed version is %1)</source>
<translation> (outdated installed version is %1)</translation>
</message>
<message>
<source> (newer installed version is %1)</source>
<translation> (newer installed version is %1)</translation>
</message>
<message>
<source>Building package list...</source>
<translation>Building package list...</translation>
</message>
<message>
<source>Searching for %1 latest news...</source>
<translation>Searching for %1 latest news...</translation>
</message>
<message>
<source>There is one outdated package in your system:</source>
<translation>There is one outdated package in your system:</translation>
</message>
<message>
<source>There are %1 outdated packages in your system:</source>
<translation>There are %1 outdated packages in your system:</translation>
</message>
<message>
<source>(version %1 is available)</source>
<translation>(version %1 is available)</translation>
</message>
<message>
<source>%1 (%2) packages</source>
<translation>%1 (%2) packages</translation>
</message>
<message>
<source>%1 installed</source>
<translation>%1 installed</translation>
</message>
<message>
<source>%1 outdated</source>
<translation>%1 outdated</translation>
</message>
<message>
<source>%1 available</source>
<translation>%1 available</translation>
</message>
<message>
<source>Cleaning package cache...</source>
<translation>Cleaning package cache...</translation>
</message>
<message>
<source>Removing Pacman&apos;s transaction lock file...</source>
<translation>Removing Pacman&apos;s transaction lock file...</translation>
</message>
<message>
<source>Syncing</source>
<translation>Syncing</translation>
</message>
<message>
<source>Press any key to continue...</source>
<translation>Press any key to continue...</translation>
</message>
<message>
<source>Synchronizing databases...</source>
<translation>Synchronizing databases...</translation>
</message>
<message>
<source>is up to date</source>
<translation>is up to date</translation>
</message>
<message>
<source>Starting full system upgrade...</source>
<translation>Starting full system upgrade...</translation>
</message>
<message>
<source>Installing selected packages...</source>
<translation>Installing selected packages...</translation>
</message>
<message>
<source>Removing selected packages...</source>
<translation>Removing selected packages...</translation>
</message>
<message>
<source>Removing/installing selected packages...</source>
<translation>Removing/installing selected packages...</translation>
</message>
<message>
<source>Running command in terminal...</source>
<translation>Running command in terminal...</translation>
</message>
<message>
<source>Command finished OK!</source>
<translation>Command finished OK!</translation>
</message>
<message>
<source>Command finished with errors!</source>
<translation>Command finished with errors!</translation>
</message>
<message>
<source>Retrieving %1</source>
<translation>Retrieving %1</translation>
</message>
<message>
<source>Total download size: %1 KB</source>
<translation>Total download size: %1 KB</translation>
</message>
<message>
<source>The following target needs to be retrieved</source>
<translation>The following target needs to be retrieved</translation>
</message>
<message>
<source>The following target will be removed</source>
<translation>The following target will be removed</translation>
</message>
<message>
<source>The following %1 targets need to be retrieved</source>
<translation>The following %1 targets need to be retrieved</translation>
</message>
<message>
<source>The following %1 targets will be removed</source>
<translation>The following %1 targets will be removed</translation>
</message>
<message>
<source>There are forbidden packages in the removal list!</source>
<translation>There are forbidden packages in the removal list!</translation>
</message>
<message>
<source>There are no new updates available!</source>
<translation>There are no new updates available!</translation>
</message>
<message>
<source>There is an update available!</source>
<translation>There is an update available!</translation>
</message>
<message>
<source>There are %1 updates available!</source>
<translation>There are %1 updates available!</translation>
</message>
<message>
<source>Confirm?</source>
<translation>Confirm?</translation>
</message>
<message>
<source>Warning!!!</source>
<translation>Warning!!!</translation>
</message>
<message>
<source>Confirmation</source>
<translation>Confirmation</translation>
</message>
<message>
<source>There has been a transaction error!</source>
<translation>There has been a transaction error!</translation>
</message>
<message>
<source>Do you want to execute this transaction in a Terminal?</source>
<translation>Do you want to execute this transaction in a Terminal?</translation>
</message>
<message>
<source>Do you really want to clean the package cache?</source>
<translation>Do you really want to clean the package cache?</translation>
</message>
<message>
<source>Do you really want to remove Pacman&apos;s transaction lock file?</source>
<translation>Do you really want to remove Pacman&apos;s transaction lock file?</translation>
</message>
<message>
<source>Do you really want to rollback the transaction?</source>
<translation>Do you really want to rollback the transaction?</translation>
</message>
<message>
<source>Please, enter the administrator&apos;s password</source>
<translation>Please, enter the administrator&apos;s password</translation>
</message>
<message>
<source>There are no means to get administrator&apos;s credentials.</source>
<translation>There are no means to get administrator&apos;s credentials.</translation>
</message>
<message>
<source>You&apos;ll need to install a su frontend like gksu or kdesu.</source>
<translation>You&apos;ll need to install a su frontend like gksu or kdesu.</translation>
</message>
<message>
<source>You can not run Octopi with administrator&apos;s credentials.</source>
<translation>You can not run Octopi with administrator&apos;s credentials.</translation>
</message>
<message>
<source>There is a pending transaction</source>
<translation>There is a pending transaction</translation>
</message>
<message>
<source>Do you really want to quit?</source>
<translation>Do you really want to quit?</translation>
</message>
<message>
<source>Executing command</source>
<translation>Executing command</translation>
</message>
<message>
<source>Run in terminal</source>
<translation>Run in terminal</translation>
</message>
<message>
<source>Needs application restart to take effect</source>
<translation>Needs application restart to take effect</translation>
</message>
<message>
<source>These changes need application restart to take effect!</source>
<translation>These changes need application restart to take effect!</translation>
</message>
<message>
<source>Select the packages you want to install</source>
<translation>Select the packages you want to install</translation>
</message>
<message>
<source>This file does not appear to be a simple text.
Are you sure you want to open it?</source>
<translation>This file does not appear to be a simple text.
Are you sure you want to open it?</translation>
</message>
<message>
<source>To be installed</source>
<translation>To be installed</translation>
</message>
<message>
<source>To be removed</source>
<translation>To be removed</translation>
</message>
<message>
<source>remove</source>
<translation>remove</translation>
</message>
<message>
<source>install</source>
<translation>install</translation>
</message>
<message>
<source>Remove item</source>
<translation>Remove item</translation>
</message>
<message>
<source>Remove items</source>
<translation>Remove items</translation>
</message>
<message>
<source>Press Ctrl+A to select/deselect all</source>
<translation>Press Ctrl+A to select/deselect all</translation>
</message>
</context>
<context>
<name>SearchBar</name>
<message>
<source>Previous</source>
<translation>Previous</translation>
</message>
<message>
<source>Next</source>
<translation>Next</translation>
</message>
<message>
<source>Close</source>
<translation>Close</translation>
</message>
</context>
<context>
<name>TransactionDialog</name>
<message>
<source>Form</source>
<translation>Form</translation>
</message>
<message>
<source>Run in terminal</source>
<translation>Run in terminal</translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@@ -0,0 +1,840 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en_GB" version="2.0">
<context>
<name>MainWindow</name>
<message>
<source>Octopi</source>
<translation>Octopi</translation>
</message>
<message>
<source>Info</source>
<translation>Info</translation>
</message>
<message>
<source>Files</source>
<translation>Files</translation>
</message>
<message>
<source>Transaction</source>
<translation>Transaction</translation>
</message>
<message>
<source>Output</source>
<translation>Output</translation>
</message>
<message>
<source>Help</source>
<translation>Help</translation>
</message>
<message>
<source>View</source>
<translation>View</translation>
</message>
<message>
<source>File</source>
<translation>File</translation>
</message>
<message>
<source>Search</source>
<translation>Search</translation>
</message>
<message>
<source>About</source>
<translation>About</translation>
</message>
<message>
<source>Non installed</source>
<translation>Non-installed</translation>
</message>
<message>
<source>Ctrl+N</source>
<translation>Ctrl+N</translation>
</message>
<message>
<source>Commit</source>
<translation>Commit</translation>
</message>
<message>
<source>Ctrl+M</source>
<translation>Ctrl+M</translation>
</message>
<message>
<source>Rollback</source>
<translation>Rollback</translation>
</message>
<message>
<source>Ctrl+B</source>
<translation>Ctrl+B</translation>
</message>
<message>
<source>Sync database</source>
<translation>Sync database</translation>
</message>
<message>
<source>Ctrl+D</source>
<translation>Ctrl+D</translation>
</message>
<message>
<source>Exit</source>
<translation>Exit</translation>
</message>
<message>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
<source>System upgrade</source>
<translation>System upgrade</translation>
</message>
<message>
<source>Ctrl+U</source>
<translation>Ctrl+U</translation>
</message>
<message>
<source>Install</source>
<translation>Install</translation>
</message>
<message>
<source>Remove</source>
<translation>Remove</translation>
</message>
<message>
<source>Outdated packages</source>
<translation>Outdated packages</translation>
</message>
<message>
<source>Get latest distro news</source>
<translation>Get latest distro news</translation>
</message>
<message>
<source>Ctrl+G</source>
<translation>Ctrl+G</translation>
</message>
<message>
<source>Remove group</source>
<translation>Remove group</translation>
</message>
<message>
<source>Install group</source>
<translation>Install group</translation>
</message>
<message>
<source>Collapse item</source>
<translation>Collapse item</translation>
</message>
<message>
<source>Expand item</source>
<translation>Expand item</translation>
</message>
<message>
<source>Collapse all items</source>
<translation>Collapse all items</translation>
</message>
<message>
<source>Expand all items</source>
<translation>Expand all items</translation>
</message>
<message>
<source>Open file</source>
<translation>Open file</translation>
</message>
<message>
<source>Edit file</source>
<translation>Edit file</translation>
</message>
<message>
<source>Open directory</source>
<translation>Open directory</translation>
</message>
<message>
<source>Open terminal here</source>
<translation>Open terminal here</translation>
</message>
<message>
<source>Remove item</source>
<translation>Remove item</translation>
</message>
<message>
<source>Remove items</source>
<translation>Remove items</translation>
</message>
<message>
<source>By description</source>
<translation>By description</translation>
</message>
<message>
<source>By name</source>
<translation>By name</translation>
</message>
<message>
<source>Find a file</source>
<translation>Find a file</translation>
</message>
<message>
<source>Open root terminal</source>
<translation>Open root terminal</translation>
</message>
<message>
<source>Usage</source>
<translation>Usage</translation>
</message>
<message>
<source>F1</source>
<translation>F1</translation>
</message>
<message>
<source>Install local package...</source>
<translation>Install local package...</translation>
</message>
<message>
<source>For more information, visit:</source>
<translation>For more information, visit:</translation>
</message>
<message>
<source>A Qt-based Pacman frontend,</source>
<translation>A Qt-based Pacman frontend,</translation>
</message>
<message>
<source>licensed under the terms of</source>
<translation>licenced under the terms of</translation>
</message>
<message>
<source>Package classification:</source>
<translation>Package classification:</translation>
</message>
<message>
<source>An installed package</source>
<translation>An installed package</translation>
</message>
<message>
<source>An installed package (not required by others)</source>
<translation>An installed package (not required by others)</translation>
</message>
<message>
<source>A foreign package, installed from</source>
<translation>A foreign package, installed from</translation>
</message>
<message>
<source>A non installed package</source>
<translation>A non-installed package</translation>
</message>
<message>
<source>An outdated package</source>
<translation>An outdated package</translation>
</message>
<message>
<source>An outdated foreign package</source>
<translation>An outdated foreign package</translation>
</message>
<message>
<source>A newer than repository package</source>
<translation>A package newer than repository version</translation>
</message>
<message>
<source>Basic usage help:</source>
<translation>Basic usage help:</translation>
</message>
<message>
<source>Position the mouse over a package to see its description</source>
<translation>Position the mouse over a package to see its description</translation>
</message>
<message>
<source>Double click an installed package to see its contents</source>
<translation>Double-click an installed package to see its contents</translation>
</message>
<message>
<source>Right click package to install/reinstall or remove it</source>
<translation>Right-click package to install/reinstall or remove it</translation>
</message>
<message>
<source>Alt+key sequences:</source>
<translation>Alt+key sequences:</translation>
</message>
<message>
<source>Alt+1 to switch to &apos;Info&apos; tab</source>
<translation>Alt+1 to switch to &apos;Info&apos; tab</translation>
</message>
<message>
<source>Alt+2 to switch to &apos;Files&apos; tab</source>
<translation>Alt+2 to switch to &apos;Files&apos; tab</translation>
</message>
<message>
<source>Alt+3 to switch to &apos;Transaction&apos; tab</source>
<translation>Alt+3 to switch to &apos;Transaction&apos; tab</translation>
</message>
<message>
<source>Alt+4 to switch to &apos;Output&apos; tab</source>
<translation>Alt+4 to switch to &apos;Output&apos; tab</translation>
</message>
<message>
<source>Alt+5 to switch to &apos;News&apos; tab</source>
<translation>Alt+5 to switch to &apos;News&apos; tab</translation>
</message>
<message>
<source>Alt+6 or &apos;F1&apos; to show this help page</source>
<translation>Alt+6 or &apos;F1&apos; to show this help page</translation>
</message>
<message>
<source>Control+key sequences:</source>
<translation>Control+key sequences:</translation>
</message>
<message>
<source>Ctrl+D or &apos;File/Sync database&apos; to sync the local database with latest remote changes (pacman -Sy)</source>
<translation>Ctrl+D or &apos;File/Sync database&apos; to sync the local database with latest remote changes (pacman -Sy)</translation>
</message>
<message>
<source>Ctrl+U or &apos;File/System upgrade&apos; to make a full system upgrade (pacman -Su)</source>
<translation>Ctrl+U or &apos;File/System upgrade&apos; to perform a full system upgrade (pacman -Su)</translation>
</message>
<message>
<source>Ctrl+L to find a package in the package list</source>
<translation>Ctrl+L to find a package in the package list</translation>
</message>
<message>
<source>Ctrl+F to search for text inside tab Files, News and Usage</source>
<translation>Ctrl+F to search for text inside tab Files, News, and Usage</translation>
</message>
<message>
<source>Ctrl+N or &apos;View/Non installed&apos; to show/hide non installed packages</source>
<translation>Ctrl+N or &apos;View/Non-installed&apos; to show/hide non-installed packages</translation>
</message>
<message>
<source>Ctrl+M or &apos;Transaction/Commit&apos; to start installation/removal of selected packages</source>
<translation>Ctrl+M or &apos;Transaction/Commit&apos; to start installation/removal of selected packages</translation>
</message>
<message>
<source>Ctrl+B or &apos;Transaction/Rollback&apos; to clear the selection of to be removed/installed packages</source>
<translation>Ctrl+B or &apos;Transaction/Rollback&apos; to clear the selection of packages to be removed/installed</translation>
</message>
<message>
<source>Ctrl+G or &apos;File/Get latest distro news&apos; to retrieve the latest RSS based distro news</source>
<translation>Ctrl+G or &apos;File/Get latest distro news&apos; to retrieve the latest distro news from the RSS feed</translation>
</message>
<message>
<source>Ctrl+Q or &apos;File/Exit&apos; to exit the application</source>
<translation>Ctrl+Q or &apos;File/Exit&apos; to exit the application</translation>
</message>
<message>
<source>Control+shift+key sequences:</source>
<translation>Control+Shift+key sequences:</translation>
</message>
<message>
<source>Ctrl+Shift+C to clean local packages cache (pacman -Sc)</source>
<translation>Ctrl+Shift+C to clean local package cache (pacman -Sc)</translation>
</message>
<message>
<source>Ctrl+Shift+G to display all package groups</source>
<translation>Ctrl+Shift+G to display all package groups</translation>
</message>
<message>
<source>Ctrl+Shift+R to remove Pacman&apos;s transaction lock file</source>
<translation>Ctrl+Shift+R to remove Pacman&apos;s transaction lock file</translation>
</message>
<message>
<source>Ctrl+Shift+Y to display Yaourt group</source>
<translation>Ctrl+Shift+Y to display Yaourt group</translation>
</message>
<message>
<source>F+key sequences:</source>
<translation>Function key sequences:</translation>
</message>
<message>
<source>F1 to show this help page</source>
<translation>F1 to show this help page</translation>
</message>
<message>
<source>F4 to open a Terminal whitin the selected directory at Files tab</source>
<translation>F4 to open a Terminal within the selected directory at Files tab</translation>
</message>
<message>
<source>F6 to open a File Manager whitin the selected directory at Files tab</source>
<translation>F6 to open a File Manager within the selected directory at Files tab</translation>
</message>
<message>
<source>F10 to maximize/demaximize package list view</source>
<translation>F10 to maximize/restore package list view</translation>
</message>
<message>
<source>F12 to maximize/demaximize Tab&apos;s view</source>
<translation>F12 to maximize/restore Tab&apos;s view</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>Octopi usage help:</source>
<translation>Octopi usage help:</translation>
</message>
<message>
<source>show application version.</source>
<translation>show application version.</translation>
</message>
<message>
<source>use a different Qt4 style (ex: -style gtk).</source>
<translation>use a different Qt4 style (eg: -style gtk).</translation>
</message>
<message>
<source>use a different remove command (ex: -removecmd R).</source>
<translation>use a different remove command (ex: -removecmd R).</translation>
</message>
<message>
<source>force a system upgrade at startup.</source>
<translation>force a system upgrade at startup.</translation>
</message>
<message>
<source>Arch Linux news</source>
<translation>Arch Linux news</translation>
</message>
<message>
<source>Chakra news</source>
<translation>Chakra news</translation>
</message>
<message>
<source>KaOS news</source>
<translation>KaOS news</translation>
</message>
<message>
<source>Manjaro Linux news</source>
<translation>Manjaro Linux news</translation>
</message>
<message>
<source>No news could be found! Press Ctrl+G to download the latest news.</source>
<translation>No news could be found! Press Ctrl+G to download the latest news.</translation>
</message>
<message>
<source>This Linux distro seems to be incompatible with Octopi!</source>
<translation>This Linux distro seems to be incompatible with Octopi!</translation>
</message>
<message>
<source>Internet seems unavailable!</source>
<translation>Internet seems to be unavailable!</translation>
</message>
<message>
<source>Display all groups</source>
<translation>Display all groups</translation>
</message>
<message>
<source>Usage</source>
<translation>Usage</translation>
</message>
<message>
<source>About</source>
<translation>About</translation>
</message>
<message>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<source>Outdated version</source>
<translation>Outdated version</translation>
</message>
<message>
<source>Available version</source>
<translation>Available version</translation>
</message>
<message>
<source>No description available.</source>
<translation>No description available.</translation>
</message>
<message>
<source>URL</source>
<translation>URL</translation>
</message>
<message>
<source>Repository</source>
<translation>Repository</translation>
</message>
<message>
<source>Licenses</source>
<translation>Licences</translation>
</message>
<message>
<source>Group</source>
<translation>Group</translation>
</message>
<message>
<source>Groups</source>
<translation>Groups</translation>
</message>
<message>
<source>Provides</source>
<translation>Provides</translation>
</message>
<message>
<source>Depends On</source>
<translation>Depends On</translation>
</message>
<message>
<source>Required By</source>
<translation>Required By</translation>
</message>
<message>
<source>Optional For</source>
<translation>Optional For</translation>
</message>
<message>
<source>Optional Deps</source>
<translation>Optional Deps</translation>
</message>
<message>
<source>Conflicts With</source>
<translation>Conflicts With</translation>
</message>
<message>
<source>Replaces</source>
<translation>Replaces</translation>
</message>
<message>
<source>Download Size</source>
<translation>Download Size</translation>
</message>
<message>
<source>Installed Size</source>
<translation>Installed Size</translation>
</message>
<message>
<source>Packager</source>
<translation>Packager</translation>
</message>
<message>
<source>Package</source>
<translation>Package</translation>
</message>
<message>
<source>Packages</source>
<translation>Packages</translation>
</message>
<message>
<source>Architecture</source>
<translation>Architecture</translation>
</message>
<message>
<source>Build Date</source>
<translation>Build Date</translation>
</message>
<message>
<source>Description</source>
<translation>Description</translation>
</message>
<message>
<source>Attention</source>
<translation>Attention</translation>
</message>
<message>
<source>automatic</source>
<translation>automatic</translation>
</message>
<message>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
<source>Info</source>
<translation>Info</translation>
</message>
<message>
<source>Files</source>
<translation>Files</translation>
</message>
<message>
<source>Transaction</source>
<translation>Transaction</translation>
</message>
<message>
<source>Output</source>
<translation>Output</translation>
</message>
<message>
<source>News</source>
<translation>News</translation>
</message>
<message>
<source>Contents of &quot;%1&quot;</source>
<translation>Contents of &quot;%1&quot;</translation>
</message>
<message>
<source>Find</source>
<translation>Find</translation>
</message>
<message>
<source>Clear</source>
<translation>Clear</translation>
</message>
<message>
<source> (outdated installed version is %1)</source>
<translation> (outdated installed version is %1)</translation>
</message>
<message>
<source> (newer installed version is %1)</source>
<translation> (newer installed version is %1)</translation>
</message>
<message>
<source>Building package list...</source>
<translation>Building package list...</translation>
</message>
<message>
<source>Searching for %1 latest news...</source>
<translation>Searching for %1 latest news...</translation>
</message>
<message>
<source>There is one outdated package in your system:</source>
<translation>There is one outdated package on your system:</translation>
</message>
<message>
<source>There are %1 outdated packages in your system:</source>
<translation>There are %1 outdated packages on your system:</translation>
</message>
<message>
<source>(version %1 is available)</source>
<translation>(version %1 is available)</translation>
</message>
<message>
<source>%1 (%2) packages</source>
<translation>%1 (%2) packages</translation>
</message>
<message>
<source>%1 installed</source>
<translation>%1 installed</translation>
</message>
<message>
<source>%1 outdated</source>
<translation>%1 outdated</translation>
</message>
<message>
<source>%1 available</source>
<translation>%1 available</translation>
</message>
<message>
<source>Cleaning package cache...</source>
<translation>Cleaning package cache...</translation>
</message>
<message>
<source>Removing Pacman&apos;s transaction lock file...</source>
<translation>Removing Pacman&apos;s transaction lock file...</translation>
</message>
<message>
<source>Syncing</source>
<translation>Syncing</translation>
</message>
<message>
<source>Press any key to continue...</source>
<translation>Press any key to continue...</translation>
</message>
<message>
<source>Synchronizing databases...</source>
<translation>Synchronising databases...</translation>
</message>
<message>
<source>is up to date</source>
<translation>is up-to-date</translation>
</message>
<message>
<source>Starting full system upgrade...</source>
<translation>Starting full system upgrade...</translation>
</message>
<message>
<source>Installing selected packages...</source>
<translation>Installing selected packages...</translation>
</message>
<message>
<source>Removing selected packages...</source>
<translation>Removing selected packages...</translation>
</message>
<message>
<source>Removing/installing selected packages...</source>
<translation>Removing/installing selected packages...</translation>
</message>
<message>
<source>Running command in terminal...</source>
<translation>Running command in terminal...</translation>
</message>
<message>
<source>Command finished OK!</source>
<translation>Command finished OK!</translation>
</message>
<message>
<source>Command finished with errors!</source>
<translation>Command finished with errors!</translation>
</message>
<message>
<source>Retrieving %1</source>
<translation>Retrieving %1</translation>
</message>
<message>
<source>Total download size: %1 KB</source>
<translation>Total download size: %1 KB</translation>
</message>
<message>
<source>The following target needs to be retrieved</source>
<translation>The following target needs to be retrieved</translation>
</message>
<message>
<source>The following target will be removed</source>
<translation>The following target will be removed</translation>
</message>
<message>
<source>The following %1 targets need to be retrieved</source>
<translation>The following %1 targets need to be retrieved</translation>
</message>
<message>
<source>The following %1 targets will be removed</source>
<translation>The following %1 targets will be removed</translation>
</message>
<message>
<source>There are forbidden packages in the removal list!</source>
<translation>There are forbidden packages in the removal list!</translation>
</message>
<message>
<source>There are no new updates available!</source>
<translation>There are no new updates available!</translation>
</message>
<message>
<source>There is an update available!</source>
<translation>There is an update available!</translation>
</message>
<message>
<source>There are %1 updates available!</source>
<translation>There are %1 updates available!</translation>
</message>
<message>
<source>Confirm?</source>
<translation>Confirm?</translation>
</message>
<message>
<source>Warning!!!</source>
<translation>Warning!</translation>
</message>
<message>
<source>Confirmation</source>
<translation>Confirmation</translation>
</message>
<message>
<source>There has been a transaction error!</source>
<translation>There has been a transaction error!</translation>
</message>
<message>
<source>Do you want to execute this transaction in a Terminal?</source>
<translation>Do you want to execute this transaction in a Terminal?</translation>
</message>
<message>
<source>Do you really want to clean the package cache?</source>
<translation>Do you really want to clean the package cache?</translation>
</message>
<message>
<source>Do you really want to remove Pacman&apos;s transaction lock file?</source>
<translation>Do you really want to remove Pacman&apos;s transaction lock file?</translation>
</message>
<message>
<source>Do you really want to rollback the transaction?</source>
<translation>Do you really want to rollback the transaction?</translation>
</message>
<message>
<source>Please, enter the administrator&apos;s password</source>
<translation>Please enter the administrator&apos;s password</translation>
</message>
<message>
<source>There are no means to get administrator&apos;s credentials.</source>
<translation>There are no means to get an administrator&apos;s credentials.</translation>
</message>
<message>
<source>You&apos;ll need to install a su frontend like gksu or kdesu.</source>
<translation>You&apos;ll need to install a su frontend like gksu or kdesu.</translation>
</message>
<message>
<source>You can not run Octopi with administrator&apos;s credentials.</source>
<translation>You can&apos;t run Octopi with administrator&apos;s credentials.</translation>
</message>
<message>
<source>There is a pending transaction</source>
<translation>There is a pending transaction</translation>
</message>
<message>
<source>Do you really want to quit?</source>
<translation>Do you really want to exit?</translation>
</message>
<message>
<source>Executing command</source>
<translation>Executing command</translation>
</message>
<message>
<source>Run in terminal</source>
<translation>Run in terminal</translation>
</message>
<message>
<source>Needs application restart to take effect</source>
<translation>Needs application restart to take effect</translation>
</message>
<message>
<source>These changes need application restart to take effect!</source>
<translation>These changes need application restart to take effect!</translation>
</message>
<message>
<source>Select the packages you want to install</source>
<translation>Select the packages you want to install</translation>
</message>
<message>
<source>This file does not appear to be a simple text.
Are you sure you want to open it?</source>
<translation>This file does not appear to be simple text.
Are you sure you want to open it?</translation>
</message>
<message>
<source>To be installed</source>
<translation>To be installed</translation>
</message>
<message>
<source>To be removed</source>
<translation>To be removed</translation>
</message>
<message>
<source>remove</source>
<translation>remove</translation>
</message>
<message>
<source>install</source>
<translation>install</translation>
</message>
<message>
<source>Remove item</source>
<translation>Remove item</translation>
</message>
<message>
<source>Remove items</source>
<translation>Remove items</translation>
</message>
<message>
<source>Press Ctrl+A to select/deselect all</source>
<translation>Press Ctrl+A to select/deselect all</translation>
</message>
</context>
<context>
<name>SearchBar</name>
<message>
<source>Previous</source>
<translation>Previous</translation>
</message>
<message>
<source>Next</source>
<translation>Next</translation>
</message>
<message>
<source>Close</source>
<translation>Close</translation>
</message>
</context>
<context>
<name>TransactionDialog</name>
<message>
<source>Form</source>
<translation>Form</translation>
</message>
<message>
<source>Run in terminal</source>
<translation>Run in terminal</translation>
</message>
</context>
</TS>

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

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