Compare commits
286 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c19d9fa182 | ||
|
|
29d4bd7cd8 | ||
|
|
a2f52ba688 | ||
|
|
39bd74c201 | ||
|
|
acea7c3f07 | ||
|
|
4a78bc9acc | ||
|
|
edbfa15f91 | ||
|
|
1fdef5eb0f | ||
|
|
cc8aee4fb4 | ||
|
|
a29934e8c1 | ||
|
|
b780cb234b | ||
|
|
7cdee5a619 | ||
|
|
515688be68 | ||
|
|
928fafe636 | ||
|
|
54212085d9 | ||
|
|
ca49540cb2 | ||
|
|
90e3796c9a | ||
|
|
02165991fe | ||
|
|
378b563dad | ||
|
|
11d37767c5 | ||
|
|
9af37e9401 | ||
|
|
891915ec82 | ||
|
|
ce61acacc1 | ||
|
|
a0bfee3f9e | ||
|
|
3658709051 | ||
|
|
e0c10b0fe5 | ||
|
|
798f587c4f | ||
|
|
8ad766b8a6 | ||
|
|
bcedb72249 | ||
|
|
0238c0234e | ||
|
|
1f983e495c | ||
|
|
9124d2f1e2 | ||
|
|
ef70d2aa24 | ||
|
|
4ed73e110b | ||
|
|
fe479d09fb | ||
|
|
b7ea5564cb | ||
|
|
2cc5ef39f8 | ||
|
|
e6441f7bf8 | ||
|
|
c4e0c492f1 | ||
|
|
c3c5aafac6 | ||
|
|
6524ea60ad | ||
|
|
628660c086 | ||
|
|
6ba7859027 | ||
|
|
bc61ca8672 | ||
|
|
62b8fda959 | ||
|
|
ee65991e8d | ||
|
|
0d6cccf8f0 | ||
|
|
096068ccc3 | ||
|
|
708b60e50e | ||
|
|
afca94762e | ||
|
|
b9be74eaf2 | ||
|
|
5a3209dcc7 | ||
|
|
f3f8041166 | ||
|
|
80ee334925 | ||
|
|
9cbc121992 | ||
|
|
eba451cf3a | ||
|
|
c585108118 | ||
|
|
afb59dc6c2 | ||
|
|
fcd73beae4 | ||
|
|
169515a8c4 | ||
|
|
1fd0097963 | ||
|
|
ba51e3f653 | ||
|
|
ed594216cc | ||
|
|
78b16a0743 | ||
|
|
dc91892634 | ||
|
|
357c1212c1 | ||
|
|
1113611f2e | ||
|
|
31f7121901 | ||
|
|
c3d09a7095 | ||
|
|
97b90cb7cc | ||
|
|
9f4e80edd5 | ||
|
|
2974bf900b | ||
|
|
80b2a660cd | ||
|
|
01d4323f02 | ||
|
|
957f907387 | ||
|
|
e727a17ed9 | ||
|
|
380b952606 | ||
|
|
8c9b422b69 | ||
|
|
bcd269b931 | ||
|
|
f4dd17fd4b | ||
|
|
c72810d69a | ||
|
|
983a5d36a1 | ||
|
|
72036d1f43 | ||
|
|
4b58718da0 | ||
|
|
01a0cf6686 | ||
|
|
183681a4d1 | ||
|
|
d64446fe7d | ||
|
|
c9d34d5736 | ||
|
|
69ef11cae2 | ||
|
|
ad5c395e30 | ||
|
|
840bafb136 | ||
|
|
1613eca16b | ||
|
|
4587132a3e | ||
|
|
583a69195b | ||
|
|
013669d2dc | ||
|
|
64e9346c8f | ||
|
|
be91726560 | ||
|
|
a021e2d7fb | ||
|
|
dcb42e6c42 | ||
|
|
0139692edb | ||
|
|
8671c8f504 | ||
|
|
36d5a5b3db | ||
|
|
20a81da5cd | ||
|
|
7eb6773fbd | ||
|
|
209799ea95 | ||
|
|
5a0fc235a0 | ||
|
|
654cd5f7dc | ||
|
|
67f8a689af | ||
|
|
a365bcf978 | ||
|
|
9efe5e82e7 | ||
|
|
d1cb7bb7aa | ||
|
|
7884078f87 | ||
|
|
4c78b0d33a | ||
|
|
df2eb70601 | ||
|
|
e597daf289 | ||
|
|
a574c1bf74 | ||
|
|
9105033cad | ||
|
|
b78fe80e6f | ||
|
|
9c8ecdd814 | ||
|
|
477e3a0a30 | ||
|
|
6750b2880f | ||
|
|
0f17151cd1 | ||
|
|
074915b8cb | ||
|
|
b43a39084c | ||
|
|
33d50107ac | ||
|
|
56146fa77c | ||
|
|
2b8287fa3e | ||
|
|
17f390ed9c | ||
|
|
2cda92a291 | ||
|
|
2db3fbab65 | ||
|
|
bb36311dee | ||
|
|
ec34f2e310 | ||
|
|
63560a25d4 | ||
|
|
c36dbd80a4 | ||
|
|
2083e0ef92 | ||
|
|
a7c2dc19e7 | ||
|
|
0a46f47d53 | ||
|
|
8b81a019b2 | ||
|
|
f96c77b4dd | ||
|
|
fceed3f9e6 | ||
|
|
d12cc4c83e | ||
|
|
d846f0cb25 | ||
|
|
f0291a164c | ||
|
|
78e5eb7d1d | ||
|
|
b7d31f060d | ||
|
|
26a69191a0 | ||
|
|
c67efd002c | ||
|
|
58251a3bd5 | ||
|
|
6d063e6f7f | ||
|
|
3aaf4a9970 | ||
|
|
fedf3b3209 | ||
|
|
b0753af034 | ||
|
|
ab4a5e13fa | ||
|
|
f43d31877f | ||
|
|
cf061f2622 | ||
|
|
cd6e031a34 | ||
|
|
542a206d01 | ||
|
|
f97448429e | ||
|
|
95077c712b | ||
|
|
7aa6104e14 | ||
|
|
60902de817 | ||
|
|
1c851e1817 | ||
|
|
161d1cb6c9 | ||
|
|
3b90e3e6a2 | ||
|
|
86497ea2c8 | ||
|
|
2b8ed46a59 | ||
|
|
4aef1245c9 | ||
|
|
e37cb11343 | ||
|
|
26047e92a5 | ||
|
|
22586db454 | ||
|
|
3e224391fe | ||
|
|
beb6f9a114 | ||
|
|
2a84d8d728 | ||
|
|
bed9898498 | ||
|
|
4aa9a89ed5 | ||
|
|
181257ab9e | ||
|
|
680432877d | ||
|
|
4080d95306 | ||
|
|
d92a78c563 | ||
|
|
64618001f4 | ||
|
|
e8089a9f7d | ||
|
|
6821d6dca4 | ||
|
|
f266b18285 | ||
|
|
b1e966b6b6 | ||
|
|
e3d8e6fe3f | ||
|
|
4fa2a65db2 | ||
|
|
582a4ab7e4 | ||
|
|
f0c17ae27a | ||
|
|
db74213976 | ||
|
|
f55cca4827 | ||
|
|
0b53e96a71 | ||
|
|
f477ba4cf8 | ||
|
|
a24a187fe0 | ||
|
|
3da1929c70 | ||
|
|
f5e154d24a | ||
|
|
54bde33675 | ||
|
|
a771c37ca6 | ||
|
|
60c3b5fecb | ||
|
|
6d32f8ed06 | ||
|
|
40c53d073b | ||
|
|
31324ba240 | ||
|
|
c27e34da2c | ||
|
|
75a2aba102 | ||
|
|
cdcf75f60f | ||
|
|
8f0146812b | ||
|
|
e3e709f69b | ||
|
|
0db39e04dc | ||
|
|
eb77f8cbdd | ||
|
|
a471490e6e | ||
|
|
99e04027a6 | ||
|
|
52b6ab1aac | ||
|
|
f623438072 | ||
|
|
57e906c403 | ||
|
|
3e46942841 | ||
|
|
ee5d7640d2 | ||
|
|
d8d367986e | ||
|
|
343c80486e | ||
|
|
a8a486eb58 | ||
|
|
1cb131bff3 | ||
|
|
b0b2a5f1f8 | ||
|
|
bee7d84536 | ||
|
|
cb34e6dfef | ||
|
|
de00f0739d | ||
|
|
d9385ef82e | ||
|
|
692bc3eb3c | ||
|
|
1393e4dcef | ||
|
|
a3020a5136 | ||
|
|
baaf637a41 | ||
|
|
07c3339975 | ||
|
|
29e9970d68 | ||
|
|
abee17325d | ||
|
|
5cfb2f2a43 | ||
|
|
56471fb574 | ||
|
|
f259758f42 | ||
|
|
c0e3ac8c60 | ||
|
|
6ddb4c98d6 | ||
|
|
fb67cd2b86 | ||
|
|
04251cd9f9 | ||
|
|
d5ae2e0617 | ||
|
|
f6fecd4df2 | ||
|
|
38c12ec313 | ||
|
|
26813c7178 | ||
|
|
0ff2a6d5d0 | ||
|
|
401f0a5a42 | ||
|
|
4334283cc6 | ||
|
|
1947269b11 | ||
|
|
6be391371d | ||
|
|
b69baae4b8 | ||
|
|
47c0e647cc | ||
|
|
aa09b47c3a | ||
|
|
5f69d430a3 | ||
|
|
d87a0e2ce3 | ||
|
|
4761671cac | ||
|
|
e23fd407e7 | ||
|
|
891d94a66a | ||
|
|
371216bbe6 | ||
|
|
66aa26788a | ||
|
|
0ebcb5ac2c | ||
|
|
13f7240b01 | ||
|
|
160f6b184e | ||
|
|
f724249202 | ||
|
|
078e555de3 | ||
|
|
eeba5e4a07 | ||
|
|
1c2785c056 | ||
|
|
d6136e6310 | ||
|
|
4d564e6f23 | ||
|
|
0837423de9 | ||
|
|
4fd661d042 | ||
|
|
1f65bda6d9 | ||
|
|
544d2b8b48 | ||
|
|
e4b53c6601 | ||
|
|
4e49d5ee14 | ||
|
|
8dcaeba4f6 | ||
|
|
7840590d2b | ||
|
|
d2b0cf37af | ||
|
|
cabe51b673 | ||
|
|
2a3e5e5d2c | ||
|
|
3affb5e1e5 | ||
|
|
8cfc12b3c0 | ||
|
|
1ef438214e | ||
|
|
8832f929dd | ||
|
|
a436f10782 | ||
|
|
eb7ec6aacf | ||
|
|
bf0af8658b | ||
|
|
e4dd711bc4 | ||
|
|
0c01347964 |
127
CHANGELOG
@@ -1,3 +1,130 @@
|
||||
0.3.2
|
||||
Cleaned unused code.
|
||||
Added icon for mirror-check while in KaOS.
|
||||
Does a mirror-check at startup while in KaOS.
|
||||
Added icon for system upgrade.
|
||||
Added system upgrade button in octopi's toolbar.
|
||||
BugFix: Navigating in the package list using [A..Z] keys did not work as
|
||||
expected.
|
||||
BugFix: When the package list is filtered and you click in a package which is in
|
||||
the outdated package list, you are redirected to a blank information tab.
|
||||
BugFix: When the groups button is pressed and the lower pane is maximized, the
|
||||
former is hidden by the later.
|
||||
BugFix: When the user had no yaourt in the system, there were a zombie
|
||||
octopi process 'left running'.
|
||||
|
||||
0.3.1
|
||||
Added support for Qt5.
|
||||
Added chinese (Taiwan), malay, slovak and ukrainian translations.
|
||||
Added support to KaOS, a lean KDE centric Linux distro.
|
||||
Added support to installation of local packages with GUI feedback.
|
||||
Updated translations.
|
||||
Changed widget for package groups, from combobox to treeview.
|
||||
BugFix: When inserting an optional dependency package or removing a dep,
|
||||
first searches into transaction queue for them.
|
||||
BugFix: Prevent header resizing in File and Transaction tabs.
|
||||
|
||||
0.3
|
||||
Code cleanings.
|
||||
BugFix: No need to refresh package list after a cache clean.
|
||||
BugFix: Konsole was not working with yaourt package installation.
|
||||
BugFix: Position of search icon in searchedit sometimes was wrong.
|
||||
BugFix: Some actions did not get disabled while executing a transaction.
|
||||
BugFix: Use -Ss option while searching for yaourt packages.
|
||||
BugFix: Don't show package names in yaourt package descriptions.
|
||||
BugFix: Better RazorQt compatibility.
|
||||
BugFix: Notifier: clear tooltip if no update is available (thanks to
|
||||
Anselmo L. S. Melo - anselmolsm).
|
||||
BugFix: When refreshing packages from a group, the list could become
|
||||
outdated if the user had installed/removed some package.
|
||||
BugFix: Use "yaourt -S aur/pkgname" to install yaourt packages
|
||||
(thanks to ringo32).
|
||||
BugFix: Octopi was only showing the first Optional Deps in some cases.
|
||||
Brought back the option to do a graphical system upgrade.
|
||||
Now when installing a package with optional dependencies, Octopi lets users choose
|
||||
which optional dependencies (if any) they want to install.
|
||||
Now when removing a package with dependencies, Octopi lets users choose which one they
|
||||
want to remove.
|
||||
Now Get Latest Distro News doesn't freeze the interface.
|
||||
Changed octopi main icon to octopi-green.png in PKGBUILD and
|
||||
octopi.desktop.
|
||||
Added menu "Octopi" and "System Upgrade" in octopi-notifier.
|
||||
Show Yaourt packages as outdated in default package list.
|
||||
Now it's possible to upgrade Yaourt packages even outside Yaourt group.
|
||||
Now the yellow octopi icon means there are outdated yaourt packages.
|
||||
Now octopi-notifier opens only the transaction dialog if Octopi is not running
|
||||
and user requests a system upgrade.
|
||||
Added support to remove Pacman's transaction lock file.
|
||||
Added a new notification for outdated packages on statusbar.
|
||||
Added a new status icon: an orange one for newer than repo
|
||||
installed packages.
|
||||
Added spanish (Latin America) translation.
|
||||
Added english (Great Britain) translation.
|
||||
Added portuguese (Portugal) translation.
|
||||
Added swedish translation.
|
||||
Added serbian translation.
|
||||
Added hungarian translation.
|
||||
Added new "foreign_red.png" and "octopi_green.png" icons (thanks to Alex
|
||||
Fredrich).
|
||||
Added support for pkgfile to view uninstalled package file list while in
|
||||
ArchLinux/ArchBang (thanks to Damián Nohales).
|
||||
Added an About Dialog to Octopi Notifier.
|
||||
Updated translations.
|
||||
|
||||
0.2
|
||||
Splitted the project in "octopi" and "octopi-notifier".
|
||||
Yaourt no longer runs with root permissions.
|
||||
Added support for package multi selection in Yaourt mode.
|
||||
Added option to install local packages.
|
||||
Added support for "notify-send" in "octopi-notifier".
|
||||
Added hebrew translation.
|
||||
Added lithuanian translation.
|
||||
Added norwegian bokmål translation.
|
||||
Added servian latin translation.
|
||||
Added dutch translation.
|
||||
Added russian translation.
|
||||
Added uzbek translation.
|
||||
Added finnish translation.
|
||||
Added vietnamese translation.
|
||||
Updated all other translations.
|
||||
GTK native theme is used by default in Manjaro (while not in KDE).
|
||||
Added support for Xterm terminal.
|
||||
IgnorePkg option is now used to build outdated package list.
|
||||
BugFix: Empty pkg descriptions are now shown as empty.
|
||||
|
||||
0.1.9.1
|
||||
Important bugfixes to deal with multithreaded code.
|
||||
Added a "globals.h/.cpp" file to group QFutureWatcher globals.
|
||||
Updated style changing code in main.cpp.
|
||||
BugFix: when user cancelled a sysupgrade transaction inside a
|
||||
terminal, the package actions remained disabled.
|
||||
|
||||
0.1.9
|
||||
Added yaourt support.
|
||||
Updated most of the translations.
|
||||
|
||||
0.1.8
|
||||
Added czech translation.
|
||||
Added support to ArchBang Linux.
|
||||
Added a systemtray icon notifier feature using DBus technology.
|
||||
|
||||
0.1.7.3
|
||||
Added a TRANSLATIONS file.
|
||||
Added danish translation.
|
||||
Added indonesian translation.
|
||||
Added polish translation.
|
||||
Added bulgarian translation.
|
||||
sysupgrade command line option now synchronizes database.
|
||||
Bugfix: sysupgrade must refresh packagelist after syncdatabase.
|
||||
Bugfix: if sysupgrade uses SyncFirst, makes it automatically start a second upgrade.
|
||||
|
||||
0.1.7.2
|
||||
Added catalan translation.
|
||||
Bugfix: updated new binary translation files to the resources.
|
||||
|
||||
0.1.7.1
|
||||
Bugfix: menu icons were not being shown while in Xfce.
|
||||
|
||||
0.1.7
|
||||
Added "-sysupgrade" command line option.
|
||||
Added "-removecmd" command line option.
|
||||
|
||||
22
INSTALL
@@ -1,10 +1,20 @@
|
||||
Installing Octopi is a pretty straightforward task.
|
||||
|
||||
Assuming you have updated Qt4 libs installed in your system, just:
|
||||
Assuming you have updated Qt4 libs installed in your system, just run:
|
||||
|
||||
1) ./qmake
|
||||
2) make
|
||||
|
||||
Octopi's binary will be generated in "./bin" dir.
|
||||
makepkg -f
|
||||
|
||||
Enjoy!
|
||||
Wait for the compilation and then install the generated package (as
|
||||
root), using:
|
||||
|
||||
pacman -U [--force] <nameOfTheGeneratedOctopiPackage.tar.xz>
|
||||
|
||||
You can also install the generated package notifier, using:
|
||||
|
||||
pacman -U [--force] <nameOfTheGeneratedOctopiNotifierPackage.tar.xz>
|
||||
|
||||
Octopi is located at the system utilities menu of your Desktop
|
||||
Environment.
|
||||
|
||||
|
||||
Enjoy!
|
||||
|
||||
71
PKGBUILD
@@ -1,5 +1,5 @@
|
||||
pkgname=octopi
|
||||
pkgver=0.1.7
|
||||
pkgname=('octopi' 'octopi-notifier')
|
||||
pkgver=0.3.1
|
||||
pkgrel=1
|
||||
pkgdesc="a powerful Pacman frontend using Qt libs"
|
||||
arch=('i686' 'x86_64')
|
||||
@@ -7,37 +7,62 @@ url="http://octopiproject.wordpress.com"
|
||||
license=('GPL2')
|
||||
install=$pkgname.install
|
||||
makedepends=('git')
|
||||
depends=('qt4')
|
||||
depends=('qt4' 'xterm')
|
||||
optdepends=('kdesu: for KDE'
|
||||
'gksu: for XFCE, Gnome, LXDE, Cinnamon'
|
||||
'gnome-keyring: for password management'
|
||||
'yaourt: for AUR support'
|
||||
'octopi-notifier: for notifications'
|
||||
'pkgfile: to view uninstalled pkg contents in ArchLinux')
|
||||
provides=('octopi')
|
||||
conflicts=('octopi')
|
||||
md5sums=()
|
||||
_gitroot="git://github.com/aarnt/octopi.git"
|
||||
_gitname="octopi"
|
||||
_projpath="$HOME/Projects/$pkgname"
|
||||
|
||||
build() {
|
||||
cpucount=$(grep -c processor /proc/cpuinfo 2>/dev/null)
|
||||
jc=$((${cpucount:-1}))
|
||||
cpucount=$(grep -c processor /proc/cpuinfo 2>/dev/null)
|
||||
jc=$((${cpucount:-1}))
|
||||
|
||||
#cd "$srcdir"
|
||||
|
||||
#cd "$srcdir"
|
||||
msg "Starting build..."
|
||||
|
||||
qmake-qt4 $_projpath/$pkgname.pro
|
||||
#"CONFIG+=LINUX_INTEGRATED" \
|
||||
#"INSTALL_ROOT_PATH=$pkgdir/usr/" \
|
||||
#"LOWERED_APPNAME=$pkgname"
|
||||
cd $startdir
|
||||
qmake-qt4 $pkgname.pro
|
||||
make -j $jc
|
||||
|
||||
cd $startdir/notifier/pacmanhelper
|
||||
msg "Building pacmanhelper..."
|
||||
qmake-qt4 pacmanhelper.pro
|
||||
make -j $jc
|
||||
|
||||
cd $startdir/notifier/octopi-notifier
|
||||
msg "Building octopi-notifier..."
|
||||
qmake-qt4 octopi-notifier.pro
|
||||
make -j $jc
|
||||
}
|
||||
|
||||
package() {
|
||||
# cd "$srcdir/$pkgname"
|
||||
|
||||
install -D -m755 $_projpath/bin/$pkgname ${pkgdir}/usr/bin/$pkgname
|
||||
install -D -m644 $_projpath/$pkgname.desktop ${pkgdir}/usr/share/applications/$pkgname.desktop
|
||||
install -D -m644 $_projpath/resources/images/${pkgname}_yellow.png ${pkgdir}/usr/share/icons/$pkgname.png
|
||||
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
|
||||
|
||||
#make DESTDIR="${pkgdir}" install
|
||||
#make INSTALL_ROOT=${pkgdir} install
|
||||
#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
|
||||
}
|
||||
|
||||
package_octopi-notifier() {
|
||||
pkgdesc="Notifier for Octopi"
|
||||
depends=('octopi' 'libnotify')
|
||||
optdepends=('xfce4-notifyd: for notifications in XFCE')
|
||||
|
||||
#Octopi-notifier file
|
||||
install -D -m755 $startdir/notifier/bin/octopi-notifier ${pkgdir}/usr/bin/octopi-notifier
|
||||
install -D -m644 $startdir/octopi-notifier.desktop ${pkgdir}/etc/xdg/autostart/octopi-notifier.desktop
|
||||
}
|
||||
|
||||
4
README
@@ -1,8 +1,8 @@
|
||||
This is Octopi, a powerful Pacman frontend using Qt libs.
|
||||
This is Octopi, a powerful Pacman/Yaourt frontend using Qt libs.
|
||||
|
||||
The project's source code is hosted at https://github.com/aarnt/octopi.
|
||||
|
||||
You'll need a privilege escalation tool to use it, once running it as
|
||||
You'll need a privilege escalation tool to use it, once running as
|
||||
root will not work. Octopi supports kdesu and gksu for that.
|
||||
|
||||
Enjoy!
|
||||
|
||||
10
THANKS
@@ -1,13 +1,19 @@
|
||||
A very special thanks goes to:
|
||||
|
||||
- Alex Fredrich, for testing and suggestions
|
||||
- All Octopi translators listed in TRANSLATIONS file!
|
||||
- Alex Fredrich, for testing, suggestions and icons
|
||||
- Anke Boersma (demm), for supporting Octopi in KaOS
|
||||
- Bernardo M. Savone (Bersil), for testing and spreading the word
|
||||
- Damián Nohales (eagleoneraptor), for pkgfile support
|
||||
- Edgar Aloísio Berger, for spreading the word by email
|
||||
- Jose Martinez (dsngjoe), for testing under Cinnamon
|
||||
- Manjaro community, for testing and suggestions
|
||||
- Manuel Tortosa, for testing, suggestions and code
|
||||
- Philip Müller, for testing, patches and suggestions
|
||||
- Philip Müller (philm), for testing, patches and suggestions
|
||||
- Riberti de Almeida Felisbino (Holmes), for spreading the word at Manjaro Linux
|
||||
Brasil
|
||||
- Ringo de kroon (ringo32), for testing and lots of suggestions
|
||||
- Sami Korkalainen (Sami-Perkele), for testing and suggestions
|
||||
- Valdir Rossi Belmonte Filho, for patching the site
|
||||
|
||||
Octopi has got much better with all your help!
|
||||
|
||||
35
TRANSLATIONS
Normal file
@@ -0,0 +1,35 @@
|
||||
Arabic: karim (Karim Oulad Chalha)
|
||||
Brazilian Portuguese: arnt (Alexandre Albuquerque Arnt)
|
||||
Bulgarian: loot270 (Galin Iskrenov)
|
||||
Catalan: oriolfa (Oriol Fernandez)
|
||||
Chinese (Taiwan): s8321414 (冥王歐西里斯)
|
||||
Czech: fri
|
||||
Danish: Snubbi (Carl Andersen)
|
||||
Dutch: jsm (Jasper van der Marel)
|
||||
English: source language
|
||||
English (Great Britain): jonathon (J Fernyhough)
|
||||
Finnish: Sami Korkalainen (Sami-Perkele)
|
||||
French: Loubrix (David Roux)
|
||||
German: Veraendert
|
||||
Greek: angel_solomos
|
||||
Hebrew: GenghisKhan
|
||||
Hungarian: lajos (Lajos Pasztor)
|
||||
Indonesian: Se7enTime (Mohamad Hasan Al Banna)
|
||||
Italian: bersil (Bernardo Miguel Savone)
|
||||
Lithuanian: liudas (Liudas Ališauskas)
|
||||
Malay: Puretech
|
||||
Norwegian Bokmål: viking60
|
||||
Polish: poker98face (Kuba Kaczmarzyk)
|
||||
Portuguese: arcorreia (António Correia)
|
||||
Romanian: Ayceman (Alexandru Ianu)
|
||||
Russian: macbet (Daniil) and ualmasov (Umidjon Almasov)
|
||||
Serbian: milenkin (Milena Petrović)
|
||||
Serbian-latin: GameBoyT (GameBoy)
|
||||
Slovak: roslav
|
||||
Spanish: tufadorin
|
||||
Spanish - Latin America: CostGranda (Cost Granda)
|
||||
Swedish: riiga
|
||||
Turkish: yfdogan (Yusuf Faruk DOĞAN)
|
||||
Ukrainian: zubr139
|
||||
Uzbek: ualmasov (Umidjon Almasov)
|
||||
Vietnamese: ppanhh (Anh Phan)
|
||||
37
notifier/octopi-notifier/main.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
#include "../../src/unixcommand.h"
|
||||
#include "../../src/wmhelper.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QtGui>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if (UnixCommand::isAppRunning("octopi-notifier")) return (-1);
|
||||
|
||||
QApplication a(argc, argv);
|
||||
|
||||
#if QT_VERSION < 0x050000
|
||||
#ifndef KAOS
|
||||
QApplication::setGraphicsSystem(QLatin1String("raster"));
|
||||
|
||||
if(UnixCommand::getLinuxDistro() == ectn_MANJAROLINUX &&
|
||||
!WMHelper::isKDERunning())
|
||||
{
|
||||
qApp->setStyle(new QGtkStyle());
|
||||
}
|
||||
else
|
||||
qApp->setStyle(new QCleanlooksStyle);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
QTranslator appTranslator;
|
||||
appTranslator.load(":/resources/translations/octopi_" +
|
||||
QLocale::system().name());
|
||||
a.installTranslator(&appTranslator);
|
||||
a.setQuitOnLastWindowClosed(false);
|
||||
MainWindow w;
|
||||
QResource::registerResource("./resources.qrc");
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
513
notifier/octopi-notifier/mainwindow.cpp
Normal file
@@ -0,0 +1,513 @@
|
||||
#include "mainwindow.h"
|
||||
#include "../../src/strconstants.h"
|
||||
#include "../../src/uihelper.h"
|
||||
#include "../../src/package.h"
|
||||
#include "../../src/pacmanhelperclient.h"
|
||||
#include "../../src/transactiondialog.h"
|
||||
|
||||
#include <QTimer>
|
||||
#include <QSystemTrayIcon>
|
||||
#include <QAction>
|
||||
#include <QMenu>
|
||||
#include <QProcess>
|
||||
#include <QMessageBox>
|
||||
|
||||
/*
|
||||
* This is Octopi Notifier slim interface code :-)
|
||||
*/
|
||||
|
||||
/*
|
||||
* The obligatory constructor...
|
||||
*/
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent)
|
||||
{
|
||||
m_pacmanDatabaseSystemWatcher =
|
||||
new QFileSystemWatcher(QStringList() << ctn_PACMAN_DATABASE_DIR, this);
|
||||
initSystemTrayIcon();
|
||||
}
|
||||
|
||||
/*
|
||||
* Let's initialize the system tray object...
|
||||
*/
|
||||
void MainWindow::initSystemTrayIcon()
|
||||
{
|
||||
m_commandExecuting = ectn_NONE;
|
||||
m_outdatedPackageList = new QStringList();
|
||||
m_systemTrayIcon = new QSystemTrayIcon(this);
|
||||
m_systemTrayIcon->setObjectName("systemTrayIcon");
|
||||
|
||||
m_icon = IconHelper::getIconOctopiTransparent();
|
||||
m_systemTrayIcon->setIcon(m_icon);
|
||||
setWindowIcon(m_icon);
|
||||
m_systemTrayIcon->show();
|
||||
|
||||
m_actionExit = new QAction(IconHelper::getIconExit(), tr("Exit"), this);
|
||||
connect(m_actionExit, SIGNAL(triggered()), this, SLOT(exitNotifier()));
|
||||
|
||||
m_actionAbout = new QAction(StrConstants::getHelpAbout(), this);
|
||||
connect(m_actionAbout, SIGNAL(triggered()), this, SLOT(aboutOctopiNotifier()));
|
||||
|
||||
m_actionOctopi = new QAction(this);
|
||||
m_actionOctopi->setText("Octopi...");
|
||||
connect(m_actionOctopi, SIGNAL(triggered()), this, SLOT(startOctopi()));
|
||||
|
||||
m_actionSystemUpgrade = new QAction(this);
|
||||
m_actionSystemUpgrade->setText(tr("System upgrade"));
|
||||
m_actionSystemUpgrade->setIcon(QIcon(":/resources/images/fast_forward.png"));
|
||||
connect(m_actionSystemUpgrade, SIGNAL(triggered()), this, SLOT(runOctopi()));
|
||||
|
||||
m_systemTrayIconMenu = new QMenu( this );
|
||||
m_systemTrayIconMenu->addAction(m_actionOctopi);
|
||||
m_systemTrayIconMenu->addAction(m_actionSystemUpgrade);
|
||||
m_systemTrayIconMenu->addSeparator();
|
||||
m_systemTrayIconMenu->addAction(m_actionAbout);
|
||||
m_systemTrayIconMenu->addAction(m_actionExit);
|
||||
m_systemTrayIcon->setContextMenu(m_systemTrayIconMenu);
|
||||
|
||||
connect ( m_systemTrayIcon , SIGNAL( activated( QSystemTrayIcon::ActivationReason ) ),
|
||||
this, SLOT( execSystemTrayActivated ( QSystemTrayIcon::ActivationReason ) ) );
|
||||
|
||||
m_pacmanHelperClient = new PacmanHelperClient("org.octopi.pacmanhelper", "/", QDBusConnection::systemBus(), 0);
|
||||
connect(m_pacmanHelperClient, SIGNAL(syncdbcompleted()), this, SLOT(afterPacmanHelperSyncDatabase()));
|
||||
|
||||
m_pacmanHelperTimer = new QTimer();
|
||||
m_pacmanHelperTimer->setInterval(100);
|
||||
m_pacmanHelperTimer->start();
|
||||
|
||||
connect(m_pacmanHelperTimer, SIGNAL(timeout()), this, SLOT(pacmanHelperTimerTimeout()));
|
||||
}
|
||||
|
||||
/*
|
||||
* Execs Octopi
|
||||
*/
|
||||
void MainWindow::runOctopi(bool execApplication)
|
||||
{
|
||||
QProcess proc;
|
||||
|
||||
if (!execApplication &&
|
||||
!UnixCommand::isAppRunning("octopi", true) && m_outdatedPackageList->count() > 0)
|
||||
{
|
||||
doSystemUpgrade();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (UnixCommand::getLinuxDistro() == ectn_MANJAROLINUX &&
|
||||
(!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning())))
|
||||
{
|
||||
if (m_icon.pixmap(QSize(22,22)).toImage() ==
|
||||
IconHelper::getIconOctopiRed().pixmap(QSize(22,22)).toImage())
|
||||
{
|
||||
if (execApplication == true)
|
||||
{
|
||||
proc.startDetached("octopi -style gtk");
|
||||
}
|
||||
else proc.startDetached("octopi -sysupgrade -style gtk");
|
||||
}
|
||||
else
|
||||
{
|
||||
proc.startDetached("octopi -style gtk");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_icon.pixmap(QSize(22,22)).toImage() ==
|
||||
IconHelper::getIconOctopiRed().pixmap(QSize(22,22)).toImage())
|
||||
{
|
||||
if (execApplication == true)
|
||||
{
|
||||
proc.startDetached("octopi");
|
||||
}
|
||||
else proc.startDetached("octopi -sysupgrade");
|
||||
}
|
||||
else
|
||||
{
|
||||
proc.startDetached("octopi");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Shows Octopi Notifier About Dialog...
|
||||
*/
|
||||
void MainWindow::aboutOctopiNotifier()
|
||||
{
|
||||
QString aboutText = "<b>Octopi Notifier - " + StrConstants::getApplicationVersion() + "</b><br>";
|
||||
aboutText += "<a href=\"http://octopiproject.wordpress.com/\">http://octopiproject.wordpress.com</a><br><br>";
|
||||
aboutText += "© Alexandre Albuquerque Arnt";
|
||||
|
||||
QMessageBox::about(this, StrConstants::getHelpAbout(), aboutText);
|
||||
}
|
||||
|
||||
/*
|
||||
* Hides Octopi
|
||||
*/
|
||||
void MainWindow::hideOctopi()
|
||||
{
|
||||
QProcess proc;
|
||||
proc.startDetached("octopi -hide");
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if some SU utility is available...
|
||||
* Returns false if not!
|
||||
*/
|
||||
bool MainWindow::_isSUAvailable()
|
||||
{
|
||||
//If there are no means to run the actions, we must warn!
|
||||
if (WMHelper::getSUCommand() == ctn_NO_SU_COMMAND){
|
||||
QMessageBox::critical( 0, StrConstants::getApplicationName(),
|
||||
StrConstants::getErrorNoSuCommand() +
|
||||
"\n" + StrConstants::getYoullNeedSuFrontend());
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Calls only the Octopi system upgrade window
|
||||
*/
|
||||
void MainWindow::doSystemUpgrade()
|
||||
{
|
||||
//Shows a dialog indicating the targets needed to be retrieved and asks for the user's permission.
|
||||
QList<PackageListData> * targets = Package::getTargetUpgradeList();
|
||||
|
||||
//There are no new updates to install!
|
||||
if (targets->count() == 0 && m_outdatedPackageList->count() == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (targets->count() == 0 && m_outdatedPackageList->count() > 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
QString list;
|
||||
double totalDownloadSize = 0;
|
||||
|
||||
foreach(PackageListData target, *targets)
|
||||
{
|
||||
totalDownloadSize += target.downloadSize;
|
||||
list = list + target.name + "-" + target.version + "\n";
|
||||
}
|
||||
list.remove(list.size()-1, 1);
|
||||
|
||||
totalDownloadSize = totalDownloadSize / 1024;
|
||||
QString ds = QString::number(totalDownloadSize, 'f', 2);
|
||||
|
||||
TransactionDialog question(this);
|
||||
question.removeYesButton(); //This is a more prudent behaviour!
|
||||
|
||||
if(targets->count()==1)
|
||||
question.setText(StrConstants::getRetrieveTarget() +
|
||||
"\n\n" + StrConstants::getTotalDownloadSize().arg(ds));
|
||||
else
|
||||
question.setText(StrConstants::getRetrieveTargets().arg(targets->count()) +
|
||||
"\n\n" + StrConstants::getTotalDownloadSize().arg(ds));
|
||||
|
||||
question.setWindowTitle(StrConstants::getConfirmation());
|
||||
question.setInformativeText(StrConstants::getConfirmationQuestion());
|
||||
question.setDetailedText(list);
|
||||
|
||||
m_systemUpgradeDialog = true;
|
||||
int result = question.exec();
|
||||
|
||||
if(result == QDialogButtonBox::Yes || result == QDialogButtonBox::AcceptRole)
|
||||
{
|
||||
m_systemUpgradeDialog = false;
|
||||
|
||||
//If there are no means to run the actions, we must warn!
|
||||
if (!_isSUAvailable()) return;
|
||||
|
||||
QStringList lastCommandList;
|
||||
lastCommandList.append("pacman -Su;");
|
||||
lastCommandList.append("echo -e;");
|
||||
lastCommandList.append("read -n1 -p \"" + StrConstants::getPressAnyKey() + "\"");
|
||||
|
||||
m_unixCommand = new UnixCommand(this);
|
||||
|
||||
QObject::connect(m_unixCommand, SIGNAL( finished ( int, QProcess::ExitStatus )),
|
||||
this, SLOT( doSystemUpgradeFinished(int, QProcess::ExitStatus) ));
|
||||
|
||||
toggleEnableInterface(false);
|
||||
m_actionSystemUpgrade->setEnabled(false);
|
||||
|
||||
if (result == QDialogButtonBox::AcceptRole)
|
||||
{
|
||||
m_commandExecuting = ectn_RUN_SYSTEM_UPGRADE_IN_TERMINAL;
|
||||
m_unixCommand->runCommandInTerminal(lastCommandList);
|
||||
}
|
||||
}
|
||||
else if (result == QDialogButtonBox::No)
|
||||
{
|
||||
m_systemUpgradeDialog = false;
|
||||
toggleEnableInterface(true);
|
||||
refreshAppIcon();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* When system upgrade process is finished...
|
||||
*/
|
||||
void MainWindow::doSystemUpgradeFinished(int, QProcess::ExitStatus)
|
||||
{
|
||||
refreshAppIcon();
|
||||
|
||||
//Does it still need to upgrade another packages due to SyncFirst issues???
|
||||
if ((m_commandExecuting == ectn_RUN_SYSTEM_UPGRADE_IN_TERMINAL)
|
||||
&& m_outdatedPackageList->count() > 0)
|
||||
{
|
||||
m_commandExecuting = ectn_NONE;
|
||||
m_unixCommand->removeTemporaryActionFile();
|
||||
doSystemUpgrade();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
m_commandExecuting = ectn_NONE;
|
||||
m_unixCommand->removeTemporaryActionFile();
|
||||
toggleEnableInterface(true);
|
||||
}
|
||||
|
||||
/*
|
||||
* Enables and Disables some UI elements of Octopi-notifier
|
||||
*/
|
||||
void MainWindow::toggleEnableInterface(bool state)
|
||||
{
|
||||
m_actionOctopi->setEnabled(state);
|
||||
m_actionExit->setEnabled(state);
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever this timer ticks, we need to call the PacmanHelper DBus interface to sync Pacman's dbs
|
||||
*/
|
||||
void MainWindow::pacmanHelperTimerTimeout()
|
||||
{
|
||||
static bool firstTime=true;
|
||||
|
||||
if (m_commandExecuting != ectn_NONE) return;
|
||||
|
||||
if (firstTime)
|
||||
{
|
||||
m_pacmanHelperTimer->setInterval(1000 * 60 * 60);
|
||||
firstTime=false;
|
||||
}
|
||||
|
||||
m_actionOctopi->setEnabled(false);
|
||||
|
||||
if (m_outdatedPackageList->count() > 0)
|
||||
{
|
||||
m_actionSystemUpgrade->setEnabled(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_actionSystemUpgrade->setVisible(false);
|
||||
}
|
||||
|
||||
m_icon = IconHelper::getIconOctopiTransparent();
|
||||
m_systemTrayIcon->setIcon(m_icon);
|
||||
m_systemTrayIconMenu->close();
|
||||
m_systemTrayIcon->setContextMenu(0);
|
||||
|
||||
m_commandExecuting = ectn_SYNC_DATABASE;
|
||||
m_pacmanHelperClient->syncdb();
|
||||
}
|
||||
|
||||
/*
|
||||
* Called right after the PacmanHelper syncdb() method has finished!
|
||||
*/
|
||||
void MainWindow::afterPacmanHelperSyncDatabase()
|
||||
{
|
||||
m_actionOctopi->setEnabled(true);
|
||||
m_systemTrayIcon->setContextMenu(m_systemTrayIconMenu);
|
||||
m_systemTrayIconMenu->close();
|
||||
m_commandExecuting = ectn_NONE;
|
||||
|
||||
disconnect(m_pacmanDatabaseSystemWatcher,
|
||||
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
|
||||
|
||||
int numberOfOutdatedPackages = m_numberOfOutdatedPackages;
|
||||
refreshAppIcon();
|
||||
|
||||
if (numberOfOutdatedPackages != m_numberOfOutdatedPackages)
|
||||
{
|
||||
if (m_numberOfOutdatedPackages > 0)
|
||||
{
|
||||
QString notification;
|
||||
|
||||
if (m_numberOfOutdatedPackages == 1)
|
||||
{
|
||||
notification = StrConstants::getOneNewUpdate();
|
||||
m_systemTrayIcon->setToolTip(notification);
|
||||
sendNotification(notification);
|
||||
}
|
||||
else if (m_numberOfOutdatedPackages > 1)
|
||||
{
|
||||
notification = StrConstants::getNewUpdates().arg(m_numberOfOutdatedPackages);
|
||||
m_systemTrayIcon->setToolTip(notification);
|
||||
sendNotification(notification);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
QString notification;
|
||||
|
||||
if (numberOfOutdatedPackages == 1)
|
||||
{
|
||||
notification = StrConstants::getOneNewUpdate();
|
||||
m_systemTrayIcon->setToolTip(notification);
|
||||
sendNotification(notification);
|
||||
}
|
||||
else if (numberOfOutdatedPackages > 1)
|
||||
{
|
||||
notification = StrConstants::getNewUpdates().arg(numberOfOutdatedPackages);
|
||||
m_systemTrayIcon->setToolTip(notification);
|
||||
sendNotification(notification);
|
||||
}
|
||||
}
|
||||
|
||||
connect(m_pacmanDatabaseSystemWatcher,
|
||||
SIGNAL(directoryChanged(QString)), this, SLOT(refreshAppIcon()));
|
||||
}
|
||||
|
||||
/*
|
||||
* Uses notify-send to send a notification to the systray area
|
||||
*/
|
||||
void MainWindow::sendNotification(const QString &msg)
|
||||
{
|
||||
if (WMHelper::isXFCERunning() || WMHelper::isLXDERunning() || WMHelper::isOPENBOXRunning())
|
||||
{
|
||||
QString processToExec("notify-send");
|
||||
if (UnixCommand::hasTheExecutable(processToExec))
|
||||
{
|
||||
QProcess *send = new QProcess();
|
||||
processToExec += " -i /usr/share/icons/octopi_red.png -t 30000 \"" + StrConstants::getApplicationName() +
|
||||
"\" \"" + msg + "\"";
|
||||
send->startDetached(processToExec);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If we have some outdated packages, let's put an angry red face icon in this app!
|
||||
*/
|
||||
void MainWindow::refreshAppIcon()
|
||||
{
|
||||
m_outdatedPackageList = Package::getOutdatedPackageList();
|
||||
|
||||
bool hasYaourt = UnixCommand::hasTheExecutable("yaourt");
|
||||
if (hasYaourt)
|
||||
{
|
||||
m_outdatedYaourtPackageList = Package::getOutdatedYaourtPackageList();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_outdatedYaourtPackageList = new QStringList();
|
||||
}
|
||||
|
||||
m_numberOfOutdatedPackages = m_outdatedPackageList->count();
|
||||
m_numberOfOutdatedYaourtPackages = m_outdatedYaourtPackageList->count();
|
||||
|
||||
if (m_numberOfOutdatedPackages == 0 && m_numberOfOutdatedYaourtPackages == 0)
|
||||
{
|
||||
m_systemTrayIcon->setToolTip("");
|
||||
}
|
||||
else if (m_numberOfOutdatedPackages > 0)
|
||||
{
|
||||
if (m_numberOfOutdatedPackages == 1)
|
||||
{
|
||||
m_systemTrayIcon->setToolTip(StrConstants::getOneNewUpdate());
|
||||
}
|
||||
else if (m_numberOfOutdatedPackages > 1)
|
||||
{
|
||||
m_systemTrayIcon->setToolTip(StrConstants::getNewUpdates().arg(m_numberOfOutdatedPackages));
|
||||
}
|
||||
}
|
||||
else if (m_numberOfOutdatedYaourtPackages > 0)
|
||||
{
|
||||
if (m_numberOfOutdatedYaourtPackages == 1)
|
||||
{
|
||||
m_systemTrayIcon->setToolTip(StrConstants::getOneNewUpdate());
|
||||
}
|
||||
else if (m_numberOfOutdatedYaourtPackages > 1)
|
||||
{
|
||||
m_systemTrayIcon->setToolTip(StrConstants::getNewUpdates().arg(m_numberOfOutdatedYaourtPackages));
|
||||
}
|
||||
}
|
||||
|
||||
if(m_outdatedPackageList->count() > 0) //RED ICON!
|
||||
{
|
||||
if(m_commandExecuting == ectn_NONE)
|
||||
{
|
||||
m_actionSystemUpgrade->setEnabled(true);
|
||||
m_actionSystemUpgrade->setVisible(true);
|
||||
}
|
||||
|
||||
m_icon = IconHelper::getIconOctopiRed();
|
||||
}
|
||||
else if(m_outdatedYaourtPackageList->count() > 0) //YELLOW ICON!
|
||||
{
|
||||
m_actionSystemUpgrade->setVisible(false);
|
||||
m_icon = IconHelper::getIconOctopiYellow();
|
||||
}
|
||||
else //YEAHHH... GREEN ICON!
|
||||
{
|
||||
m_actionSystemUpgrade->setVisible(false);
|
||||
m_icon = IconHelper::getIconOctopiGreen();
|
||||
}
|
||||
|
||||
setWindowIcon(m_icon);
|
||||
m_systemTrayIcon->setIcon(m_icon);
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever the user clicks on the systemTray icon...
|
||||
*/
|
||||
void MainWindow::execSystemTrayActivated(QSystemTrayIcon::ActivationReason ar)
|
||||
{
|
||||
if (m_commandExecuting != ectn_NONE) return;
|
||||
|
||||
switch (ar)
|
||||
{
|
||||
case QSystemTrayIcon::DoubleClick:
|
||||
{
|
||||
if (m_outdatedPackageList->count() > 0)
|
||||
{
|
||||
runOctopi();
|
||||
}
|
||||
else
|
||||
{
|
||||
runOctopi(true);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case QSystemTrayIcon::Trigger:
|
||||
{
|
||||
if (UnixCommand::isAppRunning("octopi", true))
|
||||
{
|
||||
hideOctopi();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* When the users quit this notifier...
|
||||
*/
|
||||
void MainWindow::exitNotifier()
|
||||
{
|
||||
if (UnixCommand::isAppRunning("octopi", true))
|
||||
{
|
||||
QProcess proc;
|
||||
proc.startDetached("octopi -close");
|
||||
}
|
||||
|
||||
qApp->quit();
|
||||
}
|
||||
67
notifier/octopi-notifier/mainwindow.h
Normal file
@@ -0,0 +1,67 @@
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include "../../src/unixcommand.h"
|
||||
|
||||
#include <QProcess>
|
||||
#include <QString>
|
||||
#include <QMainWindow>
|
||||
#include <QSystemTrayIcon>
|
||||
|
||||
class QIcon;
|
||||
class QMenu;
|
||||
class QAction;
|
||||
class QFileSystemWatcher;
|
||||
class PacmanHelperClient;
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
explicit MainWindow(QWidget *parent = 0);
|
||||
|
||||
private slots:
|
||||
|
||||
void pacmanHelperTimerTimeout();
|
||||
void afterPacmanHelperSyncDatabase();
|
||||
void execSystemTrayActivated(QSystemTrayIcon::ActivationReason);
|
||||
void refreshAppIcon();
|
||||
void runOctopi(bool execApplication = false);
|
||||
inline void startOctopi() { runOctopi(true); }
|
||||
|
||||
void aboutOctopiNotifier();
|
||||
void hideOctopi();
|
||||
void exitNotifier();
|
||||
void doSystemUpgrade();
|
||||
void doSystemUpgradeFinished(int, QProcess::ExitStatus);
|
||||
void toggleEnableInterface(bool state);
|
||||
|
||||
private:
|
||||
|
||||
int m_numberOfOutdatedPackages;
|
||||
int m_numberOfOutdatedYaourtPackages;
|
||||
bool m_systemUpgradeDialog;
|
||||
CommandExecuting m_commandExecuting;
|
||||
UnixCommand *m_unixCommand;
|
||||
|
||||
QAction *m_actionOctopi;
|
||||
QAction *m_actionSystemUpgrade;
|
||||
QAction *m_actionAbout;
|
||||
QAction *m_actionExit;
|
||||
QIcon m_icon;
|
||||
QStringList *m_outdatedPackageList;
|
||||
QStringList *m_outdatedYaourtPackageList;
|
||||
QTimer *m_pacmanHelperTimer;
|
||||
QSystemTrayIcon *m_systemTrayIcon;
|
||||
QMenu *m_systemTrayIconMenu;
|
||||
QFileSystemWatcher *m_pacmanDatabaseSystemWatcher;
|
||||
PacmanHelperClient *m_pacmanHelperClient;
|
||||
|
||||
bool _isSUAvailable();
|
||||
void initSystemTrayIcon();
|
||||
void sendNotification(const QString &msg);
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
45
notifier/octopi-notifier/octopi-notifier.pro
Normal file
@@ -0,0 +1,45 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2013-07-20T16:15:14
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui network dbus
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
CONFIG += qt console warn_on debug
|
||||
|
||||
TARGET = octopi-notifier
|
||||
TEMPLATE = app
|
||||
|
||||
DESTDIR += ../bin
|
||||
OBJECTS_DIR += ../build-octopi-notifier
|
||||
MOC_DIR += ../build-octopi-notifier
|
||||
UI_DIR += ../build-octopi-notifier
|
||||
|
||||
SOURCES += main.cpp \
|
||||
mainwindow.cpp \
|
||||
../../src/unixcommand.cpp \
|
||||
../../src/package.cpp \
|
||||
../../src/wmhelper.cpp \
|
||||
../../src/settingsmanager.cpp \
|
||||
../../src/pacmanhelperclient.cpp \
|
||||
../../src/utils/processwrapper.cpp \
|
||||
../../src/transactiondialog.cpp
|
||||
|
||||
HEADERS += \
|
||||
mainwindow.h \
|
||||
../../src/uihelper.h \
|
||||
../../src/unixcommand.h \
|
||||
../../src/wmhelper.h \
|
||||
../../src/strconstants.h \
|
||||
../../src/package.h \
|
||||
../../src/pacmanhelperclient.h \
|
||||
../../src/utils/processwrapper.h \
|
||||
../../src/transactiondialog.h
|
||||
|
||||
FORMS += ../../ui/transactiondialog.ui
|
||||
|
||||
RESOURCES += \
|
||||
../../resources.qrc
|
||||
5
notifier/pacmanhelper/README
Normal file
@@ -0,0 +1,5 @@
|
||||
Command used to generate the PacmanHelperAdaptor:
|
||||
|
||||
qdbusxml2cpp -c PacmanHelperAdaptor
|
||||
-a pacmanhelperadaptor.h:pacmanhelperadaptor.cpp
|
||||
polkit/org.octopi.pacmanhelper.xml
|
||||
11
notifier/pacmanhelper/main.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "pacmanhelper.h"
|
||||
#include <QCoreApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QCoreApplication a(argc, argv);
|
||||
|
||||
PacmanHelper pacmanHelper;
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
35
notifier/pacmanhelper/pacmanhelper.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "pacmanhelper.h"
|
||||
#include "pacmanhelperadaptor.h"
|
||||
#include <QCoreApplication>
|
||||
#include <QDBusConnection>
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
|
||||
PacmanHelper::PacmanHelper(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
(void) new PacmanHelperAdaptor(this);
|
||||
|
||||
if (!QDBusConnection::systemBus().registerService("org.octopi.pacmanhelper")) {
|
||||
qDebug() << "Another helper is already running!";
|
||||
QCoreApplication::instance()->quit();
|
||||
}
|
||||
|
||||
if (!QDBusConnection::systemBus().registerObject("/", this)) {
|
||||
qDebug() << "Unable to register service interface to dbus!";
|
||||
QCoreApplication::instance()->quit();
|
||||
}
|
||||
}
|
||||
|
||||
void PacmanHelper::syncdb()
|
||||
{
|
||||
QProcess pacman;
|
||||
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||
env.insert("LANG", "us_EN");
|
||||
pacman.setProcessEnvironment(env);
|
||||
|
||||
QString command = "pacman -Sy"; //-Syy or -Sy - eternal doubt!
|
||||
pacman.execute(command);
|
||||
|
||||
emit syncdbcompleted();
|
||||
}
|
||||
21
notifier/pacmanhelper/pacmanhelper.h
Normal file
@@ -0,0 +1,21 @@
|
||||
#ifndef PACMANHELPER_H
|
||||
#define PACMANHELPER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QtDBus/QDBusContext>
|
||||
|
||||
class PacmanHelper : public QObject, protected QDBusContext
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_CLASSINFO("D-Bus Interface", "org.octopi.pacmanhelper")
|
||||
public:
|
||||
explicit PacmanHelper(QObject *parent = 0);
|
||||
|
||||
public slots:
|
||||
void syncdb();
|
||||
|
||||
signals:
|
||||
void syncdbcompleted();
|
||||
};
|
||||
|
||||
#endif // PACMANHELPER_H
|
||||
23
notifier/pacmanhelper/pacmanhelper.pro
Normal file
@@ -0,0 +1,23 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2013-06-01T15:00:00
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core dbus
|
||||
|
||||
CONFIG += qt console warn_on
|
||||
|
||||
TEMPLATE = app
|
||||
|
||||
DESTDIR += ../bin
|
||||
OBJECTS_DIR += ../build
|
||||
MOC_DIR += ../build
|
||||
UI_DIR += ../build
|
||||
|
||||
HEADERS += pacmanhelper.h \
|
||||
pacmanhelperadaptor.h
|
||||
|
||||
SOURCES += main.cpp \
|
||||
pacmanhelper.cpp \
|
||||
pacmanhelperadaptor.cpp
|
||||
239
notifier/pacmanhelper/pacmanhelper.pro.user
Normal file
@@ -0,0 +1,239 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by Qt Creator 2.6.2, 2013-06-03T23:20:52. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<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>
|
||||
</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>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<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="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</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>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap"/>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<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="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">
|
||||
<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">Debug</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">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>
|
||||
<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>
|
||||
</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>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Project.UseGlobal">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>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<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.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<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">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<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="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="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">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>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
|
||||
<value type="QString">{e7ed0845-58e4-42af-91c6-0506d885beb7}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">12</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
41
notifier/pacmanhelper/pacmanhelperadaptor.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* This file was generated by qdbusxml2cpp version 0.7
|
||||
* Command line was: qdbusxml2cpp -c PacmanHelperAdaptor -a pacmanhelperadaptor.h:pacmanhelperadaptor.cpp polkit/org.octopi.pacmanhelper.xml
|
||||
*
|
||||
* qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
*
|
||||
* This is an auto-generated file.
|
||||
* Do not edit! All changes made to it will be lost.
|
||||
*/
|
||||
|
||||
#include "pacmanhelperadaptor.h"
|
||||
#include <QtCore/QMetaObject>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVariant>
|
||||
|
||||
/*
|
||||
* Implementation of adaptor class PacmanHelperAdaptor
|
||||
*/
|
||||
|
||||
PacmanHelperAdaptor::PacmanHelperAdaptor(QObject *parent)
|
||||
: QDBusAbstractAdaptor(parent)
|
||||
{
|
||||
// constructor
|
||||
setAutoRelaySignals(true);
|
||||
}
|
||||
|
||||
PacmanHelperAdaptor::~PacmanHelperAdaptor()
|
||||
{
|
||||
// destructor
|
||||
}
|
||||
|
||||
void PacmanHelperAdaptor::syncdb()
|
||||
{
|
||||
// handle method call org.octopi.pacmanhelper.syncdb
|
||||
QMetaObject::invokeMethod(parent(), "syncdb");
|
||||
}
|
||||
|
||||
48
notifier/pacmanhelper/pacmanhelperadaptor.h
Normal file
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* This file was generated by qdbusxml2cpp version 0.7
|
||||
* Command line was: qdbusxml2cpp -c PacmanHelperAdaptor -a pacmanhelperadaptor.h:pacmanhelperadaptor.cpp polkit/org.octopi.pacmanhelper.xml
|
||||
*
|
||||
* qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
*
|
||||
* This is an auto-generated file.
|
||||
* This file may have been hand-edited. Look for HAND-EDIT comments
|
||||
* before re-generating it.
|
||||
*/
|
||||
|
||||
#ifndef PACMANHELPERADAPTOR_H_1370179068
|
||||
#define PACMANHELPERADAPTOR_H_1370179068
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtDBus/QtDBus>
|
||||
class QByteArray;
|
||||
template<class T> class QList;
|
||||
template<class Key, class Value> class QMap;
|
||||
class QString;
|
||||
class QStringList;
|
||||
class QVariant;
|
||||
|
||||
/*
|
||||
* Adaptor class for interface org.octopi.pacmanhelper
|
||||
*/
|
||||
class PacmanHelperAdaptor: public QDBusAbstractAdaptor
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_CLASSINFO("D-Bus Interface", "org.octopi.pacmanhelper")
|
||||
Q_CLASSINFO("D-Bus Introspection", ""
|
||||
" <interface name=\"org.octopi.pacmanhelper\">\n"
|
||||
" <method name=\"syncdb\"/>\n"
|
||||
" <signal name=\"syncdbcompleted\"/>\n"
|
||||
" </interface>\n"
|
||||
"")
|
||||
public:
|
||||
PacmanHelperAdaptor(QObject *parent);
|
||||
virtual ~PacmanHelperAdaptor();
|
||||
|
||||
public: // PROPERTIES
|
||||
public Q_SLOTS: // METHODS
|
||||
void syncdb();
|
||||
Q_SIGNALS: // SIGNALS
|
||||
void syncdbcompleted();
|
||||
};
|
||||
|
||||
#endif
|
||||
15
notifier/pacmanhelper/polkit/org.octopi.pacman.policy
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE policyconfig PUBLIC
|
||||
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
|
||||
<policyconfig>
|
||||
|
||||
<action id="org.octopi.pacman.syncdb">
|
||||
<description>Synchronizes databases</description>
|
||||
<message>Prevents from doing action syncdb</message>
|
||||
<defaults>
|
||||
<allow_inactive>no</allow_inactive>
|
||||
<allow_active>auth_admin</allow_active>
|
||||
</defaults>
|
||||
</action>
|
||||
</policyconfig>
|
||||
18
notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
<!DOCTYPE busconfig PUBLIC
|
||||
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
|
||||
<busconfig>
|
||||
|
||||
<!-- Only user root can own the foo helper -->
|
||||
<policy user="root">
|
||||
<allow own="org.octopi.pacmanhelper"/>
|
||||
</policy>
|
||||
|
||||
<!-- Allow anyone to call into the service - we'll reject callers using PolicyKit -->
|
||||
<policy context="default">
|
||||
<allow send_interface="org.octopi.pacmanhelper"/>
|
||||
<allow receive_sender="org.octopi.pacmanhelper"/>
|
||||
<allow receive_interface="org.octopi.pacmanhelper"/>
|
||||
</policy>
|
||||
|
||||
</busconfig>
|
||||
@@ -0,0 +1,4 @@
|
||||
[D-BUS Service]
|
||||
Name=org.octopi.pacmanhelper
|
||||
Exec=/usr/lib/octopi/pacmanhelper
|
||||
User=root
|
||||
9
notifier/pacmanhelper/polkit/org.octopi.pacmanhelper.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
<node>
|
||||
<interface name="org.octopi.pacmanhelper">
|
||||
<method name="syncdb" >
|
||||
</method>
|
||||
<signal name="syncdbcompleted">
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
||||
9
octopi-notifier.desktop
Normal file
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Name=Octopi Notifier
|
||||
Icon=octopi
|
||||
Exec=octopi-notifier
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=GNOME;GTK;System;
|
||||
#NotShowIn=GNOME;XFCE;LXDE;KDE;
|
||||
StartupNotify=true
|
||||
@@ -69,7 +69,7 @@ Comment[zh_TW]=加入或移除系統上安裝的軟體
|
||||
Exec=octopi
|
||||
GenericName[en_US]=
|
||||
GenericName=
|
||||
Icon=/usr/share/icons/octopi.png
|
||||
Icon=octopi
|
||||
MimeType=
|
||||
Name[en_US]=Add/Remove Software
|
||||
Name=Add/Remove Software
|
||||
|
||||
88
octopi.pro
@@ -4,7 +4,7 @@
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui network xml
|
||||
QT += core gui network xml dbus
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
@@ -19,6 +19,10 @@ UI_DIR += build
|
||||
|
||||
HEADERS += src/QtSolutions/qtsingleapplication.h \
|
||||
src/QtSolutions/qtlocalpeer.h \
|
||||
src/QtSolutions/qtsinglecoreapplication.h \
|
||||
src/QtSolutions/QtSingleApplication \
|
||||
src/QtSolutions/qtlockedfile.h \
|
||||
src/QtSolutions/QtLockedFile \
|
||||
src/mainwindow.h \
|
||||
src/strconstants.h \
|
||||
src/searchlineedit.h \
|
||||
@@ -29,16 +33,20 @@ HEADERS += src/QtSolutions/qtsingleapplication.h \
|
||||
src/packagecontroller.h \
|
||||
src/unixcommand.h \
|
||||
src/wmhelper.h \
|
||||
src/QtSolutions/qtsinglecoreapplication.h \
|
||||
src/QtSolutions/QtSingleApplication \
|
||||
src/QtSolutions/qtlockedfile.h \
|
||||
src/QtSolutions/QtLockedFile \
|
||||
src/treeviewpackagesitemdelegate.h \
|
||||
src/searchbar.h \
|
||||
src/transactiondialog.h
|
||||
src/treeviewpackagesitemdelegate.h \
|
||||
src/searchbar.h \
|
||||
src/transactiondialog.h \
|
||||
src/pacmanhelperclient.h \
|
||||
src/globals.h \
|
||||
src/multiselectiondialog.h \
|
||||
src/utils/processwrapper.h
|
||||
|
||||
SOURCES += src/QtSolutions/qtsingleapplication.cpp \
|
||||
src/QtSolutions/qtlocalpeer.cpp \
|
||||
src/QtSolutions/qtsinglecoreapplication.cpp \
|
||||
src/QtSolutions/qtlockedfile.cpp \
|
||||
src/QtSolutions/qtlockedfile_win.cpp \
|
||||
src/QtSolutions/qtlockedfile_unix.cpp \
|
||||
src/main.cpp\
|
||||
src/mainwindow.cpp \
|
||||
src/searchlineedit.cpp \
|
||||
@@ -48,26 +56,26 @@ SOURCES += src/QtSolutions/qtsingleapplication.cpp \
|
||||
src/packagecontroller.cpp \
|
||||
src/unixcommand.cpp \
|
||||
src/wmhelper.cpp \
|
||||
src/QtSolutions/qtsinglecoreapplication.cpp \
|
||||
src/QtSolutions/qtlockedfile.cpp \
|
||||
src/QtSolutions/qtlockedfile_win.cpp \
|
||||
src/QtSolutions/qtlockedfile_unix.cpp \
|
||||
src/treeviewpackagesitemdelegate.cpp \
|
||||
src/mainwindow_init.cpp \
|
||||
src/mainwindow_transaction.cpp \
|
||||
src/mainwindow_events.cpp \
|
||||
src/mainwindow_help.cpp \
|
||||
src/searchbar.cpp \
|
||||
src/mainwindow_searchbar.cpp \
|
||||
src/transactiondialog.cpp \
|
||||
src/mainwindow_news.cpp \
|
||||
src/mainwindow_refresh.cpp
|
||||
src/treeviewpackagesitemdelegate.cpp \
|
||||
src/mainwindow_init.cpp \
|
||||
src/mainwindow_transaction.cpp \
|
||||
src/mainwindow_events.cpp \
|
||||
src/mainwindow_help.cpp \
|
||||
src/searchbar.cpp \
|
||||
src/mainwindow_searchbar.cpp \
|
||||
src/transactiondialog.cpp \
|
||||
src/mainwindow_news.cpp \
|
||||
src/mainwindow_refresh.cpp \
|
||||
src/pacmanhelperclient.cpp \
|
||||
src/globals.cpp \
|
||||
src/multiselectiondialog.cpp \
|
||||
src/utils/processwrapper.cpp
|
||||
|
||||
FORMS += ui/mainwindow.ui \
|
||||
ui/transactiondialog.ui
|
||||
FORMS += ui/mainwindow.ui \
|
||||
ui/transactiondialog.ui \
|
||||
ui/multiselectiondialog.ui
|
||||
|
||||
RESOURCES += \
|
||||
resources.qrc
|
||||
RESOURCES += resources.qrc
|
||||
|
||||
OTHER_FILES += \
|
||||
src/QtSolutions/qtsinglecoreapplication.pri \
|
||||
@@ -76,8 +84,34 @@ OTHER_FILES += \
|
||||
TRANSLATIONS += resources/translations/octopi_pt_BR.ts \
|
||||
resources/translations/octopi_fr_FR.ts \
|
||||
resources/translations/octopi_es_ES.ts \
|
||||
resources/translations/octopi_es_419.ts \
|
||||
resources/translations/octopi_el.ts \
|
||||
resources/translations/octopi_de.ts \
|
||||
resources/translations/octopi_it.ts \
|
||||
resources/translations/octopi_ro.ts \
|
||||
resources/translations/octopi_tr_TR.ts
|
||||
resources/translations/octopi_tr_TR.ts \
|
||||
resources/translations/octopi_ar.ts \
|
||||
resources/translations/octopi_ca.ts \
|
||||
resources/translations/octopi_bg.ts \
|
||||
resources/translations/octopi_pl.ts \
|
||||
resources/translations/octopi_id.ts \
|
||||
resources/translations/octopi_da.ts \
|
||||
resources/translations/octopi_cs.ts \
|
||||
resources/translations/octopi_he.ts \
|
||||
resources/translations/octopi_lt.ts \
|
||||
resources/translations/octopi_nb.ts \
|
||||
resources/translations/octopi_sr@latin.ts \
|
||||
resources/translations/octopi_sr_RS.ts \
|
||||
resources/translations/octopi_nl.ts \
|
||||
resources/translations/octopi_ru.ts \
|
||||
resources/translations/octopi_uz.ts \
|
||||
resources/translations/octopi_fi.ts \
|
||||
resources/translations/octopi_vi.ts \
|
||||
resources/translations/octopi_en_GB.ts \
|
||||
resources/translations/octopi_pt_PT.ts \
|
||||
resources/translations/octopi_sv.ts \
|
||||
resources/translations/octopi_hu.ts \
|
||||
resources/translations/octopi_zh_TW.ts \
|
||||
resources/translations/octopi_ms_MY.ts \
|
||||
resources/translations/octopi_uk.ts \
|
||||
resources/translations/octopi_sk.ts
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>resources/images/octopi_red.png</file>
|
||||
<file>resources/images/octopi_yellow.png</file>
|
||||
<file>resources/images/esf-search.png</file>
|
||||
<file>resources/images/esf-clear-active.png</file>
|
||||
<file>resources/images/esf-clear-hover.png</file>
|
||||
<file>resources/images/esf-border.png</file>
|
||||
<file>resources/images/esf-clear.png</file>
|
||||
<file>resources/styles/branch-closed_BW.png</file>
|
||||
<file>resources/styles/branch-closed.png</file>
|
||||
<file>resources/styles/branch-end.png</file>
|
||||
@@ -14,6 +7,15 @@
|
||||
<file>resources/styles/branch-open_BW.png</file>
|
||||
<file>resources/styles/branch-open.png</file>
|
||||
<file>resources/styles/vline.png</file>
|
||||
<file>resources/images/octopi_transparent.png</file>
|
||||
<file>resources/images/octopi_red.png</file>
|
||||
<file>resources/images/octopi_yellow.png</file>
|
||||
<file>resources/images/octopi_green.png</file>
|
||||
<file>resources/images/esf-search.png</file>
|
||||
<file>resources/images/esf-clear-active.png</file>
|
||||
<file>resources/images/esf-clear-hover.png</file>
|
||||
<file>resources/images/esf-border.png</file>
|
||||
<file>resources/images/esf-clear.png</file>
|
||||
<file>resources/images/installed.png</file>
|
||||
<file>resources/images/noninstalled.png</file>
|
||||
<file>resources/images/toinstall.png</file>
|
||||
@@ -22,9 +24,9 @@
|
||||
<file>resources/images/binary.png</file>
|
||||
<file>resources/images/outdated.png</file>
|
||||
<file>resources/images/unrequired.png</file>
|
||||
<file>resources/images/foreign.png</file>
|
||||
<file>resources/images/commit.png</file>
|
||||
<file>resources/images/refresh.png</file>
|
||||
<file>resources/images/fast_forward.png</file>
|
||||
<file>resources/images/exit.png</file>
|
||||
<file>resources/images/rollback.png</file>
|
||||
<file>resources/images/editfile.png</file>
|
||||
@@ -36,6 +38,12 @@
|
||||
<file>resources/images/install_item.png</file>
|
||||
<file>resources/images/remove_item.png</file>
|
||||
<file>resources/images/find.png</file>
|
||||
<file>resources/images/rss.png</file>
|
||||
<file>resources/images/newer.png</file>
|
||||
<file>resources/images/foreign_green.png</file>
|
||||
<file>resources/images/foreign_red.png</file>
|
||||
<file>resources/images/show_groups.png</file>
|
||||
<file>resources/images/mirror-check.png</file>
|
||||
<file>resources/translations/octopi_pt_BR.qm</file>
|
||||
<file>resources/translations/octopi_fr_FR.qm</file>
|
||||
<file>resources/translations/octopi_es_ES.qm</file>
|
||||
@@ -44,5 +52,31 @@
|
||||
<file>resources/translations/octopi_it.qm</file>
|
||||
<file>resources/translations/octopi_ro.qm</file>
|
||||
<file>resources/translations/octopi_tr_TR.qm</file>
|
||||
<file>resources/translations/octopi_ar.qm</file>
|
||||
<file>resources/translations/octopi_ca.qm</file>
|
||||
<file>resources/translations/octopi_bg.qm</file>
|
||||
<file>resources/translations/octopi_pl.qm</file>
|
||||
<file>resources/translations/octopi_id.qm</file>
|
||||
<file>resources/translations/octopi_da.qm</file>
|
||||
<file>resources/translations/octopi_cs.qm</file>
|
||||
<file>resources/translations/octopi_he.qm</file>
|
||||
<file>resources/translations/octopi_lt.qm</file>
|
||||
<file>resources/translations/octopi_nb.qm</file>
|
||||
<file>resources/translations/octopi_sr@latin.qm</file>
|
||||
<file>resources/translations/octopi_nl.qm</file>
|
||||
<file>resources/translations/octopi_ru.qm</file>
|
||||
<file>resources/translations/octopi_uz.qm</file>
|
||||
<file>resources/translations/octopi_fi.qm</file>
|
||||
<file>resources/translations/octopi_vi.qm</file>
|
||||
<file>resources/translations/octopi_es_419.qm</file>
|
||||
<file>resources/translations/octopi_en_GB.qm</file>
|
||||
<file>resources/translations/octopi_pt_PT.qm</file>
|
||||
<file>resources/translations/octopi_sv.qm</file>
|
||||
<file>resources/translations/octopi_sr_RS.qm</file>
|
||||
<file>resources/translations/octopi_hu.qm</file>
|
||||
<file>resources/translations/octopi_zh_TW.qm</file>
|
||||
<file>resources/translations/octopi_ms_MY.qm</file>
|
||||
<file>resources/translations/octopi_uk.qm</file>
|
||||
<file>resources/translations/octopi_sk.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
<h2>Octopi</h2>
|
||||
<h3><p>A Qt4-based Pacman frontend,
|
||||
licensed under the terms of <a style="color:'#4BC413'" href="http://www.gnu.org/licenses/gpl-2.0.html">GPL v2</a>.</p></h3>
|
||||
<h4><p>For more information, visit:
|
||||
<a style="color:'#4BC413'" href="http://octopiproject.wordpress.com">http://octopiproject.wordpress.com</a>.</p></h4>
|
||||
<br>
|
||||
Package classification:
|
||||
<ul type="square">
|
||||
<li><img height="16" width="16" src=":/resources/images/installed.png"> An installed package</li>
|
||||
<li><img height="16" width="16" src=":/resources/images/unrequired.png"> An installed package (not required by others)</li>
|
||||
<li><img height="16" width="16" src=":/resources/images/foreign.png"> A foreign package, installed from AUR</li>
|
||||
<li><img height="16" width="16" src=":/resources/images/noninstalled.png"> A non installed package</li>
|
||||
<li><img height="16" width="16" src=":/resources/images/outdated.png"> An outdated package</li>
|
||||
</ul>
|
||||
Basic usage help:
|
||||
<ul>
|
||||
<li>Position the mouse over a package to see its description</li>
|
||||
<li>Double click an installed package to see its contents</li>
|
||||
<li>Right click package to install/reinstall or remove it</li>
|
||||
</ul>
|
||||
Alt+key sequences:
|
||||
<ul>
|
||||
<li>Alt+1 to swtich to "Info" tab</li>
|
||||
<li>Alt+2 to swtich to "Files" tab</li>
|
||||
<li>Alt+3 to swtich to "Transaction" tab</li>
|
||||
<li>Alt+4 to swtich to "Output" tab</li>
|
||||
<li>Alt+5 to swtich to "News" tab</li>
|
||||
<li>Alt+6 or "F1" to show this help page</li>
|
||||
</ul>
|
||||
Control+key sequences:
|
||||
<ul>
|
||||
<li>Ctrl+D or "File/Sync database" to sync the local database with latest remote changes (pacman -Sy)</li>
|
||||
<li>Ctrl+U or "File/System upgrade" to make a full system upgrade (pacman -Su)</li>
|
||||
<li>Ctrl+L to find a package in the package list</li>
|
||||
<li>Ctrl+N or "View/Non installed" to show/hide non installed packages</li>
|
||||
<li>Ctrl+M or "Transaction/Commit" to start installation/removal of selected packages</li>
|
||||
<li>Ctrl+B or "Transaction/Rollback" to clear the selection of to be removed/installed packages</li>
|
||||
<li>Ctrl+G or "File/Get latest distro news" to retrieve the latest RSS based distro news</li>
|
||||
<li>Ctrl+Q or "File/Exit" to exit the application</li>
|
||||
</ul>
|
||||
Control+shift+key sequences:
|
||||
<ul>
|
||||
<li>Ctrl+Shift+C to clean local packages cache (pacman -Sc)</li>
|
||||
<li>Ctrl+Shift+G to display all package groups</li>
|
||||
</ul>
|
||||
F+key sequences:
|
||||
<ul>
|
||||
<li>F1 to show this help page</li>
|
||||
<li>F4 to open a Terminal within the selected directory at Files tab</li>
|
||||
<li>F6 to open a File Manager whitin the selected directory at Files tab</li>
|
||||
<li>F10 to maximize/demaximize package list view</li>
|
||||
<li>F12 to maximize/demaximize Tab's view</li>
|
||||
</ul>
|
||||
<p>
|
||||
<br>
|
||||
<i>Alexandre Albuquerque Arnt - Author</i>
|
||||
BIN
resources/images/fast_forward.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
BIN
resources/images/foreign_red.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
resources/images/mirror-check.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
resources/images/newer.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/images/octopi_green.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
resources/images/octopi_transparent.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/images/rss.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
resources/images/show_groups.png
Normal file
|
After Width: | Height: | Size: 405 B |