mirror of
https://github.com/aarnt/octopi.git
synced 2025-11-20 17:44:42 +01:00
Compare commits
402 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
251822c887 | ||
|
|
553068128b | ||
|
|
aea5e2cf09 | ||
|
|
91dfad1faf | ||
|
|
6f2401e10a | ||
|
|
72c0a0ba11 | ||
|
|
fa7e88d370 | ||
|
|
3935abcd82 | ||
|
|
10c78af877 | ||
|
|
2d2b29f0d0 | ||
|
|
45fa9697ad | ||
|
|
f0bf295aab | ||
|
|
17123d9428 | ||
|
|
b9f0c6b73c | ||
|
|
a64adfb404 | ||
|
|
f192bc7aa6 | ||
|
|
1c07b57afa | ||
|
|
e054cb0218 | ||
|
|
5009ee232c | ||
|
|
42918df4a3 | ||
|
|
cafc92e030 | ||
|
|
be5fa78234 | ||
|
|
cb16ea67de | ||
|
|
b9654265f9 | ||
|
|
c413caadd1 | ||
|
|
bff4de2189 | ||
|
|
a9d9eb30d3 | ||
|
|
61f6a199e9 | ||
|
|
e59fe5ac8c | ||
|
|
ee79c35b62 | ||
|
|
a3b1eaf68b | ||
|
|
9a419e5ab6 | ||
|
|
8f82f46852 | ||
|
|
f45a5a903a | ||
|
|
6b727bf114 | ||
|
|
2fad59554b | ||
|
|
e8c3ff875c | ||
|
|
12b7338b51 | ||
|
|
c615f97362 | ||
|
|
d36e793864 | ||
|
|
f6fd67a33e | ||
|
|
b9958cafc9 | ||
|
|
3849c5ad31 | ||
|
|
60bd2cd082 | ||
|
|
845311daf2 | ||
|
|
d35247c92a | ||
|
|
e8613527b6 | ||
|
|
e46725e998 | ||
|
|
27de3460cb | ||
|
|
c067a37787 | ||
|
|
6bc18dd768 | ||
|
|
c9dbaebec4 | ||
|
|
640d5633b4 | ||
|
|
b3887c8138 | ||
|
|
14c69b0b53 | ||
|
|
13218919aa | ||
|
|
465e23f98d | ||
|
|
b578189f0d | ||
|
|
fb7a1f9d6b | ||
|
|
3e3c6ae0fc | ||
|
|
eca942ec96 | ||
|
|
ff6c3c74e6 | ||
|
|
9c886b1800 | ||
|
|
52e111f5ab | ||
|
|
669e85b63d | ||
|
|
035cd35ada | ||
|
|
fbe16eea44 | ||
|
|
dab1bc3752 | ||
|
|
b48f4896e7 | ||
|
|
82acc74c24 | ||
|
|
8b4721320e | ||
|
|
d0ec92cd24 | ||
|
|
1759559de0 | ||
|
|
98c91ae853 | ||
|
|
a401e12573 | ||
|
|
2f45944be4 | ||
|
|
76aa51fa2e | ||
|
|
28d85c366a | ||
|
|
3e303ce310 | ||
|
|
e08f7a8815 | ||
|
|
91e559e35f | ||
|
|
5d6c5771cb | ||
|
|
24cb7b2eaf | ||
|
|
69fd73301b | ||
|
|
3d6928a391 | ||
|
|
f56bbbc168 | ||
|
|
673167059c | ||
|
|
365ddc48ea | ||
|
|
cda91af947 | ||
|
|
2fb2266d96 | ||
|
|
0f77565fdb | ||
|
|
05c03ebdec | ||
|
|
c346876f94 | ||
|
|
497cc66ea4 | ||
|
|
dfddcdcdcb | ||
|
|
139f3642aa | ||
|
|
b6aab3a315 | ||
|
|
329fae945d | ||
|
|
d14bb8ea31 | ||
|
|
23f0205037 | ||
|
|
4ad97ac0a1 | ||
|
|
2d6d0f76b4 | ||
|
|
ca25f656cb | ||
|
|
1fbcb598ce | ||
|
|
67e2e1f246 | ||
|
|
bb8636c5ee | ||
|
|
1f4cee54f6 | ||
|
|
7cd00bbc05 | ||
|
|
08b7ec4999 | ||
|
|
e8779ccbf6 | ||
|
|
f94457f12c | ||
|
|
e9c6174942 | ||
|
|
d6fcc3cf56 | ||
|
|
b09b9de684 | ||
|
|
ff118927ed | ||
|
|
c36eb4095d | ||
|
|
50a8036f4d | ||
|
|
930fc5ac77 | ||
|
|
fb0947ae7c | ||
|
|
967a6328f9 | ||
|
|
8ae9b55214 | ||
|
|
be36c2937b | ||
|
|
0dde2ab86e | ||
|
|
d54d3d8cd0 | ||
|
|
22622a7d71 | ||
|
|
e0817e2fb0 | ||
|
|
f3898716f3 | ||
|
|
4eaca6c9b3 | ||
|
|
f09bfc7003 | ||
|
|
d5d756d82d | ||
|
|
941aece11e | ||
|
|
21953d09d4 | ||
|
|
9e4fa4b7a3 | ||
|
|
347bd0ceb1 | ||
|
|
b8747195ed | ||
|
|
8800c47f55 | ||
|
|
e9773c1c86 | ||
|
|
5289caadff | ||
|
|
dd04860401 | ||
|
|
eed57cf144 | ||
|
|
6e0ebe9fc0 | ||
|
|
404a156f2b | ||
|
|
a699915ea7 | ||
|
|
fbc4b54811 | ||
|
|
a4de722874 | ||
|
|
c82f3c02fc | ||
|
|
17101da9b2 | ||
|
|
ccb1418a34 | ||
|
|
0864632d9e | ||
|
|
7ca2f7e93e | ||
|
|
be162818cb | ||
|
|
a1759d85fa | ||
|
|
af32397c04 | ||
|
|
d74618d332 | ||
|
|
5c9be7cbd1 | ||
|
|
4121c1e2a9 | ||
|
|
11fd4530ce | ||
|
|
b456284f75 | ||
|
|
122ae6a6ff | ||
|
|
e09727b56d | ||
|
|
10c114a867 | ||
|
|
a6bcf4ddbf | ||
|
|
b7936681cf | ||
|
|
e232c0bb5e | ||
|
|
e235be9895 | ||
|
|
95d5debfee | ||
|
|
a274a3d9ae | ||
|
|
51e8d51562 | ||
|
|
3ddf0118fc | ||
|
|
31f980ff4f | ||
|
|
dfb0dbfa90 | ||
|
|
9d566cc6c1 | ||
|
|
0c2d4dddd5 | ||
|
|
e34c251523 | ||
|
|
8325cb6b43 | ||
|
|
7eead7588d | ||
|
|
ae100280e3 | ||
|
|
5b951aac4f | ||
|
|
ff5cdadf4d | ||
|
|
1e669d08a0 | ||
|
|
c5ae8d2980 | ||
|
|
ec8f49b0d7 | ||
|
|
a1b0a5ec97 | ||
|
|
487c80b475 | ||
|
|
cec926a090 | ||
|
|
23623f9cee | ||
|
|
f92aa3426c | ||
|
|
989617366a | ||
|
|
96324d4595 | ||
|
|
17ba947380 | ||
|
|
bab0aa8ebc | ||
|
|
b44226bea7 | ||
|
|
d56ebd1ff9 | ||
|
|
e034d1bf03 | ||
|
|
e99ae35661 | ||
|
|
d283de66b5 | ||
|
|
4d690d6ca8 | ||
|
|
604ab88b09 | ||
|
|
cad306b6de | ||
|
|
6363f7c386 | ||
|
|
c8abdc6343 | ||
|
|
9a12e9831b | ||
|
|
d470485c49 | ||
|
|
ad292fa496 | ||
|
|
0f4cb05418 | ||
|
|
3f3fb1e2ab | ||
|
|
fc44e72bb1 | ||
|
|
de915f748f | ||
|
|
968f1f213d | ||
|
|
19eb70e425 | ||
|
|
e5544644a7 | ||
|
|
8781c23939 | ||
|
|
8e89cae659 | ||
|
|
a22f80c053 | ||
|
|
9a1d042fb8 | ||
|
|
f7dbf97c53 | ||
|
|
eb34d25272 | ||
|
|
d6a8313a19 | ||
|
|
1020f7a498 | ||
|
|
4232475053 | ||
|
|
42d4126a5d | ||
|
|
aa9f71cfd7 | ||
|
|
18bccb8e5b | ||
|
|
e3576c31a3 | ||
|
|
53f06c0382 | ||
|
|
cfad0498b8 | ||
|
|
24e3ad5ed5 | ||
|
|
7a2abbc325 | ||
|
|
30adc49bc0 | ||
|
|
c9cbafcf40 | ||
|
|
80d5fed085 | ||
|
|
d3a1a4bf1b | ||
|
|
b7560ca07b | ||
|
|
0f814c8e16 | ||
|
|
e864ea1999 | ||
|
|
89d47bf147 | ||
|
|
9929836cc4 | ||
|
|
0b31ebdee6 | ||
|
|
ff25031d1e | ||
|
|
4a540cfd7b | ||
|
|
bf39bfe921 | ||
|
|
b95a8f985e | ||
|
|
144c3f2ed7 | ||
|
|
bc5a017695 | ||
|
|
0cff45f88c | ||
|
|
b54f6904d4 | ||
|
|
7a2e7850ad | ||
|
|
4d0bc6caa9 | ||
|
|
13bb6b516a | ||
|
|
872d5fc7f7 | ||
|
|
13e19d0c16 | ||
|
|
1d334f5e27 | ||
|
|
a8e998993c | ||
|
|
dfaa9b0a00 | ||
|
|
9b34e85cea | ||
|
|
22f8b2b12f | ||
|
|
cdea76dd14 | ||
|
|
88bee2da43 | ||
|
|
e5b27d290b | ||
|
|
3cc847e532 | ||
|
|
b97a2bbb6d | ||
|
|
b390774d1b | ||
|
|
112e2783f8 | ||
|
|
d69961746d | ||
|
|
494cb645bd | ||
|
|
2b1c527171 | ||
|
|
695b1ad660 | ||
|
|
97d244cb4c | ||
|
|
a91978941d | ||
|
|
6564a2cebd | ||
|
|
2d1fe16358 | ||
|
|
56e1d5577c | ||
|
|
67a4a6d85d | ||
|
|
a8bc660efa | ||
|
|
74d6b88fb0 | ||
|
|
7b464f2f2e | ||
|
|
e43ceb07cc | ||
|
|
5f23e1bbd6 | ||
|
|
b6e53777bd | ||
|
|
271c7e191f | ||
|
|
ef2589b73b | ||
|
|
a45ca53c2e | ||
|
|
6b57c75bd6 | ||
|
|
014ef652ff | ||
|
|
eeefd39035 | ||
|
|
a76e2daa0a | ||
|
|
c33bbd30c6 | ||
|
|
1e7bbed24b | ||
|
|
37629fa69b | ||
|
|
51759fa6dd | ||
|
|
deaa0f8911 | ||
|
|
922b042914 | ||
|
|
12c1295761 | ||
|
|
7326de54c6 | ||
|
|
9a6a03cf79 | ||
|
|
cdea9b37a3 | ||
|
|
6e50e5adcb | ||
|
|
ebb5aecc82 | ||
|
|
b4c825b9c9 | ||
|
|
e53d10d736 | ||
|
|
2701df7a9b | ||
|
|
f07959e06b | ||
|
|
9e710f3ec7 | ||
|
|
28777174bc | ||
|
|
8fd614e8ca | ||
|
|
2978da8b46 | ||
|
|
dfdb01424a | ||
|
|
632e58de8f | ||
|
|
752e52f75e | ||
|
|
ec6349230b | ||
|
|
bb4512614b | ||
|
|
59140395e9 | ||
|
|
d051250a57 | ||
|
|
a3687cbd21 | ||
|
|
468fcd881c | ||
|
|
34f7ddd3bd | ||
|
|
dea7426857 | ||
|
|
fb117c4a65 | ||
|
|
8ca633171a | ||
|
|
c43008fed5 | ||
|
|
4a03666e82 | ||
|
|
6d92b42636 | ||
|
|
0d98280272 | ||
|
|
9fa9190813 | ||
|
|
2557f971fe | ||
|
|
fa3b31a7ac | ||
|
|
4454ed520f | ||
|
|
3fabfcda1c | ||
|
|
6e0debe014 | ||
|
|
739c336a78 | ||
|
|
96b06ca89f | ||
|
|
002b207fcc | ||
|
|
6034fc7ac9 | ||
|
|
d45645bb7c | ||
|
|
c0bed628d2 | ||
|
|
742ce81bce | ||
|
|
9596adc9c3 | ||
|
|
28a7f96f78 | ||
|
|
89de8dcc62 | ||
|
|
1115b0e345 | ||
|
|
ed557f5677 | ||
|
|
8573e748c2 | ||
|
|
76df1ffb28 | ||
|
|
ac922ca980 | ||
|
|
4922e18a1a | ||
|
|
d3c89e293b | ||
|
|
66fd0746ba | ||
|
|
2e45b25cc6 | ||
|
|
390cfdc1c5 | ||
|
|
3bfa9a1c09 | ||
|
|
97e63a7b2a | ||
|
|
881b80ad1e | ||
|
|
dd09f19d8a | ||
|
|
1829a288be | ||
|
|
aeddfc5816 | ||
|
|
d1c52c07f1 | ||
|
|
5a27a68d29 | ||
|
|
2c629c7fcc | ||
|
|
f34408cf11 | ||
|
|
e3ccd48c17 | ||
|
|
9827c4231a | ||
|
|
9765d48bda | ||
|
|
b459545aa2 | ||
|
|
63cf13150a | ||
|
|
e7dddc4b65 | ||
|
|
2214b1ea40 | ||
|
|
92bab445f4 | ||
|
|
8cc5ef5b76 | ||
|
|
e034267666 | ||
|
|
71bb830f46 | ||
|
|
0504431389 | ||
|
|
9709ce3486 | ||
|
|
db87a8f904 | ||
|
|
559c025832 | ||
|
|
f0af41bfb3 | ||
|
|
28560aca23 | ||
|
|
08a62b466a | ||
|
|
f1ef4fa4c0 | ||
|
|
93cc403567 | ||
|
|
800cd164e8 | ||
|
|
0c1deb4c22 | ||
|
|
d81bf0e28d | ||
|
|
8344157840 | ||
|
|
a114840c3c | ||
|
|
d360d3a150 | ||
|
|
17fa8e7c04 | ||
|
|
6c0d32b401 | ||
|
|
1a6f05a107 | ||
|
|
7002ed6471 | ||
|
|
6d20a2817b | ||
|
|
6137cd17c7 | ||
|
|
ceb8afca9f | ||
|
|
36c68e9567 | ||
|
|
d1515168a5 | ||
|
|
2f32ea859f | ||
|
|
402bc37847 | ||
|
|
34b2dcfec6 | ||
|
|
4d89648fe5 | ||
|
|
55199bce21 | ||
|
|
9a1ebdbca7 | ||
|
|
e6fdecb6e3 | ||
|
|
a32aef964a |
85
CHANGELOG
85
CHANGELOG
@@ -1,3 +1,82 @@
|
||||
0.9.0
|
||||
Parser changes: added counter for processed packages.
|
||||
Group pane now spans all window's height.
|
||||
SysInfo now uses ptpb site and does not block interface.
|
||||
Added Trizen (AUR tool) support.
|
||||
Added Terminal tab if user compiles project with libqtermwidget5 support.
|
||||
Added Terminal dialog in Notifier (AUR update) if user compiles project with
|
||||
libqtermwidget5 support.
|
||||
Added an Options dialog to Octopi and Notifier.
|
||||
Added button after progressbar to stop current running transaction.
|
||||
Added configurable "--noconfirm" and "--noedit" options to pacaur and "--noconfirm" to yaourt.
|
||||
Added "Search/Use Instant Search" toggle.
|
||||
Added slovenian translation (thanks to the translation crew).
|
||||
Added support fo drag pacman packages to Octopi's mainwindow so they can be installed.
|
||||
Added "Install Reason" field at Info tab.
|
||||
Added support for ALPM utils lib (thanks to guinux, from Pamac project). So, now it's possible to
|
||||
show "Download Size" in package list.
|
||||
Added link support in all Info tab package lists.
|
||||
Added option to upgrade outdated foreign packages from Octopi Notifier.
|
||||
Added Hindi translation (thanks to Panwar108).
|
||||
Name of AUR package in Info tab act as link to its site at https://aur.archlinux.org.
|
||||
Search line edit is always focused when the program starts.
|
||||
Prevent user to install partial upgrades in his system (ex: only some of the outdated packages).
|
||||
Do NOT clear search string when switching between AUR/pacman.
|
||||
BugFix: If threre are updated News after a synchronization, let's goto the News Tab.
|
||||
BugFix: Remove only Octopi tools related temporary files (qtsingleapp*).
|
||||
BugFix: Do not let program display an avalanche of internet related errors.
|
||||
BugFix: Exec internet tests before some commands in Octopi and Notifier.
|
||||
BugFix: Parser was not outputing repository errors when syncinc.
|
||||
BugFix: repoeditor now runs as normal user and asks for root password on save.
|
||||
BugFix: If Notifier hid Octopi and was closed, Octopi's window would stay hidden.
|
||||
BugFix: Notifier's about dialog was never screen centered.
|
||||
BugFix: When no AUR helper exists, the group of packages panel stayed disabled.
|
||||
BugFix: Cache Cleaner now saves its window geometry.
|
||||
BugFix: Infinite wait cursor in Cache Cleaner when user press Enter for more than two
|
||||
seconds in the spin boxes.
|
||||
BugFix: Some pkg download/installed sizes were not showing properly at Info tab.
|
||||
BugFix: If we find an outdated AUR pkg in the official pkg list, we remove it.
|
||||
BugFix: Install local packages did not work with space separated paths
|
||||
(thanks to voanhcuoc for pointing it out).
|
||||
BugFix: About and System Upgrade dialogs could be opened twice in notifier.
|
||||
BugFix: Max time in minutes for notification interval was not honoring > 1380.
|
||||
BugFix: Optional dependencies dialog can now be resized and new value is
|
||||
persisted on disk.
|
||||
BugFix: Using the alpm algorithm for package version comparison. Previous code
|
||||
was reporting false newer packages.
|
||||
BugFix: System upgrade button was not disabled while synching packages in notifier.
|
||||
BugFix: searchlineedit font fix.
|
||||
BugFix: 'yaourt' and 'pacaur' no longer honor "-a" option when querying outdated
|
||||
foreign packages.
|
||||
BugFix: System upgrade shortcut changed to "ctrl+P" as "ctrl+U" is used to cut text in
|
||||
QLineEdit widgets.
|
||||
BugFix: When user selected another search option, line edit was not being cleared.
|
||||
BugFix: Disable alien icon while in transaction.
|
||||
BugFix: Do not ask twice for password if a pacman lck file exists.
|
||||
|
||||
0.8.1
|
||||
BugFix: Updated CHAKRA RSS site (thanks to s8321414).
|
||||
BugFix: Distro news now works with https KaOS site.
|
||||
BugFix: Files tab was not refreshing when enabling KCP mode in KaOS.
|
||||
BugFix: Do not permit two or more octopi instances if one is in root mode.
|
||||
BugFix: When there's a pkg change outside Octopi, we trigger a flag to refresh the lists.
|
||||
BugFix: When you were searching for a pkg and the Files tab was selected, focus got lost.
|
||||
BugFix: Package dependencies with >, <, =, >= and <= signals were not clickable in Info tab.
|
||||
BugFix: When user commits a transaction, commit and cancel buttons must get disabled.
|
||||
Package list now also preserves sort column and sort order while in AUR/KCP/CCR mode.
|
||||
Make Octopi more keyboard friendly.
|
||||
Pressing <ENTER>, <RETURN> and <DELETE> keys on package list triggers package actions.
|
||||
Stop using 'notify-send' in octopi-notifier: the era of annoying notifiers is over.
|
||||
Major refactoring: Decoupling of Pacman executor and parser code from the UI as well as
|
||||
SearchBar slots for QTextBrowser objects.
|
||||
Added URL information to yaourt/pacaur remote pkgs at Info tab.
|
||||
Added <F2> shortcut to focus package list.
|
||||
Added an output dialog to notifier, so users can do a system upgrade without a terminal.
|
||||
Added an entry for Mirror-check in Tools menu.
|
||||
Added support for Simplified Chinese (zh_CN).
|
||||
Added support for lxqt-sudo tool (thanks to Manjaro team).
|
||||
Added "pkgfile -u" (if available) in sync db transaction.
|
||||
|
||||
0.8.0
|
||||
This is a Qt5 only version (with the exception of 'octopi-notifier').
|
||||
BugFix: Speed optimizations in startup code (AUR outdated list).
|
||||
@@ -18,7 +97,7 @@
|
||||
BugFix: Added option to search files with "\+" (escaping the plus sign). This would find things such
|
||||
as C++ => "c\+\+" (thanks to maxis11).
|
||||
Added support to "kcp --information" at Info tab.
|
||||
Now tab Files shows a progressbar while building the list of files.
|
||||
Now Files tab shows a progressbar while building the list of files.
|
||||
Yellow notifier icon tooltip now displays Foreign repo tool name.
|
||||
When outdated packages are printed at Output tab, you can see their
|
||||
information just hovering the mouse over them.
|
||||
@@ -134,7 +213,7 @@
|
||||
BugFix: Adapted ArchBang changes.
|
||||
BugFix: Removed unused Ctrl+N help text.
|
||||
BugFix: Some changes in LXQt support.
|
||||
BugFix: Download and installed size info at info tab.
|
||||
BugFix: Download and installed size info at Info tab.
|
||||
BugFix: The 'Enter' key (numeric keyboard) is now supported.
|
||||
BugFix: At start when there is no pacman db, octopi hangs (thanks to anex).
|
||||
BugFix: After a pkg list rebuild the Files and Info cache were not
|
||||
@@ -366,7 +445,7 @@ terminal, the package actions remained disabled.
|
||||
0.1.3
|
||||
Added better support to Qt dark themes.
|
||||
Added context menu support inside Files tab.
|
||||
Made URLs clickable inside output tab.
|
||||
Made URLs clickable inside Output tab.
|
||||
Fixed the annoying Packager information display bug.
|
||||
|
||||
0.1.2
|
||||
|
||||
154
PKGBUILD
154
PKGBUILD
@@ -1,107 +1,71 @@
|
||||
pkgname=('octopi' 'octopi-notifier' 'octopi-repoeditor' 'octopi-cachecleaner')
|
||||
pkgver=0.8.0
|
||||
pkgname=octopi
|
||||
pkgver=0.9.0
|
||||
pkgrel=1
|
||||
pkgdesc="a powerful Pacman frontend using Qt libs"
|
||||
pkgdesc="This is Octopi, a powerful Pacman frontend using Qt libs"
|
||||
url="https://octopiproject.wordpress.com/"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://octopiproject.wordpress.com"
|
||||
license=('GPL2')
|
||||
install=$pkgname.install
|
||||
makedepends=('git')
|
||||
depends=('qt4' 'qt5-quickcontrols' 'xterm')
|
||||
depends=('pacman' 'pacman-contrib' 'pkgfile' 'knotifications' 'alpm_octopi_utils' 'xterm' 'qtermwidget')
|
||||
optdepends=('kdesu: for KDE'
|
||||
'gksu: for XFCE, Gnome, LXDE, Cinnamon'
|
||||
'gnome-keyring: for password management'
|
||||
'gist: for SysInfo report'
|
||||
'yaourt: for AUR support'
|
||||
'octopi-notifier: for notifications'
|
||||
'pkgfile: to view uninstalled pkg contents in ArchLinux')
|
||||
provides=('octopi')
|
||||
md5sums=()
|
||||
'yaourt: for AUR support')
|
||||
groups=('system')
|
||||
install=octopi.install
|
||||
source=("https://github.com/aarnt/octopi/archive/v${pkgver}.tar.gz")
|
||||
#md5sums=('')
|
||||
|
||||
prepare() {
|
||||
cd ${pkgname}-${pkgver}
|
||||
|
||||
# enable the kstatus switch, disable if you wish to build without Plasma/knotifications support
|
||||
sed -e "s|DEFINES += ALPM_BACKEND #KSTATUS|DEFINES += ALPM_BACKEND KSTATUS|" -i notifier/octopi-notifier/octopi-notifier.pro
|
||||
|
||||
cp resources/images/octopi_green.png resources/images/octopi.png
|
||||
}
|
||||
|
||||
build() {
|
||||
cpucount=$(grep -c processor /proc/cpuinfo 2>/dev/null)
|
||||
jc=$((${cpucount:-1}))
|
||||
|
||||
#cd "$srcdir"
|
||||
msg "Starting build..."
|
||||
|
||||
cd $startdir
|
||||
qmake-qt5 $pkgname.pro
|
||||
make -j $jc
|
||||
|
||||
cd $startdir/notifier/pacmanhelper
|
||||
msg "Building pacmanhelper..."
|
||||
qmake-qt5 pacmanhelper.pro
|
||||
make -j $jc
|
||||
|
||||
cd $startdir/notifier/octopi-notifier
|
||||
msg "Building octopi-notifier..."
|
||||
qmake-qt4 octopi-notifier.pro
|
||||
make -j $jc
|
||||
|
||||
cd $startdir/repoeditor
|
||||
msg "Building octopi-repoeditor..."
|
||||
qmake-qt5 octopi-repoeditor.pro
|
||||
make -j $jc
|
||||
|
||||
cd $startdir/cachecleaner
|
||||
msg "Building octopi-cachecleaner..."
|
||||
qmake-qt5 octopi-cachecleaner.pro
|
||||
make -j $jc
|
||||
|
||||
}
|
||||
|
||||
package_octopi() {
|
||||
#Octopi main files
|
||||
install -D -m755 $startdir/bin/$pkgname ${pkgdir}/usr/bin/$pkgname
|
||||
install -D -m644 $startdir/$pkgname.desktop ${pkgdir}/usr/share/applications/$pkgname.desktop
|
||||
install -D -m644 $startdir/resources/images/${pkgname}_green.png ${pkgdir}/usr/share/icons/$pkgname.png
|
||||
install -D -m644 $startdir/resources/images/${pkgname}_green.png ${pkgdir}/usr/share/icons/gnome/32x32/apps/$pkgname.png
|
||||
install -D -m644 $startdir/resources/images/${pkgname}_red.png ${pkgdir}/usr/share/icons/${pkgname}_red.png
|
||||
install -D -m644 $startdir/resources/images/${pkgname}_yellow.png ${pkgdir}/usr/share/icons/${pkgname}_yellow.png
|
||||
|
||||
#speedup files
|
||||
install -D -m755 $startdir/speedup/speedup-octopi.sh ${pkgdir}/usr/bin/speedup-octopi.sh
|
||||
install -D -m644 $startdir/speedup/${pkgname}.service ${pkgdir}/etc/systemd/system/${pkgname}.service
|
||||
|
||||
#Pacmaneditor files
|
||||
install -D -m755 $startdir/repoeditor/bin/octopi-repoeditor ${pkgdir}/usr/bin/octopi-repoeditor
|
||||
|
||||
#Cachecleaner files
|
||||
install -D -m755 $startdir/cachecleaner/bin/octopi-cachecleaner ${pkgdir}/usr/bin/octopi-cachecleaner
|
||||
install -D -m644 $startdir/cachecleaner/octopi-cachecleaner.desktop ${pkgdir}/usr/share/applications/octopi-cachecleaner.desktop
|
||||
}
|
||||
|
||||
package_octopi-notifier() {
|
||||
pkgdesc="Notifier for Octopi"
|
||||
depends=('libnotify')
|
||||
optdepends=('octopi: launch graphical package manager from tray'
|
||||
'xfce4-notifyd: for notifications in XFCE')
|
||||
|
||||
#Pacmanhelper service files
|
||||
install -D -m755 $startdir/notifier/bin/pacmanhelper ${pkgdir}/usr/lib/octopi/pacmanhelper
|
||||
|
||||
install -D -m644 $startdir/notifier/pacmanhelper/polkit/org.octopi.pacman.policy ${pkgdir}/usr/share/polkit-1/actions/org.octopi.pacman.policy
|
||||
install -D -m644 $startdir/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.conf ${pkgdir}/etc/dbus-1/system.d/org.octopi.pacmanhelper.conf
|
||||
install -D -m644 $startdir/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.xml ${pkgdir}/usr/share/dbus-1/interfaces/org.octopi.pacmanhelper.xml
|
||||
install -D -m644 $startdir/notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.service ${pkgdir}/usr/share/dbus-1/system-services/org.octopi.pacmanhelper.service
|
||||
|
||||
#Octopi-notifier file
|
||||
install -D -m755 $startdir/notifier/bin/octopi-notifier ${pkgdir}/usr/bin/octopi-notifier
|
||||
install -D -m644 $startdir/octopi-notifier.desktop ${pkgdir}/etc/xdg/autostart/octopi-notifier.desktop
|
||||
}
|
||||
|
||||
package_octopi-repoeditor() {
|
||||
pkgdesc="Repoeditor for Octopi"
|
||||
cd ${pkgname}-${pkgver}
|
||||
|
||||
#Octopi-repoeditor file
|
||||
install -D -m755 $startdir/repoeditor/bin/octopi-repoeditor ${pkgdir}/usr/bin/octopi-repoeditor
|
||||
qmake-qt5 octopi.pro
|
||||
make
|
||||
|
||||
cd notifier/pacmanhelper
|
||||
qmake-qt5 QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" pacmanhelper.pro
|
||||
make
|
||||
cd ../..
|
||||
|
||||
cd notifier/octopi-notifier
|
||||
qmake-qt5 QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" octopi-notifier.pro
|
||||
make
|
||||
cd ../..
|
||||
|
||||
cd repoeditor
|
||||
qmake-qt5 QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" octopi-repoeditor.pro
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd cachecleaner
|
||||
qmake-qt5 QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" octopi-cachecleaner.pro
|
||||
make
|
||||
}
|
||||
|
||||
package_octopi-cachecleaner() {
|
||||
pkgdesc="Cachecleaner for Octopi"
|
||||
|
||||
#Octopi-cachecleaner file
|
||||
install -D -m755 $startdir/cachecleaner/bin/octopi-cachecleaner ${pkgdir}/usr/bin/octopi-cachecleaner
|
||||
install -D -m644 $startdir/cachecleaner/$pkgname.desktop ${pkgdir}/usr/share/applications/$pkgname.desktop
|
||||
package() {
|
||||
cd ${pkgname}-${pkgver}
|
||||
make INSTALL_ROOT=${pkgdir} install
|
||||
|
||||
cd notifier/pacmanhelper
|
||||
make INSTALL_ROOT=${pkgdir} install
|
||||
cd ../..
|
||||
|
||||
cd notifier/octopi-notifier
|
||||
make INSTALL_ROOT=${pkgdir} install
|
||||
cd ../..
|
||||
|
||||
cd repoeditor
|
||||
make INSTALL_ROOT=${pkgdir} install
|
||||
cd ..
|
||||
|
||||
cd cachecleaner
|
||||
make INSTALL_ROOT=${pkgdir} install
|
||||
}
|
||||
|
||||
45
README.md
45
README.md
@@ -2,32 +2,32 @@
|
||||
|
||||
The project site is hosted at https://octopiproject.wordpress.com
|
||||
|
||||
Currently, 10 Linux distros are compatible with it
|
||||
Currently, 9 Linux distros are compatible with it
|
||||
|
||||
* [Antergos] (https://antergos.com/)
|
||||
* [ArchBang] (http://wiki.archbang.org/index.php?title=Main_Page)
|
||||
* [Arch] (https://www.archlinux.org/)
|
||||
* [ArchBSD] (https://pacbsd.org/)
|
||||
* [Chakra] (https://chakraos.org/)
|
||||
* [KaOS] (http://kaosx.us/)
|
||||
* [Manjaro] (http://manjaro.github.io/)
|
||||
* [mooOS] (http://mooos.org/)
|
||||
* [Netrunner (rolling)]
|
||||
(http://www.netrunner.com/netrunner-rolling-release/)
|
||||
* [Parabola GNU/Linux-libre] (http://www.parabola.nu/https/)
|
||||
* [Antergos](https://antergos.com/)
|
||||
* [ArchBang](http://archbang.org/)
|
||||
* [Arch](https://www.archlinux.org/)
|
||||
* [Chakra](https://chakralinux.org/)
|
||||
* [KaOS](https://kaosx.us/)
|
||||
* [Manjaro](https://manjaro.org/)
|
||||
* [mooOS](http://mooos.sourceforge.net/)
|
||||
* [Netrunner (rolling)](http://www.netrunner.com/netrunner-rolling-release/)
|
||||
* [Parabola GNU/Linux-libre](https://www.parabola.nu/)
|
||||
|
||||
### What you must install in your system to have Octopi fully functional
|
||||
|
||||
You'll need a privilege escalation tool to use it, once running as
|
||||
root will ONLY work in KDE. Octopi supports kdesu and gksu for that.
|
||||
|
||||
You'll need:
|
||||
* [Alpm_octopi_utils](https://github.com/aarnt/alpm_octopi_utils/) library
|
||||
* A privilege escalation tool to use it. Octopi supports gksu, kdesu and lxqt-sudo for that
|
||||
* qtermwidget >= 0.8 in order to build Octopi with embedded terminal support
|
||||
|
||||
### Simple steps to build Octopi code
|
||||
|
||||
Assuming you have Qt5 libs properly installed, go to the directory that has the code:
|
||||
Assuming you have Qt5 libs properly installed, go to the directory where the code is located:
|
||||
|
||||
```
|
||||
$ cd OCTOPI_PATH
|
||||
$ qmake
|
||||
$ qmake-qt5
|
||||
$ make
|
||||
```
|
||||
|
||||
@@ -38,15 +38,16 @@ $ cd OCTOPI_PATH
|
||||
$ makepkg -f
|
||||
```
|
||||
|
||||
### How to enable the "alien" icon at toolbar
|
||||
### How to enable AUR support (that "alien" icon at toolbar)
|
||||
|
||||
To enable AUR support, you'll need to install "yaourt" or "pacaur" in your system.
|
||||
In Chakra, "ccr" will be supported out of the box.
|
||||
In KaOS, "kcp" will be supported out of the box.
|
||||
To enable AUR support, you'll need to install [yaourt](https://archlinux.fr/yaourt-en),
|
||||
[pacaur](https://github.com/rmarquis/pacaur) or [trizen](https://github.com/trizen/trizen) in your system.
|
||||
In Chakra, [chaser](https://github.com/ccr-tools/chaser) will be supported out of the box.
|
||||
In KaOS, [kcp](https://github.com/bvaudour/kcp) will be supported out of the box.
|
||||
|
||||
### Ways to help/support Octopi
|
||||
|
||||
* You can "Star" it at the Github page - https://github.com/aarnt/octopi
|
||||
* You can "Star" it at the Github page - https://github.com/aarnt/octopi/
|
||||
* You can vote in the AUR package available at https://aur.archlinux.org/packages/octopi/
|
||||
* You can translate it to your mother language at https://www.transifex.com/projects/p/octopi/
|
||||
* You can follow author's twitter account at https://twitter.com/aaarnt
|
||||
|
||||
@@ -20,9 +20,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
#include "cachecleaner.h"
|
||||
#include "ui_cachecleaner.h"
|
||||
|
||||
#include "../src/strconstants.h"
|
||||
|
||||
#include <QKeyEvent>
|
||||
|
||||
/*
|
||||
* CacheCleaner window constructor
|
||||
*/
|
||||
@@ -30,7 +31,6 @@ CacheCleaner::CacheCleaner(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::CacheCleaner)
|
||||
{
|
||||
|
||||
//UI initialization
|
||||
ui->setupUi(this);
|
||||
|
||||
@@ -51,8 +51,10 @@ CacheCleaner::CacheCleaner(QWidget *parent) :
|
||||
m_uninstalled = new PackageGroupModel("-u",
|
||||
ui->uninstalledPackagesList,
|
||||
ui->keepUninstalledPackagesSpinner,
|
||||
ui->refreshUninstalledButton,
|
||||
ui->refreshUninstalledButton,
|
||||
ui->cleanUninstalledButton);
|
||||
|
||||
restoreGeometry(SettingsManager::getCacheCleanerWindowSize());
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -70,6 +72,20 @@ CacheCleaner::~CacheCleaner()
|
||||
*/
|
||||
void CacheCleaner::closeEvent(QCloseEvent *)
|
||||
{
|
||||
QByteArray windowSize=saveGeometry();
|
||||
|
||||
SettingsManager::setCacheCleanerWindowSize(windowSize);
|
||||
SettingsManager::setKeepNumInstalledPackages(ui->keepInstalledPackagesSpinner->value());
|
||||
SettingsManager::setKeepNumUninstalledPackages(ui->keepUninstalledPackagesSpinner->value());
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever user presses ESC, we quit the program
|
||||
*/
|
||||
void CacheCleaner::keyPressEvent(QKeyEvent *ke)
|
||||
{
|
||||
if (ke->key() == Qt::Key_Escape)
|
||||
{
|
||||
close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,6 @@ class CacheCleaner : public QMainWindow
|
||||
|
||||
private:
|
||||
Ui::CacheCleaner *ui;
|
||||
|
||||
PackageGroupModel *m_installed;
|
||||
PackageGroupModel *m_uninstalled;
|
||||
|
||||
@@ -48,6 +47,7 @@ public:
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *);
|
||||
void keyPressEvent(QKeyEvent *);
|
||||
};
|
||||
|
||||
#endif // CACHECLEANER_H
|
||||
|
||||
@@ -19,10 +19,11 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "cachecleaner.h"
|
||||
|
||||
#include "../../src/strconstants.h"
|
||||
#include "../src/QtSolutions/qtsingleapplication.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QMessageBox>
|
||||
#include <QTranslator>
|
||||
#include <QLocale>
|
||||
#include <QLibraryInfo>
|
||||
@@ -46,10 +47,20 @@ int main( int argc, char *argv[] )
|
||||
QLocale::system().name());
|
||||
app.installTranslator(&appTranslator);
|
||||
|
||||
if (UnixCommand::isRootRunning()){
|
||||
QMessageBox::critical( 0, StrConstants::getApplicationName(), StrConstants::getErrorRunningWithRoot());
|
||||
return ( -2 );
|
||||
}
|
||||
|
||||
if (!UnixCommand::hasTheExecutable("paccache"))
|
||||
{
|
||||
QMessageBox::critical( 0, StrConstants::getApplicationName(), StrConstants::getExecutableCouldNotBeFound().arg("\"paccache\""));
|
||||
return ( -3 );
|
||||
}
|
||||
|
||||
CacheCleaner w;
|
||||
app.setActivationWindow(&w);
|
||||
w.show();
|
||||
|
||||
QResource::registerResource("./resources.qrc");
|
||||
|
||||
return app.exec();
|
||||
|
||||
@@ -20,6 +20,7 @@ HEADERS += cachecleaner.h \
|
||||
../src/wmhelper.h \
|
||||
../src/terminal.h \
|
||||
../src/settingsmanager.h \
|
||||
../src/searchlineedit.h \
|
||||
../src/utils.h \
|
||||
../src/package.h \
|
||||
../src/QtSolutions/qtsingleapplication.h \
|
||||
@@ -31,10 +32,12 @@ HEADERS += cachecleaner.h \
|
||||
SOURCES += main.cpp \
|
||||
cachecleaner.cpp \
|
||||
packagegroupmodel.cpp \
|
||||
../src/strconstants.cpp \
|
||||
../src/unixcommand.cpp \
|
||||
../src/wmhelper.cpp \
|
||||
../src/terminal.cpp \
|
||||
../src/settingsmanager.cpp \
|
||||
../src/searchlineedit.cpp \
|
||||
../src/utils.cpp \
|
||||
../src/package.cpp \
|
||||
../src/QtSolutions/qtsingleapplication.cpp \
|
||||
@@ -48,6 +51,7 @@ RESOURCES += resources.qrc
|
||||
|
||||
TRANSLATIONS += resources/translations/octopi_cachecleaner_pt_BR.ts \
|
||||
resources/translations/octopi_cachecleaner_fr_FR.ts \
|
||||
resources/translations/octopi_cachecleaner_fr.ts \
|
||||
resources/translations/octopi_cachecleaner_es_ES.ts \
|
||||
resources/translations/octopi_cachecleaner_es_419.ts \
|
||||
resources/translations/octopi_cachecleaner_es_AR.ts \
|
||||
@@ -64,6 +68,8 @@ TRANSLATIONS += resources/translations/octopi_cachecleaner_pt_BR.ts \
|
||||
resources/translations/octopi_cachecleaner_da.ts \
|
||||
resources/translations/octopi_cachecleaner_cs.ts \
|
||||
resources/translations/octopi_cachecleaner_he.ts \
|
||||
resources/translations/octopi_cachecleaner_hi.ts \
|
||||
resources/translations/octopi_cachecleaner_hi_IN.ts \
|
||||
resources/translations/octopi_cachecleaner_lt.ts \
|
||||
resources/translations/octopi_cachecleaner_nb.ts \
|
||||
resources/translations/octopi_cachecleaner_sr@latin.ts \
|
||||
@@ -77,6 +83,7 @@ TRANSLATIONS += resources/translations/octopi_cachecleaner_pt_BR.ts \
|
||||
resources/translations/octopi_cachecleaner_en_GB.ts \
|
||||
resources/translations/octopi_cachecleaner_pt_PT.ts \
|
||||
resources/translations/octopi_cachecleaner_sv.ts \
|
||||
resources/translations/octopi_cachecleaner_sl.ts \
|
||||
resources/translations/octopi_cachecleaner_hu.ts \
|
||||
resources/translations/octopi_cachecleaner_zh_TW.ts \
|
||||
resources/translations/octopi_cachecleaner_ms_MY.ts \
|
||||
@@ -88,3 +95,26 @@ TRANSLATIONS += resources/translations/octopi_cachecleaner_pt_BR.ts \
|
||||
resources/translations/octopi_cachecleaner_ast.ts \
|
||||
resources/translations/octopi_cachecleaner_hr.ts \
|
||||
resources/translations/octopi_cachecleaner_zh-Hans.ts
|
||||
resources/translations/octopi_cachecleaner_zh_CN.ts
|
||||
|
||||
# install
|
||||
isEmpty(PREFIX) {
|
||||
PREFIX = /usr
|
||||
}
|
||||
|
||||
isEmpty(BINDIR) {
|
||||
BINDIR = $$PREFIX/bin
|
||||
}
|
||||
|
||||
isEmpty(DATADIR) {
|
||||
DATADIR = $$PREFIX/share
|
||||
}
|
||||
|
||||
target.path = $$BINDIR
|
||||
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
|
||||
sources.path = .
|
||||
|
||||
desktop.path = $$DATADIR/applications
|
||||
desktop.files += cachecleaner/octopi-cachecleaner.desktop
|
||||
|
||||
INSTALLS += target desktop
|
||||
|
||||
@@ -56,6 +56,8 @@ PackageGroupModel::PackageGroupModel(QString optionsString,
|
||||
connect( m_refreshButton, SIGNAL( clicked() ), SLOT( refreshCacheView() ) );
|
||||
connect( m_cleanButton, SIGNAL( clicked() ), SLOT( cleanCache() ) );
|
||||
|
||||
isExecutingCommand = false;
|
||||
|
||||
//refresh cache informations at startup
|
||||
refreshCacheView();
|
||||
}
|
||||
@@ -102,6 +104,8 @@ QString PackageGroupModel::getOptions()
|
||||
*/
|
||||
void PackageGroupModel::refreshCacheView()
|
||||
{
|
||||
if (isExecutingCommand) return;
|
||||
|
||||
//update UI for background refresh
|
||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||
m_acc->reset();
|
||||
@@ -116,6 +120,7 @@ void PackageGroupModel::refreshCacheView()
|
||||
this, SLOT( finishedDryrun ( int, QProcess::ExitStatus )) );
|
||||
|
||||
m_cmd->executeCommandAsNormalUser("paccache -v -d " + getOptions());
|
||||
isExecutingCommand = true;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -144,6 +149,8 @@ bool PackageGroupModel::isSUAvailable()
|
||||
*/
|
||||
void PackageGroupModel::cleanCache()
|
||||
{
|
||||
if (isExecutingCommand) return;
|
||||
|
||||
if (!isSUAvailable())
|
||||
return;
|
||||
|
||||
@@ -159,6 +166,7 @@ void PackageGroupModel::cleanCache()
|
||||
|
||||
QByteArray tmp = "paccache -r " + getOptions().toLatin1();
|
||||
m_cmd->executeCommand(QLatin1String(tmp), ectn_LANG_USER_DEFINED);
|
||||
isExecutingCommand = true;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -172,6 +180,8 @@ void PackageGroupModel::finishedDryrun(int exitCode, QProcess::ExitStatus)
|
||||
|
||||
QApplication::restoreOverrideCursor();
|
||||
|
||||
isExecutingCommand = false;
|
||||
|
||||
if(exitCode > 1)
|
||||
{
|
||||
//process failed, provide info on errors
|
||||
@@ -198,10 +208,11 @@ void PackageGroupModel::finishedClean(int exitCode, QProcess::ExitStatus)
|
||||
|
||||
QApplication::restoreOverrideCursor();
|
||||
|
||||
isExecutingCommand = false;
|
||||
|
||||
if(exitCode != 0)
|
||||
{
|
||||
//process failed, provide info on errors
|
||||
QMessageBox::critical(m_listView, "Error whith the underlying process",m_acc->getErrors());
|
||||
//process failed, return to main window
|
||||
m_refreshButton->setEnabled(true);
|
||||
m_cleanButton->setEnabled(true);
|
||||
}
|
||||
@@ -218,7 +229,7 @@ void PackageGroupModel::finishedClean(int exitCode, QProcess::ExitStatus)
|
||||
* @param output The output of the dryrun process
|
||||
*/
|
||||
void PackageGroupModel::processDryrunResult(QString output) {
|
||||
QStringList lines = output.split(QRegExp("\\n"), QString::SkipEmptyParts);
|
||||
QStringList lines = output.split(QRegularExpression("\\n"), QString::SkipEmptyParts);
|
||||
|
||||
if(lines.length() == 1 || output.contains("*.pkg.tar?(.+([^.]))"))
|
||||
{
|
||||
|
||||
@@ -82,6 +82,7 @@ class PackageGroupModel : public QObject
|
||||
|
||||
private:
|
||||
bool isSUAvailable();
|
||||
bool isExecutingCommand;
|
||||
|
||||
public:
|
||||
PackageGroupModel(QString, QListWidget *, QSpinBox *, QPushButton *, QPushButton *);
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#/bin/sh
|
||||
# Helper for Qt5 libs to generate all Octopi translations
|
||||
|
||||
TRANSLATIONS=./resources/translations/*
|
||||
|
||||
for f in $TRANSLATIONS
|
||||
do
|
||||
lrelease-qt5 $f
|
||||
done
|
||||
@@ -18,7 +18,10 @@
|
||||
<file>resources/translations/octopi_cachecleaner_fi.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_fi_FI.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_fr_FR.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_fr.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_he.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_hi.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_hi_IN.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_hu.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_id.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_it.qm</file>
|
||||
@@ -36,12 +39,14 @@
|
||||
<file>resources/translations/octopi_cachecleaner_sr@latin.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_sr_RS.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_sv.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_sl.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_tr_TR.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_uk.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_uz.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_vi.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_zh_TW.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_zh-Hans.ts</file>
|
||||
<file>resources/translations/octopi_cachecleaner_zh-Hans.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_zh_CN.qm</file>
|
||||
<file>resources/translations/octopi_cachecleaner_hr.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
Binary file not shown.
@@ -4,7 +4,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
|
||||
<source>Cache Cleaner - Octopi</source>
|
||||
<translation>Netejador de la Cau/Cache - Octopi</translation>
|
||||
<translation>Netejador de la cau - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
|
||||
@@ -15,7 +15,7 @@
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
|
||||
<source>Keep :</source>
|
||||
<translation>Mantenir :</translation>
|
||||
<translation>Mantén:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
|
||||
|
||||
Binary file not shown.
@@ -4,7 +4,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
|
||||
<source>Cache Cleaner - Octopi</source>
|
||||
<translation>Cache Renser - Octopi</translation>
|
||||
<translation>Cache-renser - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
|
||||
|
||||
BIN
cachecleaner/resources/translations/octopi_cachecleaner_fr.qm
Normal file
BIN
cachecleaner/resources/translations/octopi_cachecleaner_fr.qm
Normal file
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr" version="2.0">
|
||||
<context>
|
||||
<name>CacheCleaner</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
|
||||
<source>Cache Cleaner - Octopi</source>
|
||||
<translation>Nettoyeur de cache - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
|
||||
<source>Uninstalled packages</source>
|
||||
<translation>Paquets non installés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
|
||||
<source>Keep :</source>
|
||||
<translation>Conserver :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
|
||||
<source>Number of old versions to keep</source>
|
||||
<translation>Nombre d'anciennes versions à conserver</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
|
||||
<source>Refresh</source>
|
||||
<translation>Actualiser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
|
||||
<source>Installed packages</source>
|
||||
<translation>Paquets installés</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PackageGroupModel</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
|
||||
<source>Clean</source>
|
||||
<translation>Nettoyer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
|
||||
<source>Clean %1</source>
|
||||
<translation>Nettoyer %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
cachecleaner/resources/translations/octopi_cachecleaner_hi.qm
Normal file
BIN
cachecleaner/resources/translations/octopi_cachecleaner_hi.qm
Normal file
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hi" version="2.0">
|
||||
<context>
|
||||
<name>CacheCleaner</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
|
||||
<source>Cache Cleaner - Octopi</source>
|
||||
<translation>कैश हटाए - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
|
||||
<source>Uninstalled packages</source>
|
||||
<translation>हटाए गए पैकेज</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
|
||||
<source>Keep :</source>
|
||||
<translation>रखें :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
|
||||
<source>Number of old versions to keep</source>
|
||||
<translation>पुराने पैकेज संस्करणों की संख्या, जिन्हें रखना है</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
|
||||
<source>Refresh</source>
|
||||
<translation> रिफ्रेश करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
|
||||
<source>Installed packages</source>
|
||||
<translation>इंस्टॉल हो रखें पैकेज</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PackageGroupModel</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
|
||||
<source>Clean</source>
|
||||
<translation>हटाए</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
|
||||
<source>Clean %1</source>
|
||||
<translation>%1 हटाए</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
cachecleaner/resources/translations/octopi_cachecleaner_hi_IN.qm
Normal file
BIN
cachecleaner/resources/translations/octopi_cachecleaner_hi_IN.qm
Normal file
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hi_IN" version="2.0">
|
||||
<context>
|
||||
<name>CacheCleaner</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
|
||||
<source>Cache Cleaner - Octopi</source>
|
||||
<translation>कैश की सफाई - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
|
||||
<source>Uninstalled packages</source>
|
||||
<translation>हटाए गए पैकेज</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
|
||||
<source>Keep :</source>
|
||||
<translation>रखें :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
|
||||
<source>Number of old versions to keep</source>
|
||||
<translation>पुराने पैकेज संस्करणों की संख्या, जिन्हें रखना है</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
|
||||
<source>Refresh</source>
|
||||
<translation>रिफ्रेश करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
|
||||
<source>Installed packages</source>
|
||||
<translation>इंस्टॉल हो रखें पैकेज</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PackageGroupModel</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
|
||||
<source>Clean</source>
|
||||
<translation>साफ़ करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
|
||||
<source>Clean %1</source>
|
||||
<translation>%1 साफ़ करें</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
Binary file not shown.
@@ -4,12 +4,12 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
|
||||
<source>Cache Cleaner - Octopi</source>
|
||||
<translation>Limpeza do Cache - Octopi</translation>
|
||||
<translation>Limpador do Cache - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
|
||||
<source>Uninstalled packages</source>
|
||||
<translation>Pacotes não instalados</translation>
|
||||
<translation>Pacotes desinstalados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
|
||||
|
||||
BIN
cachecleaner/resources/translations/octopi_cachecleaner_sl.qm
Normal file
BIN
cachecleaner/resources/translations/octopi_cachecleaner_sl.qm
Normal file
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="sl" version="2.0">
|
||||
<context>
|
||||
<name>CacheCleaner</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
|
||||
<source>Cache Cleaner - Octopi</source>
|
||||
<translation>Čistilnik predpomnilnika - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
|
||||
<source>Uninstalled packages</source>
|
||||
<translation>Odstranjeni paketi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
|
||||
<source>Keep :</source>
|
||||
<translation>Obdrži:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
|
||||
<source>Number of old versions to keep</source>
|
||||
<translation>Število namestitvenih datotek za obržati</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
|
||||
<source>Refresh</source>
|
||||
<translation>Osveži</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
|
||||
<source>Installed packages</source>
|
||||
<translation>Nameščeni paketi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PackageGroupModel</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
|
||||
<source>Clean</source>
|
||||
<translation>Počisti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
|
||||
<source>Clean %1</source>
|
||||
<translation>Počisti %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
Binary file not shown.
@@ -32,7 +32,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
|
||||
<source>Installed packages</source>
|
||||
<translation>Установлені пакунки</translation>
|
||||
<translation>Встановлені пакунки</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
BIN
cachecleaner/resources/translations/octopi_cachecleaner_zh_CN.qm
Normal file
BIN
cachecleaner/resources/translations/octopi_cachecleaner_zh_CN.qm
Normal file
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_CN" version="2.0">
|
||||
<context>
|
||||
<name>CacheCleaner</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="14"/>
|
||||
<source>Cache Cleaner - Octopi</source>
|
||||
<translation> 缓存清理器 - Octopi </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="49"/>
|
||||
<source>Uninstalled packages</source>
|
||||
<translation>已卸载的软件包</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="75"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="150"/>
|
||||
<source>Keep :</source>
|
||||
<translation>保留:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="82"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="157"/>
|
||||
<source>Number of old versions to keep</source>
|
||||
<translation>要保留的旧版本数量</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="102"/>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="183"/>
|
||||
<source>Refresh</source>
|
||||
<translation>刷新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/ui/cachecleaner.ui" line="127"/>
|
||||
<source>Installed packages</source>
|
||||
<translation>已安装的软件包</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PackageGroupModel</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="199"/>
|
||||
<source>Clean</source>
|
||||
<translation>清理</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/cachecleaner/packagegroupmodel.cpp" line="222"/>
|
||||
<source>Clean %1</source>
|
||||
<translation>清理 %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -64,20 +64,6 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
QApplication a(argc, argv);
|
||||
|
||||
#if QT_VERSION < 0x050000
|
||||
#ifndef NO_GTK_STYLE
|
||||
QApplication::setGraphicsSystem(QLatin1String("raster"));
|
||||
|
||||
if(!WMHelper::isKDERunning() && (!WMHelper::isLXQTRunning()) && (!WMHelper::isRazorQtRunning()))
|
||||
{
|
||||
qApp->setStyle(new QGtkStyle());
|
||||
}
|
||||
else
|
||||
qApp->setStyle(new QCleanlooksStyle);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
QTranslator appTranslator;
|
||||
appTranslator.load(":/resources/translations/octopi_" +
|
||||
QLocale::system().name());
|
||||
|
||||
@@ -19,12 +19,13 @@
|
||||
*/
|
||||
|
||||
#include "mainwindow.h"
|
||||
#include "setupdialog.h"
|
||||
#include "outputdialog.h"
|
||||
#include "../pacmanhelper/pacmanhelperclient.h"
|
||||
#include "../../src/strconstants.h"
|
||||
#include "../../src/uihelper.h"
|
||||
#include "../../src/package.h"
|
||||
#include "../../src/transactiondialog.h"
|
||||
#include "../../src/optionsdialog.h"
|
||||
|
||||
#include <QTimer>
|
||||
#include <QSystemTrayIcon>
|
||||
@@ -33,6 +34,7 @@
|
||||
#include <QProcess>
|
||||
#include <QMessageBox>
|
||||
#include <QDebug>
|
||||
#include <QScreen>
|
||||
|
||||
#ifdef KSTATUS
|
||||
#include <kstatusnotifieritem.h>
|
||||
@@ -48,14 +50,17 @@
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent)
|
||||
{
|
||||
m_pacmanExec = nullptr;
|
||||
m_transactionDialog = nullptr;
|
||||
m_debugInfo = false;
|
||||
m_configDialog = nullptr;
|
||||
m_optionsDialog = nullptr;
|
||||
m_pacmanDatabaseSystemWatcher =
|
||||
new QFileSystemWatcher(QStringList() << ctn_PACMAN_DATABASE_DIR, this);
|
||||
|
||||
connect(m_pacmanDatabaseSystemWatcher,
|
||||
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
|
||||
|
||||
initActions();
|
||||
initSystemTrayIcon();
|
||||
}
|
||||
|
||||
@@ -66,6 +71,45 @@ MainWindow::~MainWindow()
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Let's initialize all notifier's actions...
|
||||
*/
|
||||
void MainWindow::initActions()
|
||||
{
|
||||
m_actionExit = new QAction(IconHelper::getIconExit(), tr("Exit"), this);
|
||||
connect(m_actionExit, SIGNAL(triggered()), this, SLOT(exitNotifier()));
|
||||
|
||||
m_actionAbout = new QAction(StrConstants::getHelpAbout(), this);
|
||||
m_actionAbout->setIconVisibleInMenu(true);
|
||||
connect(m_actionAbout, SIGNAL(triggered()), this, SLOT(aboutOctopiNotifier()));
|
||||
|
||||
m_actionOctopi = new QAction(this);
|
||||
m_actionOctopi->setText("Octopi...");
|
||||
connect(m_actionOctopi, SIGNAL(triggered()), this, SLOT(startOctopi()));
|
||||
|
||||
m_actionOptions = new QAction(this);
|
||||
m_actionOptions->setText(StrConstants::getOptions());
|
||||
connect(m_actionOptions, SIGNAL(triggered()), this, SLOT(showOptionsDialog()));
|
||||
|
||||
m_actionSyncDatabase = new QAction(this);
|
||||
m_actionSyncDatabase->setIconVisibleInMenu(true);
|
||||
m_actionSyncDatabase->setText(StrConstants::getSyncDatabase());
|
||||
m_actionSyncDatabase->setIcon(IconHelper::getIconSyncDatabase());
|
||||
connect(m_actionSyncDatabase, SIGNAL(triggered()), this, SLOT(syncDatabase()));
|
||||
|
||||
m_actionSystemUpgrade = new QAction(this);
|
||||
m_actionSystemUpgrade->setIconVisibleInMenu(true);
|
||||
m_actionSystemUpgrade->setText(tr("System upgrade"));
|
||||
m_actionSystemUpgrade->setIcon(IconHelper::getIconSystemUpgrade());
|
||||
connect(m_actionSystemUpgrade, SIGNAL(triggered()), this, SLOT(runOctopiSysUpgrade()));
|
||||
|
||||
m_actionAURUpgrade = new QAction(this);
|
||||
m_actionAURUpgrade->setIconVisibleInMenu(true);
|
||||
m_actionAURUpgrade->setText(tr("System upgrade"));
|
||||
m_actionAURUpgrade->setIcon(IconHelper::getIconForeignGreen());
|
||||
connect(m_actionAURUpgrade, SIGNAL(triggered()), this, SLOT(runOctopiAURUpgrade()));
|
||||
}
|
||||
|
||||
/*
|
||||
* Let's initialize the system tray object...
|
||||
*/
|
||||
@@ -93,42 +137,17 @@ void MainWindow::initSystemTrayIcon()
|
||||
m_systemTrayIcon->setIcon(m_icon);
|
||||
#endif
|
||||
|
||||
m_actionExit = new QAction(IconHelper::getIconExit(), tr("Exit"), this);
|
||||
connect(m_actionExit, SIGNAL(triggered()), this, SLOT(exitNotifier()));
|
||||
|
||||
m_actionAbout = new QAction(StrConstants::getHelpAbout(), this);
|
||||
m_actionAbout->setIconVisibleInMenu(true);
|
||||
connect(m_actionAbout, SIGNAL(triggered()), this, SLOT(aboutOctopiNotifier()));
|
||||
|
||||
m_actionOctopi = new QAction(this);
|
||||
m_actionOctopi->setText("Octopi...");
|
||||
connect(m_actionOctopi, SIGNAL(triggered()), this, SLOT(startOctopi()));
|
||||
|
||||
m_actionSetInterval = new QAction(this);
|
||||
m_actionSetInterval->setText(StrConstants::getSetInterval());
|
||||
connect(m_actionSetInterval, SIGNAL(triggered()), this, SLOT(showConfigDialog()));
|
||||
|
||||
m_actionSyncDatabase = new QAction(this);
|
||||
m_actionSyncDatabase->setIconVisibleInMenu(true);
|
||||
m_actionSyncDatabase->setText(StrConstants::getSyncDatabase());
|
||||
m_actionSyncDatabase->setIcon(IconHelper::getIconSyncDatabase());
|
||||
connect(m_actionSyncDatabase, SIGNAL(triggered()), this, SLOT(syncDatabase()));
|
||||
|
||||
m_actionSystemUpgrade = new QAction(this);
|
||||
m_actionSystemUpgrade->setIconVisibleInMenu(true);
|
||||
m_actionSystemUpgrade->setText(tr("System upgrade"));
|
||||
m_actionSystemUpgrade->setIcon(IconHelper::getIconSystemUpgrade());
|
||||
connect(m_actionSystemUpgrade, SIGNAL(triggered()), this, SLOT(runOctopiSysUpgrade()));
|
||||
|
||||
m_systemTrayIconMenu = new QMenu( this );
|
||||
|
||||
if (UnixCommand::hasTheExecutable("octopi"))
|
||||
m_systemTrayIconMenu->addAction(m_actionOctopi);
|
||||
|
||||
m_systemTrayIconMenu->addAction(m_actionSetInterval);
|
||||
m_systemTrayIconMenu->addAction(m_actionSyncDatabase);
|
||||
m_systemTrayIconMenu->addAction(m_actionAURUpgrade);
|
||||
m_systemTrayIconMenu->addAction(m_actionSystemUpgrade);
|
||||
m_systemTrayIconMenu->addSeparator();
|
||||
m_systemTrayIconMenu->addAction(m_actionOptions);
|
||||
m_systemTrayIconMenu->addSeparator();
|
||||
m_systemTrayIconMenu->addAction(m_actionAbout);
|
||||
m_systemTrayIconMenu->addAction(m_actionExit);
|
||||
m_systemTrayIcon->setContextMenu(m_systemTrayIconMenu);
|
||||
@@ -160,14 +179,14 @@ void MainWindow::pacmanHelperTimerTimeout()
|
||||
{
|
||||
static bool firstTime=true;
|
||||
|
||||
if (!UnixCommand::hasInternetConnection() || m_commandExecuting != ectn_NONE) return;
|
||||
if (/*!UnixCommand::hasInternetConnection() ||*/ m_commandExecuting != ectn_NONE) return;
|
||||
|
||||
if (firstTime)
|
||||
{
|
||||
refreshAppIcon();
|
||||
|
||||
#ifdef KSTATUS
|
||||
m_systemTrayIcon->setToolTipTitle("Octopi");
|
||||
m_systemTrayIcon->setToolTipTitle("Octopi Notifier");
|
||||
#else
|
||||
m_systemTrayIcon->show();
|
||||
#endif
|
||||
@@ -240,15 +259,48 @@ void MainWindow::runOctopiSysUpgrade()
|
||||
runOctopi(ectn_SYSUPGRADE_EXEC_OPT);
|
||||
}
|
||||
|
||||
/*
|
||||
* Helper to a runOctopi with a call to AUR upgrade
|
||||
*/
|
||||
void MainWindow::runOctopiAURUpgrade()
|
||||
{
|
||||
runOctopi(ectn_AUR_UPGRADE_EXEC_OPT);
|
||||
}
|
||||
|
||||
/*
|
||||
* Shows Octopi About Dialog...
|
||||
*/
|
||||
void MainWindow::aboutOctopiNotifier()
|
||||
{
|
||||
QString aboutText = "<b>Octopi Notifier - " + StrConstants::getApplicationVersion() + "</b>" + " (" + StrConstants::getQtVersion() + ")<br>";
|
||||
aboutText += "<a href=\"http://octopiproject.wordpress.com/\">http://octopiproject.wordpress.com</a><br><br>";
|
||||
aboutText += "© Alexandre Albuquerque Arnt";
|
||||
QMessageBox::about(this, StrConstants::getHelpAbout(), aboutText);
|
||||
m_actionAbout->setEnabled(false);
|
||||
|
||||
//First we create a fake window to act as about dialog's parent
|
||||
//Otherwise the dialog appears at a random screen point!
|
||||
QMainWindow *fake = new QMainWindow();
|
||||
fake->setWindowIcon(m_icon);
|
||||
fake->setVisible(false);
|
||||
QScreen *sc = QGuiApplication::primaryScreen();
|
||||
fake->setGeometry(sc->geometry());
|
||||
|
||||
QString aboutText = "<b>Octopi Notifier</b><br>";
|
||||
aboutText += StrConstants::getVersion() + ": " + StrConstants::getApplicationVersion() + "</b>" + " - " + StrConstants::getQtVersion() + "<br>";
|
||||
aboutText += StrConstants::getURL() + ": " + "<a href=\"http://octopiproject.wordpress.com/\">http://octopiproject.wordpress.com</a><br>";
|
||||
aboutText += StrConstants::getLicenses() + ": " + QString("<a href=\"http://www.gnu.org/licenses/gpl-2.0.html\">GPL v2</a><br>");
|
||||
aboutText += "© Alexandre Albuquerque Arnt<br><br>";
|
||||
|
||||
aboutText += "<b>Pacman</b><br>";
|
||||
QString pacmanV = UnixCommand::getPacmanVersion();
|
||||
if (pacmanV.at(0) == 'v') pacmanV.remove(0, 1);
|
||||
aboutText += StrConstants::getVersion() + ": " + pacmanV + "<br>";
|
||||
aboutText += StrConstants::getURL() + ": " + "<a href=\"https://www.archlinux.org/pacman/\">https://www.archlinux.org/pacman</a><br>";
|
||||
QDate d = QDate::currentDate();
|
||||
aboutText += "© 2006-%1 Pacman Development Team<br>";
|
||||
aboutText += "© 2002-2006 Judd Vinet";
|
||||
aboutText = aboutText.arg(d.year());
|
||||
QMessageBox::about(fake, StrConstants::getHelpAbout(), aboutText);
|
||||
|
||||
delete fake;
|
||||
m_actionAbout->setEnabled(true);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -259,6 +311,14 @@ void MainWindow::hideOctopi()
|
||||
QProcess::startDetached("octopi -hide");
|
||||
}
|
||||
|
||||
/*
|
||||
* Shows Octopi Window if it is hidden
|
||||
*/
|
||||
void MainWindow::showOctopi()
|
||||
{
|
||||
QProcess::startDetached("octopi -show");
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if some SU utility is available...
|
||||
* Returns false if not!
|
||||
@@ -282,6 +342,31 @@ bool MainWindow::_isSUAvailable()
|
||||
*/
|
||||
void MainWindow::doSystemUpgrade()
|
||||
{
|
||||
if (!isInternetAvailable()) return;
|
||||
|
||||
//If, for whatever reason, the pacman db is locked, let's ask for lock removal
|
||||
if (PacmanExec::isDatabaseLocked())
|
||||
{
|
||||
int res = QMessageBox::question(this, StrConstants::getConfirmation(),
|
||||
StrConstants::getRemovePacmanTransactionLockFileConfirmation(),
|
||||
QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
|
||||
|
||||
if (res == QMessageBox::Yes)
|
||||
{
|
||||
PacmanExec::removeDatabaseLock();
|
||||
}
|
||||
else return;
|
||||
}
|
||||
|
||||
if (m_transactionDialog != nullptr)
|
||||
{
|
||||
if (m_transactionDialog->isMinimized())
|
||||
m_transactionDialog->setWindowState(Qt::WindowNoState);
|
||||
else
|
||||
m_transactionDialog->activateWindow();
|
||||
return;
|
||||
}
|
||||
|
||||
//Shows a dialog indicating the targets needed to be retrieved and asks for the user's permission.
|
||||
QList<PackageListData> * targets = Package::getTargetUpgradeList();
|
||||
|
||||
@@ -305,31 +390,42 @@ void MainWindow::doSystemUpgrade()
|
||||
}
|
||||
list.remove(list.size()-1, 1);
|
||||
|
||||
totalDownloadSize = totalDownloadSize / 1024;
|
||||
QString ds = Package::kbytesToSize(totalDownloadSize);
|
||||
TransactionDialog question(this);
|
||||
|
||||
//If we're in Chakra, there are no graphical system upgrades!
|
||||
if (UnixCommand::getLinuxDistro() == ectn_CHAKRA || !UnixCommand::hasTheExecutable("octopi"))
|
||||
question.removeYesButton();
|
||||
m_transactionDialog = new TransactionDialog(this);
|
||||
|
||||
if(targets->count()==1)
|
||||
question.setText(StrConstants::getRetrievePackage() +
|
||||
m_transactionDialog->setText(StrConstants::getRetrievePackage() +
|
||||
"\n\n" + StrConstants::getTotalDownloadSize().arg(ds).remove(" KB"));
|
||||
else
|
||||
question.setText(StrConstants::getRetrievePackages(targets->count()) +
|
||||
m_transactionDialog->setText(StrConstants::getRetrievePackages(targets->count()) +
|
||||
"\n\n" + StrConstants::getTotalDownloadSize().arg(ds).remove(" KB"));
|
||||
|
||||
question.setWindowTitle(StrConstants::getConfirmation());
|
||||
question.setInformativeText(StrConstants::getConfirmationQuestion());
|
||||
question.setDetailedText(list);
|
||||
m_transactionDialog->setWindowTitle(StrConstants::getConfirmation());
|
||||
m_transactionDialog->setInformativeText(StrConstants::getConfirmationQuestion());
|
||||
m_transactionDialog->setDetailedText(list);
|
||||
|
||||
m_systemUpgradeDialog = true;
|
||||
int result = question.exec();
|
||||
int result = m_transactionDialog->exec();
|
||||
m_transactionDialog = nullptr;
|
||||
|
||||
if (result == QDialogButtonBox::Yes)
|
||||
{
|
||||
runOctopi(ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT);
|
||||
m_commandExecuting = ectn_SYSTEM_UPGRADE;
|
||||
|
||||
m_systemUpgradeDialog = false;
|
||||
toggleEnableInterface(false);
|
||||
m_actionSystemUpgrade->setEnabled(false);
|
||||
|
||||
OutputDialog *dlg = new OutputDialog(this);
|
||||
dlg->setPacmanSystemUpgrade(true);
|
||||
//dlg->setFrameShape(QFrame::NoFrame);
|
||||
|
||||
if (m_debugInfo)
|
||||
dlg->setDebugMode(true);
|
||||
|
||||
QObject::connect(dlg, SIGNAL( finished(int)),
|
||||
this, SLOT( doSystemUpgradeFinished() ));
|
||||
dlg->show();
|
||||
}
|
||||
else if(result == QDialogButtonBox::AcceptRole)
|
||||
{
|
||||
@@ -346,7 +442,7 @@ void MainWindow::doSystemUpgrade()
|
||||
m_unixCommand = new UnixCommand(this);
|
||||
|
||||
QObject::connect(m_unixCommand, SIGNAL( finished ( int, QProcess::ExitStatus )),
|
||||
this, SLOT( doSystemUpgradeFinished(int, QProcess::ExitStatus) ));
|
||||
this, SLOT( doSystemUpgradeFinished() ));
|
||||
|
||||
toggleEnableInterface(false);
|
||||
m_actionSystemUpgrade->setEnabled(false);
|
||||
@@ -366,10 +462,55 @@ void MainWindow::doSystemUpgrade()
|
||||
}
|
||||
|
||||
/*
|
||||
* When system upgrade process is finished...
|
||||
* Calls the OutputDialog with TermWidget to execute the AUR upgrade commands
|
||||
*/
|
||||
void MainWindow::doSystemUpgradeFinished(int, QProcess::ExitStatus)
|
||||
void MainWindow::doAURUpgrade()
|
||||
{
|
||||
QString listOfTargets;
|
||||
QString auxPkg;
|
||||
|
||||
foreach(QString pkg, *m_outdatedAURStringList)
|
||||
{
|
||||
auxPkg = pkg;
|
||||
auxPkg.remove("[1;39m");
|
||||
auxPkg.remove("[0m");
|
||||
auxPkg.remove("");
|
||||
listOfTargets += auxPkg + " ";
|
||||
}
|
||||
|
||||
#ifndef QTERMWIDGET
|
||||
if (SettingsManager::getTerminal() == ctn_QTERMWIDGET)
|
||||
SettingsManager::setTerminal(ctn_AUTOMATIC);
|
||||
#endif
|
||||
|
||||
if (SettingsManager::getTerminal() == ctn_QTERMWIDGET)
|
||||
{
|
||||
OutputDialog *dlg = new OutputDialog(this);
|
||||
dlg->setPacmanSystemUpgrade(false);
|
||||
dlg->setListOfAURPackagesToUpgrade(listOfTargets);
|
||||
|
||||
QObject::connect(dlg, SIGNAL( finished(int)),
|
||||
this, SLOT( doSystemUpgradeFinished() ));
|
||||
dlg->show();
|
||||
|
||||
//QObject::connect(m_pacmanExec, SIGNAL( finished ( int, QProcess::ExitStatus )),
|
||||
// this, SLOT( refreshAppIcon()) );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pacmanExec = new PacmanExec();
|
||||
QObject::connect(m_pacmanExec, SIGNAL( finished ( int, QProcess::ExitStatus )),
|
||||
this, SLOT( refreshAppIcon()) );
|
||||
m_pacmanExec->doAURUpgrade(listOfTargets);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* When system upgrade process has finished...
|
||||
*/
|
||||
void MainWindow::doSystemUpgradeFinished()
|
||||
{
|
||||
m_commandExecuting = ectn_NONE;
|
||||
refreshAppIcon();
|
||||
|
||||
//Does it still need to upgrade another packages due to SyncFirst issues???
|
||||
@@ -384,7 +525,6 @@ void MainWindow::doSystemUpgradeFinished(int, QProcess::ExitStatus)
|
||||
return;
|
||||
}
|
||||
|
||||
m_commandExecuting = ectn_NONE;
|
||||
m_unixCommand->removeTemporaryFile();
|
||||
toggleEnableInterface(true);
|
||||
}
|
||||
@@ -396,7 +536,8 @@ void MainWindow::toggleEnableInterface(bool state)
|
||||
{
|
||||
m_actionOctopi->setEnabled(state);
|
||||
m_actionSyncDatabase->setEnabled(state);
|
||||
m_actionSetInterval->setEnabled(state);
|
||||
m_actionOptions->setEnabled(state);
|
||||
m_actionSystemUpgrade->setEnabled(state);
|
||||
m_actionExit->setEnabled(state);
|
||||
}
|
||||
|
||||
@@ -435,7 +576,6 @@ void MainWindow::afterPacmanHelperSyncDatabase()
|
||||
notification, m_systemTrayIcon->iconName());
|
||||
#else
|
||||
m_systemTrayIcon->setToolTip(notification);
|
||||
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
|
||||
#endif
|
||||
}
|
||||
else if (m_numberOfOutdatedPackages > 1)
|
||||
@@ -448,7 +588,6 @@ void MainWindow::afterPacmanHelperSyncDatabase()
|
||||
notification, m_systemTrayIcon->iconName());
|
||||
#else
|
||||
m_systemTrayIcon->setToolTip(notification);
|
||||
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -467,7 +606,6 @@ void MainWindow::afterPacmanHelperSyncDatabase()
|
||||
notification, m_systemTrayIcon->iconName());
|
||||
#else
|
||||
m_systemTrayIcon->setToolTip(notification);
|
||||
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
|
||||
#endif
|
||||
}
|
||||
else if (numberOfOutdatedPackages > 1)
|
||||
@@ -480,17 +618,58 @@ void MainWindow::afterPacmanHelperSyncDatabase()
|
||||
notification, m_systemTrayIcon->iconName());
|
||||
#else
|
||||
m_systemTrayIcon->setToolTip(notification);
|
||||
if (!UnixCommand::isAppRunning("spun", true)) sendNotification(notification);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if Internet connection is up/down
|
||||
*/
|
||||
bool MainWindow::isInternetAvailable()
|
||||
{
|
||||
bool res=true;
|
||||
|
||||
//First we create a fake window to act as about dialog's parent
|
||||
//Otherwise the dialog appears at a random screen point!
|
||||
QMainWindow *fake = new QMainWindow();
|
||||
fake->setWindowIcon(m_icon);
|
||||
fake->setVisible(false);
|
||||
QScreen *sc = QGuiApplication::primaryScreen();
|
||||
fake->setGeometry(sc->geometry());
|
||||
|
||||
//Test if Internet access exists
|
||||
if (!UnixCommand::hasInternetConnection())
|
||||
{
|
||||
QMessageBox::critical(fake, StrConstants::getError(), StrConstants::getInternetUnavailableError());
|
||||
res=false;
|
||||
delete fake;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/*
|
||||
* Called every time user selects "Sync databases..." menu option
|
||||
*/
|
||||
void MainWindow::syncDatabase()
|
||||
{
|
||||
if (!isInternetAvailable()) return;
|
||||
|
||||
//If, for whatever reason, the pacman db is locked, let's ask for lock removal
|
||||
if (PacmanExec::isDatabaseLocked())
|
||||
{
|
||||
int res = QMessageBox::question(this, StrConstants::getConfirmation(),
|
||||
StrConstants::getRemovePacmanTransactionLockFileConfirmation(),
|
||||
QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
|
||||
|
||||
if (res == QMessageBox::Yes)
|
||||
{
|
||||
PacmanExec::removeDatabaseLock();
|
||||
}
|
||||
else return;
|
||||
}
|
||||
|
||||
disconnect(m_pacmanDatabaseSystemWatcher,
|
||||
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
|
||||
|
||||
@@ -498,7 +677,7 @@ void MainWindow::syncDatabase()
|
||||
if (m_debugInfo)
|
||||
qDebug() << now.currentTime().toString("HH:mm").toLatin1().data() << ": At syncDatabase()...";
|
||||
toggleEnableInterface(false);
|
||||
m_icon = IconHelper::getIconOctopiTransparent();
|
||||
m_icon = IconHelper::getIconOctopiBusy();
|
||||
|
||||
#ifdef KSTATUS
|
||||
m_systemTrayIcon->setIconByPixmap(m_icon);
|
||||
@@ -528,6 +707,7 @@ void MainWindow::syncDatabase()
|
||||
}
|
||||
|
||||
m_pacmanHelperClient->syncdb();
|
||||
SettingsManager::setLastSyncDbTime(QDateTime::currentDateTime());
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -550,17 +730,41 @@ void MainWindow::sendNotification(const QString &msg)
|
||||
*/
|
||||
void MainWindow::refreshAppIcon()
|
||||
{
|
||||
if (m_pacmanExec != nullptr)
|
||||
{
|
||||
delete m_pacmanExec;
|
||||
m_pacmanExec = nullptr;
|
||||
}
|
||||
|
||||
disconnect(m_pacmanDatabaseSystemWatcher,
|
||||
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
|
||||
|
||||
if (m_debugInfo)
|
||||
qDebug() << "At refreshAppIcon()...";
|
||||
m_outdatedStringList = Package::getOutdatedStringList();
|
||||
bool hasAURTool = UnixCommand::hasTheExecutable(StrConstants::getForeignRepositoryToolName());
|
||||
|
||||
if (hasAURTool)
|
||||
//We only need to check for outdated AUR pkgs IF we do NOT have outdated standard ones!
|
||||
if (m_outdatedStringList->count() == 0)
|
||||
{
|
||||
m_outdatedAURStringList = Package::getOutdatedAURStringList();
|
||||
bool hasAURTool = UnixCommand::hasTheExecutable(Package::getForeignRepositoryToolName());
|
||||
|
||||
if (hasAURTool && SettingsManager::getSearchOutdatedAURPackages())
|
||||
{
|
||||
m_outdatedAURStringList = Package::getOutdatedAURStringList();
|
||||
|
||||
for(int c=0; c<m_outdatedAURStringList->count(); ++c)
|
||||
{
|
||||
//If we find an outdated AUR pkg in the official pkg list, let's remove it
|
||||
if (UnixCommand::hasPackage(m_outdatedAURStringList->at(c)))
|
||||
{
|
||||
m_outdatedAURStringList->removeAt(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_outdatedAURStringList = new QStringList();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -573,9 +777,9 @@ void MainWindow::refreshAppIcon()
|
||||
if (m_numberOfOutdatedPackages == 0 && m_numberOfOutdatedAURPackages == 0)
|
||||
{
|
||||
#ifdef KSTATUS
|
||||
m_systemTrayIcon->setToolTipSubTitle("");
|
||||
m_systemTrayIcon->setToolTipSubTitle("Octopi Notifier");
|
||||
#else
|
||||
m_systemTrayIcon->setToolTip("");
|
||||
m_systemTrayIcon->setToolTip("Octopi Notifier");
|
||||
#endif
|
||||
}
|
||||
else if (m_numberOfOutdatedPackages > 0)
|
||||
@@ -627,12 +831,14 @@ void MainWindow::refreshAppIcon()
|
||||
{
|
||||
if(m_commandExecuting == ectn_NONE)
|
||||
{
|
||||
m_actionAURUpgrade->setVisible(false);
|
||||
m_actionSystemUpgrade->setEnabled(true);
|
||||
m_actionSystemUpgrade->setVisible(true);
|
||||
}
|
||||
|
||||
if (m_debugInfo)
|
||||
qDebug() << "Got a RED icon!";
|
||||
|
||||
m_icon = IconHelper::getIconOctopiRed();
|
||||
|
||||
|
||||
@@ -643,6 +849,8 @@ void MainWindow::refreshAppIcon()
|
||||
}
|
||||
else if(m_outdatedAURStringList->count() > 0) //YELLOW ICON!
|
||||
{
|
||||
m_actionAURUpgrade->setEnabled(true);
|
||||
m_actionAURUpgrade->setVisible(true);
|
||||
m_actionSystemUpgrade->setVisible(false);
|
||||
m_icon = IconHelper::getIconOctopiYellow();
|
||||
if (m_debugInfo)
|
||||
@@ -655,6 +863,7 @@ void MainWindow::refreshAppIcon()
|
||||
}
|
||||
else //YEAHHH... GREEN ICON!
|
||||
{
|
||||
m_actionAURUpgrade->setVisible(false);
|
||||
m_actionSystemUpgrade->setVisible(false);
|
||||
m_icon = IconHelper::getIconOctopiGreen();
|
||||
if (m_debugInfo)
|
||||
@@ -706,6 +915,10 @@ void MainWindow::execSystemTrayActivated(QSystemTrayIcon::ActivationReason ar)
|
||||
{
|
||||
hideOctopi();
|
||||
}
|
||||
else
|
||||
{
|
||||
runOctopi(ectn_NORMAL_EXEC_OPT);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -738,6 +951,9 @@ void MainWindow::exitNotifier()
|
||||
{
|
||||
if (m_debugInfo)
|
||||
qDebug() << "At exitNotifier()...";
|
||||
|
||||
//If Octopi was hidden, let's show its window again...
|
||||
if (UnixCommand::isAppRunning("octopi", true)) showOctopi();
|
||||
qApp->quit();
|
||||
}
|
||||
|
||||
@@ -748,7 +964,7 @@ void MainWindow::runOctopi(ExecOpt execOptions)
|
||||
{
|
||||
if (execOptions == ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT)
|
||||
{
|
||||
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
|
||||
if (!WMHelper::isKDERunning() && (!WMHelper::isLXQTRunning()))
|
||||
{
|
||||
QProcess::startDetached("octopi -sysupgrade-noconfirm -style gtk");
|
||||
}
|
||||
@@ -765,7 +981,7 @@ void MainWindow::runOctopi(ExecOpt execOptions)
|
||||
else if (execOptions == ectn_SYSUPGRADE_EXEC_OPT &&
|
||||
UnixCommand::isAppRunning("octopi", true) && m_outdatedStringList->count() > 0)
|
||||
{
|
||||
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
|
||||
if (!WMHelper::isKDERunning() && (!WMHelper::isLXQTRunning()))
|
||||
{
|
||||
QProcess::startDetached("octopi -sysupgrade -style gtk");
|
||||
}
|
||||
@@ -774,9 +990,19 @@ void MainWindow::runOctopi(ExecOpt execOptions)
|
||||
QProcess::startDetached("octopi -sysupgrade");
|
||||
}
|
||||
}
|
||||
else if (execOptions == ectn_AUR_UPGRADE_EXEC_OPT &&
|
||||
!UnixCommand::isAppRunning("octopi", true) && m_outdatedAURStringList->count() > 0)
|
||||
{
|
||||
doAURUpgrade();
|
||||
}
|
||||
else if (execOptions == ectn_AUR_UPGRADE_EXEC_OPT &&
|
||||
UnixCommand::isAppRunning("octopi", true) && m_outdatedAURStringList->count() > 0)
|
||||
{
|
||||
QProcess::startDetached("octopi -aurupgrade");
|
||||
}
|
||||
else if (execOptions == ectn_NORMAL_EXEC_OPT)
|
||||
{
|
||||
if (!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()) && (!WMHelper::isLXQTRunning()))
|
||||
if (!WMHelper::isKDERunning() && (!WMHelper::isLXQTRunning()))
|
||||
{
|
||||
QProcess::startDetached("octopi -style gtk");
|
||||
}
|
||||
@@ -790,14 +1016,23 @@ void MainWindow::runOctopi(ExecOpt execOptions)
|
||||
/*
|
||||
* Calls the QDialog to set notifier interval
|
||||
*/
|
||||
void MainWindow::showConfigDialog()
|
||||
void MainWindow::showOptionsDialog()
|
||||
{
|
||||
if (m_configDialog == nullptr)
|
||||
if (m_optionsDialog == nullptr)
|
||||
{
|
||||
m_configDialog = new SetupDialog(this);
|
||||
m_configDialog->exec();
|
||||
m_optionsDialog = new OptionsDialog(this);
|
||||
connect(m_optionsDialog, SIGNAL(AURToolChanged()), this, SLOT(refreshAppIcon()));
|
||||
|
||||
delete m_configDialog;
|
||||
m_configDialog = nullptr;
|
||||
utils::positionWindowAtScreenCenter(m_optionsDialog);
|
||||
m_optionsDialog->exec();
|
||||
|
||||
Options::result res = m_optionsDialog->result();
|
||||
if (res & Options::ectn_ICON)
|
||||
{
|
||||
refreshAppIcon();
|
||||
}
|
||||
|
||||
delete m_optionsDialog;
|
||||
m_optionsDialog = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include "../../src/unixcommand.h"
|
||||
#include "../../src/pacmanexec.h"
|
||||
|
||||
#include <QDialog>
|
||||
#include <QProcess>
|
||||
#include <QString>
|
||||
#include <QMainWindow>
|
||||
@@ -33,19 +35,13 @@ class QMenu;
|
||||
class QAction;
|
||||
class QFileSystemWatcher;
|
||||
class PacmanHelperClient;
|
||||
class SetupDialog;
|
||||
class OptionsDialog;
|
||||
class TransactionDialog;
|
||||
|
||||
#ifdef KSTATUS
|
||||
class KStatusNotifierItem;
|
||||
#endif
|
||||
|
||||
const QString ctn_PACMANHELPER_BINARY = "/usr/lib/octopi/pacmanhelper";
|
||||
|
||||
const QString ctn_DBUS_PACMANHELPER_SERVICE = "/usr/share/dbus-1/system-services/org.octopi.pacmanhelper.service";
|
||||
|
||||
enum ExecOpt { ectn_NORMAL_EXEC_OPT, ectn_SYSUPGRADE_EXEC_OPT,
|
||||
ectn_SYSUPGRADE_NOCONFIRM_EXEC_OPT };
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -68,19 +64,23 @@ private slots:
|
||||
void refreshAppIcon();
|
||||
void runOctopi(ExecOpt execOptions = ectn_SYSUPGRADE_EXEC_OPT);
|
||||
void runOctopiSysUpgrade();
|
||||
void runOctopiAURUpgrade();
|
||||
|
||||
inline void startOctopi() { runOctopi(ectn_NORMAL_EXEC_OPT); }
|
||||
void aboutOctopiNotifier();
|
||||
void hideOctopi();
|
||||
void showOctopi();
|
||||
void exitNotifier();
|
||||
void doSystemUpgrade();
|
||||
void doSystemUpgradeFinished(int, QProcess::ExitStatus);
|
||||
void doAURUpgrade();
|
||||
void doSystemUpgradeFinished();
|
||||
void toggleEnableInterface(bool state);
|
||||
void showConfigDialog();
|
||||
void showOptionsDialog();
|
||||
|
||||
private:
|
||||
|
||||
SetupDialog *m_configDialog;
|
||||
TransactionDialog *m_transactionDialog;
|
||||
OptionsDialog *m_optionsDialog;
|
||||
int m_numberOfOutdatedPackages;
|
||||
int m_numberOfOutdatedAURPackages;
|
||||
bool m_systemUpgradeDialog;
|
||||
@@ -88,17 +88,19 @@ private:
|
||||
UnixCommand *m_unixCommand;
|
||||
|
||||
QAction *m_actionOctopi;
|
||||
QAction *m_actionSetInterval;
|
||||
QAction *m_actionOptions;
|
||||
QAction *m_actionSyncDatabase;
|
||||
QAction *m_actionSystemUpgrade;
|
||||
QAction *m_actionAURUpgrade;
|
||||
QAction *m_actionAbout;
|
||||
QAction *m_actionExit;
|
||||
|
||||
PacmanExec *m_pacmanExec;
|
||||
|
||||
QIcon m_icon;
|
||||
QStringList *m_outdatedStringList;
|
||||
QStringList *m_outdatedAURStringList;
|
||||
QTimer *m_pacmanHelperTimer;
|
||||
|
||||
bool m_debugInfo;
|
||||
|
||||
#ifdef KSTATUS
|
||||
@@ -112,6 +114,8 @@ private:
|
||||
PacmanHelperClient *m_pacmanHelperClient;
|
||||
|
||||
bool _isSUAvailable();
|
||||
bool isInternetAvailable();
|
||||
void initActions();
|
||||
void initSystemTrayIcon();
|
||||
void sendNotification(const QString &msg);
|
||||
};
|
||||
|
||||
@@ -7,7 +7,21 @@
|
||||
QT += core xml gui network dbus
|
||||
|
||||
# This controls whether octopi-notifier uses KStatusNotifier lib
|
||||
#DEFINES += KSTATUS
|
||||
# You SHOULD REALLY enable KSTATUS define in plasma 5 desktops!
|
||||
DEFINES += ALPM_BACKEND QTERMWIDGET #KSTATUS
|
||||
CONFIG += qt warn_on debug link_pkgconfig ALPM_BACKEND QTERMWIDGET
|
||||
|
||||
ALPM_BACKEND {
|
||||
QMAKE_CXXFLAGS += -std=c++11
|
||||
PKGCONFIG += glib-2.0 libalpm
|
||||
LIBS += -lalpm_octopi_utils
|
||||
} else {
|
||||
QMAKE_CXXFLAGS += -std=c++11
|
||||
}
|
||||
|
||||
QTERMWIDGET {
|
||||
LIBS += -lqtermwidget5
|
||||
}
|
||||
|
||||
contains(DEFINES, KSTATUS){
|
||||
QT += KNotifications
|
||||
@@ -24,22 +38,9 @@ OBJECTS_DIR += ../build-octopi-notifier
|
||||
MOC_DIR += ../build-octopi-notifier
|
||||
UI_DIR += ../build-octopi-notifier
|
||||
|
||||
SOURCES += main.cpp \
|
||||
mainwindow.cpp \
|
||||
setupdialog.cpp \
|
||||
../../src/terminal.cpp \
|
||||
../../src/unixcommand.cpp \
|
||||
../../src/package.cpp \
|
||||
../../src/wmhelper.cpp \
|
||||
../../src/settingsmanager.cpp \
|
||||
../pacmanhelper/pacmanhelperclient.cpp \
|
||||
../../src/utils.cpp \
|
||||
../../src/transactiondialog.cpp \
|
||||
../../src/argumentlist.cpp
|
||||
|
||||
HEADERS += \
|
||||
mainwindow.h \
|
||||
setupdialog.h \
|
||||
outputdialog.h \
|
||||
../../src/uihelper.h \
|
||||
../../src/terminal.h \
|
||||
../../src/unixcommand.h \
|
||||
@@ -49,10 +50,77 @@ HEADERS += \
|
||||
../pacmanhelper/pacmanhelperclient.h \
|
||||
../../src/utils.h \
|
||||
../../src/transactiondialog.h \
|
||||
../../src/argumentlist.h
|
||||
../../src/argumentlist.h \
|
||||
../../src/pacmanexec.h \
|
||||
../../src/searchlineedit.h \
|
||||
../../src/searchbar.h \
|
||||
../../src/optionsdialog.h
|
||||
|
||||
QTERMWIDGET{
|
||||
HEADERS += ../../src/termwidget.h
|
||||
}
|
||||
|
||||
ALPM_BACKEND{
|
||||
HEADERS += ../../src/alpmbackend.h
|
||||
}
|
||||
|
||||
SOURCES += main.cpp \
|
||||
mainwindow.cpp \
|
||||
outputdialog.cpp \
|
||||
../../src/terminal.cpp \
|
||||
../../src/unixcommand.cpp \
|
||||
../../src/package.cpp \
|
||||
../../src/wmhelper.cpp \
|
||||
../../src/strconstants.cpp \
|
||||
../../src/settingsmanager.cpp \
|
||||
../pacmanhelper/pacmanhelperclient.cpp \
|
||||
../../src/utils.cpp \
|
||||
../../src/transactiondialog.cpp \
|
||||
../../src/argumentlist.cpp \
|
||||
../../src/pacmanexec.cpp \
|
||||
../../src/searchlineedit.cpp \
|
||||
../../src/searchbar.cpp \
|
||||
../../src/optionsdialog.cpp
|
||||
|
||||
QTERMWIDGET{
|
||||
SOURCES += ../../src/termwidget.cpp
|
||||
}
|
||||
|
||||
ALPM_BACKEND{
|
||||
SOURCES += ../../src/alpmbackend.cpp
|
||||
}
|
||||
|
||||
FORMS += ../../ui/transactiondialog.ui \
|
||||
ui/setupdialog.ui
|
||||
../../ui/optionsdialog.ui
|
||||
|
||||
RESOURCES += \
|
||||
../../resources.qrc
|
||||
|
||||
# install
|
||||
isEmpty(PREFIX) {
|
||||
PREFIX = /usr
|
||||
}
|
||||
|
||||
isEmpty(BINDIR) {
|
||||
BINDIR = $$PREFIX/bin
|
||||
}
|
||||
|
||||
isEmpty(DATADIR) {
|
||||
DATADIR = $$PREFIX/share
|
||||
}
|
||||
|
||||
isEmpty(ETCDIR) {
|
||||
ETCDIR = /etc
|
||||
}
|
||||
|
||||
target.path = $$BINDIR
|
||||
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
|
||||
sources.path = .
|
||||
|
||||
autostart.path = $$ETCDIR/xdg/autostart
|
||||
autostart.files += octopi-notifier.desktop
|
||||
|
||||
desktop.path = $$DATADIR/applications
|
||||
desktop.files += octopi-notifier.desktop
|
||||
|
||||
INSTALLS += target autostart desktop
|
||||
|
||||
435
notifier/octopi-notifier/outputdialog.cpp
Normal file
435
notifier/octopi-notifier/outputdialog.cpp
Normal file
@@ -0,0 +1,435 @@
|
||||
/*
|
||||
* This file is part of Octopi, an open-source GUI for pacman.
|
||||
* Copyright (C) 2013 Alexandre Albuquerque Arnt
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#include "outputdialog.h"
|
||||
#include "../../src/pacmanexec.h"
|
||||
#include "../../src/searchbar.h"
|
||||
#include "../../src/uihelper.h"
|
||||
#include "../../src/strconstants.h"
|
||||
|
||||
#ifdef QTERMWIDGET
|
||||
#include "../../src/termwidget.h"
|
||||
#endif
|
||||
|
||||
#include <QTextBrowser>
|
||||
#include <QVBoxLayout>
|
||||
#include <QProgressBar>
|
||||
#include <QCloseEvent>
|
||||
#include <QMessageBox>
|
||||
#include <QAction>
|
||||
#include <QToolButton>
|
||||
|
||||
/*
|
||||
* Class that displays pacman output for system upgrade
|
||||
*/
|
||||
|
||||
/*
|
||||
* The obligatory constructor...
|
||||
*/
|
||||
OutputDialog::OutputDialog(QWidget *parent): QDialog(parent)
|
||||
{
|
||||
m_upgradeRunning = false;
|
||||
m_debugInfo = false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets if pacmanExec will be called in debugMode or not
|
||||
*/
|
||||
void OutputDialog::setDebugMode(bool newValue)
|
||||
{
|
||||
m_debugInfo = newValue;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the list of AUR packages that need to be upgraded
|
||||
*/
|
||||
void OutputDialog::setListOfAURPackagesToUpgrade(const QString &list)
|
||||
{
|
||||
m_listOfAURPackagesToUpgrade = list;
|
||||
}
|
||||
|
||||
/*
|
||||
* Controls if this dialog was called for Pacman or AUR upgrade
|
||||
*/
|
||||
void OutputDialog::setPacmanSystemUpgrade(bool value)
|
||||
{
|
||||
m_pacmanSystemUpgrade = value;
|
||||
}
|
||||
|
||||
/*
|
||||
* Let's build the main widgets for Pacman System Upgrade...
|
||||
*/
|
||||
void OutputDialog::initAsTextBrowser()
|
||||
{
|
||||
this->resize(650, 500);
|
||||
|
||||
setWindowTitle(QCoreApplication::translate("MainWindow", "System upgrade"));
|
||||
setWindowIcon(IconHelper::getIconSystemUpgrade());
|
||||
|
||||
m_actionStopTransaction = new QAction(this);
|
||||
m_actionStopTransaction->setIcon(IconHelper::getIconStop());
|
||||
m_actionStopTransaction->setText(StrConstants::getStop());
|
||||
connect(m_actionStopTransaction, SIGNAL(triggered()), this, SLOT(stopTransaction()));
|
||||
|
||||
m_toolButtonStopTransaction = new QToolButton(this);
|
||||
m_toolButtonStopTransaction->setDefaultAction(m_actionStopTransaction);
|
||||
m_toolButtonStopTransaction->setVisible(false);
|
||||
m_toolButtonStopTransaction->setAutoRaise(true);
|
||||
|
||||
m_mainLayout = new QVBoxLayout(this);
|
||||
m_horizLayout = new QHBoxLayout();
|
||||
m_textBrowser = new QTextBrowser(this);
|
||||
m_progressBar = new QProgressBar(this);
|
||||
|
||||
m_horizLayout->addWidget(m_progressBar);
|
||||
m_horizLayout->addSpacing(2);
|
||||
m_horizLayout->addWidget(m_toolButtonStopTransaction);
|
||||
m_textBrowser->setGeometry(QRect(0, 0, 650, 500));
|
||||
m_textBrowser->setFrameShape(QFrame::NoFrame);
|
||||
|
||||
m_mainLayout->addWidget(m_textBrowser);
|
||||
|
||||
m_searchBar = new SearchBar(this);
|
||||
connect(m_searchBar, SIGNAL(textChanged(QString)), this, SLOT(onSearchBarTextChanged(QString)));
|
||||
connect(m_searchBar, SIGNAL(closed()), this, SLOT(onSearchBarClosed()));
|
||||
connect(m_searchBar, SIGNAL(findNext()), this, SLOT(onSearchBarFindNext()));
|
||||
connect(m_searchBar, SIGNAL(findPrevious()), this, SLOT(onSearchBarFindPrevious()));
|
||||
|
||||
m_mainLayout->addLayout(m_horizLayout);
|
||||
m_mainLayout->addWidget(m_searchBar);
|
||||
m_mainLayout->setSpacing(0);
|
||||
m_mainLayout->setSizeConstraint(QLayout::SetMinimumSize);
|
||||
m_mainLayout->setContentsMargins(2, 2, 2, 2);
|
||||
|
||||
m_progressBar->setMinimum(0);
|
||||
m_progressBar->setMaximum(100);
|
||||
m_progressBar->setValue(0);
|
||||
m_progressBar->close();
|
||||
//m_searchBar->show();
|
||||
}
|
||||
|
||||
#ifdef QTERMWIDGET
|
||||
|
||||
/*
|
||||
* Let's build the main widgets for AUR Upgrade...
|
||||
*/
|
||||
void OutputDialog::initAsTermWidget()
|
||||
{
|
||||
this->resize(650, 500);
|
||||
setWindowTitle(QCoreApplication::translate("MainWindow", "System upgrade"));
|
||||
setWindowIcon(IconHelper::getIconSystemUpgrade());
|
||||
|
||||
m_mainLayout = new QVBoxLayout(this);
|
||||
m_console = new TermWidget(this);
|
||||
//connect(m_console, SIGNAL(finished()), this, SLOT(initAsTermWidget()));
|
||||
m_mainLayout->addWidget(m_console);
|
||||
m_mainLayout->setSpacing(0);
|
||||
m_mainLayout->setSizeConstraint(QLayout::SetMinimumSize);
|
||||
m_mainLayout->setContentsMargins(2, 2, 2, 2);
|
||||
m_console->setFocus();
|
||||
}
|
||||
|
||||
/*
|
||||
* When user wants to start an AUR upgrade transaction
|
||||
*/
|
||||
void OutputDialog::doAURUpgrade()
|
||||
{
|
||||
m_pacmanExec = new PacmanExec();
|
||||
QObject::connect(m_pacmanExec, SIGNAL(commandToExecInQTermWidget(QString)), this,
|
||||
SLOT(onExecCommandInTabTerminal(QString)));
|
||||
m_upgradeRunning = true;
|
||||
m_pacmanExec->doAURUpgrade(m_listOfAURPackagesToUpgrade);
|
||||
}
|
||||
|
||||
/*
|
||||
* When there is a command to exec in the terminal
|
||||
*/
|
||||
void OutputDialog::onExecCommandInTabTerminal(QString command)
|
||||
{
|
||||
disconnect(m_console, SIGNAL(onPressAnyKeyToContinue()), this, SLOT(onPressAnyKeyToContinue()));
|
||||
disconnect(m_console, SIGNAL(onCancelControlKey()), this, SLOT(onCancelControlKey()));
|
||||
connect(m_console, SIGNAL(onPressAnyKeyToContinue()), this, SLOT(onPressAnyKeyToContinue()));
|
||||
connect(m_console, SIGNAL(onCancelControlKey()), this, SLOT(onCancelControlKey()));
|
||||
|
||||
m_console->enter();
|
||||
m_console->execute("clear");
|
||||
m_console->execute(command);
|
||||
m_console->setFocus();
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever the terminal transaction has finished, we can update the UI
|
||||
*/
|
||||
void OutputDialog::onPressAnyKeyToContinue()
|
||||
{
|
||||
m_console->enter();
|
||||
m_console->execute("clear");
|
||||
m_console->setFocus();
|
||||
|
||||
if (!m_upgradeRunning) return;
|
||||
if (m_pacmanExec == nullptr)
|
||||
delete m_pacmanExec;
|
||||
|
||||
m_upgradeRunning = false;
|
||||
reject();
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever a user strikes Ctrl+C, Ctrl+D or Ctrl+Z in the terminal
|
||||
*/
|
||||
void OutputDialog::onCancelControlKey()
|
||||
{
|
||||
if (m_upgradeRunning)
|
||||
{
|
||||
if (m_pacmanExec == nullptr)
|
||||
delete m_pacmanExec;
|
||||
|
||||
m_pacmanExec = nullptr;
|
||||
m_upgradeRunning = false;
|
||||
reject();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Calls PacmanExec to begin system upgrade
|
||||
*/
|
||||
void OutputDialog::doSystemUpgrade()
|
||||
{
|
||||
m_pacmanExec = new PacmanExec();
|
||||
|
||||
if (m_debugInfo)
|
||||
m_pacmanExec->setDebugMode(true);
|
||||
|
||||
QObject::connect(m_pacmanExec, SIGNAL( finished ( int, QProcess::ExitStatus )),
|
||||
this, SLOT( pacmanProcessFinished(int, QProcess::ExitStatus) ));
|
||||
|
||||
QObject::connect(m_pacmanExec, SIGNAL(percentage(int)), this, SLOT(onPencertange(int)));
|
||||
QObject::connect(m_pacmanExec, SIGNAL(textToPrintExt(QString)), this, SLOT(onWriteOutput(QString)));
|
||||
QObject::connect(m_pacmanExec, SIGNAL(canStopTransaction(bool)), this, SLOT(onCanStopTransaction(bool)));
|
||||
|
||||
m_upgradeRunning = true;
|
||||
m_pacmanExec->doSystemUpgrade();
|
||||
}
|
||||
|
||||
/*
|
||||
* Centers the dialog in the screen
|
||||
*/
|
||||
void OutputDialog::show()
|
||||
{
|
||||
//If we are asking for a Pacman system upgrade...
|
||||
if (m_pacmanSystemUpgrade) initAsTextBrowser();
|
||||
#ifdef QTERMWIDGET
|
||||
else initAsTermWidget();
|
||||
#endif
|
||||
|
||||
//utils::positionWindowAtScreenCenter(this);
|
||||
//Let's restore the dialog size saved...
|
||||
restoreGeometry(SettingsManager::getOutputDialogWindowSize());
|
||||
|
||||
QDialog::show();
|
||||
|
||||
if (m_pacmanSystemUpgrade) doSystemUpgrade();
|
||||
#ifdef QTERMWIDGET
|
||||
else doAURUpgrade();
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever the user presses the ESC key
|
||||
*/
|
||||
void OutputDialog::reject()
|
||||
{
|
||||
if (!m_upgradeRunning)
|
||||
{
|
||||
//Let's save the dialog size value before closing it.
|
||||
QByteArray windowSize=saveGeometry();
|
||||
SettingsManager::setOutputDialogWindowSize(windowSize);
|
||||
QDialog::reject();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Slot called whenever PacmanExec emits a new percentage change
|
||||
*/
|
||||
void OutputDialog::onPencertange(int percentage)
|
||||
{
|
||||
if (percentage > 0 && !m_progressBar->isVisible())
|
||||
{
|
||||
m_progressBar->show();
|
||||
if (SettingsManager::getShowStopTransaction()) m_toolButtonStopTransaction->show();
|
||||
}
|
||||
|
||||
m_progressBar->setValue(percentage);
|
||||
}
|
||||
|
||||
/*
|
||||
* Helper method to position the text cursor always in the end of doc
|
||||
*/
|
||||
void OutputDialog::positionTextEditCursorAtEnd()
|
||||
{
|
||||
QTextCursor tc = m_textBrowser->textCursor();
|
||||
tc.clearSelection();
|
||||
tc.movePosition(QTextCursor::End);
|
||||
m_textBrowser->setTextCursor(tc);
|
||||
}
|
||||
|
||||
/*
|
||||
* A helper method which writes the given string to the textbrowser
|
||||
*/
|
||||
void OutputDialog::writeToTabOutput(const QString &msg, TreatURLLinks treatURLLinks)
|
||||
{
|
||||
utils::writeToTextBrowser(m_textBrowser, msg, treatURLLinks);
|
||||
}
|
||||
|
||||
/*
|
||||
* Slot called whenever PacmanExec emits a new output
|
||||
*/
|
||||
void OutputDialog::onWriteOutput(const QString &output)
|
||||
{
|
||||
utils::positionTextEditCursorAtEnd(m_textBrowser);
|
||||
m_textBrowser->insertHtml(output);
|
||||
m_textBrowser->ensureCursorVisible();
|
||||
}
|
||||
|
||||
/*
|
||||
* Helper method to find the given "findText" in a TextEdit
|
||||
*/
|
||||
bool OutputDialog::textInTabOutput(const QString& findText)
|
||||
{
|
||||
return (utils::strInQTextEdit(m_textBrowser, findText));
|
||||
}
|
||||
|
||||
/*
|
||||
* Slot called whenever PacmanExec finishes its job
|
||||
*/
|
||||
void OutputDialog::pacmanProcessFinished(int exitCode, QProcess::ExitStatus exitStatus)
|
||||
{
|
||||
m_progressBar->close();
|
||||
if (SettingsManager::getShowStopTransaction()) m_toolButtonStopTransaction->close();
|
||||
|
||||
if ((exitCode == 0) && exitStatus == QProcess::NormalExit)
|
||||
{
|
||||
writeToTabOutput("<br><b>" + StrConstants::getCommandFinishedOK() + "</b><br>");
|
||||
}
|
||||
else
|
||||
{
|
||||
writeToTabOutput("<br><b>" + StrConstants::getCommandFinishedWithErrors() + "</b><br>");
|
||||
}
|
||||
|
||||
if (exitCode != 0 && (textInTabOutput("conflict"))) //|| _textInTabOutput("could not satisfy dependencies")))
|
||||
{
|
||||
int res = QMessageBox::question(this, StrConstants::getThereHasBeenATransactionError(),
|
||||
StrConstants::getConfirmExecuteTransactionInTerminal(),
|
||||
QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
|
||||
|
||||
if (res == QMessageBox::Yes)
|
||||
{
|
||||
m_pacmanExec->runLastestCommandInTerminal();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
delete m_pacmanExec;
|
||||
m_upgradeRunning = false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever PacmanExec says we can show/close the stop transaction toolbutton...
|
||||
*/
|
||||
void OutputDialog::onCanStopTransaction(bool yesNo)
|
||||
{
|
||||
if (yesNo == true && m_progressBar->isHidden()) return;
|
||||
if (SettingsManager::getShowStopTransaction()) m_toolButtonStopTransaction->setVisible(yesNo);
|
||||
}
|
||||
|
||||
/*
|
||||
* Kills all pacman processes
|
||||
*/
|
||||
void OutputDialog::stopTransaction()
|
||||
{
|
||||
m_pacmanExec->cancelProcess();
|
||||
}
|
||||
|
||||
/*
|
||||
* User changed text to search in the line edit
|
||||
*/
|
||||
void OutputDialog::onSearchBarTextChanged(QString strToSearch)
|
||||
{
|
||||
utils::searchBarTextChangedInTextBrowser(m_textBrowser, m_searchBar, strToSearch);
|
||||
}
|
||||
|
||||
/*
|
||||
* User closed the search bar
|
||||
*/
|
||||
void OutputDialog::onSearchBarClosed()
|
||||
{
|
||||
utils::searchBarClosedInTextBrowser(m_textBrowser, m_searchBar);
|
||||
}
|
||||
|
||||
/*
|
||||
* User requested next found string
|
||||
*/
|
||||
void OutputDialog::onSearchBarFindNext()
|
||||
{
|
||||
utils::searchBarFindNextInTextBrowser(m_textBrowser, m_searchBar);
|
||||
}
|
||||
|
||||
/*
|
||||
* User requested previous found string
|
||||
*/
|
||||
void OutputDialog::onSearchBarFindPrevious()
|
||||
{
|
||||
utils::searchBarFindPreviousInTextBrowser(m_textBrowser, m_searchBar);
|
||||
}
|
||||
|
||||
/*
|
||||
* Let's not exit the dialog if a system upgrade is running
|
||||
*/
|
||||
void OutputDialog::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
//We cannot quit while there is a running transaction!
|
||||
if(m_upgradeRunning)
|
||||
{
|
||||
event->ignore();
|
||||
}
|
||||
else
|
||||
{
|
||||
event->accept();
|
||||
emit finished(0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever user presses Ctrl+F, we show the searchbar again
|
||||
*/
|
||||
void OutputDialog::keyPressEvent(QKeyEvent *ke)
|
||||
{
|
||||
if(ke->key() == Qt::Key_F && ke->modifiers() == Qt::ControlModifier)
|
||||
{
|
||||
m_searchBar->show();
|
||||
}
|
||||
else if(ke->key() == Qt::Key_Escape)
|
||||
{
|
||||
reject();
|
||||
}
|
||||
else ke->accept();
|
||||
}
|
||||
107
notifier/octopi-notifier/outputdialog.h
Normal file
107
notifier/octopi-notifier/outputdialog.h
Normal file
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
* This file is part of Octopi, an open-source GUI for pacman.
|
||||
* Copyright (C) 2013 Alexandre Albuquerque Arnt
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef OUTPUTDIALOG_H
|
||||
#define OUTPUTDIALOG_H
|
||||
|
||||
#include "../../src/constants.h"
|
||||
|
||||
#include <QDialog>
|
||||
#include <QProcess>
|
||||
#include <QFrame>
|
||||
|
||||
class PacmanExec;
|
||||
class QString;
|
||||
class QTextBrowser;
|
||||
class QVBoxLayout;
|
||||
class QHBoxLayout;
|
||||
class QProgressBar;
|
||||
class SearchBar;
|
||||
class QWidget;
|
||||
class QCloseEvent;
|
||||
class QKeyEvent;
|
||||
class QToolButton;
|
||||
class TermWidget;
|
||||
|
||||
class OutputDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
QTextBrowser *m_textBrowser;
|
||||
QProgressBar *m_progressBar;
|
||||
QVBoxLayout *m_mainLayout;
|
||||
QHBoxLayout *m_horizLayout;
|
||||
PacmanExec *m_pacmanExec;
|
||||
SearchBar *m_searchBar;
|
||||
TermWidget *m_console;
|
||||
QString m_listOfAURPackagesToUpgrade;
|
||||
bool m_upgradeRunning;
|
||||
bool m_debugInfo;
|
||||
bool m_pacmanSystemUpgrade;
|
||||
|
||||
QAction *m_actionStopTransaction;
|
||||
QToolButton *m_toolButtonStopTransaction;
|
||||
|
||||
void initAsTextBrowser();
|
||||
void doSystemUpgrade();
|
||||
|
||||
void positionTextEditCursorAtEnd();
|
||||
bool textInTabOutput(const QString& findText);
|
||||
void writeToTabOutput(const QString &msg, TreatURLLinks treatURLLinks = ectn_TREAT_URL_LINK);
|
||||
|
||||
private slots:
|
||||
|
||||
#ifdef QTERMWIDGET
|
||||
void initAsTermWidget();
|
||||
void doAURUpgrade();
|
||||
void onExecCommandInTabTerminal(QString command);
|
||||
void onPressAnyKeyToContinue();
|
||||
void onCancelControlKey();
|
||||
#endif
|
||||
|
||||
void onPencertange(int percentage);
|
||||
void onWriteOutput(const QString &output);
|
||||
void pacmanProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
||||
void onCanStopTransaction(bool yesNo);
|
||||
void stopTransaction();
|
||||
|
||||
//SearchBar slots
|
||||
void onSearchBarTextChanged(QString strToSearch);
|
||||
void onSearchBarClosed();
|
||||
void onSearchBarFindNext();
|
||||
void onSearchBarFindPrevious();
|
||||
|
||||
protected:
|
||||
virtual void closeEvent(QCloseEvent * event);
|
||||
virtual void keyPressEvent(QKeyEvent * ke);
|
||||
|
||||
public:
|
||||
explicit OutputDialog(QWidget *parent = 0);
|
||||
void setDebugMode(bool newValue);
|
||||
void setListOfAURPackagesToUpgrade(const QString& list);
|
||||
void setPacmanSystemUpgrade(bool value);
|
||||
|
||||
public slots:
|
||||
void show();
|
||||
void reject();
|
||||
};
|
||||
|
||||
#endif // OUTPUTDIALOG_H
|
||||
@@ -1,165 +0,0 @@
|
||||
/*
|
||||
* This file is part of Octopi, an open-source GUI for pacman.
|
||||
* Copyright (C) 2013 Alexandre Albuquerque Arnt
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../../src/settingsmanager.h"
|
||||
#include "../../src/strconstants.h"
|
||||
#include "setupdialog.h"
|
||||
#include "ui_setupdialog.h"
|
||||
|
||||
SetupDialog::SetupDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::SetupDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
init();
|
||||
}
|
||||
|
||||
SetupDialog::~SetupDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
/*
|
||||
* Here we read the values from ~/.config/octopi.conf...
|
||||
*/
|
||||
void SetupDialog::init()
|
||||
{
|
||||
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
|
||||
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
|
||||
|
||||
setWindowTitle(StrConstants::getNotifierSetupDialogTitle());
|
||||
ui->groupBox->setTitle(StrConstants::getNotiferSetupDialogGroupBoxTitle());
|
||||
ui->rbOnceADay->setText(StrConstants::getOnceADay());
|
||||
ui->rbOnceADayAt->setText(StrConstants::getOnceADayAt());
|
||||
ui->lblOnceADayAt->setText(StrConstants::getOnceADayAtDesc());
|
||||
ui->rbOnceEvery->setText(StrConstants::getOnceEvery());
|
||||
ui->lblOnceEvery->setText(StrConstants::getOnceEveryDesc());
|
||||
|
||||
connect(ui->rbOnceADay, SIGNAL(clicked()), this, SLOT(selectOnceADay()));
|
||||
connect(ui->rbOnceADayAt, SIGNAL(clicked()), this, SLOT(selectOnceADayAt()));
|
||||
connect(ui->rbOnceEvery, SIGNAL(clicked()), this, SLOT(selectOnceEvery()));
|
||||
|
||||
//First, which radio button do we select?
|
||||
int syncDbInterval = SettingsManager::getSyncDbInterval();
|
||||
int syncDbHour = SettingsManager::getSyncDbHour();
|
||||
bool useSyncDbInterval = false;
|
||||
bool useSyncDbHour = false;
|
||||
|
||||
if (syncDbInterval == -1)
|
||||
{
|
||||
ui->spinOnceEvery->setValue(5);
|
||||
}
|
||||
else if (syncDbInterval != -1)
|
||||
{
|
||||
ui->spinOnceEvery->setValue(syncDbInterval);
|
||||
useSyncDbInterval = true;
|
||||
}
|
||||
if (syncDbHour == -1)
|
||||
{
|
||||
ui->spinOnceADayAt->setValue(0);
|
||||
}
|
||||
else if (syncDbHour != -1)
|
||||
{
|
||||
ui->spinOnceADayAt->setValue(syncDbHour);
|
||||
useSyncDbHour = true;
|
||||
}
|
||||
|
||||
if (useSyncDbInterval)
|
||||
{
|
||||
ui->rbOnceEvery->setChecked(true);
|
||||
selectOnceEvery();
|
||||
}
|
||||
else if (useSyncDbHour)
|
||||
{
|
||||
ui->rbOnceADayAt->setChecked(true);
|
||||
selectOnceADayAt();
|
||||
}
|
||||
else //We are using just "Once a day"!!!
|
||||
{
|
||||
ui->rbOnceADay->setChecked(true);
|
||||
selectOnceADay();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Every time user clicks on OK button, we save his choice.
|
||||
*/
|
||||
void SetupDialog::accept()
|
||||
{
|
||||
saveChanges();
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
/*
|
||||
* Here we save the changes back into ~/.config/octopi.conf...
|
||||
*/
|
||||
void SetupDialog::saveChanges()
|
||||
{
|
||||
if (ui->rbOnceADay->isChecked())
|
||||
{
|
||||
SettingsManager::setSyncDbHour(-1);
|
||||
SettingsManager::setSyncDbInterval(-1);
|
||||
}
|
||||
else if (ui->rbOnceADayAt->isChecked())
|
||||
{
|
||||
SettingsManager::setSyncDbHour(ui->spinOnceADayAt->value());
|
||||
SettingsManager::setSyncDbInterval(-1);
|
||||
}
|
||||
else if (ui->rbOnceEvery->isChecked())
|
||||
{
|
||||
SettingsManager::setSyncDbInterval(ui->spinOnceEvery->value());
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever user selects the first radio button, we have to disable some widgets
|
||||
*/
|
||||
void SetupDialog::selectOnceADay()
|
||||
{
|
||||
ui->rbOnceADay->setChecked(true);
|
||||
ui->spinOnceADayAt->setEnabled(false);
|
||||
ui->spinOnceEvery->setEnabled(false);
|
||||
ui->rbOnceADayAt->setChecked(false);
|
||||
ui->rbOnceEvery->setChecked(false);
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever user selects the second radio button, we have to disable some widgets
|
||||
*/
|
||||
void SetupDialog::selectOnceADayAt()
|
||||
{
|
||||
ui->rbOnceADayAt->setChecked(true);
|
||||
ui->spinOnceADayAt->setEnabled(true);
|
||||
ui->spinOnceEvery->setEnabled(false);
|
||||
ui->rbOnceADay->setChecked(false);
|
||||
ui->rbOnceEvery->setChecked(false);
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever user selects the third radio button, we have to disable some widgets
|
||||
*/
|
||||
void SetupDialog::selectOnceEvery()
|
||||
{
|
||||
ui->rbOnceEvery->setChecked(true);
|
||||
ui->spinOnceADayAt->setEnabled(false);
|
||||
ui->spinOnceEvery->setEnabled(true);
|
||||
ui->rbOnceADay->setChecked(false);
|
||||
ui->rbOnceADayAt->setChecked(false);
|
||||
}
|
||||
@@ -1,238 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>SetupDialog</class>
|
||||
<widget class="QDialog" name="SetupDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>510</width>
|
||||
<height>295</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>510</width>
|
||||
<height>295</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Setup</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string notr="true">rgTitle</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QRadioButton" name="rbOnceADay">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>33</y>
|
||||
<width>371</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">Once a day</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>71</y>
|
||||
<width>481</width>
|
||||
<height>62</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="rbOnceADayAt">
|
||||
<property name="text">
|
||||
<string notr="true">Once a day, but at:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinOnceADayAt">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>69</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>23</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lblOnceADayAt">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>(value in 24-hour format: 0 to 23)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget_1">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>8</x>
|
||||
<y>147</y>
|
||||
<width>481</width>
|
||||
<height>62</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="rbOnceEvery">
|
||||
<property name="text">
|
||||
<string notr="true">Once e&very:</string>
|
||||
</property>
|
||||
<property name="autoExclusive">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinOnceEvery">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>66</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1380</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>60</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lblOnceEvery">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>(value in minutes: 5 to 1380)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -5,6 +5,8 @@
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
|
||||
#include <QFile>
|
||||
|
||||
PacmanHelper::PacmanHelper(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
@@ -28,8 +30,23 @@ void PacmanHelper::syncdb()
|
||||
env.insert("LANG", "us_EN");
|
||||
pacman.setProcessEnvironment(env);
|
||||
|
||||
QString command = "pacman -Sy"; //-Syy or -Sy - eternal doubt!
|
||||
pacman.execute(command);
|
||||
QStringList params;
|
||||
params << "-Sy"; //-Syy or -Sy - eternal doubt!
|
||||
QString command = "/usr/bin/pacman";
|
||||
/*int code = */pacman.execute(command, params);
|
||||
|
||||
/*QString out;
|
||||
out += "Return code of pacman command: " + QString::number(code) + "\n";
|
||||
out += "Return of pacman command (stdout): " + pacman.readAllStandardOutput() + "\n";
|
||||
out += "Return of pacman command (stderr): " + pacman.readAllStandardError() + "\n\n";
|
||||
|
||||
QString filename = QDir::homePath() + QDir::separator() + "output_pacmanhelper.txt";
|
||||
QFile file( filename );
|
||||
if ( file.open(QIODevice::ReadWrite) )
|
||||
{
|
||||
QTextStream stream( &file );
|
||||
stream << out << endl;
|
||||
}*/
|
||||
|
||||
emit syncdbcompleted();
|
||||
}
|
||||
|
||||
@@ -21,3 +21,18 @@ HEADERS += pacmanhelper.h \
|
||||
SOURCES += main.cpp \
|
||||
pacmanhelper.cpp \
|
||||
pacmanhelperadaptor.cpp
|
||||
|
||||
# install
|
||||
isEmpty(PREFIX) {
|
||||
PREFIX = /usr
|
||||
}
|
||||
|
||||
isEmpty(LIBDIR) {
|
||||
LIBDIR = $$PREFIX/lib
|
||||
}
|
||||
|
||||
target.path = $$LIBDIR/octopi
|
||||
sources.files = $$SOURCES $$HEADERS *.pro
|
||||
sources.path = .
|
||||
|
||||
INSTALLS += target
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by Qt Creator 2.6.2, 2013-06-03T23:20:52. -->
|
||||
<!-- Written by QtCreator 4.1.0, 2016-09-25T11:28:08. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{dfbd4275-dad0-467b-b22e-ce4c855454cc}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
@@ -15,13 +19,13 @@
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QString" key="CurrentPreferences">CppGlobal</value>
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
@@ -29,10 +33,14 @@
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
@@ -53,27 +61,33 @@
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">{0dce8b8b-e9b7-4159-956b-f4c9f1085a56}</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{319f7b06-0ff3-4bf0-8a17-29f64ac46087}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/arnt/Projects/octopi/notifier/build</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
@@ -81,14 +95,18 @@
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
@@ -96,85 +114,38 @@
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/arnt/Projects/octopi/notifier/build</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/arnt/Projects/octopi/notifier/pacmanhelper/</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Project.UseGlobal">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
|
||||
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
|
||||
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
@@ -184,8 +155,12 @@
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
@@ -205,18 +180,20 @@
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">pacmanhelper</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/arnt/Projects/octopi/notifier/pacmanhelper/pacmanhelper.pro</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/arnt/Projects/octopi/notifier/pacmanhelper/pacmanhelper.pro</value>
|
||||
<value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">pacmanhelper.pro</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">/home/arnt/Projects/octopi/notifier/bin</value>
|
||||
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
@@ -229,11 +206,11 @@
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
|
||||
<value type="QString">{e7ed0845-58e4-42af-91c6-0506d885beb7}</value>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">18</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">12</value>
|
||||
<variable>Version</variable>
|
||||
<value type="int">18</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[Desktop Entry]
|
||||
Categories=GNOME;GTK;System;
|
||||
Categories=System;Tools;
|
||||
Comment[en_US]=Add or remove software installed on the system
|
||||
Comment=Add or remove software installed on the system
|
||||
Comment[af]=Voeg by of verwyder sagteware geïnstalleer op die stelsel
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
post_install() {
|
||||
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
|
||||
update-desktop-database -q
|
||||
|
||||
systemctl enable octopi.service &> /dev/null
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
|
||||
post_install $1
|
||||
}
|
||||
|
||||
post_remove() {
|
||||
post_install $1
|
||||
|
||||
systemctl disable octopi.service &> /dev/null
|
||||
}
|
||||
|
||||
119
octopi.pro
119
octopi.pro
@@ -4,10 +4,22 @@
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui network xml dbus widgets quick quickwidgets
|
||||
DEFINES += OCTOPI_EXTENSIONS
|
||||
CONFIG += qt warn_on debug
|
||||
QMAKE_CXXFLAGS += -std=c++11
|
||||
QT += core gui network xml dbus widgets
|
||||
DEFINES += OCTOPI_EXTENSIONS ALPM_BACKEND QTERMWIDGET
|
||||
CONFIG += qt warn_on debug link_pkgconfig ALPM_BACKEND QTERMWIDGET
|
||||
|
||||
ALPM_BACKEND {
|
||||
QMAKE_CXXFLAGS += -std=c++11
|
||||
PKGCONFIG += glib-2.0 libalpm
|
||||
LIBS += -lalpm_octopi_utils
|
||||
} else {
|
||||
QMAKE_CXXFLAGS += -std=c++11
|
||||
}
|
||||
|
||||
QTERMWIDGET {
|
||||
LIBS += -lqtermwidget5
|
||||
}
|
||||
|
||||
TEMPLATE = app
|
||||
DESTDIR += bin
|
||||
OBJECTS_DIR += build
|
||||
@@ -36,9 +48,18 @@ HEADERS += src/QtSolutions/qtsingleapplication.h \
|
||||
src/model/packagemodel.h \
|
||||
src/ui/octopitabinfo.h \
|
||||
src/utils.h \
|
||||
src/terminal.h
|
||||
src/terminal.h \
|
||||
src/pacmanexec.h \
|
||||
src/constants.h \
|
||||
src/optionsdialog.h
|
||||
|
||||
greaterThan(QT_VERSION, 5.3): HEADERS += src/terminalselectordialog.h
|
||||
QTERMWIDGET{
|
||||
HEADERS += src/termwidget.h
|
||||
}
|
||||
|
||||
ALPM_BACKEND{
|
||||
HEADERS += src/alpmbackend.h
|
||||
}
|
||||
|
||||
SOURCES += src/QtSolutions/qtsingleapplication.cpp \
|
||||
src/QtSolutions/qtlocalpeer.cpp \
|
||||
@@ -46,6 +67,7 @@ SOURCES += src/QtSolutions/qtsingleapplication.cpp \
|
||||
src/repoconf.cpp \
|
||||
src/main.cpp\
|
||||
src/mainwindow.cpp \
|
||||
src/strconstants.cpp \
|
||||
src/searchlineedit.cpp \
|
||||
src/argumentlist.cpp \
|
||||
src/settingsmanager.cpp \
|
||||
@@ -68,17 +90,27 @@ SOURCES += src/QtSolutions/qtsingleapplication.cpp \
|
||||
src/model/packagemodel.cpp \
|
||||
src/ui/octopitabinfo.cpp \
|
||||
src/utils.cpp \
|
||||
src/terminal.cpp
|
||||
src/terminal.cpp \
|
||||
src/pacmanexec.cpp \
|
||||
src/optionsdialog.cpp
|
||||
|
||||
greaterThan(QT_VERSION, 5.3): SOURCES += src/terminalselectordialog.cpp
|
||||
QTERMWIDGET{
|
||||
SOURCES += src/termwidget.cpp
|
||||
}
|
||||
|
||||
ALPM_BACKEND{
|
||||
SOURCES += src/alpmbackend.cpp
|
||||
}
|
||||
|
||||
FORMS += ui/mainwindow.ui \
|
||||
ui/transactiondialog.ui \
|
||||
ui/multiselectiondialog.ui
|
||||
ui/multiselectiondialog.ui \
|
||||
ui/optionsdialog.ui
|
||||
|
||||
RESOURCES += resources.qrc
|
||||
|
||||
TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
|
||||
resources/translations/octopi_fr \
|
||||
resources/translations/octopi_fr_FR.ts \
|
||||
resources/translations/octopi_es_ES.ts \
|
||||
resources/translations/octopi_es_419.ts \
|
||||
@@ -96,6 +128,8 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
|
||||
resources/translations/octopi_da.ts \
|
||||
resources/translations/octopi_cs.ts \
|
||||
resources/translations/octopi_he.ts \
|
||||
resources/translations/octopi_hi.ts \
|
||||
resources/translations/octopi_hi_IN.ts \
|
||||
resources/translations/octopi_lt.ts \
|
||||
resources/translations/octopi_nb.ts \
|
||||
resources/translations/octopi_sr@latin.ts \
|
||||
@@ -106,9 +140,11 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
|
||||
resources/translations/octopi_fi.ts \
|
||||
resources/translations/octopi_fi_FI.ts \
|
||||
resources/translations/octopi_vi.ts \
|
||||
resources/translations/octopi_en.ts \
|
||||
resources/translations/octopi_en_GB.ts \
|
||||
resources/translations/octopi_pt_PT.ts \
|
||||
resources/translations/octopi_sv.ts \
|
||||
resources/translations/octopi_sl.ts \
|
||||
resources/translations/octopi_hu.ts \
|
||||
resources/translations/octopi_zh_TW.ts \
|
||||
resources/translations/octopi_ms_MY.ts \
|
||||
@@ -119,4 +155,67 @@ TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
|
||||
resources/translations/octopi_gl_ES.ts \
|
||||
resources/translations/octopi_ast.ts \
|
||||
resources/translations/octopi_hr.ts \
|
||||
resources/translations/octopi_zh-Hans.ts
|
||||
resources/translations/octopi_zh-Hans.ts \
|
||||
resources/translations/octopi_zh_CN.ts
|
||||
|
||||
# install
|
||||
isEmpty(PREFIX) {
|
||||
PREFIX = /usr
|
||||
}
|
||||
|
||||
isEmpty(BINDIR) {
|
||||
BINDIR = $$PREFIX/bin
|
||||
}
|
||||
|
||||
isEmpty(DATADIR) {
|
||||
DATADIR = $$PREFIX/share
|
||||
}
|
||||
|
||||
isEmpty(ETCDIR) {
|
||||
ETCDIR = /etc
|
||||
}
|
||||
|
||||
isEmpty(LIBDIR) {
|
||||
LIBDIR = $$PREFIX/lib
|
||||
}
|
||||
|
||||
target.path = $$BINDIR
|
||||
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
|
||||
sources.path = .
|
||||
|
||||
bin.path = $$BINDIR
|
||||
bin.files += speedup/speedup-octopi.sh
|
||||
|
||||
dbus.path = $$ETCDIR/dbus-1/system.d
|
||||
dbus.files += notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.conf
|
||||
|
||||
desktop.path = $$DATADIR/applications
|
||||
desktop.files += octopi.desktop
|
||||
desktop.files += cachecleaner/octopi-cachecleaner.desktop
|
||||
|
||||
gnome.path = $$DATADIR/icons/gnome/32x32/apps
|
||||
gnome.files += resources/images/octopi_green.png
|
||||
gnome.files += resources/images/octopi.png
|
||||
|
||||
icon.path = $$DATADIR/icons
|
||||
icon.files += resources/images/octopi.png
|
||||
icon.files += resources/images/octopi_green.png
|
||||
icon.files += resources/images/octopi_red.png
|
||||
icon.files += resources/images/octopi_yellow.png
|
||||
|
||||
interfaces.path = $$DATADIR/dbus-1/interfaces
|
||||
interfaces.files += notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.xml
|
||||
|
||||
license.path = $$DATADIR/licenses/octopi
|
||||
license.files += LICENSE
|
||||
|
||||
polkit.path = $$DATADIR/polkit-1/actions
|
||||
polkit.files += notifier/pacmanhelper/polkit/org.octopi.pacman.policy
|
||||
|
||||
service.path = $$LIBDIR/systemd/system
|
||||
service.files += speedup/octopi.service
|
||||
|
||||
sys_service.path = $$DATADIR/dbus-1/system-services
|
||||
sys_service.files += notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.service
|
||||
|
||||
INSTALLS += target bin dbus desktop gnome icon interfaces license polkit service sys_service
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#/bin/sh
|
||||
# Helper for Qt5 libs to generate all Octopi translations
|
||||
|
||||
TRANSLATIONS=./resources/translations/*
|
||||
|
||||
for f in $TRANSLATIONS
|
||||
do
|
||||
lrelease-qt5 $f
|
||||
done
|
||||
34
release-translations.sh
Executable file
34
release-translations.sh
Executable file
@@ -0,0 +1,34 @@
|
||||
#! /bin/sh
|
||||
# Helper for Qt5 libs to generate all Octopi translations
|
||||
|
||||
# First we get all translations from Transifex
|
||||
tx pull
|
||||
|
||||
# Then we release each of them
|
||||
TRANSLATIONS="./resources/translations/*"
|
||||
|
||||
for f in $TRANSLATIONS
|
||||
do
|
||||
lrelease-qt5 "$f"
|
||||
done
|
||||
|
||||
# Repeat for Cachecleaner
|
||||
cd cachecleaner || exit
|
||||
tx pull
|
||||
|
||||
# And release each of them
|
||||
for f in $TRANSLATIONS
|
||||
do
|
||||
lrelease-qt5 "$f"
|
||||
done
|
||||
|
||||
# Repeat for Repoeditor
|
||||
cd ../repoeditor || exit
|
||||
tx pull
|
||||
|
||||
# And release each of them
|
||||
for f in $TRANSLATIONS
|
||||
do
|
||||
lrelease-qt5 "$f"
|
||||
done
|
||||
|
||||
@@ -20,10 +20,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
#include "repoeditor.h"
|
||||
#include "repoconf.h"
|
||||
|
||||
#include "../src/strconstants.h"
|
||||
#include "../src/unixcommand.h"
|
||||
#include "../src/QtSolutions/qtsingleapplication.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QMessageBox>
|
||||
#include <QTranslator>
|
||||
#include <QLocale>
|
||||
#include <QLibraryInfo>
|
||||
@@ -47,6 +49,11 @@ int main( int argc, char *argv[] )
|
||||
QLocale::system().name());
|
||||
app.installTranslator(&appTranslator);
|
||||
|
||||
if (UnixCommand::isRootRunning()){
|
||||
QMessageBox::critical( 0, StrConstants::getApplicationName(), StrConstants::getErrorRunningWithRoot());
|
||||
return ( -2 );
|
||||
}
|
||||
|
||||
RepoEditor w;
|
||||
app.setActivationWindow(&w);
|
||||
w.show();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui network widgets
|
||||
QT += core gui network xml widgets
|
||||
|
||||
CONFIG += qt console warn_on debug
|
||||
|
||||
@@ -19,7 +19,15 @@ HEADERS += addrepo.h \
|
||||
optionsdelegate.h \
|
||||
repoconf.h \
|
||||
repoeditor.h \
|
||||
repoentry.h \
|
||||
repoentry.h \
|
||||
../src/unixcommand.h \
|
||||
../src/strconstants.h \
|
||||
../src/wmhelper.h \
|
||||
../src/terminal.h \
|
||||
../src/settingsmanager.h \
|
||||
../src/searchlineedit.h \
|
||||
../src/utils.h \
|
||||
../src/package.h \
|
||||
../src/QtSolutions/qtsingleapplication.h \
|
||||
../src/QtSolutions/qtlocalpeer.h \
|
||||
../src/QtSolutions/qtlockedfile.h \
|
||||
@@ -32,6 +40,14 @@ SOURCES += addrepo.cpp \
|
||||
repoconf.cpp \
|
||||
repoeditor.cpp \
|
||||
repoentry.cpp \
|
||||
../src/unixcommand.cpp \
|
||||
../src/strconstants.cpp \
|
||||
../src/wmhelper.cpp \
|
||||
../src/terminal.cpp \
|
||||
../src/settingsmanager.cpp \
|
||||
../src/searchlineedit.cpp \
|
||||
../src/utils.cpp \
|
||||
../src/package.cpp \
|
||||
../src/QtSolutions/qtsingleapplication.cpp \
|
||||
../src/QtSolutions/qtlocalpeer.cpp \
|
||||
../src/QtSolutions/qtlockedfile.cpp \
|
||||
@@ -44,6 +60,7 @@ RESOURCES += resources.qrc
|
||||
|
||||
TRANSLATIONS += resources/translations/octopi_repoeditor_pt_BR.ts \
|
||||
resources/translations/octopi_repoeditor_fr_FR.ts \
|
||||
resources/translations/octopi_repoeditor_fr.ts \
|
||||
resources/translations/octopi_repoeditor_es_ES.ts \
|
||||
resources/translations/octopi_repoeditor_es_419.ts \
|
||||
resources/translations/octopi_repoeditor_es_AR.ts \
|
||||
@@ -60,6 +77,8 @@ TRANSLATIONS += resources/translations/octopi_repoeditor_pt_BR.ts \
|
||||
resources/translations/octopi_repoeditor_da.ts \
|
||||
resources/translations/octopi_repoeditor_cs.ts \
|
||||
resources/translations/octopi_repoeditor_he.ts \
|
||||
resources/translations/octopi_repoeditor_hi.ts \
|
||||
resources/translations/octopi_repoeditor_hi_IN.ts \
|
||||
resources/translations/octopi_repoeditor_lt.ts \
|
||||
resources/translations/octopi_repoeditor_nb.ts \
|
||||
resources/translations/octopi_repoeditor_sr@latin.ts \
|
||||
@@ -73,6 +92,7 @@ TRANSLATIONS += resources/translations/octopi_repoeditor_pt_BR.ts \
|
||||
resources/translations/octopi_repoeditor_en_GB.ts \
|
||||
resources/translations/octopi_repoeditor_pt_PT.ts \
|
||||
resources/translations/octopi_repoeditor_sv.ts \
|
||||
resources/translations/octopi_repoeditor_sl.ts \
|
||||
resources/translations/octopi_repoeditor_hu.ts \
|
||||
resources/translations/octopi_repoeditor_zh_TW.ts \
|
||||
resources/translations/octopi_repoeditor_ms_MY.ts \
|
||||
@@ -84,3 +104,19 @@ TRANSLATIONS += resources/translations/octopi_repoeditor_pt_BR.ts \
|
||||
resources/translations/octopi_repoeditor_ast.ts \
|
||||
resources/translations/octopi_repoeditor_hr.ts \
|
||||
resources/translations/octopi_repoeditor_zh-Hans.ts
|
||||
resources/translations/octopi_repoeditor_zh_CN.ts
|
||||
|
||||
# install
|
||||
isEmpty(PREFIX) {
|
||||
PREFIX = /usr
|
||||
}
|
||||
|
||||
isEmpty(BINDIR) {
|
||||
BINDIR = $$PREFIX/bin
|
||||
}
|
||||
|
||||
target.path = $$BINDIR
|
||||
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
|
||||
sources.path = .
|
||||
|
||||
INSTALLS += target
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#/bin/sh
|
||||
# Helper for Qt5 libs to generate all Octopi translations
|
||||
|
||||
TRANSLATIONS=./resources/translations/*
|
||||
|
||||
for f in $TRANSLATIONS
|
||||
do
|
||||
lrelease-qt5 $f
|
||||
done
|
||||
@@ -18,26 +18,27 @@ along with AppSet; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
#include "repoconf.h"
|
||||
|
||||
#include "../src/unixcommand.h"
|
||||
#include <QApplication>
|
||||
#include <QStyle>
|
||||
#include <QFont>
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QMessageBox>
|
||||
#include <QTemporaryFile>
|
||||
|
||||
QString RepoConf::commentString = "";
|
||||
QRegExp RepoConf::repoMatch = QRegExp();
|
||||
QRegExp RepoConf::detailMatch = QRegExp();
|
||||
QRegExp RepoConf::sigLevelMatch = QRegExp();
|
||||
QRegularExpression RepoConf::repoMatch = QRegularExpression();
|
||||
QRegularExpression RepoConf::detailMatch = QRegularExpression();
|
||||
QRegularExpression RepoConf::sigLevelMatch = QRegularExpression();
|
||||
|
||||
RepoConf::RepoConf()
|
||||
{
|
||||
repoConfFilePath = "/etc/pacman.conf";
|
||||
repoMatch = QRegExp("^\\[(?!(options|repo-name|\\[|\\s))");
|
||||
detailMatch = QRegExp("^(Server|Include)\\s*=\\s*.+");
|
||||
sigLevelMatch = QRegExp("^(SigLevel)\\s*=\\s*.+");
|
||||
RepoEntry::nameFilter = QRegExp("(\\s+|\\[|\\])");
|
||||
repoMatch = QRegularExpression("^\\[(?!(options|repo-name|\\[|\\s))");
|
||||
detailMatch = QRegularExpression("^(Server|Include)\\s*=\\s*.+");
|
||||
sigLevelMatch = QRegularExpression("^(SigLevel)\\s*=\\s*.+");
|
||||
RepoEntry::nameFilter = QRegularExpression("(\\s+|\\[|\\])");
|
||||
commentString = "#";
|
||||
RepoEntry::repoFormat = "[%repo%]";
|
||||
|
||||
@@ -169,34 +170,43 @@ void RepoConf::reload()
|
||||
loadConf( repoConfFilePath );
|
||||
}
|
||||
|
||||
/*
|
||||
* Saves changes in pacman.conf using the available SU tool
|
||||
*/
|
||||
bool RepoConf::saveChanges( const QString & backup )
|
||||
{
|
||||
QTemporaryFile tempFile;
|
||||
UnixCommand *unixC = new UnixCommand(this);
|
||||
QString command;
|
||||
|
||||
if( !backup.isEmpty() ) {
|
||||
QMessageBox mbexists( QMessageBox::Warning,
|
||||
tr( "Backup error" ),
|
||||
tr( "Backup file already exists." ) + QString( "\n" ) + tr( "Do you want to overwrite it?" ),
|
||||
QMessageBox::Yes | QMessageBox::No );
|
||||
|
||||
//First we test if backup file already exists. If so, we remove it!
|
||||
if( QFile::exists( backup ) && mbexists.exec() == QMessageBox::Yes ) {
|
||||
QFile::remove( backup );
|
||||
command = "rm " + backup;
|
||||
}
|
||||
|
||||
QMessageBox mberror( QMessageBox::Critical,
|
||||
tr( "Backup error" ),
|
||||
tr( "Can't create backup file." ) + QString( "\n" ) + tr( "Do you want to proceed without a backup?" ),
|
||||
QMessageBox::Yes | QMessageBox::No );
|
||||
|
||||
if( !QFile::copy( repoConfFilePath, backup ) && mberror.exec() == QMessageBox::No ) {
|
||||
return false;
|
||||
}
|
||||
//Then we create a backup, with the user defined name
|
||||
if (!command.isEmpty()) command += "; ";
|
||||
command += "cp /etc/pacman.conf " + backup;
|
||||
}
|
||||
|
||||
QFile confFile( repoConfFilePath );
|
||||
if( !confFile.open( QIODevice::WriteOnly ) )
|
||||
if (!tempFile.open())
|
||||
return false;
|
||||
|
||||
confFile.write( toString().toLatin1() );
|
||||
confFile.close();
|
||||
tempFile.write( toString().toLatin1() );
|
||||
tempFile.close();
|
||||
|
||||
//Last, we copy the tempfile to the repoconf path
|
||||
if (!command.isEmpty()) command += "; ";
|
||||
command += "cp " + tempFile.fileName() + " /etc/pacman.conf; chown root /etc/pacman.conf; chgrp root /etc/pacman.conf; chmod 644 /etc/pacman.conf";
|
||||
|
||||
unixC->execCommand(command);
|
||||
|
||||
reload();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -43,9 +43,9 @@ public:
|
||||
explicit RepoConf();
|
||||
|
||||
static QString commentString;
|
||||
static QRegExp repoMatch;
|
||||
static QRegExp detailMatch;
|
||||
static QRegExp sigLevelMatch;
|
||||
static QRegularExpression repoMatch;
|
||||
static QRegularExpression detailMatch;
|
||||
static QRegularExpression sigLevelMatch;
|
||||
|
||||
static bool matchRepo( QString line );
|
||||
static bool matchRepoDetails( QString line );
|
||||
|
||||
@@ -87,7 +87,16 @@ RepoEditor::~RepoEditor()
|
||||
void RepoEditor::loadBackup()
|
||||
{
|
||||
RepoConf conf;
|
||||
QString file = QFileDialog::getOpenFileName( this );
|
||||
QFileInfo fi;
|
||||
QString file;
|
||||
|
||||
if (!ui->backupFile->text().isEmpty())
|
||||
{
|
||||
fi.setFile(ui->backupFile->text());
|
||||
file = QFileDialog::getOpenFileName( this, "Open file", fi.path() );
|
||||
}
|
||||
else
|
||||
file = QFileDialog::getOpenFileName( this );
|
||||
|
||||
if( file.isEmpty() )
|
||||
return;
|
||||
@@ -121,7 +130,6 @@ void RepoEditor::editEntry()
|
||||
{
|
||||
QModelIndex repoMI = ui->tableView->model()->index(ui->tableView->currentIndex().row(), 1, QModelIndex());
|
||||
QModelIndex locationMI = ui->tableView->model()->index(ui->tableView->currentIndex().row(), 2, QModelIndex());
|
||||
|
||||
addRepoDialog->setRepoName(ui->tableView->model()->data(repoMI).toString());
|
||||
|
||||
// take the location
|
||||
|
||||
@@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
#include "repoentry.h"
|
||||
|
||||
QRegExp RepoEntry::nameFilter = QRegExp( "" );
|
||||
QRegularExpression RepoEntry::nameFilter = QRegularExpression( "" );
|
||||
QString RepoEntry::commentString = "";
|
||||
QString RepoEntry::repoFormat = "";
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QRegExp>
|
||||
#include <QRegularExpression>
|
||||
|
||||
class RepoEntry{
|
||||
|
||||
@@ -42,7 +42,7 @@ public:
|
||||
explicit RepoEntry();
|
||||
explicit RepoEntry( QString name, bool active = false );
|
||||
|
||||
static QRegExp nameFilter; //Contains the filter to obtain the unformatted repo name (e.g. [main] -> main)
|
||||
static QRegularExpression nameFilter; //Contains the filter to obtain the unformatted repo name (e.g. [main] -> main)
|
||||
static QString commentString;
|
||||
static QString repoFormat;
|
||||
|
||||
|
||||
@@ -19,7 +19,10 @@
|
||||
<file>resources/translations/octopi_repoeditor_fi.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_fi_FI.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_fr_FR.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_fr.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_he.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_hi.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_hi_IN.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_hu.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_id.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_it.qm</file>
|
||||
@@ -34,6 +37,7 @@
|
||||
<file>resources/translations/octopi_repoeditor_ro.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_ru.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_sk.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_sl.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_sr@latin.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_sr_RS.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_sv.qm</file>
|
||||
@@ -42,7 +46,8 @@
|
||||
<file>resources/translations/octopi_repoeditor_uz.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_vi.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_zh_TW.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_zh-Hans.ts</file>
|
||||
<file>resources/translations/octopi_repoeditor_hr.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_zh-Hans.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_zh_CN.qm</file>
|
||||
<file>resources/translations/octopi_repoeditor_hr.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
Binary file not shown.
@@ -4,17 +4,17 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
|
||||
<source>Add Repository - Octopi</source>
|
||||
<translation>Добави източник - Octopi</translation>
|
||||
<translation>Добави хранилище - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
|
||||
<source>Repository:</source>
|
||||
<translation>Източник:</translation>
|
||||
<translation>Хранилище:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
|
||||
<source>Repository name</source>
|
||||
<translation>Име на източник</translation>
|
||||
<translation>Име на хранилище</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
|
||||
@@ -24,22 +24,22 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
|
||||
<source>The repository name field can't be blank.</source>
|
||||
<translation>Не може без име на източник</translation>
|
||||
<translation>Не може без име на хранилище.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
|
||||
<source>The repository location field is not valid.</source>
|
||||
<translation>Полето за място не е валидно</translation>
|
||||
<translation>Полето за място не е валидно.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
|
||||
<source>The repository name field is not valid.</source>
|
||||
<translation>Името на източника не е валидно</translation>
|
||||
<translation>Името на хранилището не е валидно.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
|
||||
<source>Address of remote or local packages repository</source>
|
||||
<translation>Адрес на външен или локален източник за пакети</translation>
|
||||
<translation>Адрес на външно или локално хранилище за пакети</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
|
||||
@@ -54,12 +54,12 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
|
||||
<source>Can't add repository.</source>
|
||||
<translation>Не мога да добавя източник.</translation>
|
||||
<translation>Не може да се добави хранилище.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
|
||||
<source>Select local repository</source>
|
||||
<translation>Избери локален източник </translation>
|
||||
<translation>Избери локално хранилище</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
|
||||
@@ -73,12 +73,12 @@
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
|
||||
<source>Backup error</source>
|
||||
<translation>Backup грешка</translation>
|
||||
<translation>Грешка при създаване на резервно копие</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Backup file already exists.</source>
|
||||
<translation>Backup файла вече съществува.</translation>
|
||||
<translation>Резервното копие вече съществува.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
@@ -88,12 +88,12 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Can't create backup file.</source>
|
||||
<translation>Не може да се направи backup файл.</translation>
|
||||
<translation>Не може да се направи резервен файл.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Do you want to proceed without a backup?</source>
|
||||
<translation>Искате ли да продължим без backup?</translation>
|
||||
<translation>Искате ли да продължите без резервен файл?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
@@ -103,7 +103,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Repository</source>
|
||||
<translation>Източник</translation>
|
||||
<translation>Хранилище</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
@@ -116,12 +116,12 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>Редактор на източници - Octopi</translation>
|
||||
<translation>Редактор на хранилища - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
<source>Available Repositories</source>
|
||||
<translation>Достъпни източници</translation>
|
||||
<translation>Достъпни хранилища</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
|
||||
@@ -151,27 +151,27 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
|
||||
<source>Backup</source>
|
||||
<translation>Backup</translation>
|
||||
<translation>Резервирай</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
|
||||
<source>Create backup on save</source>
|
||||
<translation>Направи backup при запис</translation>
|
||||
<translation>Направи резерва при запис</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
|
||||
<source>Load a backup file</source>
|
||||
<translation>Зареди backup файл</translation>
|
||||
<translation>Зареди резервен файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
|
||||
<source>Backup file:</source>
|
||||
<translation>Backup файл:</translation>
|
||||
<translation>Резервен файл:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
|
||||
<source>Can't load backup file</source>
|
||||
<translation>Backup файла не се зарежда</translation>
|
||||
<translation>Резервния файл не може да се зареди</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
|
||||
@@ -186,7 +186,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
|
||||
<source>Repositories configuration successfully saved.</source>
|
||||
<translation>Настройките за източниците са запазени.</translation>
|
||||
<translation>Настройките за хранилищата са запазени.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
|
||||
@@ -196,7 +196,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
|
||||
<source>Repositories configuration not saved.</source>
|
||||
<translation>Настройките за източниците не са запазени.</translation>
|
||||
<translation>Настройките за хранилищата не са запазени.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
Binary file not shown.
@@ -4,7 +4,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
|
||||
<source>Add Repository - Octopi</source>
|
||||
<translation>Afegeix un repositori - Octopi</translation>
|
||||
<translation>Afegeix repositoris - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
|
||||
@@ -44,7 +44,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
|
||||
<source>Path to mirrors list file</source>
|
||||
<translation>Camí al fitxer de la llista de miralls</translation>
|
||||
<translation>Camí al fitxer de la llista de rèpliques</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
|
||||
@@ -64,7 +64,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
|
||||
<source>Select mirrors list</source>
|
||||
<translation>Seleccioneu una llista de miralls</translation>
|
||||
<translation>Seleccioneu una llista de rèpliques</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -116,7 +116,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>Editor del repositori - Octopi</translation>
|
||||
<translation>Editor de repositoris - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
@@ -136,7 +136,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
|
||||
<source>Remove</source>
|
||||
<translation>Suprimeix</translation>
|
||||
<translation>Elimina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
|
||||
@@ -156,7 +156,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
|
||||
<source>Create backup on save</source>
|
||||
<translation>Crea una còpia de seguretat en desar</translation>
|
||||
<translation>Crea una còpia de seguretat en desar-ho</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
|
||||
|
||||
Binary file not shown.
@@ -4,17 +4,17 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
|
||||
<source>Add Repository - Octopi</source>
|
||||
<translation>Tilføj Repository - Octopi</translation>
|
||||
<translation>Tilføj arkiv - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
|
||||
<source>Repository:</source>
|
||||
<translation>Repository:</translation>
|
||||
<translation>Arkiv:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
|
||||
<source>Repository name</source>
|
||||
<translation>Repository navn</translation>
|
||||
<translation>Arkivnavn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
|
||||
@@ -24,22 +24,22 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
|
||||
<source>The repository name field can't be blank.</source>
|
||||
<translation>Repository navne feltet kan ikke være tomt.</translation>
|
||||
<translation>Arkivnavn-feltet må ikke være tomt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
|
||||
<source>The repository location field is not valid.</source>
|
||||
<translation>Repository belligenhed er ikke gyldig.</translation>
|
||||
<translation>Arkivplacering-feltet er ikke gyldigt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
|
||||
<source>The repository name field is not valid.</source>
|
||||
<translation>Repository navn er ikke gydig.</translation>
|
||||
<translation>Arkivnavn-feltet er ikke gydigt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
|
||||
<source>Address of remote or local packages repository</source>
|
||||
<translation>Adresse til fjern eller lokal pakke repository.</translation>
|
||||
<translation>Adresse til fjern eller lokalt pakkearkiv</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
|
||||
@@ -54,12 +54,12 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
|
||||
<source>Can't add repository.</source>
|
||||
<translation>Kan ikke tilføje repository.</translation>
|
||||
<translation>Kan ikke tilføje arkiv.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
|
||||
<source>Select local repository</source>
|
||||
<translation>Vælg lokal repository</translation>
|
||||
<translation>Vælg lokalt arkiv</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
|
||||
@@ -103,7 +103,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Repository</source>
|
||||
<translation>Repository</translation>
|
||||
<translation>Arkiv</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
@@ -116,12 +116,12 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>Repository Editor - Octopi</translation>
|
||||
<translation>Arkivredigering - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
<source>Available Repositories</source>
|
||||
<translation>Tilgængelige Repositories</translation>
|
||||
<translation>Tilgængelige arkiver</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
|
||||
@@ -181,12 +181,12 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
|
||||
<source>Success</source>
|
||||
<translation>Success</translation>
|
||||
<translation>Succes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
|
||||
<source>Repositories configuration successfully saved.</source>
|
||||
<translation>Repositories konfiguration gemt med success.</translation>
|
||||
<translation>Arkivkonfiguration gemt med succes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
|
||||
@@ -196,7 +196,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
|
||||
<source>Repositories configuration not saved.</source>
|
||||
<translation>Repositories konfiguration ikke gemt.</translation>
|
||||
<translation>Arkivkonfiguration ikke gemt.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
repoeditor/resources/translations/octopi_repoeditor_fr.qm
Normal file
BIN
repoeditor/resources/translations/octopi_repoeditor_fr.qm
Normal file
Binary file not shown.
202
repoeditor/resources/translations/octopi_repoeditor_fr.ts
Normal file
202
repoeditor/resources/translations/octopi_repoeditor_fr.ts
Normal file
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr" version="2.0">
|
||||
<context>
|
||||
<name>AddRepo</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
|
||||
<source>Add Repository - Octopi</source>
|
||||
<translation>Ajouter un dépôt - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
|
||||
<source>Repository:</source>
|
||||
<translation>Dépôt :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
|
||||
<source>Repository name</source>
|
||||
<translation>Nom du dépôt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
|
||||
<source>Location:</source>
|
||||
<translation>Emplacement :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
|
||||
<source>The repository name field can't be blank.</source>
|
||||
<translation>Le champ de nom du dépôt ne peut pas être vide.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
|
||||
<source>The repository location field is not valid.</source>
|
||||
<translation>Le champ d'emplacement du dépôt n'est pas valide.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
|
||||
<source>The repository name field is not valid.</source>
|
||||
<translation>Le champ de nom du dépôt n'est pas valide.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
|
||||
<source>Address of remote or local packages repository</source>
|
||||
<translation>Adresse du dépôt de paquets local ou distant</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
|
||||
<source>Path to mirrors list file</source>
|
||||
<translation>Chemin vers le fichier liste de miroirs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
|
||||
<source>Error</source>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
|
||||
<source>Can't add repository.</source>
|
||||
<translation>Impossible d'ajouter le dépôt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
|
||||
<source>Select local repository</source>
|
||||
<translation>Sélectionner un dépôt local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
|
||||
<source>Select mirrors list</source>
|
||||
<translation>Sélectionner une liste de miroirs</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoConf</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
|
||||
<source>Backup error</source>
|
||||
<translation>Erreur de sauvegarde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Backup file already exists.</source>
|
||||
<translation>Le fichier de sauvegarde existe déjà.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Do you want to overwrite it?</source>
|
||||
<translation>Voulez-vous l'écraser?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Can't create backup file.</source>
|
||||
<translation>Impossible de créer le fichier de sauvegarde.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Do you want to proceed without a backup?</source>
|
||||
<translation>Voulez-vous continuer sans sauvegarde?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Active</source>
|
||||
<translation>Actif</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Repository</source>
|
||||
<translation>Dépôt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Options</source>
|
||||
<translation>Options</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoEditor</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>Éditeur de dépôt - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
<source>Available Repositories</source>
|
||||
<translation>Dépôts disponibles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
|
||||
<source>Edit</source>
|
||||
<translation>Éditer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
|
||||
<source>Add</source>
|
||||
<translation>Ajouter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
|
||||
<source>Remove</source>
|
||||
<translation>Supprimer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
|
||||
<source>Move Up</source>
|
||||
<translation>Monter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
|
||||
<source>Move Down</source>
|
||||
<translation>Descendre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
|
||||
<source>Backup</source>
|
||||
<translation>Sauvegarder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
|
||||
<source>Create backup on save</source>
|
||||
<translation>Créer une sauvegarde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
|
||||
<source>Load a backup file</source>
|
||||
<translation>Charger un fichier de sauvegarde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
|
||||
<source>Backup file:</source>
|
||||
<translation>Fichier de sauvegarde :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
|
||||
<source>Can't load backup file</source>
|
||||
<translation>Impossible de charger le fichier de sauvegarde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
|
||||
<source>Selected file is not valid</source>
|
||||
<translation>Le fichier sélectionné n'est pas valide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
|
||||
<source>Success</source>
|
||||
<translation>Succès</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
|
||||
<source>Repositories configuration successfully saved.</source>
|
||||
<translation>Configuration des dépôts sauvegardée avec succès.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
|
||||
<source>Error</source>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
|
||||
<source>Repositories configuration not saved.</source>
|
||||
<translation>Configuration des dépôts non sauvegardée.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
repoeditor/resources/translations/octopi_repoeditor_hi.qm
Normal file
BIN
repoeditor/resources/translations/octopi_repoeditor_hi.qm
Normal file
Binary file not shown.
202
repoeditor/resources/translations/octopi_repoeditor_hi.ts
Normal file
202
repoeditor/resources/translations/octopi_repoeditor_hi.ts
Normal file
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hi" version="2.0">
|
||||
<context>
|
||||
<name>AddRepo</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
|
||||
<source>Add Repository - Octopi</source>
|
||||
<translation>पैकेज-संग्रह जोड़ें - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
|
||||
<source>Repository:</source>
|
||||
<translation>पैकेज-संग्रह :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
|
||||
<source>Repository name</source>
|
||||
<translation>पैकेज-संग्रह का नाम</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
|
||||
<source>Location:</source>
|
||||
<translation>स्थान :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
|
||||
<source>The repository name field can't be blank.</source>
|
||||
<translation>पैकेज-संग्रह का नाम खाली नहीं छोड़ा जा सकता।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
|
||||
<source>The repository location field is not valid.</source>
|
||||
<translation>पैकेज-संग्रह का स्थान अमान्य है।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
|
||||
<source>The repository name field is not valid.</source>
|
||||
<translation>पैकेज-संग्रह का नाम अमान्य है।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
|
||||
<source>Address of remote or local packages repository</source>
|
||||
<translation>दूरस्थ व लोकल पैकेजों के पैकेज-संग्रह का पता</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
|
||||
<source>Path to mirrors list file</source>
|
||||
<translation>मिरर-सर्वर सूची की फ़ाइल का पथ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
|
||||
<source>Error</source>
|
||||
<translation>त्रुटि</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
|
||||
<source>Can't add repository.</source>
|
||||
<translation>पैकेज-संग्रह जोड़ा नहीं जा सका।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
|
||||
<source>Select local repository</source>
|
||||
<translation>लोकल पैकेज-संग्रह चुनें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
|
||||
<source>Select mirrors list</source>
|
||||
<translation>मिरर-सर्वर सूची चुनें</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoConf</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
|
||||
<source>Backup error</source>
|
||||
<translation>बैकअप त्रुटि</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Backup file already exists.</source>
|
||||
<translation>बैकअप फ़ाइल पहले से मौजूद है।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Do you want to overwrite it?</source>
|
||||
<translation>क्या आप इसे अधिलेखित करना चाहते हैं?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Can't create backup file.</source>
|
||||
<translation>बैकअप फ़ाइल बनाई नहीं जा सकी।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Do you want to proceed without a backup?</source>
|
||||
<translation>क्या आप बिना बैकअप ही आगे बढ़ना चाहते हैं?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Active</source>
|
||||
<translation>सक्रिय</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Repository</source>
|
||||
<translation>पैकेज-संग्रह</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Options</source>
|
||||
<translation>विकल्प</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoEditor</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>पैकेज-संग्रह संपादक - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
<source>Available Repositories</source>
|
||||
<translation>उपलब्ध पैकेज-संग्रह</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
|
||||
<source>Edit</source>
|
||||
<translation>संपादित करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
|
||||
<source>Add</source>
|
||||
<translation>जोड़ें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
|
||||
<source>Remove</source>
|
||||
<translation>हटाए</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
|
||||
<source>Move Up</source>
|
||||
<translation>ऊपर करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
|
||||
<source>Move Down</source>
|
||||
<translation>नीचे लाएँ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
|
||||
<source>Backup</source>
|
||||
<translation>बैकअप</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
|
||||
<source>Create backup on save</source>
|
||||
<translation>संचित करते समय बैकअप करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
|
||||
<source>Load a backup file</source>
|
||||
<translation>बैकअप फ़ाइल लोड करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
|
||||
<source>Backup file:</source>
|
||||
<translation>बैकअप फाइल:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
|
||||
<source>Can't load backup file</source>
|
||||
<translation>बैकअप फ़ाइल लोड नहीं की जा सकी</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
|
||||
<source>Selected file is not valid</source>
|
||||
<translation>चयनित फ़ाइल अमान्य है</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
|
||||
<source>Success</source>
|
||||
<translation>प्रक्रिया सफल</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
|
||||
<source>Repositories configuration successfully saved.</source>
|
||||
<translation>पैकेज-संग्रहों की विन्यास सेटिंग्स सफलतापूर्वक संचित कर ली गई।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
|
||||
<source>Error</source>
|
||||
<translation>त्रुटि</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
|
||||
<source>Repositories configuration not saved.</source>
|
||||
<translation>पैकेज-संग्रहों की विन्यास सेटिंग्स संचित नहीं की जा सकी।</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
repoeditor/resources/translations/octopi_repoeditor_hi_IN.qm
Normal file
BIN
repoeditor/resources/translations/octopi_repoeditor_hi_IN.qm
Normal file
Binary file not shown.
202
repoeditor/resources/translations/octopi_repoeditor_hi_IN.ts
Normal file
202
repoeditor/resources/translations/octopi_repoeditor_hi_IN.ts
Normal file
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hi_IN" version="2.0">
|
||||
<context>
|
||||
<name>AddRepo</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
|
||||
<source>Add Repository - Octopi</source>
|
||||
<translation>पैकेज-संग्रह जोड़ें - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
|
||||
<source>Repository:</source>
|
||||
<translation>पैकेज-संग्रह :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
|
||||
<source>Repository name</source>
|
||||
<translation>पैकेज-संग्रह का नाम</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
|
||||
<source>Location:</source>
|
||||
<translation>स्थान :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
|
||||
<source>The repository name field can't be blank.</source>
|
||||
<translation>पैकेज-संग्रह का नाम खाली नहीं छोड़ा जा सकता।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
|
||||
<source>The repository location field is not valid.</source>
|
||||
<translation>पैकेज-संग्रह का स्थान अमान्य है।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
|
||||
<source>The repository name field is not valid.</source>
|
||||
<translation>पैकेज-संग्रह का नाम अमान्य है।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
|
||||
<source>Address of remote or local packages repository</source>
|
||||
<translation>दूरस्थ व लोकल पैकेजों के पैकेज-संग्रह का पता</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
|
||||
<source>Path to mirrors list file</source>
|
||||
<translation>मिरर-सर्वर सूची की फ़ाइल का पथ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
|
||||
<source>Error</source>
|
||||
<translation>त्रुटि</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
|
||||
<source>Can't add repository.</source>
|
||||
<translation>पैकेज-संग्रह जोड़ा नहीं जा सका।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
|
||||
<source>Select local repository</source>
|
||||
<translation>लोकल पैकेज-संग्रह चुनें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
|
||||
<source>Select mirrors list</source>
|
||||
<translation>मिरर-सर्वर सूची चुनें</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoConf</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
|
||||
<source>Backup error</source>
|
||||
<translation>बैकअप त्रुटि</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Backup file already exists.</source>
|
||||
<translation>बैकअप फ़ाइल पहले से मौजूद है।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Do you want to overwrite it?</source>
|
||||
<translation>क्या आप इसे अधिलेखित करना चाहते हैं?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Can't create backup file.</source>
|
||||
<translation>बैकअप फ़ाइल बनाई नहीं जा सकी।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Do you want to proceed without a backup?</source>
|
||||
<translation>क्या आप बिना बैकअप ही आगे बढ़ना चाहते हैं?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Active</source>
|
||||
<translation>सक्रिय</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Repository</source>
|
||||
<translation>पैकेज-संग्रह</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Options</source>
|
||||
<translation>विकल्प</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoEditor</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>पैकेज-संग्रह संपादक - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
<source>Available Repositories</source>
|
||||
<translation>उपलब्ध पैकेज-संग्रह</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
|
||||
<source>Edit</source>
|
||||
<translation>संपादित करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
|
||||
<source>Add</source>
|
||||
<translation>जोड़ें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
|
||||
<source>Remove</source>
|
||||
<translation>हटाए</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
|
||||
<source>Move Up</source>
|
||||
<translation>ऊपर</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
|
||||
<source>Move Down</source>
|
||||
<translation>नीचे</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
|
||||
<source>Backup</source>
|
||||
<translation>बैकअप</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
|
||||
<source>Create backup on save</source>
|
||||
<translation>संचित करते समय बैकअप करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
|
||||
<source>Load a backup file</source>
|
||||
<translation>बैकअप फ़ाइल लोड करें</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
|
||||
<source>Backup file:</source>
|
||||
<translation>बैकअप फाइल:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
|
||||
<source>Can't load backup file</source>
|
||||
<translation>बैकअप फ़ाइल लोड नहीं की जा सकी</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
|
||||
<source>Selected file is not valid</source>
|
||||
<translation>चयनित फ़ाइल अमान्य है</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
|
||||
<source>Success</source>
|
||||
<translation>प्रक्रिया सफल</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
|
||||
<source>Repositories configuration successfully saved.</source>
|
||||
<translation>पैकेज-संग्रहों की विन्यास सेटिंग्स सफलतापूर्वक संचित कर ली गई।</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
|
||||
<source>Error</source>
|
||||
<translation>त्रुटि</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
|
||||
<source>Repositories configuration not saved.</source>
|
||||
<translation>पैकेज-संग्रहों की विन्यास सेटिंग्स संचित नहीं की जा सकी।</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
Binary file not shown.
@@ -116,7 +116,7 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>Editor de Repositóios - Octopi</translation>
|
||||
<translation>Editor de Repositório - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
|
||||
BIN
repoeditor/resources/translations/octopi_repoeditor_sl.qm
Normal file
BIN
repoeditor/resources/translations/octopi_repoeditor_sl.qm
Normal file
Binary file not shown.
202
repoeditor/resources/translations/octopi_repoeditor_sl.ts
Normal file
202
repoeditor/resources/translations/octopi_repoeditor_sl.ts
Normal file
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="sl" version="2.0">
|
||||
<context>
|
||||
<name>AddRepo</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
|
||||
<source>Add Repository - Octopi</source>
|
||||
<translation>Dodaj repozitorij - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
|
||||
<source>Repository:</source>
|
||||
<translation>Repozitorij:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
|
||||
<source>Repository name</source>
|
||||
<translation>Ime repozitorija</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
|
||||
<source>Location:</source>
|
||||
<translation>Lokacija:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
|
||||
<source>The repository name field can't be blank.</source>
|
||||
<translation>Navedite ime repozitorija.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
|
||||
<source>The repository location field is not valid.</source>
|
||||
<translation>Neveljavna lokacija repozitorija.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
|
||||
<source>The repository name field is not valid.</source>
|
||||
<translation>Neveljavno ime repozitorija.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
|
||||
<source>Address of remote or local packages repository</source>
|
||||
<translation>Naslov oddaljenega ali lokalnega repozitorija paketov</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
|
||||
<source>Path to mirrors list file</source>
|
||||
<translation>Pot do datoteke zrcalnih strežnikov</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
|
||||
<source>Error</source>
|
||||
<translation>Napaka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
|
||||
<source>Can't add repository.</source>
|
||||
<translation>Ni mogoče dodati repozitorija.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
|
||||
<source>Select local repository</source>
|
||||
<translation>Izberite lokalni repozitorij</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
|
||||
<source>Select mirrors list</source>
|
||||
<translation>Izberite seznam zrcalnih strežnikov</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoConf</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
|
||||
<source>Backup error</source>
|
||||
<translation>Napaka pri kreiranju varnostne kopije</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Backup file already exists.</source>
|
||||
<translation>Varnostna kopija že obstaja.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Do you want to overwrite it?</source>
|
||||
<translation>Jo želite prepisati?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Can't create backup file.</source>
|
||||
<translation>Ni mogoče ustvariti varnostne kopije.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Do you want to proceed without a backup?</source>
|
||||
<translation>Želite nadaljevati brez varnostne kopije?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Active</source>
|
||||
<translation>Dejaven</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Repository</source>
|
||||
<translation>Repozitorij</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Options</source>
|
||||
<translation>Možnosti</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoEditor</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>Urejevalnik repozitorijev - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
<source>Available Repositories</source>
|
||||
<translation>Možni repozitoriji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
|
||||
<source>Edit</source>
|
||||
<translation>Uredi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
|
||||
<source>Add</source>
|
||||
<translation>Dodaj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
|
||||
<source>Remove</source>
|
||||
<translation>Odstrani</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
|
||||
<source>Move Up</source>
|
||||
<translation>Pomakni gor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
|
||||
<source>Move Down</source>
|
||||
<translation>Pomakni dol</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
|
||||
<source>Backup</source>
|
||||
<translation>Ustvari varnostno kopijo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
|
||||
<source>Create backup on save</source>
|
||||
<translation>Ustvari varnostno kopijo ob shranjevanju</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
|
||||
<source>Load a backup file</source>
|
||||
<translation>Naloži varnostno kopijo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
|
||||
<source>Backup file:</source>
|
||||
<translation>Varnostna kopija:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
|
||||
<source>Can't load backup file</source>
|
||||
<translation>Ni možno naložiti varnostne kopije</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
|
||||
<source>Selected file is not valid</source>
|
||||
<translation>Izbrana datoteka je neveljavna</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
|
||||
<source>Success</source>
|
||||
<translation>Zaključeno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
|
||||
<source>Repositories configuration successfully saved.</source>
|
||||
<translation>Konfiguracija repozitorijev je bila uspešno shranjena.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
|
||||
<source>Error</source>
|
||||
<translation>Napaka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
|
||||
<source>Repositories configuration not saved.</source>
|
||||
<translation>Konfiguracija repozitorijev ni bila shranjena.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
repoeditor/resources/translations/octopi_repoeditor_zh_CN.qm
Normal file
BIN
repoeditor/resources/translations/octopi_repoeditor_zh_CN.qm
Normal file
Binary file not shown.
202
repoeditor/resources/translations/octopi_repoeditor_zh_CN.ts
Normal file
202
repoeditor/resources/translations/octopi_repoeditor_zh_CN.ts
Normal file
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_CN" version="2.0">
|
||||
<context>
|
||||
<name>AddRepo</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="14"/>
|
||||
<source>Add Repository - Octopi</source>
|
||||
<translation>添加软件库 - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="22"/>
|
||||
<source>Repository:</source>
|
||||
<translation>软件库:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="32"/>
|
||||
<source>Repository name</source>
|
||||
<translation>软件库命名:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.ui" line="39"/>
|
||||
<source>Location:</source>
|
||||
<translation>位置:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="86"/>
|
||||
<source>The repository name field can't be blank.</source>
|
||||
<translation>软件库名不能为空白。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="101"/>
|
||||
<source>The repository location field is not valid.</source>
|
||||
<translation>软件库位置无效。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="104"/>
|
||||
<source>The repository name field is not valid.</source>
|
||||
<translation>软件库名无效。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="111"/>
|
||||
<source>Address of remote or local packages repository</source>
|
||||
<translation>本地或远程软件库地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="115"/>
|
||||
<source>Path to mirrors list file</source>
|
||||
<translation>镜像列表文件路径</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="124"/>
|
||||
<source>Error</source>
|
||||
<translation>错误</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="125"/>
|
||||
<source>Can't add repository.</source>
|
||||
<translation>无法添加软件库</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="136"/>
|
||||
<source>Select local repository</source>
|
||||
<translation>选择本地软件库</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/addrepo.cpp" line="149"/>
|
||||
<source>Select mirrors list</source>
|
||||
<translation>选择镜像列表</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoConf</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="176"/>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="185"/>
|
||||
<source>Backup error</source>
|
||||
<translation>备份错误</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Backup file already exists.</source>
|
||||
<translation>备份已存在</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="177"/>
|
||||
<source>Do you want to overwrite it?</source>
|
||||
<translation>是否要覆盖?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Can't create backup file.</source>
|
||||
<translation>无法创建备份文件。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="186"/>
|
||||
<source>Do you want to proceed without a backup?</source>
|
||||
<translation>没有备份文件,是否继续?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Active</source>
|
||||
<translation>激活</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Repository</source>
|
||||
<translation>软件库</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoconf.cpp" line="242"/>
|
||||
<source>Options</source>
|
||||
<translation>选项</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RepoEditor</name>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="14"/>
|
||||
<source>Repository Editor - Octopi</source>
|
||||
<translation>软件库编辑器 - Octopi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="28"/>
|
||||
<source>Available Repositories</source>
|
||||
<translation>可用的软件库</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="76"/>
|
||||
<source>Edit</source>
|
||||
<translation>编辑</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="91"/>
|
||||
<source>Add</source>
|
||||
<translation>添加</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="106"/>
|
||||
<source>Remove</source>
|
||||
<translation>移除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="134"/>
|
||||
<source>Move Up</source>
|
||||
<translation>向上</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="149"/>
|
||||
<source>Move Down</source>
|
||||
<translation>向下</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="166"/>
|
||||
<source>Backup</source>
|
||||
<translation>备份</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="174"/>
|
||||
<source>Create backup on save</source>
|
||||
<translation>在存档中创建备份</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="197"/>
|
||||
<source>Load a backup file</source>
|
||||
<translation>加载备份文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.ui" line="213"/>
|
||||
<source>Backup file:</source>
|
||||
<translation>备份文件:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="99"/>
|
||||
<source>Can't load backup file</source>
|
||||
<translation>无法加载备份文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="100"/>
|
||||
<source>Selected file is not valid</source>
|
||||
<translation>选择的文件无效</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="149"/>
|
||||
<source>Success</source>
|
||||
<translation>成功</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="150"/>
|
||||
<source>Repositories configuration successfully saved.</source>
|
||||
<translation>软件库配置成功保存</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="155"/>
|
||||
<source>Error</source>
|
||||
<translation>错误</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/repoeditor/repoeditor.cpp" line="156"/>
|
||||
<source>Repositories configuration not saved.</source>
|
||||
<translation>软件库配置未保存</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -46,8 +46,10 @@
|
||||
<file>resources/images/show_groups.png</file>
|
||||
<file>resources/images/mirror-check.png</file>
|
||||
<file>resources/images/cachecleaner.png</file>
|
||||
<file>resources/images/stop_small_red.png</file>
|
||||
<file>resources/translations/octopi_pt_BR.qm</file>
|
||||
<file>resources/translations/octopi_fr_FR.qm</file>
|
||||
<file>resources/translations/octopi_fr.qm</file>
|
||||
<file>resources/translations/octopi_es_ES.qm</file>
|
||||
<file>resources/translations/octopi_el.qm</file>
|
||||
<file>resources/translations/octopi_de.qm</file>
|
||||
@@ -62,6 +64,8 @@
|
||||
<file>resources/translations/octopi_da.qm</file>
|
||||
<file>resources/translations/octopi_cs.qm</file>
|
||||
<file>resources/translations/octopi_he.qm</file>
|
||||
<file>resources/translations/octopi_hi.qm</file>
|
||||
<file>resources/translations/octopi_hi_IN.qm</file>
|
||||
<file>resources/translations/octopi_lt.qm</file>
|
||||
<file>resources/translations/octopi_nb.qm</file>
|
||||
<file>resources/translations/octopi_sr@latin.qm</file>
|
||||
@@ -72,9 +76,11 @@
|
||||
<file>resources/translations/octopi_fi_FI.qm</file>
|
||||
<file>resources/translations/octopi_vi.qm</file>
|
||||
<file>resources/translations/octopi_es_419.qm</file>
|
||||
<file>resources/translations/octopi_en.qm</file>
|
||||
<file>resources/translations/octopi_en_GB.qm</file>
|
||||
<file>resources/translations/octopi_pt_PT.qm</file>
|
||||
<file>resources/translations/octopi_sv.qm</file>
|
||||
<file>resources/translations/octopi_sl.qm</file>
|
||||
<file>resources/translations/octopi_sr_RS.qm</file>
|
||||
<file>resources/translations/octopi_hu.qm</file>
|
||||
<file>resources/translations/octopi_zh_TW.qm</file>
|
||||
@@ -87,7 +93,7 @@
|
||||
<file>resources/translations/octopi_eu.qm</file>
|
||||
<file>resources/translations/octopi_gl_ES.qm</file>
|
||||
<file>resources/translations/octopi_hr.qm</file>
|
||||
<file>resources/translations/octopi_zh-Hans.ts</file>
|
||||
<file>resources/qml/chooseterminal.qml</file>
|
||||
<file>resources/translations/octopi_zh-Hans.qm</file>
|
||||
<file>resources/translations/octopi_zh_CN.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
BIN
resources/images/stop_small_red.png
Normal file
BIN
resources/images/stop_small_red.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 124 B |
@@ -1,55 +0,0 @@
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 1.2
|
||||
|
||||
Rectangle {
|
||||
id: terminals
|
||||
|
||||
signal terminalSelected(int index)
|
||||
signal dialogOK()
|
||||
width: 300
|
||||
height: 215
|
||||
|
||||
TableView {
|
||||
id: list
|
||||
anchors.fill: parent
|
||||
model: terminalModel
|
||||
visible: true
|
||||
|
||||
TableViewColumn{
|
||||
role: "terminal"
|
||||
title: "Terminal"
|
||||
width: 150
|
||||
resizable: false
|
||||
movable: false
|
||||
}
|
||||
|
||||
itemDelegate: Item {
|
||||
Text {
|
||||
renderType: Text.NativeRendering
|
||||
text: " " + styleData.value
|
||||
}
|
||||
}
|
||||
|
||||
backgroundVisible: true
|
||||
alternatingRowColors: true
|
||||
headerVisible: true
|
||||
focus: true
|
||||
|
||||
onActivated: {
|
||||
terminals.terminalSelected(row)
|
||||
}
|
||||
onClicked: {
|
||||
terminals.terminalSelected(row)
|
||||
}
|
||||
onDoubleClicked: {
|
||||
terminals.terminalSelected(row)
|
||||
terminals.dialogOK()
|
||||
}
|
||||
}
|
||||
|
||||
function resetIndex(initialTerminalIndex){
|
||||
list.selection.clear()
|
||||
list.selection.select(initialTerminalIndex)
|
||||
terminals.terminalSelected(initialTerminalIndex)
|
||||
}
|
||||
}
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
resources/translations/octopi_en.qm
Normal file
BIN
resources/translations/octopi_en.qm
Normal file
Binary file not shown.
@@ -1,4 +1,6 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en" version="2.1">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en">
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
@@ -455,12 +457,12 @@
|
||||
<message>
|
||||
<location filename="Projects/octopi/src/mainwindow_help.cpp" line="160"/>
|
||||
<source>F4 to open a Terminal whitin the selected directory at Files tab</source>
|
||||
<translation>F4 to open a Terminal whitin the selected directory at Files tab</translation>
|
||||
<translation>F4 to open a Terminal within the selected directory at Files tab</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/src/mainwindow_help.cpp" line="162"/>
|
||||
<source>F6 to open a File Manager whitin the selected directory at Files tab</source>
|
||||
<translation>F6 to open a File Manager whitin the selected directory at Files tab</translation>
|
||||
<translation>F6 to open a File Manager within the selected directory at Files tab</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/src/mainwindow_help.cpp" line="164"/>
|
||||
@@ -788,7 +790,10 @@
|
||||
<message numerus="yes">
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="349"/>
|
||||
<source>There are %n outdated packages in your system:</source>
|
||||
<translation><numerusform>There are %n outdated packages in your system:</numerusform><numerusform>There are %n outdated packages in your system:</numerusform></translation>
|
||||
<translation>
|
||||
<numerusform>There are %n outdated packages in your system:</numerusform>
|
||||
<numerusform>There are %n outdated packages in your system:</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="353"/>
|
||||
@@ -798,22 +803,34 @@
|
||||
<message numerus="yes">
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="357"/>
|
||||
<source>%n (%2) packages</source>
|
||||
<translation><numerusform>%n (%2) packages</numerusform><numerusform>%n (%2) packages</numerusform></translation>
|
||||
<translation>
|
||||
<numerusform>%n (%2) packages</numerusform>
|
||||
<numerusform>%n (%2) packages</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="361"/>
|
||||
<source>%n installed</source>
|
||||
<translation><numerusform>%n installed</numerusform><numerusform>%n installed</numerusform></translation>
|
||||
<translation>
|
||||
<numerusform>%n installed</numerusform>
|
||||
<numerusform>%n installed</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="365"/>
|
||||
<source>%n outdated</source>
|
||||
<translation><numerusform>%n outdated</numerusform><numerusform>%n outdated</numerusform></translation>
|
||||
<translation>
|
||||
<numerusform>%n outdated</numerusform>
|
||||
<numerusform>%n outdated</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="369"/>
|
||||
<source>%n available</source>
|
||||
<translation><numerusform>%n available</numerusform><numerusform>%n available</numerusform></translation>
|
||||
<translation>
|
||||
<numerusform>%n available</numerusform>
|
||||
<numerusform>%n available</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="373"/>
|
||||
@@ -913,12 +930,18 @@
|
||||
<message numerus="yes">
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="453"/>
|
||||
<source>The following %n packages need to be retrieved</source>
|
||||
<translation><numerusform>The following %n packages need to be retrieved</numerusform><numerusform>The following %n packages need to be retrieved</numerusform></translation>
|
||||
<translation>
|
||||
<numerusform>The following %n packages need to be retrieved</numerusform>
|
||||
<numerusform>The following %n packages need to be retrieved</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="457"/>
|
||||
<source>The following %n packages will be removed</source>
|
||||
<translation><numerusform>The following %n packages will be removed</numerusform><numerusform>The following %n packages will be removed</numerusform></translation>
|
||||
<translation>
|
||||
<numerusform>The following %n packages will be removed</numerusform>
|
||||
<numerusform>The following %n packages will be removed</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="461"/>
|
||||
@@ -938,7 +961,10 @@
|
||||
<message numerus="yes">
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="473"/>
|
||||
<source>There are %n updates available!</source>
|
||||
<translation><numerusform>There are %n updates available!</numerusform><numerusform>There are %n updates available!</numerusform></translation>
|
||||
<translation>
|
||||
<numerusform>There are %n updates available!</numerusform>
|
||||
<numerusform>There are %n updates available!</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="Projects/octopi/src/strconstants.h" line="477"/>
|
||||
@@ -1119,4 +1145,4 @@ Are you sure you want to open it?</translation>
|
||||
<translation>Run in terminal</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
</TS>
|
||||
|
||||
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
Reference in New Issue
Block a user