From 9074a4554d50cce0ea903465f1dbfe7b0a4c576d Mon Sep 17 00:00:00 2001 From: Phil Miller Date: Tue, 8 Jun 2010 19:12:35 +0000 Subject: [PATCH] * big change: fix desktop repo --- build.sh | 2 +- colibri/PKGBUILD | 29 -- colibri/colibri.install | 13 - support-libindicate-qt/PKGBUILD | 43 --- support-meanwhile/PKGBUILD | 37 --- .../PKGBUILD | 0 .../gluon.install | 0 .../PKGBUILD | 0 .../ggl-qt.desktop | 0 .../google-gadgets-qt.install | 0 .../plasma-stuff.tar.gz | Bin .../PKGBUILD | 0 .../kwebkitpart-svn.install | 0 .../PKGBUILD | 0 .../PKGBUILD | 0 .../PKGBUILD | 0 .../gcc45.patch | 0 .../xdg-path.patch | 0 {support-qedje => support-pkg-qedje}/PKGBUILD | 0 {support-qjson => support-pkg-qjson}/PKGBUILD | 0 {support-qzion => support-pkg-qzion}/PKGBUILD | 0 support-xkit/PKGBUILD | 47 --- tools-arxin/usr/bin/arxin | Bin 43892 -> 0 bytes .../usr/include/arxin/ArxinAbstractSection.h | 102 ------ .../usr/include/arxin/ArxinDirectoryParser.h | 137 -------- .../usr/include/arxin/ArxinFileParser.h | 310 ------------------ .../usr/include/arxin/ArxinInterface.h | 83 ----- .../usr/include/arxin/ArxinProcessParser.h | 92 ------ .../usr/include/arxin/arxinItemDelegate.h | 52 --- tools-arxin/usr/include/arxin/arxin_macros.h | 103 ------ .../usr/share/arxin/plugins/arxinDaemons.py | 226 ------------- .../usr/share/arxin/plugins/arxinHardware.py | 214 ------------ .../usr/share/arxin/plugins/arxinLocale.py | 127 ------- .../arxin/plugins/ui_arxinAddDaemonsWidget.py | 32 -- .../share/arxin/plugins/ui_arxinAddModule.py | 53 --- .../share/arxin/plugins/ui_arxinDaemons.py | 71 ---- .../share/arxin/plugins/ui_arxinHardware.py | 113 ------- .../usr/share/arxin/plugins/ui_arxinLocale.py | 102 ------ .../icons/hicolor/128x128/apps/arxin.png | Bin 13613 -> 0 bytes .../share/icons/hicolor/32x32/apps/arxin.png | Bin 1900 -> 0 bytes .../share/icons/hicolor/48x48/apps/arxin.png | Bin 3247 -> 0 bytes .../share/icons/hicolor/64x64/apps/arxin.png | Bin 4909 -> 0 bytes .../share/icons/hicolor/96x96/apps/arxin.png | Bin 8895 -> 0 bytes .../usr/share/kde4/services/arxin.desktop | 12 - .../share/kde4/services/arxinMkinit.desktop | 17 - .../share/kde4/services/arxin_daemons.desktop | 22 -- .../kde4/services/arxin_hardware.desktop | 22 -- .../share/kde4/services/arxin_locale.desktop | 22 -- .../kde4/services/arxin_mkinitcpio.desktop | 25 -- .../share/kde4/services/arxin_part.desktop | 7 - .../kde4/servicetypes/arxin_plugin.desktop | 9 - .../servicetypes/arxin_scriptedplugin.desktop | 13 - .../FindPolkitQt.cmake | 0 .../PKGBUILD | 0 {tools-arxin => tools-pkg-arxin}/PKGBUILD | 8 +- {tools-arxin => tools-pkg-arxin}/PKGBUILD.bak | 0 .../arxin.install | 0 .../PKGBUILD | 0 .../tools-kgrubeditor.install | 0 .../PKGBUILD | 0 .../PKGBUILD | 0 .../tools-shaman.install | 0 .../PKGBUILD | 24 +- tools-pkg-tribe/PKGBUILD | 82 +++++ tools-pkg-tribe/tools-tribe.install | 67 ++++ 65 files changed, 168 insertions(+), 2150 deletions(-) delete mode 100644 colibri/PKGBUILD delete mode 100644 colibri/colibri.install delete mode 100644 support-libindicate-qt/PKGBUILD delete mode 100644 support-meanwhile/PKGBUILD rename {support-gluon-git => support-pkg-gluon-git}/PKGBUILD (100%) rename {support-gluon-git => support-pkg-gluon-git}/gluon.install (100%) rename {support-google-gadgets-qt => support-pkg-google-gadgets-qt}/PKGBUILD (100%) rename {support-google-gadgets-qt => support-pkg-google-gadgets-qt}/ggl-qt.desktop (100%) rename {support-google-gadgets-qt => support-pkg-google-gadgets-qt}/google-gadgets-qt.install (100%) rename {support-google-gadgets-qt => support-pkg-google-gadgets-qt}/plasma-stuff.tar.gz (100%) rename {support-kwebkitpart-svn => support-pkg-kwebkitpart-svn}/PKGBUILD (100%) rename {support-kwebkitpart-svn => support-pkg-kwebkitpart-svn}/kwebkitpart-svn.install (100%) rename {support-libindicate => support-pkg-libindicate}/PKGBUILD (100%) rename {support-mediastreamer => support-pkg-mediastreamer}/PKGBUILD (100%) rename {support-polkit-kde => support-pkg-polkit-kde}/PKGBUILD (100%) rename {support-polkit-kde => support-pkg-polkit-kde}/gcc45.patch (100%) rename {support-polkit-kde => support-pkg-polkit-kde}/xdg-path.patch (100%) rename {support-qedje => support-pkg-qedje}/PKGBUILD (100%) rename {support-qjson => support-pkg-qjson}/PKGBUILD (100%) rename {support-qzion => support-pkg-qzion}/PKGBUILD (100%) delete mode 100644 support-xkit/PKGBUILD delete mode 100755 tools-arxin/usr/bin/arxin delete mode 100644 tools-arxin/usr/include/arxin/ArxinAbstractSection.h delete mode 100644 tools-arxin/usr/include/arxin/ArxinDirectoryParser.h delete mode 100644 tools-arxin/usr/include/arxin/ArxinFileParser.h delete mode 100644 tools-arxin/usr/include/arxin/ArxinInterface.h delete mode 100644 tools-arxin/usr/include/arxin/ArxinProcessParser.h delete mode 100644 tools-arxin/usr/include/arxin/arxinItemDelegate.h delete mode 100644 tools-arxin/usr/include/arxin/arxin_macros.h delete mode 100644 tools-arxin/usr/share/arxin/plugins/arxinDaemons.py delete mode 100644 tools-arxin/usr/share/arxin/plugins/arxinHardware.py delete mode 100644 tools-arxin/usr/share/arxin/plugins/arxinLocale.py delete mode 100644 tools-arxin/usr/share/arxin/plugins/ui_arxinAddDaemonsWidget.py delete mode 100644 tools-arxin/usr/share/arxin/plugins/ui_arxinAddModule.py delete mode 100644 tools-arxin/usr/share/arxin/plugins/ui_arxinDaemons.py delete mode 100644 tools-arxin/usr/share/arxin/plugins/ui_arxinHardware.py delete mode 100644 tools-arxin/usr/share/arxin/plugins/ui_arxinLocale.py delete mode 100644 tools-arxin/usr/share/icons/hicolor/128x128/apps/arxin.png delete mode 100644 tools-arxin/usr/share/icons/hicolor/32x32/apps/arxin.png delete mode 100644 tools-arxin/usr/share/icons/hicolor/48x48/apps/arxin.png delete mode 100644 tools-arxin/usr/share/icons/hicolor/64x64/apps/arxin.png delete mode 100644 tools-arxin/usr/share/icons/hicolor/96x96/apps/arxin.png delete mode 100644 tools-arxin/usr/share/kde4/services/arxin.desktop delete mode 100644 tools-arxin/usr/share/kde4/services/arxinMkinit.desktop delete mode 100644 tools-arxin/usr/share/kde4/services/arxin_daemons.desktop delete mode 100644 tools-arxin/usr/share/kde4/services/arxin_hardware.desktop delete mode 100644 tools-arxin/usr/share/kde4/services/arxin_locale.desktop delete mode 100644 tools-arxin/usr/share/kde4/services/arxin_mkinitcpio.desktop delete mode 100644 tools-arxin/usr/share/kde4/services/arxin_part.desktop delete mode 100644 tools-arxin/usr/share/kde4/servicetypes/arxin_plugin.desktop delete mode 100644 tools-arxin/usr/share/kde4/servicetypes/arxin_scriptedplugin.desktop rename {tools-aqpm2-git => tools-pkg-aqpm2-git}/FindPolkitQt.cmake (100%) rename {tools-aqpm2-git => tools-pkg-aqpm2-git}/PKGBUILD (100%) rename {tools-arxin => tools-pkg-arxin}/PKGBUILD (73%) rename {tools-arxin => tools-pkg-arxin}/PKGBUILD.bak (100%) rename tools-arxin/tools-arxin.install => tools-pkg-arxin/arxin.install (100%) rename {tools-kgrubeditor => tools-pkg-kgrubeditor}/PKGBUILD (100%) rename {tools-kgrubeditor => tools-pkg-kgrubeditor}/tools-kgrubeditor.install (100%) rename {tools-networkmanagement => tools-pkg-networkmanagement}/PKGBUILD (100%) rename {tools-shaman2-svn => tools-pkg-shaman2-svn}/PKGBUILD (100%) rename {tools-shaman2-svn => tools-pkg-shaman2-svn}/tools-shaman.install (100%) rename {tools-akabeicore => tools-pkg-tribe-partitionmanager}/PKGBUILD (71%) create mode 100644 tools-pkg-tribe/PKGBUILD create mode 100644 tools-pkg-tribe/tools-tribe.install diff --git a/build.sh b/build.sh index 869d6d3b6..2e7acb331 100755 --- a/build.sh +++ b/build.sh @@ -124,7 +124,7 @@ build_it() # done # sudo pacman -Uf $_packages_to_install || exit 1 - sudo pacman -U ../_repo/local/`echo ${module} | sed 's/supportpkg-//g'`-*.pkg.* + sudo pacman -U ../_repo/local/`echo ${module} | sed 's/support-pkg-//g' | sed 's/tools-pkg-//g'`-*.pkg.* fi popd &>/dev/null diff --git a/colibri/PKGBUILD b/colibri/PKGBUILD deleted file mode 100644 index 718980e96..000000000 --- a/colibri/PKGBUILD +++ /dev/null @@ -1,29 +0,0 @@ -# -# Chakra Packages for Chakra, part of chakra-project.org -# -# maintainer (i686): Phil Miller -# maintainer (x86_64): Manuel Tortosa - -# include global config -source ../_buildscripts/${current_repo}-${_arch}-cfg.conf - -pkgname=colibri -pkgver=0.1.1 -pkgrel=1 -pkgdesc="Colibri provides an alternative to KDE4 Plasma notifications." -arch=('i686' 'x86_64') -url="http://kde-apps.org/content/show.php/Colibri?content=117147" -license=('GPL') -depends=('kdebase-workspace>=4.4') -makedepends=('gcc' 'cmake' 'automoc4') -install=colibri.install -source=(http://kde-apps.org/CONTENT/content-files/117147-${pkgname}-${pkgver}.tar.bz2) -md5sums=('a34e9d65984b90cd5597ab95532f2c4e') - -build() { - cd $srcdir/${pkgname}-${pkgver} - - mkdir build && cd build - cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../ || return 1 - make DESTDIR="$pkgdir/" install || return 1 -} \ No newline at end of file diff --git a/colibri/colibri.install b/colibri/colibri.install deleted file mode 100644 index 156ee3b0a..000000000 --- a/colibri/colibri.install +++ /dev/null @@ -1,13 +0,0 @@ -post_install() { - echo "" - echo "Colibri notifications works ONLY with 4.4" - echo "" - echo "Enabling Colibri notifications can be a bit tricky: -- Right-click on the systemtray applet -- Select \"System Tray Settings\" -- Uncheck the \"Application notifications\" box" -} - -post_upgrade() { - post_install $1 -} \ No newline at end of file diff --git a/support-libindicate-qt/PKGBUILD b/support-libindicate-qt/PKGBUILD deleted file mode 100644 index 59dbbd909..000000000 --- a/support-libindicate-qt/PKGBUILD +++ /dev/null @@ -1,43 +0,0 @@ -# -# KDE SC Packages for Chakra, part of chakra-project.org -# -# maintainer (i686): Phil Miller -# maintainer (x86_64): Manuel Tortosa - -# include global config -source ../_buildscripts/${current_repo}-${_arch}-cfg.conf - - -# original name (used for the source and pkgnames) -_origname=libindicate-qt - -pkgname=${_origname} -pkgbranch=0.2 -pkgver=0.2.2 -pkgrel=1 -pkgdesc='A small library for applications to raise "flags" on DBus for other components of the desktop to pick up and visualize. (Canonical Ayatana Project)' -arch=('i686' 'x86_64') -url="https://launchpad.net/libindicate" -license=('GPL') -depends=('libindicate>=0.2.3') -makedepends=() -groups=("kde-uninstall" "kde-support") -options=('!splitdbg' '!splithdr') - -source=(http://launchpadlibrarian.net/32429490/libindicate-qt-0.2.2.tar.bz2) -md5sums=('edc09ce095e7aab01b85291ce9e5f78c') # libindicate-qt-0.2.2.tar.bz2 - -build() { - cd "$srcdir"/${_origname}-$pkgver - - mkdir build - cd build - cmake .. \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_SKIP_RPATH=ON \ - -DCMAKE_{SHARED,MODULE,EXE}_LINKER_FLAGS='-Wl,--no-undefined -Wl,--as-needed' - make || return 1 - make DESTDIR=${pkgdir} install - -} diff --git a/support-meanwhile/PKGBUILD b/support-meanwhile/PKGBUILD deleted file mode 100644 index 7aa62cbb1..000000000 --- a/support-meanwhile/PKGBUILD +++ /dev/null @@ -1,37 +0,0 @@ -# -# KDE SC Packages for Chakra, part of chakra-project.org -# -# maintainer (i686): Phil Miller -# maintainer (x86_64): Manuel Tortosa - -# include global config -source ../_buildscripts/${current_repo}-${_arch}-cfg.conf - - - -# original name (used for the source and pkgnames) -_origname=meanwhile - - - -pkgname=${_origname} -pkgver=1.0.2 -pkgrel=11 -arch=('i686' 'x86_64') -pkgdesc="Meanwhile Libraries" -url="http://meanwhile.sourceforge.net/" -license="GPL" -depends=('glib2') -makedepends=('doxygen') -options=('!splitdbg' '!splithdr') -source=(http://downloads.sourceforge.net/project/meanwhile/meanwhile/$pkgver/meanwhile-$pkgver.tar.gz) -md5sums=('bf4ced109a367b4c5d71fe63c043270e') # meanwhile-1.0.2.tar.gz -groups=("kde-uninstall" "kde-support") - -build() -{ - cd $startdir/src/$_origname-$pkgver - ./configure --prefix=${_installprefix} - make || return 1 - make DESTDIR=$startdir/pkg install -} diff --git a/support-gluon-git/PKGBUILD b/support-pkg-gluon-git/PKGBUILD similarity index 100% rename from support-gluon-git/PKGBUILD rename to support-pkg-gluon-git/PKGBUILD diff --git a/support-gluon-git/gluon.install b/support-pkg-gluon-git/gluon.install similarity index 100% rename from support-gluon-git/gluon.install rename to support-pkg-gluon-git/gluon.install diff --git a/support-google-gadgets-qt/PKGBUILD b/support-pkg-google-gadgets-qt/PKGBUILD similarity index 100% rename from support-google-gadgets-qt/PKGBUILD rename to support-pkg-google-gadgets-qt/PKGBUILD diff --git a/support-google-gadgets-qt/ggl-qt.desktop b/support-pkg-google-gadgets-qt/ggl-qt.desktop similarity index 100% rename from support-google-gadgets-qt/ggl-qt.desktop rename to support-pkg-google-gadgets-qt/ggl-qt.desktop diff --git a/support-google-gadgets-qt/google-gadgets-qt.install b/support-pkg-google-gadgets-qt/google-gadgets-qt.install similarity index 100% rename from support-google-gadgets-qt/google-gadgets-qt.install rename to support-pkg-google-gadgets-qt/google-gadgets-qt.install diff --git a/support-google-gadgets-qt/plasma-stuff.tar.gz b/support-pkg-google-gadgets-qt/plasma-stuff.tar.gz similarity index 100% rename from support-google-gadgets-qt/plasma-stuff.tar.gz rename to support-pkg-google-gadgets-qt/plasma-stuff.tar.gz diff --git a/support-kwebkitpart-svn/PKGBUILD b/support-pkg-kwebkitpart-svn/PKGBUILD similarity index 100% rename from support-kwebkitpart-svn/PKGBUILD rename to support-pkg-kwebkitpart-svn/PKGBUILD diff --git a/support-kwebkitpart-svn/kwebkitpart-svn.install b/support-pkg-kwebkitpart-svn/kwebkitpart-svn.install similarity index 100% rename from support-kwebkitpart-svn/kwebkitpart-svn.install rename to support-pkg-kwebkitpart-svn/kwebkitpart-svn.install diff --git a/support-libindicate/PKGBUILD b/support-pkg-libindicate/PKGBUILD similarity index 100% rename from support-libindicate/PKGBUILD rename to support-pkg-libindicate/PKGBUILD diff --git a/support-mediastreamer/PKGBUILD b/support-pkg-mediastreamer/PKGBUILD similarity index 100% rename from support-mediastreamer/PKGBUILD rename to support-pkg-mediastreamer/PKGBUILD diff --git a/support-polkit-kde/PKGBUILD b/support-pkg-polkit-kde/PKGBUILD similarity index 100% rename from support-polkit-kde/PKGBUILD rename to support-pkg-polkit-kde/PKGBUILD diff --git a/support-polkit-kde/gcc45.patch b/support-pkg-polkit-kde/gcc45.patch similarity index 100% rename from support-polkit-kde/gcc45.patch rename to support-pkg-polkit-kde/gcc45.patch diff --git a/support-polkit-kde/xdg-path.patch b/support-pkg-polkit-kde/xdg-path.patch similarity index 100% rename from support-polkit-kde/xdg-path.patch rename to support-pkg-polkit-kde/xdg-path.patch diff --git a/support-qedje/PKGBUILD b/support-pkg-qedje/PKGBUILD similarity index 100% rename from support-qedje/PKGBUILD rename to support-pkg-qedje/PKGBUILD diff --git a/support-qjson/PKGBUILD b/support-pkg-qjson/PKGBUILD similarity index 100% rename from support-qjson/PKGBUILD rename to support-pkg-qjson/PKGBUILD diff --git a/support-qzion/PKGBUILD b/support-pkg-qzion/PKGBUILD similarity index 100% rename from support-qzion/PKGBUILD rename to support-pkg-qzion/PKGBUILD diff --git a/support-xkit/PKGBUILD b/support-xkit/PKGBUILD deleted file mode 100644 index 95538b0ec..000000000 --- a/support-xkit/PKGBUILD +++ /dev/null @@ -1,47 +0,0 @@ -# -# KDE SC Packages for Chakra, part of chakra-project.org -# -# maintainer (i686): Phil Miller -# maintainer (x86_64): Manuel Tortosa - -# include global config -source ../_buildscripts/${current_repo}-${_arch}-cfg.conf - - - -# original name (used for the source and pkgnames) -_origname=x-kit - - - -# -# package info -# -pkgname=xkit -pkgver=0.4.2 -pkgrel=7 -pkgdesc="A kit to manipulate, parse and validate the X.org configuration file (/etc/X11/xorg.conf)" -arch=('i686' 'x86_64') -url="https://launchpad.net/x-kit" -license=('GPL') -groups=('kde' 'kde-complete' 'kde-uninstall' 'kde-tools' 'kde-support') -depends=('python' 'xorg-server') -options=('!splithdr' '!splitdbg') -source=(http://launchpad.net/xorgparser/trunk/0.4.2/+download/$_origname-$pkgver.tar.gz - https://launchpad.net/ubuntu/jaunty/+source/dontzap/0.1.2/+files/dontzap_0.1.2.tar.gz) -md5sums=('024176dda624f011daba53c2796b2845' # x-kit-0.4.2.tar.gz - '231847eedf4e68ae36cddc0ec745216a') # dontzap_0.1.2.tar.gz - - - -build() { - # install xkit lib - cd "$srcdir/$_origname-$pkgver" - python setup.py install --root=$startdir/pkg - - # install dontzap - cd "$srcdir/main" - python setup.py install --root=$startdir/pkg -} - -# vim:set ts=2 sw=2 et: diff --git a/tools-arxin/usr/bin/arxin b/tools-arxin/usr/bin/arxin deleted file mode 100755 index e4eeea03d8a5baefc0be3d3cf28df3a5256e78ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43892 zcmch=4SZC^)dzfmMYkGFic!&0T`|_67_uQiP;5iOYA^v4LXcK4p9|RL$5>Nk&@PAA)s&LoVa_Ne#Z5Ney+^ zHTW7sEm_U}tQ_?$sutdFo?9W$k`F#J2J{T*RnU6S3eaxQ|A8(A@wx}p1bPVcJCJeh z#LZ_w(~Jm&^Y!~%5q<~sOOPLQBZ$`nps3s>|F-~8SC=Fl!T&$kvpk}QQ}r;QhemKE zZqQ843%UYyC#Vp_s~PlN&~2azpjSY%LA(}&#)Aq#GeK>jOwcz$Ye73ejUZl+gZ9at zrsX00D(D3rGuQ@Ed?@LDzsLSrcscH|cl@!WTh4&{y=h?<2ec zl%Zn=PlH-{gKHZoD0iCnD8jFU@^$=qgkJ#t81!q<8qmccUQdETptC`=3tqE8Uz0mc zTds%odbk=PZODF2u|(XC`!DJELWD~#X~yj>xLFCh7j!@9ZqUo1jiAk-RiNL3_J9t7 zazW>Ssz7ruS)JI{s>0%z-SFIm!_(C@#8aI_`fxcwAv#(}zwhz|(emiWDv`}6ht z$(A_lEq&^_pt&Fis2emEv;njTWL($lHj9jssL4kYC(5_eh4}WDhF)=@oG_l`Tv8sYd6vGH&59^R*iTlMgR zf^Q9z@B_q^4HM6(i$Lo@`$5w|#&y8BK{yZeJm_IP?sEu#209DW0s11ydOZbjH7Ex1 z=n3fvKdaw&>LG)lg3>^#1h{?y+9h{G|8wb4|BLWfph6IN=kv6`n{plFUCy&cYa=&? zGc|2>_Z8!{j9VVBO4Dwc^ zjtP$*Tz$^r*RFVG+B+}&`TVc_K^E=M@+4u7P zxcIVX#^1jEyz9Sn?zjH^w?E!{&DxSQ_bp%e_OJhM=9fQJ_)_S#>9?=A?!{*p+_N;R ze|_LRoZpF_RZ2TNy=hZKk_jlX#jh7m!>iND4l5x~B!14K4ZFtP6IW~RFwBcKA z*lpwYySDUY7~f|+jr}TI%=!w(laxIPJPY!iaUg*=VmwdjPT+qc|2Rwj0+iG}b+nUg ze;TW{chR5EJd?=(8;p;ub|>&mq_481-w%6n;rWSp{t7&Q8u`~*@}C2LvuR)A`QKx_ zXxN*;Z=vEd2NU>3v~QE8eVOQg$1fc10j2#V$Uo7N|4S(En5Dd5 zqP|6z`tsoq#_dl$KLPWT5{rEL(4JOHd&*GHrl%75FUCS?8~9Q6pRY}Yd=FXbzXtx{ zq^11xkUtIiIqZ+o&XaweLzePxKzfRa&(*F3=ANf2|2%CA+PBV9z8mQ-l=mgQyla5_ zEb>{6`p5Mc&tr`Xf08zBw3FSA`dyE3msy{tT@Lx2vDm{ykWYz)|4!(8n?>Jl%s*yW z@^6B_U5oM!`>8{D6D{(75B7M{Vvjw@xDom3rpeFc;6FY^$w0EMVy`Qy|mxl7LM*CM;(s#m;7Fp~wi1w|sv@eeQ`QWbzY|x(f!2Skw z{?fF+3_2m76pMU*3V9r|$fFwkrC9ho4E|YoLBt3vw_E#<$6@_SJqAlAx%84SWu zj#>D-AO5V%l0OXpRARC39gx>Ji~agh{wfPT3B1jMzYTq?v*@D`R|kFm z#=`pQ#-(0QjWw4$J5cRw40@J(@n5OiT~=yBYqsgl-e75UlVmEdw5GTx*ELlyo#S7Q z>Qx!JWwWd?*38qJ>-{T?eA#8?24Wu6T~y$2DXCuR4+RU|$&H!X5S+|`6mApoP4TK`O)V3?^@hive~vsmSbqj z?QRaPZ1C#pnKu=!0Avod=+>GqduxO4Y`=tatCtPOql z6FHi4SIFD6(qfh6Inr^8lN(iA-HeWB$X;p9(0S0eEK#w$Y`zJZ4aFpxf312}xdfP$ zH+Zwx4^avaQ_AMSijZT*`d8 zB#Y{feMl5zb`f_rDx2eN3>8#2c}nx3GPz|w(>{jxQEqoNypzAt5N=Kxy_Jqtdvsa2 zYeUUJ|1v$J*%>RBF7r25!uXqll{U8op6Dq`{SCg_l^#edfrK;n)Z!99%nW(zlsi9;5_=rB5~zO@$M) zyT>e^Sp(lo)(!Sd8BA>uzif05C9vsBn*7UVHrM)m9$1tZhS8oJx44{H{!k4(8&q(o zq2r-$$1qvl$LqsL4osG98roFY8{&1vCXIP+cdZ)ZhWKn_XmC$8d9JMYHU!YW60GaC zHW}Ta5#433Kj>SslIfJF=__>ExTlG$YHqGx>aB#>;Pj`L1?My`r3)}Rm_92*#1 zfKf>{9F>k#9eV4A9V%>t;#B$#Uo9MPj+zk6^3u7vr^)O<0XSx6(Tz+4-Q4VLwzhM6y$`JGdd@B@G7$1ix$CATuUB{RRu5-bq$#V(-o|R! zR$cO}Mm2Jpu0iOoyb`)7cUP8Au9Qxji%v-8!pq2TZP=R}oy2$Aa}vqTE~_y&vXgUeDa}O1InM z`$Vi3rMs6vDyG5Sw7e7#8-Wfl2Mju5IvJ zXPbp4Ov*L|v%}<>>CpM1Ijv3f7<0obS58cg*=%`(@5<1 zRiDtgCojY7tkAzK;BVxVA$gF@ZNNG(gkekXvU;j&>D1~#0EVjjaqD!(NJ%ct9i$gF zts$puegcyv^a(?RLBCA6@(O$=M=B|o-pwOEjYFI+d1Jh)^EK=4Jb6H-WK6?w=jnOM z8~nlMf|asRGHoQ;;ACcEU68P(q@|FoabO?GUC?k*?i}d@v(0I%y$cMTTG~f1uBYu2 z>m(*8o6cZ18U{wDl<|gn+({Ej;nJO5TrT!m8f==4aZ7O+n3arCeLi}Ep1%JZio)1x>I6qJhVfZ(w!WrhCu}l>zr4d zhdGGENbA9sx$-DPcQT$!s(eUCR^o%ObnDfPi(*!{Vlcz&d-^iV?nX9DMW3gW9aXNO z-YLaYl7Zar;?huaeL*M~^fyjJO?3P=n{rPnE=5mNqGX?EK11bFnwUkg8k*>`K3;oK z_Z+OaQ8Y%`oGB=D76xT*xXf(6bLLX<4zlJeou)5Kbkmv{2w=7@`$a}ORI7$|2c0Q5 zg{XAG-KYeIN?n%rO~Z1MtxaS}7C0>1Qavh^5iMu3T9;Uo64EG!>6@z-Q#MA;Nzxx8 zRjkA<%wg>iYT^!;a42Sylx~&1QNF1;cXpGPR-#%rM5#u8lb<1l+0B3sqR7jA1e?JW z4=H@=3fTpOWpkg<=Qnl<=N3bri%0DD$ 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 diff --git a/tools-arxin/usr/include/arxin/ArxinAbstractSection.h b/tools-arxin/usr/include/arxin/ArxinAbstractSection.h deleted file mode 100644 index efbe6cb10..000000000 --- a/tools-arxin/usr/include/arxin/ArxinAbstractSection.h +++ /dev/null @@ -1,102 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Dario Freddi * - * drf54321@yahoo.it * - * * - * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef ARXINABSTRACTSECTION_H_ -#define ARXINABSTRACTSECTION_H_ - -#include -#include -#include - -#include "ArxinParser" -#include "arxin_macros.h" - -/** -* \class ArxinAbstractSection ArxinAbstractSection.h -* -* \brief The base class for Arxin Plugins -* -* Abstract Section is the class each plugin has to inherit from. It defines -* some basic methods all plugins should re-implement and it also provides a -* way to feed Arxin with some information about the plugin. -* -* Arxin also reimplements some macros to make it easier to export plugins. -* To see how to use ARXIN_PLUGIN_EXPORT refer to ArxinMacros documentation, where you can also -* see an example of an Export file. -* -* Let's say you're creating a plugin named Foo. Here is how your class declaration should -* look like: -* -* \code -* class ArxinFoo : public ArxinAbstractSection -* { -* Q_OBJECT -* -* public: -* ArxinFoo(QObject *parent, const QVariantList &args); -* ~ArxinFoo(); -* -* ArxinModule::moduleData getPluginData(); -* -* public slots: -* void save(); -* -* private: -* void parse(); -* }; -* \endcode -* -* Obviously, you can declare in this class almost anything you want: have a look at the Mkinitcpio -* plugin to have an idea of an "extended" plugin. What was shown above was the things you need absolutely -* to build a plugin. Watch out for the constructor arguments! -* -* So, suming up, creating a plugin is pretty easy, you just need to reimplement all virtual methods -* and declare a pair of macros. It is a good pratice to declare the ARXIN_PLUGIN_EXPORT macro -* inside a different file, such as *Export.cpp, so that the plugin may also be exported through -* KDE4 systemsettings. Refer to an example plugin for more details. -*/ - -class ARXIN_EXPORT ArxinAbstractSection : public QWidget -{ - Q_OBJECT - -public: - - ArxinAbstractSection(QObject *parent, const QVariantList &args); - virtual ~ArxinAbstractSection(); - - virtual void loadScript(const QString &script); - -public slots: - /** - * Calling this function tells the plugin to save to file the current fields. - * So this slot is triggered whenever the Main Window or Systemsettings requires - * to save. - */ - virtual void save() = 0; - - /** - * This function is called upon module loading. So it basically needs to parse the - * file, and populate the fields with values from the file. - */ - virtual void parse() = 0; -}; - -#endif /*ARXINABSTRACTSECTION_H_*/ diff --git a/tools-arxin/usr/include/arxin/ArxinDirectoryParser.h b/tools-arxin/usr/include/arxin/ArxinDirectoryParser.h deleted file mode 100644 index a57d16c80..000000000 --- a/tools-arxin/usr/include/arxin/ArxinDirectoryParser.h +++ /dev/null @@ -1,137 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Dario Freddi * - * drf54321@yahoo.it * - * * - * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef ARXINDIRECTORYPARSER_H_ -#define ARXINDIRECTORYPARSER_H_ - -#include -#include -#include "arxin_macros.h" - -/** \class ArxinDirectoryParser ArxinDirectoryParser.h - * \brief General directory entries parser. - * - * This class lets you scan directories in a fast, intuitive and easy - * way. You can use it barely for getting all directory entries or for - * making a filtered search. - * - * Usage is really simple: after selecting the working directory, you can - * set up a configuration for scanning it. Then, you can get all its entries - * (according to the configuration you issued), or have just some entries based - * on a filter. - */ - -class ARXIN_EXPORT ArxinDirectoryParser : public QObject -{ - Q_OBJECT - Q_ENUMS(dirParsingOptions) -public: - struct DirectoryConfiguration { - bool recursive; - bool filesOnly; - QString extension; - bool trimextension; - bool prependRelativePath; - - QString dirName; - bool dirOpen; - QStringList dirContents; - }; - - /** - * \enum dirParsingOptions - * - * This enum contains all the flags that can be issued to resetConfiguration - * to define ArxinDirectoryParser configuration. - * @see ArxinDirectoryParser::resetConfiguration() - */ - enum dirParsingOptions { - /** Scans directories recursively */ - Recursive, - /** Adds files only to the entries */ - filesOnly, - /** Trim the extension in the entries */ - trimExtension, - /** Returns the full path instead of the name only in the entries */ - prependRelativePath, - /** Default behaviour */ - defaultOptions - }; - ArxinDirectoryParser(QObject *parent = 0); - virtual ~ArxinDirectoryParser(); - -public slots: - /** - * Loads a directory. This will be the working directory. - * @see closeDirectory() - * @param dir The path to the directory. - * @returns true on success, false on failure - */ - bool loadDirectory(const QString &dir); - - /** - * Closes the current working directory. - * @see loadDirectory() - * @returns true on success, false on failure - */ - /**bool closeDirectory()**/ - - //bool checkConfiguration(int need = 0); - - /** - * Set up a new configuration for parsing directories. This is done by giving this - * function some flags that can redefine some behaviours of the parser and an - * extension, so that only files ending with .extension will be considered. - * Call this function without arguments to restore it back to default behaviour. - * @param parsingList The list of the Flags, blank for default - * @param extension If defined, only files ending with .extension will be considered by the parser - */ - void resetConfiguration(QList parsingList = - QList() << defaultOptions, - const QString &extension = QString()); - - - /** - * Returns a list with all the directory entries. The result depends on the current - * configuration of the parser. - * @see resetConfiguration() - * @returns A String List with all the entries - */ - QStringList getAllDirectoryEntries(); - - /** - * Returns a list with all the directory entries, giving a possibility for a filter. - * The result depends on the current configuration of the parser. - * @see resetConfiguration() - * @see getAllDirectoryEntries(); - * @param filter Only entries containing this word will be considered - * @param nosubdirs Does not consider subdirectories (Default: true) - * @returns A String List with all the filtered entries - */ - /**QStringList getFilteredDirectoryEntries(const QString &filter, bool nosubdirs = true);**/ - -private: - QStringList parseDirectory(const QString &addpath = QString()); - -private: - DirectoryConfiguration dirConf; -}; - -#endif /*ARXINDIRECTORYPARSER_H_*/ diff --git a/tools-arxin/usr/include/arxin/ArxinFileParser.h b/tools-arxin/usr/include/arxin/ArxinFileParser.h deleted file mode 100644 index 0fd473322..000000000 --- a/tools-arxin/usr/include/arxin/ArxinFileParser.h +++ /dev/null @@ -1,310 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Dario Freddi * - * drf54321@yahoo.it * - * * - * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef ARXINFILEPARSER_H_ -#define ARXINFILEPARSER_H_ - -#include -#include -#include "arxin_macros.h" - -/** \class ArxinFileParser ArxinFileParser.h - * \brief General configuration files parser. - * - * This class aims to provide a easy to use frontend to parse most common - * configuration files. It is buffered (so calling parsing functions is - * really fast) and modular, and adding another kind of syntax is fairly - * easy to do. - * ArxinFileParser is easily extendable to read a variety of syntaxes. - * Adding another line type it's so easy: add a type to LineType and - * add the behaviour in the code at getOption and setOption. - * - * Arxin is easy: with just a pair of lines of code you can have everything - * you need. Look at this example: - * - * \code - * parser.openFile("/etc/rc.conf"); - * qDebug() << parser.getOption("DAEMONS", ParLine); - * qDebug() << parser.getOption("gateway", IniLine); - * parser.closeFile(); - * \endcode - * - * This shows in the terminal the value of DAEMONS and gateway in - * rc.conf. It's just 4 lines of code! And you can parse and write almost - * every file. - */ - -class ARXIN_EXPORT ArxinFileParser : public QObject -{ - Q_OBJECT - Q_ENUMS(LineType) - Q_ENUMS(LineStatus) - Q_ENUMS(SetBehaviour) - Q_ENUMS(IntervalBehaviour) -public: - /** - * \enum LineType - * - * This enum contains all available kind of line syntax Arxin is able to - * parse. - * @see ArxinFileParser::getOption() - */ - enum LineType { - /** Lines of type KEY="values" */ - IniLine = 0, - /** Lines of type KEY=(values) */ - ParLine = 1, - /** Lines of type KEY=values */ - IniNoQuotesLine = 2, - /** Lines of type KEY='values' */ - IniSingleQuotesLine = 4, - /** Reserved, for errors */ - Error = 10 - }; - - /** - * \enum LineStatus - * - * This enum defines if the line is commented or not - * @see ArxinFileParser::getOption() - */ - enum LineStatus { - /** Commented Line */ - Commented = 0, - /** Uncommented Line */ - Uncommented = 1 - }; - - /** - * \enum SetBehaviour - * - * This enum defines the behaviour when setting an option - * @see ArxinFileParser::setOption() - */ - enum SetBehaviour { - /** Try to search through commented lines first */ - UncommentIfExists = 0, - /** Do not delete, comment only */ - CommentOnDelete = 1 - }; - - /** - * \enum IntervalBehaviour - * - * This enum defines the behaviour when searching into an interval - * @see ArxinFileParser::getKeysInInterval() - */ - enum IntervalBehaviour { - /** Searches through commented lines for defining interval extremes */ - SearchThroughCommented = 0, - /** Includes also commented lines in the return list */ - IncludeCommentedLines = 1, - /** Include the left extreme in the return list */ - IncludeLeftExtreme = 2, - /** Include the right extreme in the return list */ - IncludeRightExtreme = 4, - /** Include both extremes in the return list */ - IncludeExtremes = 8 - }; - - /** - * \struct arxKey - * In this structure is contained all the data about a key, including its value - * @see ArxinFileParser::getKeysInInterval() - */ - struct ArxinKey { - /** The key name */ - QString name; - /** The key's value */ - QString value; - /** Line status */ - LineStatus status; - /** Type of key */ - LineType type; - }; - typedef QList QArxinKeysList;//TODO: Change to QFlags - - ArxinFileParser(QObject *parent = 0); - virtual ~ArxinFileParser(); - - -public slots: - /** - * Opens a file. The file will be loaded and used for parsing in - * other methods. - * @see closeFile() - * @param name The name of the file. - * @param woc Determines if the file will be written upon closing (default: true) - * @returns true on success, false on failure - */ - bool openFile(const QString &name, bool woc = true); - - /** - * Close the current opened file. - * @see openFile() - */ - void closeFile(); - - /** - * Gets an option from the current file. - * @see openFile() - * @param key The key associated with this option. - * @param typeline Defines what is the type of the line processed. - * @param linestat Defines if the option is uncommented or not (default: Uncommented) - * @returns The requested option, or an empty QString on failure. - */ - QString getOption(const QString &key, LineType typeline, - LineStatus linestat = Uncommented); - - QString getOption(const QString &key);//TODO: Apidox - - /** - * Sets an option in the current file. Note that this operation does not - * edits the file itself, you have to call writeChangesToFile() to apply changes. - * @see openFile() - * @see writeChangesToFile() - * @param key The key associated with this option. - * @param value The value to write to the file. - * @param typeline Defines what is the type of the line processed. - * @param tryAdding Tells the parser if it should add the line if it does not exist. - * If it is set to false and the requested key does not exists, it won't be added (default: true) - * @param setbh Tells the parser if it should try to restore the option from a commented entry - * @returns true on success, false on failure - */ - bool setOption(const QString &key, const QString &value, LineType typeline, - bool tryAdding = true, SetBehaviour setbh = UncommentIfExists); - - /** - * Removes an option in the current file. Note that this operation does not - * edits the file itself, you have to call writeChangesToFile() to apply changes. - * @see openFile() - * @see writeChangesToFile() - * @param key The key associated with this option. - * @returns true on success, false on failure - */ - bool deleteOption(const QString &key); - - /** - * Comments an option in the current file. Note that this operation does not - * edits the file itself, you have to call writeChangesToFile() to apply changes. - * @see openFile() - * @see writeChangesToFile() - * @param key The key associated with this option. - * @returns true on success, false on failure - */ - bool commentOption(const QString &key); - - /** - * Gets the type of an option, or an error if the format is not recognized - * @see getOption() - * @param key The key associated with this option. - * @returns The type of the option on success, an error on failure - */ - LineType getOptionType(const QString &key); - - - /** - * Gets all the keys in a defined interval between two keys. This returns a list of - * ArxinKeys you can use to get values from. - * @see openFile() - * @see getOption() - * @param startingKey The key to start from - * @param endingKey The key that ends the interval - * @param behaviour A list of Miscellaneous options to refine the results. - * @returns All the keys in the interval, or an empty list on failure. - */ - QArxinKeysList getKeysInInterval(const QString &startingKey, const QString &endingKey, - QList behaviour = QList()); - - /** - * Sets an option in the current file, inside the given interval. Note that this operation does not - * edits the file itself, you have to call writeChangesToFile() to apply changes. - * It is pretty much an equivalent of setOption(), but you can define where the key will be - * inserted. - * @see openFile() - * @see writeChangesToFile() - * @see setOption() - * @param startingKey The key to start from - * @param endingKey The key that ends the interval - * @param key The key associated with this option. - * @param value The value to write to the file. - * @param typeline Defines what is the type of the line processed. - * @param tryAdding Tells the parser if it should add the line if it does not exist. - * If it is set to false and the requested key does not exists, it won't be added (default: true) - * @param setbh Tells the parser if it should try to restore the option from a commented entry - * @returns true on success, false on failure - */ - /**bool setOptionInInterval(const QString &startingKey, const QString &endingKey, const QString &key, - const QString &value, LineType typeline, bool tryAdding = true, - SetBehaviour setbh = UncommentIfExists) {}//TODO: Implement this**/ - - /** - * This function is called to actually save any changes to the opened file. - * It is called upon closing if the file was opened with woc = true. - * @see openFile() - * @see closeFile() - * @returns true on success, false on failure - */ - bool writeChangesToFile(); - - - /** - * Tells if the current file is opened or not - * @see openFile() - * @see closeFile() - * @returns true if the file is opened, false if it is not - */ - bool fileIsOpen(); - - /** - * Tells if the current file is opened and has contents - * @see openFile() - * @see closeFile() - * @returns true if the file is opened and has contents, false if not - */ - bool fileHasContents(); - - /** - * Tells if the current file has unsaved modifications - * @see openFile() - * @see closeFile() - * @see writeChangesToFile() - * @returns true if the file has unsaved modifications, false if it has not - */ - bool fileIsModified(); - - /** - * @param option the option to check - * @returns true if the option exists - */ - bool optionExists(const QString &option); - - /** - * Sets the root prefix for file loading. You usually don't need to call this function, - * it is useful just when chrooting - */ - static void setRootPrefix(const QString &prefix); - -private: - class Private; - Private *d; -}; - -#endif /*ARXINFILEPARSER_H_*/ diff --git a/tools-arxin/usr/include/arxin/ArxinInterface.h b/tools-arxin/usr/include/arxin/ArxinInterface.h deleted file mode 100644 index a5070b0d6..000000000 --- a/tools-arxin/usr/include/arxin/ArxinInterface.h +++ /dev/null @@ -1,83 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Dario Freddi * - * drf54321@yahoo.it * - * * - * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef ARXININTERFACE_H -#define ARXININTERFACE_H - -#include "arxin_macros.h" - -#include - -/** \class ArxinInterface ArxinInterface.h - * \brief Interface for Arxin KPart. - * - * This class extends Arxin KPart functionalities. You can easily embed - * Arxin in an application and control it through this interface. - * Here is a small example: - * - * \code - * KPluginFactory* factory = KPluginLoader("libarxin_part").factory(); - * KParts::ReadOnlyPart* part = factory ? ( factory->create(this) ) : 0; - * - * ArxinInterface *iface = qobject_cast(part); - * \endcode - * - * This creates an empty KPart of Arxin and creates an interface to it in iface. - * You can now use the functions provided in the interface to load Plugins, - * set paths and more. - */ - -class MainWindow; - -class ARXIN_EXPORT ArxinInterface -{ -public: - ArxinInterface(MainWindow *mW); - ArxinInterface(); - virtual ~ArxinInterface(); - - /** - * Sets the root path. This is the equivalent of ArxinFileParser::setRootPrefix() - * @see ArxinFileParser::setRootPrefix() - * @param path The new root path. It has to start with '/' and should have no trailing slash - */ - void setRootPath(const QString &path); - - /** - * Loads all the enabled plugins. This function needs to be explicitely called, otherwise - * no plugins will get loaded. Remember to call setRootPath _ALWAYS_ before calling loadPlugins() - * @see setRootPath() - */ - void loadPlugins(); - - /** - * Sets mW as the new MainWindow Object for the KPart. Don't call this function unless you - * know what you're doing. - * @param mW a instantiated MainWindow object - */ - void setMainWindowObject(MainWindow *mW); - -private: - MainWindow *m_main; -}; - -Q_DECLARE_INTERFACE(ArxinInterface, "org.kde.ArxinInterface") - -#endif /*ARXININTERFACE_H*/ diff --git a/tools-arxin/usr/include/arxin/ArxinProcessParser.h b/tools-arxin/usr/include/arxin/ArxinProcessParser.h deleted file mode 100644 index 1596e145d..000000000 --- a/tools-arxin/usr/include/arxin/ArxinProcessParser.h +++ /dev/null @@ -1,92 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Dario Freddi * - * drf54321@yahoo.it * - * * - * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef ARXINPROCESSPARSER_H_ -#define ARXINPROCESSPARSER_H_ - -#include -#include "arxin_macros.h" - -/** \class ArxinProcessParser ArxinProcessParser.h - * \brief General process output parser. - * - * This class lets you get and parse output of a process easily. - * It is a reimplementation of QProcess, and in fact inherits from it, and has a similar functionality. - * - * The main difference with QProcess is that it is self-sufficient when it comes - * to parsing the output and returning it, so you can get all standard output and error - * everytime you want, in addition to traditional QProcess calls. - */ - -class ARXIN_EXPORT ArxinProcessParser : public QProcess//TODO: Split out an ArxinPythonProcessParser... -{ - Q_OBJECT - -public: - ArxinProcessParser(QObject *parent = 0); - ~ArxinProcessParser(); - -public slots: - /** - * Loads a command. This command will be used upon next call of startProcess() - * @see startProcess() - * @param cmd The command of the process - */ - void loadProcess(const QString &cmd); - - - /** - * Returns all the output generated by the process on the stdout channel. - * @see readAllStdErr() - * @returns All stdout output - */ - QStringList readAllStdOut(); - - /** - * Returns all the output generated by the process on the stderr channel. - * @see readAllStdOut() - * @returns All stderr output - */ - QStringList readAllStdErr(); - - /** - * Starts the currently loaded process. - * @see loadProcess() - */ - void startProcess(); - - /** - * Waits until the process ends. This is a convenience slot wrapper around - * QProcess::waitForFinished(). Please note that this may block your application. - */ - bool slotWaitForFinished() { - return waitForFinished(); - } - -private slots: - void processEnded(int exitCode, QProcess::ExitStatus exitStatus); - -private: - QString command; - QByteArray procOut; - QByteArray procErr; -}; - -#endif /*ARXINPROCESSPARSER_H_*/ diff --git a/tools-arxin/usr/include/arxin/arxinItemDelegate.h b/tools-arxin/usr/include/arxin/arxinItemDelegate.h deleted file mode 100644 index 33272e854..000000000 --- a/tools-arxin/usr/include/arxin/arxinItemDelegate.h +++ /dev/null @@ -1,52 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Lukas Appelhans * - * l.appelhans@gmx.de * - * * - * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef ARXINITEMDELEGATE_H -#define ARXINITEMDELEGATE_H - -#include -#include -#include -#include "arxin_macros.h" - -/** -* \class ArxinItemDelegate arxinItemDelegate.h -* -* \brief Creates a custom item delegate for a QTreeWidget -* -* This class creates a generic ItemDelegate for ItemViews. An icon is displayed -* left and right the description under the name. -* For the icon, set the data for Qt::DecorationRole to a QIcon and for the description use Qt::UserRole. -*/ - -class ARXIN_EXPORT ArxinItemDelegate : public QStyledItemDelegate -{ - Q_OBJECT -public: - ArxinItemDelegate(QAbstractItemView *parent); - - /** - * Our custom paint-method, reimplemented from QStyledItemDelegate - */ - void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; - QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; -}; - -#endif diff --git a/tools-arxin/usr/include/arxin/arxin_macros.h b/tools-arxin/usr/include/arxin/arxin_macros.h deleted file mode 100644 index 2b1fed182..000000000 --- a/tools-arxin/usr/include/arxin/arxin_macros.h +++ /dev/null @@ -1,103 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Dario Freddi * - * drf54321@yahoo.it * - * * - * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef ARXIN_MACROS_H -#define ARXIN_MACROS_H - -/** \file arxin_macros.h - \brief Contains Macros used in Arxin - - This contains some macros that help in exporting/importing symbols and plugins -*/ - -#include - -/** \addtogroup ArxinMacros -* Documentation for Arxin Macros -* @{ -*/ - -/** -* @def ARXIN_EXPORT -* -* Reserved macro to export GCC visibility in libraries. Used only in core classes declarations. -*/ - -#define ARXIN_EXPORT __attribute__ ((visibility("default"))) - -/** - * @def ARXIN_PLUGIN_EXPORT - * - * The ARXIN_PLUGIN_EXPORT macro is a convenience wrapper around KDE's plugin - * declaration. This definition is needed when you're exporting a plugin in Arxin. - * - * It is a good pratice to declare it in a separate file, to allow using the same source - * files for generating a systemsettings plugin. The declaration is done through an identifier and - * the name of the class you're exporting. - * - * So, supposing you're creating the plugin foo, and your class is named ArxinFoo. Let's see how the file - * ArxinFooExport.cpp looks like: - * - * \code - * #include "ArxinFoo.h" - * #include "arxin_macros.h" - * #include "src/ArxinAbstractSection.h" - * #include "arxin_macros.h" - * - * #include - * #include - * #include - * - * ARXIN_PLUGIN_EXPORT(ArxinFoo); - * - * \endcode - * - * And that's all, add the file ArxinFooExport to your targets and you're done. - * - * @param c The name of the class you're going to export. - * - * @see ArxinAbstractSection - */ - -#define ARXIN_PLUGIN_EXPORT( c ) \ - K_PLUGIN_FACTORY( ArxinFactory, registerPlugin< c >(); ) \ - K_EXPORT_PLUGIN( ArxinFactory("c") ) - -/** -* @def ARXIN_PLUGIN_IMPORT -* -* Reserved macro to import a plugin into Arxin executable. It performs a qobject_cast on the given item -* to the Arxin Plugin Interface. -*/ - -#define ARXIN_PLUGIN_IMPORT( C ) qobject_cast(C) - -/** -* @def ARXIN_SCRIPTED_PLUGIN_IMPORT -* -* Reserved macro to import a plugin into Arxin executable. It performs a qobject_cast on the given item -* to the Arxin Plugin Interface. -*/ - -#define ARXIN_SCRIPTED_PLUGIN_IMPORT( C ) qobject_cast(C) - -/** @} */ - -#endif /*ARXIN_MACROS_H*/ diff --git a/tools-arxin/usr/share/arxin/plugins/arxinDaemons.py b/tools-arxin/usr/share/arxin/plugins/arxinDaemons.py deleted file mode 100644 index 9c190f398..000000000 --- a/tools-arxin/usr/share/arxin/plugins/arxinDaemons.py +++ /dev/null @@ -1,226 +0,0 @@ -#!/usr/bin/python -########################################################################### -# Copyright (C) 2008 by Lukas Appelhans # -# l.appelhans@gmx.de # -# # -# 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., # -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -########################################################################### - -import Arxin -import sip -from PyQt4.QtCore import * -from PyQt4.QtGui import * -from PyQt4.QtNetwork import * -from PyKDE4.kdeui import * -from ui_arxinDaemons import Ui_ArxinDaemons -from ui_arxinAddDaemonsWidget import Ui_ArxinAddDaemonsWidget - -class AddDaemonDialog(KDialog): - def __init__(self, parent): - KDialog.__init__(self, parent) - self.ui = Ui_ArxinAddDaemonsWidget() - widget = QWidget(self) - self.ui.setupUi(widget) - self.setMainWidget(widget) - #self.ui.treeWidget.hideColumn(1) - self.connect(self, SIGNAL("accepted()"), self.accepted) - - def addDaemon(self, name, description): - item = QTreeWidgetItem(self.ui.treeWidget, QStringList() << name << description) - pass - - def accepted(self): - if self.ui.treeWidget.currentItem == None: - return - self.emit(SIGNAL("addDaemon"), self.ui.treeWidget.currentItem().text(0), self.ui.treeWidget.currentItem().text(1)) - -class Daemon(QTreeWidgetItem): - def __init__(self, name, description, startInBackground, parent): - QTreeWidget.__init__(self, parent) - self.procParser = Arxin.processParser() - self.setText(0, name) - self.setText(1, description) - - if (startInBackground == True): - self.setCheckState(2, Qt.Checked) - else: - self.setCheckState(2, Qt.Unchecked) - - def startDaemon(self): - daemon = self.text(0) - print "/etc/rc.d/" + daemon + " start" - self.procParser.loadProcess(str("/etc/rc.d/" + daemon + " start")) - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - output = self.procParser.readAllStdOut() - print output[0] - if output[0] == None or output[0].find("FAIL") != -1:#TODO: Use a KMessageBox, as well in stopDaemon - print "error while starting " + daemon - else: - print daemon + " started successfully" - - def stopDaemon(self): - daemon = self.text(0) - print "/etc/rc.d/" + daemon + " stop" - self.procParser.loadProcess(str("/etc/rc.d/" + daemon + " stop")) - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - output = self.procParser.readAllStdOut() - if output[0] == None or output[0].find("FAIL") != -1: - print "error while stopping " + daemon - else: - print daemon + " stopped successfully" - - -class ArxinDaemons(QWidget, Ui_ArxinDaemons): - def __init__(self, parent): - QWidget.__init__(self, parent) - self.setupUi(self) - #self.treeWidget.hideColumn(1) - self.addButton.setIcon(KIcon("list-add")) - self.removeButton.setIcon(KIcon("list-remove")) - self.procParser = Arxin.processParser() - self.dirParser = Arxin.directoryParser() - self.addDialog = AddDaemonDialog(self) - self.checkRunning() - self.connect(self.addDialog, SIGNAL("addDaemon"), self.addNewDaemon) - self.connect(self.treeWidget, SIGNAL("currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)"), - self.selectionChanged) - self.connect(self.startButton, SIGNAL("clicked()"), self.startDaemon) - self.connect(self.stopButton, SIGNAL("clicked()"), self.stopDaemon) - self.connect(self.addButton, SIGNAL("clicked()"), self.showAddDaemonDialog) - self.connect(self.removeButton, SIGNAL("clicked()"), self.removeCurrentDaemon) - - def parse(self): - fileParser = Arxin.fileParser() - fileParser.openFile("/etc/rc.conf") - enabled = fileParser.getOption("DAEMONS", fileParser.ParLine).split(" ") - #print fileParser.getOption("DAEMONS", fileParser.getOptionType("DAEMONS")) - print enabled - self.dirParser.loadDirectory("/etc/rc.d/") - disabled = self.dirParser.getAllDirectoryEntries() - for daemon in enabled: - background = False - if daemon.startswith("@") == True: - background = True - daemon = daemon[1:len(daemon)] - if daemon in disabled: - disabled.remove(daemon) - self.addDaemon(daemon, self.description(daemon), background) - - for daemon in disabled: - self.addDialog.addDaemon(daemon, self.description(daemon)) - - fileParser.deleteLater() - - - def save(self): - fileParser = Arxin.fileParser() - fileParser.openFile("/etc/rc.conf") - line = QString() - i = 0 - while self.treeWidget.topLevelItem(i) != None: - item = self.treeWidget.topLevelItem(i) - linePart = item.text(0) - if item.checkState(2) == Qt.Checked: - linePart.prepend("@") - line.append(linePart + " ") - i = i + 1 - - print line - fileParser.setOption("DAEMONS", str(line), fileParser.ParLine) - fileParser.writeChangesToFile() - fileParser.deleteLater() - - def addDaemon(self, name, description, background): - if len(name) == 0: - return - print name - item = Daemon(name, description, background, self.treeWidget) - item.setFlags(item.flags() & ~Qt.ItemIsDropEnabled) - - def addNewDaemon(self, name, description): - if len(name) == 0: - return - print name - item = Daemon(name, description, False, self.treeWidget) - item.setFlags(item.flags() & ~Qt.ItemIsDropEnabled) - - - def checkRunning(self): - self.dirParser.loadDirectory("/var/run/daemons") - self.running = self.dirParser.getAllDirectoryEntries() - self.selectionChanged() - - def selectionChanged(self): - if self.treeWidget.currentItem() == None: - return - itemRunning = self.treeWidget.currentItem().text(0) in self.running - self.startButton.setDisabled(itemRunning) - self.stopButton.setEnabled(itemRunning) - - def startDaemon(self): - self.treeWidget.currentItem().startDaemon() - self.checkRunning() - - def stopDaemon(self): - self.treeWidget.currentItem().stopDaemon() - self.checkRunning() - - def showAddDaemonDialog(self): - self.addDialog.show() - pass - - def removeCurrentDaemon(self): - if self.treeWidget.currentItem() == None: - return - self.addDialog.addDaemon(self.treeWidget.currentItem().text(0), self.treeWidget.currentItem().text(1)) - self.treeWidget.takeTopLevelItem(self.treeWidget.indexOfTopLevelItem(self.treeWidget.currentItem())) - pass - - def description(self, name): - self.procParser.loadProcess(str("pacman -Qqo /etc/rc.d/" + name.strip('!'))) - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - package = self.procParser.readAllStdOut() - print package - info = [] #FIXME: Do some proper error-handling - if ' ' in package: - self.procParser.loadProcess(str("pacman -Si " + package[:package.index(' ')])) - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - info = self.procParser.readAllStdOut() - description = 'None' - for line in info: - if line.startswith('Description'): - description = line[line.index(':')+2:] - break - print description - return description - -daemonsWidget = 0 - -def parseSection(): - global daemonsWidget - daemonsWidget = ArxinDaemons(None) - daemonsWidget.parse() - Arxin.setWidget(daemonsWidget) - - -def saveSection(): - print "Save daemons" - global daemonsWidget - daemonsWidget.save() diff --git a/tools-arxin/usr/share/arxin/plugins/arxinHardware.py b/tools-arxin/usr/share/arxin/plugins/arxinHardware.py deleted file mode 100644 index 606a74fd9..000000000 --- a/tools-arxin/usr/share/arxin/plugins/arxinHardware.py +++ /dev/null @@ -1,214 +0,0 @@ -#!/usr/bin/python -########################################################################### -# Copyright (C) 2008 by Lukas Appelhans # -# l.appelhans@gmx.de # -# # -# 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., # -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -########################################################################### - -import Arxin -import sip -from PyQt4.QtCore import * -from PyQt4.QtGui import * -from PyKDE4.kdeui import * -from PyKDE4.kdecore import * -from ui_arxinHardware import Ui_ArxinHardware -from ui_arxinAddModule import Ui_ArxinAddModuleWidget - -class ArxinAddModuleDialog(KDialog): - def __init__(self, parent): - KDialog.__init__(self, parent) - widget = QWidget(self) - self.ui = Ui_ArxinAddModuleWidget() - self.ui.setupUi(widget) - self.ui.ktreewidgetsearchlinewidget.searchLine().addTreeWidget(self.ui.modulesTreeWidget) - self.setMainWidget(widget) - procParser = Arxin.processParser() - procParser.loadProcess("modprobe -l") - procParser.startProcess() - procParser.slotWaitForFinished() - modules = procParser.readAllStdOut() - for mod in modules: - if mod == None: - continue - item = QTreeWidgetItem(self.ui.modulesTreeWidget, QStringList() << mod.split("/")[-1].split(".")[0] << QString() << mod) - procParser.loadProcess("modinfo -F description " + mod.split("/")[-1].split(".")[0]) - procParser.startProcess() - procParser.slotWaitForFinished() - desc = procParser.readAllStdOut() - if desc[0] == None: - continue - desc = QString(desc[0]).trimmed() - item.setText(1, desc) - - def modulesToAdd(self): - mod = {} - for item in self.ui.modulesTreeWidget.selectedItems(): - mod[item.text(0)] = item.text(1) - return mod - -class ArxinHardware(QWidget, Ui_ArxinHardware): - def __init__(self, parent): - QWidget.__init__(self, parent) - self.setupUi(self) - self.addModuleDialog = None - self.addModButton.setIcon(KIcon("list-add")) - self.removeModButton.setIcon(KIcon("list-remove")) - self.addModblackButton.setIcon(KIcon("list-add")) - self.removeModblackButton.setIcon(KIcon("list-remove")) - self.loadModButton.setIcon(KIcon("media-playback-start")) - self.unloadModButton.setIcon(KIcon("media-playback-stop")) - self.procParser = Arxin.processParser() - - self.connect(self.addModButton, SIGNAL("clicked()"), self.showAddModuleDialog) - self.connect(self.removeModButton, SIGNAL("clicked()"), self.removeModule) - self.connect(self.addModblackButton, SIGNAL("clicked()"), self.showAddBlackModuleDialog) - self.connect(self.removeModblackButton, SIGNAL("clicked()"), self.removeBlackModule) - self.connect(self.loadModButton, SIGNAL("clicked()"), self.loadModule) - self.connect(self.unloadModButton, SIGNAL("clicked()"), self.unloadModule) - - def parse(self): - fileParser = Arxin.fileParser() - fileParser.openFile("/etc/rc.conf") - if fileParser.getOption("MOD_AUTOLOAD", fileParser.getOptionType("MOD_AUTOLOAD")) == "yes": - self.scanHardwareCheck.setChecked(1) - - if fileParser.getOption("USELVM", fileParser.getOptionType("USELVM")) == "yes": - self.scanLVMCheck.setChecked(True) - - mods = QStringList() - mods << QString(fileParser.getOption("MODULES", fileParser.ParLine)).split(" ") - for mod in mods: - item = None - black = False - if mod.startsWith("!") == True: - black = True - mod.remove(0, 1) - if mod.isEmpty() == True: - continue - self.procParser.loadProcess(str("modinfo -F description " + mod)) - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - desc = self.procParser.readAllStdOut() - if desc[0] == None: - continue - desc = QString(desc[0]).trimmed() - self.addModule(mod, desc, black) - - fileParser.deleteLater() - - def save(self): - fileParser = Arxin.fileParser() - fileParser.openFile("/etc/rc.conf") - #Save modules - modules = [] - while self.modWidget.topLevelItem(0) != None: - modules.append(str(self.modWidget.takeTopLevelItem(0).text(0))) - - while self.modblackWidget.topLevelItem(0) != None: - modules.append(str("!" + self.modblackWidget.takeTopLevelItem(0).text(0))) - - fileParser.setOption("MODULES", " ".join(modules), fileParser.ParLine) - - #MOD_AUTOLOAD - if self.scanHardwareCheck.isChecked() == True: - fileParser.setOption("MOD_AUTOLOAD", "yes", fileParser.IniLine) - else: - fileParser.setOption("MOD_AUTOLOAD", "no", fileParser.IniLine) - - #USELVM - if self.scanLVMCheck.isChecked() == True: - fileParser.setOption("USELVM", "yes", fileParser.IniLine) - else: - fileParser.setOption("USELVM", "no", fileParser.IniLine) - - fileParser.writeChangesToFile() - fileParser.deleteLater() - - def addModule(self, name, description, black): - self.procParser.loadProcess(str("modprobe -n -v " + name)) - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - if len(self.procParser.readAllStdOut()) == 1: - state = i18n("Loaded") - else: - state = i18n("Not loaded") - item = QTreeWidgetItem(QStringList() << name << description << state) - if black == True: - self.modblackWidget.addTopLevelItem(item) - else: - self.modWidget.addTopLevelItem(item) - - def showAddModuleDialog(self): - if self.addModuleDialog == None: - self.addModuleDialog = ArxinAddModuleDialog(self) - self.addModuleDialog.exec_() - if self.addModuleDialog.result() == 1: #QDialog::accepted - for name, description in self.addModuleDialog.modulesToAdd().items(): - self.addModule(name, description, False) - - def removeModule(self): - for item in self.modWidget.selectedItems(): - self.modWidget.takeTopLevelItem(self.modWidget.indexOfTopLevelItem(item)) - - def showAddBlackModuleDialog(self): - if self.addModuleDialog == None: - self.addModuleDialog = ArxinAddModuleDialog(self) - self.addModuleDialog.exec_() - if self.addModuleDialog.result() == 1: #QDialog::accepted - for name, description in self.addModuleDialog.modulesToAdd().items(): - self.addModule(name, description, True) - - def removeBlackModule(self): - for item in self.modblackWidget.selectedItems(): - self.modblackWidget.takeTopLevelItem(self.modblackWidget.indexOfTopLevelItem(item)) - - def loadModule(self): - for item in self.modWidget.selectedItems(): - self.procParser.loadProcess("modprobe " + str(item.text(0))) - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - out = self.procParser.readAllStdOut() - if out[0] != None: - KMessageBox.error(self, i18n("Arxin failed loading ") + item.text(0), "Loading Module") - #FIXME: i18nstuff - else: - item.setText(2, i18n("Loaded")) - - def unloadModule(self): - for item in self.modWidget.selectedItems(): - self.procParser.loadProcess("modprobe -r " + str(item.text(0))) - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - out = self.procParser.readAllStdOut() - if out[0] != None: - KMessageBox.error(self, i18n("Arxin failed unloading ") + item.text(0), "Unloading Module") - #FIXME: i18n - else: - item.setText(2, i18n("Not loaded")) - -hardwareWidget = 0 - -def parseSection(): - global hardwareWidget - hardwareWidget = ArxinHardware(None) - hardwareWidget.parse() - Arxin.setWidget(hardwareWidget) - - -def saveSection(): - global hardwareWidget - hardwareWidget.save() diff --git a/tools-arxin/usr/share/arxin/plugins/arxinLocale.py b/tools-arxin/usr/share/arxin/plugins/arxinLocale.py deleted file mode 100644 index d82a89071..000000000 --- a/tools-arxin/usr/share/arxin/plugins/arxinLocale.py +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/python -########################################################################### -# Copyright (C) 2008 by Lukas Appelhans # -# l.appelhans@gmx.de # -# # -# 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., # -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -########################################################################### - -import Arxin -import sip -from PyQt4.QtCore import * -from PyQt4.QtGui import * -from PyQt4.QtNetwork import * -from ui_arxinLocale import Ui_ArxinLocale - -class ArxinLocale(QWidget, Ui_ArxinLocale): - def __init__(self, parent): - QWidget.__init__(self, parent) - self.setupUi(self) - - self.procParser = Arxin.processParser() - - self.dirParser = Arxin.directoryParser() - - def parse(self): - fileParser = Arxin.fileParser() - fileParser.openFile("/etc/rc.conf") - - self.procParser.loadProcess("locale -a") - self.procParser.startProcess() - self.procParser.slotWaitForFinished() - - #LOCALE - for loc in self.procParser.readAllStdOut(): - if (loc != None): - self.localeCombo.addItem(loc); - - self.localeCombo.setCurrentIndex(self.localeCombo.findText(fileParser.getOption("LOCALE", fileParser.getOptionType("LOCALE")))) - - #Hardwareclock - self.hardwareclockCombo.addItem("UTC") - self.hardwareclockCombo.addItem("localtime") - self.hardwareclockCombo.setCurrentIndex(self.hardwareclockCombo.findText(fileParser.getOption("HARDWARECLOCK", - fileParser.getOptionType("HARDWARECLOCK")))) - #Timezones - self.dirParser.loadDirectory("/usr/share/zoneinfo") - for zone in self.dirParser.getAllDirectoryEntries(): - self.timeCombo.addItem(zone) - - self.timeCombo.setCurrentIndex(self.timeCombo.findText(fileParser.getOption("TIMEZONE", fileParser.getOptionType("TIMEZONE")))) - - #Keymap - self.dirParser.resetConfiguration([self.dirParser.Recursive, self.dirParser.filesOnly, self.dirParser.trimExtension], ".map.gz") - self.dirParser.loadDirectory("/usr/share/kbd/keymaps") - for key in self.dirParser.getAllDirectoryEntries(): - self.keymapCombo.addItem(key) - self.keymapCombo.setCurrentIndex(self.keymapCombo.findText(fileParser.getOption("KEYMAP", fileParser.getOptionType("KEYMAP")))) - self.dirParser.resetConfiguration() - - #Consolefont - self.dirParser.resetConfiguration([self.dirParser.Recursive, self.dirParser.filesOnly, self.dirParser.trimExtension], ".gz"); - self.dirParser.loadDirectory("/usr/share/kbd/consolefonts") - for font in self.dirParser.getAllDirectoryEntries(): - self.consoleFont.addItem(font) - self.consoleFont.setCurrentIndex(self.consoleFont.findText(fileParser.getOption("CONSOLEFONT", - fileParser.getOptionType("CONSOLEFONT")))) - self.dirParser.resetConfiguration() - - #Consolemap - self.dirParser.resetConfiguration([self.dirParser.Recursive, self.dirParser.filesOnly, self.dirParser.trimExtension], ".trans") - self.dirParser.loadDirectory("/usr/share/kbd/consoletrans") - for consolemap in self.dirParser.getAllDirectoryEntries(): - self.consoleMap.addItem(consolemap) - self.consoleMap.setCurrentIndex(self.consoleMap.findText(fileParser.getOption("CONSOLEMAP", fileParser.getOptionType("CONSOLEMAP")))) - self.dirParser.resetConfiguration() - - #USECOLOR - if fileParser.getOption("USECOLOR", fileParser.getOptionType("USECOLOR")) == "yes": - self.colorCheck.setChecked(True) - - fileParser.deleteLater() - - - def save(self): - fileParser = Arxin.fileParser() - fileParser.openFile("/etc/rc.conf") - fileParser.closeFile() - fileParser.openFile("/etc/rc.conf") - fileParser.setOption("LOCALE", str(self.localeCombo.currentText()), fileParser.IniLine) - fileParser.setOption("HARDWARECLOCK", str(self.hardwareclockCombo.currentText()), fileParser.IniLine) - fileParser.setOption("TIMEZONE", str(self.timeCombo.currentText()), fileParser.IniLine) - fileParser.setOption("KEYMAP", str(self.keymapCombo.currentText()), fileParser.IniLine) - fileParser.setOption("CONSOLEFONT", str(self.consoleFont.currentText()), fileParser.IniLine) - fileParser.setOption("CONSOLEMAP", str(self.consoleMap.currentText()), fileParser.IniLine) - if self.colorCheck.isChecked() == True: - fileParser.setOption("USECOLOR", "yes", fileParser.IniLine) - else: - fileParser.setOption("USECOLOR", "no", fileParser.IniLine) - fileParser.writeChangesToFile() - fileParser.deleteLater() - -localeWidget = 0 - -def parseSection(): - global localeWidget - localeWidget = ArxinLocale(None) - localeWidget.parse() - Arxin.setWidget(localeWidget) - - -def saveSection(): - print "Save locale" - global localeWidget - localeWidget.save() diff --git a/tools-arxin/usr/share/arxin/plugins/ui_arxinAddDaemonsWidget.py b/tools-arxin/usr/share/arxin/plugins/ui_arxinAddDaemonsWidget.py deleted file mode 100644 index 4151879f2..000000000 --- a/tools-arxin/usr/share/arxin/plugins/ui_arxinAddDaemonsWidget.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui/arxinAddDaemonsWidget.ui' -# -# Created: Thu Dec 25 21:16:47 2008 -# by: PyQt4 UI code generator 4.4.4 -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore, QtGui -from PyKDE4.kdeui import KTreeWidgetSearchLineWidget - -class Ui_ArxinAddDaemonsWidget(object): - def setupUi(self, ArxinAddDaemonsWidget): - ArxinAddDaemonsWidget.setObjectName("ArxinAddDaemonsWidget") - ArxinAddDaemonsWidget.resize(400, 300) - self.gridLayout = QtGui.QGridLayout(ArxinAddDaemonsWidget) - self.gridLayout.setObjectName("gridLayout") - self.searchLine = KTreeWidgetSearchLineWidget(ArxinAddDaemonsWidget) - self.searchLine.setObjectName("searchLine") - self.gridLayout.addWidget(self.searchLine, 0, 0, 1, 1) - self.treeWidget = QtGui.QTreeWidget(ArxinAddDaemonsWidget) - self.treeWidget.setObjectName("treeWidget") - self.gridLayout.addWidget(self.treeWidget, 1, 0, 1, 1) - - self.retranslateUi(ArxinAddDaemonsWidget) - QtCore.QMetaObject.connectSlotsByName(ArxinAddDaemonsWidget) - - def retranslateUi(self, ArxinAddDaemonsWidget): - ArxinAddDaemonsWidget.setWindowTitle(QtGui.QApplication.translate("ArxinAddDaemonsWidget", "Form", None, QtGui.QApplication.UnicodeUTF8)) - self.treeWidget.headerItem().setText(0, QtGui.QApplication.translate("ArxinAddDaemonsWidget", "Name", None, QtGui.QApplication.UnicodeUTF8)) - self.treeWidget.headerItem().setText(1, QtGui.QApplication.translate("ArxinAddDaemonsWidget", "Description", None, QtGui.QApplication.UnicodeUTF8)) \ No newline at end of file diff --git a/tools-arxin/usr/share/arxin/plugins/ui_arxinAddModule.py b/tools-arxin/usr/share/arxin/plugins/ui_arxinAddModule.py deleted file mode 100644 index d6e08a663..000000000 --- a/tools-arxin/usr/share/arxin/plugins/ui_arxinAddModule.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui/arxinAddModule.ui' -# -# Created: Thu May 8 17:32:25 2008 -# by: PyQt4 UI code generator 4.3.3 -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore, QtGui -from PyKDE4.kdeui import KTreeWidgetSearchLineWidget - -class Ui_ArxinAddModuleWidget(object): - def setupUi(self, ArxinAddModuleWidget): - ArxinAddModuleWidget.setObjectName("ArxinAddModuleWidget") - ArxinAddModuleWidget.resize(QtCore.QSize(QtCore.QRect(0,0,400,293).size()).expandedTo(ArxinAddModuleWidget.minimumSizeHint())) - - self.gridlayout = QtGui.QGridLayout(ArxinAddModuleWidget) - self.gridlayout.setObjectName("gridlayout") - - self.hboxlayout = QtGui.QHBoxLayout() - self.hboxlayout.setObjectName("hboxlayout") - - self.ktreewidgetsearchlinewidget = KTreeWidgetSearchLineWidget(ArxinAddModuleWidget) - self.ktreewidgetsearchlinewidget.setObjectName("ktreewidgetsearchlinewidget") - self.hboxlayout.addWidget(self.ktreewidgetsearchlinewidget) - - self.searchByComboBox = QtGui.QComboBox(ArxinAddModuleWidget) - self.searchByComboBox.setObjectName("searchByComboBox") - self.hboxlayout.addWidget(self.searchByComboBox) - self.gridlayout.addLayout(self.hboxlayout,0,0,1,1) - - self.modulesTreeWidget = QtGui.QTreeWidget(ArxinAddModuleWidget) - self.modulesTreeWidget.setObjectName("modulesTreeWidget") - self.gridlayout.addWidget(self.modulesTreeWidget,1,0,1,1) - - self.retranslateUi(ArxinAddModuleWidget) - QtCore.QMetaObject.connectSlotsByName(ArxinAddModuleWidget) - - def retranslateUi(self, ArxinAddModuleWidget): - ArxinAddModuleWidget.setWindowTitle(QtGui.QApplication.translate("ArxinAddModuleWidget", "Form", None, QtGui.QApplication.UnicodeUTF8)) - self.searchByComboBox.addItem(QtGui.QApplication.translate("ArxinAddModuleWidget", "Name", None, QtGui.QApplication.UnicodeUTF8)) - self.searchByComboBox.addItem(QtGui.QApplication.translate("ArxinAddModuleWidget", "Description", None, QtGui.QApplication.UnicodeUTF8)) - self.searchByComboBox.addItem(QtGui.QApplication.translate("ArxinAddModuleWidget", "Path", None, QtGui.QApplication.UnicodeUTF8)) - self.modulesTreeWidget.headerItem().setText(0,QtGui.QApplication.translate("ArxinAddModuleWidget", "Name", None, QtGui.QApplication.UnicodeUTF8)) - self.modulesTreeWidget.headerItem().setText(1,QtGui.QApplication.translate("ArxinAddModuleWidget", "Description", None, QtGui.QApplication.UnicodeUTF8)) - self.modulesTreeWidget.headerItem().setText(2,QtGui.QApplication.translate("ArxinAddModuleWidget", "Path", None, QtGui.QApplication.UnicodeUTF8)) - self.modulesTreeWidget.clear() - - item = QtGui.QTreeWidgetItem(self.modulesTreeWidget) - item.setText(0,QtGui.QApplication.translate("ArxinAddModuleWidget", "b44", None, QtGui.QApplication.UnicodeUTF8)) - item.setText(1,QtGui.QApplication.translate("ArxinAddModuleWidget", "Broadcom 44xx/47xx 10/100 PCI ethernet driver", None, QtGui.QApplication.UnicodeUTF8)) - item.setText(2,QtGui.QApplication.translate("ArxinAddModuleWidget", "kernel/drivers/net", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/tools-arxin/usr/share/arxin/plugins/ui_arxinDaemons.py b/tools-arxin/usr/share/arxin/plugins/ui_arxinDaemons.py deleted file mode 100644 index c45455699..000000000 --- a/tools-arxin/usr/share/arxin/plugins/ui_arxinDaemons.py +++ /dev/null @@ -1,71 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui/arxinDaemons.ui' -# -# Created: Thu Dec 25 20:38:30 2008 -# by: PyQt4 UI code generator 4.4.4 -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore, QtGui - -class Ui_ArxinDaemons(object): - def setupUi(self, ArxinDaemons): - ArxinDaemons.setObjectName("ArxinDaemons") - ArxinDaemons.resize(601, 363) - self.gridLayout = QtGui.QGridLayout(ArxinDaemons) - self.gridLayout.setObjectName("gridLayout") - self.treeWidget = QtGui.QTreeWidget(ArxinDaemons) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.MinimumExpanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.treeWidget.sizePolicy().hasHeightForWidth()) - self.treeWidget.setSizePolicy(sizePolicy) - self.treeWidget.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) - self.treeWidget.setDragDropMode(QtGui.QAbstractItemView.InternalMove) - self.treeWidget.setRootIsDecorated(False) - self.treeWidget.setItemsExpandable(False) - self.treeWidget.setAnimated(True) - self.treeWidget.setExpandsOnDoubleClick(False) - self.treeWidget.setColumnCount(3) - self.treeWidget.setObjectName("treeWidget") - self.gridLayout.addWidget(self.treeWidget, 0, 0, 3, 1) - self.hboxlayout = QtGui.QHBoxLayout() - self.hboxlayout.setObjectName("hboxlayout") - spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.hboxlayout.addItem(spacerItem) - self.startButton = QtGui.QPushButton(ArxinDaemons) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(":/Icons/icons/dialog-ok-apply.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.startButton.setIcon(icon) - self.startButton.setObjectName("startButton") - self.hboxlayout.addWidget(self.startButton) - self.stopButton = QtGui.QPushButton(ArxinDaemons) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap(":/Icons/icons/edit-delete.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.stopButton.setIcon(icon1) - self.stopButton.setObjectName("stopButton") - self.hboxlayout.addWidget(self.stopButton) - self.gridLayout.addLayout(self.hboxlayout, 3, 0, 1, 1) - self.addButton = QtGui.QPushButton(ArxinDaemons) - self.addButton.setObjectName("addButton") - self.gridLayout.addWidget(self.addButton, 0, 1, 1, 1) - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.gridLayout.addItem(spacerItem1, 2, 1, 1, 1) - self.removeButton = QtGui.QPushButton(ArxinDaemons) - self.removeButton.setObjectName("removeButton") - self.gridLayout.addWidget(self.removeButton, 1, 1, 1, 1) - - self.retranslateUi(ArxinDaemons) - QtCore.QMetaObject.connectSlotsByName(ArxinDaemons) - - def retranslateUi(self, ArxinDaemons): - ArxinDaemons.setWindowTitle(QtGui.QApplication.translate("ArxinDaemons", "Form", None, QtGui.QApplication.UnicodeUTF8)) - self.treeWidget.headerItem().setText(0, QtGui.QApplication.translate("ArxinDaemons", "Name", None, QtGui.QApplication.UnicodeUTF8)) - self.treeWidget.headerItem().setText(1, QtGui.QApplication.translate("ArxinDaemons", "Description", None, QtGui.QApplication.UnicodeUTF8)) - self.treeWidget.headerItem().setText(2, QtGui.QApplication.translate("ArxinDaemons", "Start in Background", None, QtGui.QApplication.UnicodeUTF8)) - self.startButton.setText(QtGui.QApplication.translate("ArxinDaemons", "Start", None, QtGui.QApplication.UnicodeUTF8)) - self.stopButton.setText(QtGui.QApplication.translate("ArxinDaemons", "Stop", None, QtGui.QApplication.UnicodeUTF8)) - self.addButton.setText(QtGui.QApplication.translate("ArxinDaemons", "Add...", None, QtGui.QApplication.UnicodeUTF8)) - self.removeButton.setText(QtGui.QApplication.translate("ArxinDaemons", "Remove", None, QtGui.QApplication.UnicodeUTF8)) - diff --git a/tools-arxin/usr/share/arxin/plugins/ui_arxinHardware.py b/tools-arxin/usr/share/arxin/plugins/ui_arxinHardware.py deleted file mode 100644 index c1d5bef9a..000000000 --- a/tools-arxin/usr/share/arxin/plugins/ui_arxinHardware.py +++ /dev/null @@ -1,113 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui/arxinHardware.ui' -# -# Created: Wed May 14 15:48:40 2008 -# by: PyQt4 UI code generator 4.3.3 -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore, QtGui - -class Ui_ArxinHardware(object): - def setupUi(self, ArxinHardware): - ArxinHardware.setObjectName("ArxinHardware") - ArxinHardware.resize(QtCore.QSize(QtCore.QRect(0,0,624,456).size()).expandedTo(ArxinHardware.minimumSizeHint())) - - self.gridlayout = QtGui.QGridLayout(ArxinHardware) - self.gridlayout.setObjectName("gridlayout") - - self.scanHardwareCheck = QtGui.QCheckBox(ArxinHardware) - self.scanHardwareCheck.setObjectName("scanHardwareCheck") - self.gridlayout.addWidget(self.scanHardwareCheck,0,0,1,2) - - self.scanLVMCheck = QtGui.QCheckBox(ArxinHardware) - self.scanLVMCheck.setObjectName("scanLVMCheck") - self.gridlayout.addWidget(self.scanLVMCheck,1,0,1,2) - - self.groupBox_3 = QtGui.QGroupBox(ArxinHardware) - self.groupBox_3.setObjectName("groupBox_3") - - self.gridlayout1 = QtGui.QGridLayout(self.groupBox_3) - self.gridlayout1.setObjectName("gridlayout1") - - self.modWidget = QtGui.QTreeWidget(self.groupBox_3) - self.modWidget.setObjectName("modWidget") - self.gridlayout1.addWidget(self.modWidget,0,0,8,4) - - self.addModButton = QtGui.QPushButton(self.groupBox_3) - self.addModButton.setMaximumSize(QtCore.QSize(90,16777215)) - - self.addModButton.setObjectName("addModButton") - self.gridlayout1.addWidget(self.addModButton,0,4,1,1) - - self.removeModButton = QtGui.QPushButton(self.groupBox_3) - self.removeModButton.setMaximumSize(QtCore.QSize(90,16777215)) - - self.removeModButton.setObjectName("removeModButton") - self.gridlayout1.addWidget(self.removeModButton,1,4,1,1) - - self.loadModButton = QtGui.QPushButton(self.groupBox_3) - self.loadModButton.setMaximumSize(QtCore.QSize(90,16777215)) - self.loadModButton.setObjectName("loadModButton") - self.gridlayout1.addWidget(self.loadModButton,2,4,1,1) - - self.unloadModButton = QtGui.QPushButton(self.groupBox_3) - self.unloadModButton.setMaximumSize(QtCore.QSize(90,16777215)) - self.unloadModButton.setObjectName("unloadModButton") - self.gridlayout1.addWidget(self.unloadModButton,3,4,1,1) - self.gridlayout.addWidget(self.groupBox_3,2,0,1,2) - - self.groupBox_4 = QtGui.QGroupBox(ArxinHardware) - self.groupBox_4.setObjectName("groupBox_4") - - self.gridlayout2 = QtGui.QGridLayout(self.groupBox_4) - self.gridlayout2.setObjectName("gridlayout2") - - self.modblackWidget = QtGui.QTreeWidget(self.groupBox_4) - self.modblackWidget.setObjectName("modblackWidget") - self.gridlayout2.addWidget(self.modblackWidget,7,0,3,1) - - self.removeModblackButton = QtGui.QPushButton(self.groupBox_4) - self.removeModblackButton.setMaximumSize(QtCore.QSize(90,16777215)) - - self.removeModblackButton.setObjectName("removeModblackButton") - self.gridlayout2.addWidget(self.removeModblackButton,8,2,1,1) - - self.addModblackButton = QtGui.QPushButton(self.groupBox_4) - self.addModblackButton.setMaximumSize(QtCore.QSize(90,16777215)) - - self.addModblackButton.setObjectName("addModblackButton") - self.gridlayout2.addWidget(self.addModblackButton,7,2,1,1) - self.gridlayout.addWidget(self.groupBox_4,3,0,1,2) - - self.retranslateUi(ArxinHardware) - QtCore.QMetaObject.connectSlotsByName(ArxinHardware) - ArxinHardware.setTabOrder(self.scanHardwareCheck,self.scanLVMCheck) - ArxinHardware.setTabOrder(self.scanLVMCheck,self.modWidget) - ArxinHardware.setTabOrder(self.modWidget,self.addModButton) - ArxinHardware.setTabOrder(self.addModButton,self.removeModButton) - ArxinHardware.setTabOrder(self.removeModButton,self.loadModButton) - ArxinHardware.setTabOrder(self.loadModButton,self.unloadModButton) - ArxinHardware.setTabOrder(self.unloadModButton,self.modblackWidget) - ArxinHardware.setTabOrder(self.modblackWidget,self.addModblackButton) - ArxinHardware.setTabOrder(self.addModblackButton,self.removeModblackButton) - - def retranslateUi(self, ArxinHardware): - ArxinHardware.setWindowTitle(QtGui.QApplication.translate("ArxinHardware", "Form", None, QtGui.QApplication.UnicodeUTF8)) - self.scanHardwareCheck.setText(QtGui.QApplication.translate("ArxinHardware", "Scan hardware and load required modules at bootup", None, QtGui.QApplication.UnicodeUTF8)) - self.scanLVMCheck.setText(QtGui.QApplication.translate("ArxinHardware", "Scan for LVM volume groups at startup", None, QtGui.QApplication.UnicodeUTF8)) - self.groupBox_3.setTitle(QtGui.QApplication.translate("ArxinHardware", "Modules", None, QtGui.QApplication.UnicodeUTF8)) - self.modWidget.headerItem().setText(0,QtGui.QApplication.translate("ArxinHardware", "Name", None, QtGui.QApplication.UnicodeUTF8)) - self.modWidget.headerItem().setText(1,QtGui.QApplication.translate("ArxinHardware", "Description", None, QtGui.QApplication.UnicodeUTF8)) - self.modWidget.headerItem().setText(2,QtGui.QApplication.translate("ArxinHardware", "Status", None, QtGui.QApplication.UnicodeUTF8)) - self.addModButton.setText(QtGui.QApplication.translate("ArxinHardware", "Add...", None, QtGui.QApplication.UnicodeUTF8)) - self.removeModButton.setText(QtGui.QApplication.translate("ArxinHardware", "Remove", None, QtGui.QApplication.UnicodeUTF8)) - self.loadModButton.setText(QtGui.QApplication.translate("ArxinHardware", "Load", None, QtGui.QApplication.UnicodeUTF8)) - self.unloadModButton.setText(QtGui.QApplication.translate("ArxinHardware", "Unload", None, QtGui.QApplication.UnicodeUTF8)) - self.groupBox_4.setTitle(QtGui.QApplication.translate("ArxinHardware", "Modules blacklist", None, QtGui.QApplication.UnicodeUTF8)) - self.modblackWidget.headerItem().setText(0,QtGui.QApplication.translate("ArxinHardware", "Name", None, QtGui.QApplication.UnicodeUTF8)) - self.modblackWidget.headerItem().setText(1,QtGui.QApplication.translate("ArxinHardware", "Description", None, QtGui.QApplication.UnicodeUTF8)) - self.removeModblackButton.setText(QtGui.QApplication.translate("ArxinHardware", "Remove", None, QtGui.QApplication.UnicodeUTF8)) - self.addModblackButton.setText(QtGui.QApplication.translate("ArxinHardware", "Add...", None, QtGui.QApplication.UnicodeUTF8)) - diff --git a/tools-arxin/usr/share/arxin/plugins/ui_arxinLocale.py b/tools-arxin/usr/share/arxin/plugins/ui_arxinLocale.py deleted file mode 100644 index e5c1f1566..000000000 --- a/tools-arxin/usr/share/arxin/plugins/ui_arxinLocale.py +++ /dev/null @@ -1,102 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui/arxinLocale.ui' -# -# Created: Wed May 7 05:36:27 2008 -# by: PyQt4 UI code generator 4.3.3 -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore, QtGui - -class Ui_ArxinLocale(object): - def setupUi(self, ArxinLocale): - ArxinLocale.setObjectName("ArxinLocale") - ArxinLocale.resize(QtCore.QSize(QtCore.QRect(0,0,568,345).size()).expandedTo(ArxinLocale.minimumSizeHint())) - - self.gridlayout = QtGui.QGridLayout(ArxinLocale) - self.gridlayout.setObjectName("gridlayout") - - self.groupBox_2 = QtGui.QGroupBox(ArxinLocale) - self.groupBox_2.setObjectName("groupBox_2") - - self.gridlayout1 = QtGui.QGridLayout(self.groupBox_2) - self.gridlayout1.setObjectName("gridlayout1") - - self.label_12 = QtGui.QLabel(self.groupBox_2) - self.label_12.setObjectName("label_12") - self.gridlayout1.addWidget(self.label_12,0,0,1,1) - - self.keymapCombo = QtGui.QComboBox(self.groupBox_2) - self.keymapCombo.setObjectName("keymapCombo") - self.gridlayout1.addWidget(self.keymapCombo,0,1,1,1) - - self.label_9 = QtGui.QLabel(self.groupBox_2) - self.label_9.setObjectName("label_9") - self.gridlayout1.addWidget(self.label_9,1,0,1,1) - - self.consoleFont = QtGui.QComboBox(self.groupBox_2) - self.consoleFont.setObjectName("consoleFont") - self.gridlayout1.addWidget(self.consoleFont,1,1,1,1) - - self.label_6 = QtGui.QLabel(self.groupBox_2) - self.label_6.setObjectName("label_6") - self.gridlayout1.addWidget(self.label_6,2,0,1,1) - - self.consoleMap = QtGui.QComboBox(self.groupBox_2) - self.consoleMap.setObjectName("consoleMap") - self.gridlayout1.addWidget(self.consoleMap,2,1,1,1) - - self.colorCheck = QtGui.QCheckBox(self.groupBox_2) - self.colorCheck.setEnabled(True) - self.colorCheck.setChecked(False) - self.colorCheck.setObjectName("colorCheck") - self.gridlayout1.addWidget(self.colorCheck,3,0,1,2) - self.gridlayout.addWidget(self.groupBox_2,3,0,1,4) - - self.label = QtGui.QLabel(ArxinLocale) - self.label.setObjectName("label") - self.gridlayout.addWidget(self.label,0,0,1,1) - - self.localeCombo = QtGui.QComboBox(ArxinLocale) - self.localeCombo.setObjectName("localeCombo") - self.gridlayout.addWidget(self.localeCombo,0,2,1,1) - - self.groupBox = QtGui.QGroupBox(ArxinLocale) - self.groupBox.setObjectName("groupBox") - - self.gridlayout2 = QtGui.QGridLayout(self.groupBox) - self.gridlayout2.setObjectName("gridlayout2") - - self.label_4 = QtGui.QLabel(self.groupBox) - self.label_4.setObjectName("label_4") - self.gridlayout2.addWidget(self.label_4,0,0,1,1) - - self.hardwareclockCombo = QtGui.QComboBox(self.groupBox) - self.hardwareclockCombo.setObjectName("hardwareclockCombo") - self.gridlayout2.addWidget(self.hardwareclockCombo,0,1,1,1) - - self.label_5 = QtGui.QLabel(self.groupBox) - self.label_5.setObjectName("label_5") - self.gridlayout2.addWidget(self.label_5,1,0,1,1) - - self.timeCombo = QtGui.QComboBox(self.groupBox) - self.timeCombo.setObjectName("timeCombo") - self.gridlayout2.addWidget(self.timeCombo,1,1,1,1) - self.gridlayout.addWidget(self.groupBox,2,0,1,4) - - self.retranslateUi(ArxinLocale) - QtCore.QMetaObject.connectSlotsByName(ArxinLocale) - - def retranslateUi(self, ArxinLocale): - ArxinLocale.setWindowTitle(QtGui.QApplication.translate("ArxinLocale", "Form", None, QtGui.QApplication.UnicodeUTF8)) - self.groupBox_2.setTitle(QtGui.QApplication.translate("ArxinLocale", "Console", None, QtGui.QApplication.UnicodeUTF8)) - self.label_12.setText(QtGui.QApplication.translate("ArxinLocale", "Keymap:", None, QtGui.QApplication.UnicodeUTF8)) - self.label_9.setText(QtGui.QApplication.translate("ArxinLocale", "Console Font:", None, QtGui.QApplication.UnicodeUTF8)) - self.label_6.setText(QtGui.QApplication.translate("ArxinLocale", "Console Map:", None, QtGui.QApplication.UnicodeUTF8)) - self.colorCheck.setText(QtGui.QApplication.translate("ArxinLocale", "Use colors in startup messages", None, QtGui.QApplication.UnicodeUTF8)) - self.label.setText(QtGui.QApplication.translate("ArxinLocale", "Locale:", None, QtGui.QApplication.UnicodeUTF8)) - self.groupBox.setTitle(QtGui.QApplication.translate("ArxinLocale", "Time", None, QtGui.QApplication.UnicodeUTF8)) - self.label_4.setText(QtGui.QApplication.translate("ArxinLocale", "Hardware Clock:", None, QtGui.QApplication.UnicodeUTF8)) - self.label_5.setText(QtGui.QApplication.translate("ArxinLocale", "Time Zone:", None, QtGui.QApplication.UnicodeUTF8)) - diff --git a/tools-arxin/usr/share/icons/hicolor/128x128/apps/arxin.png b/tools-arxin/usr/share/icons/hicolor/128x128/apps/arxin.png deleted file mode 100644 index 5e46ba376ef6b59a899aab0b944ca841e3c71ce7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13613 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 diff --git a/tools-arxin/usr/share/icons/hicolor/64x64/apps/arxin.png b/tools-arxin/usr/share/icons/hicolor/64x64/apps/arxin.png deleted file mode 100644 index b65a5bc92a826146d806cab3b05616fdb6b0d196..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4909 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 diff --git a/tools-arxin/usr/share/icons/hicolor/96x96/apps/arxin.png b/tools-arxin/usr/share/icons/hicolor/96x96/apps/arxin.png deleted file mode 100644 index 7c6ff9a9b188d82f90edb72d2168b5352f3b4641..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8895 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 V3UdYa5_r1=Nl8v!wo=+W=2.2' 'e2fsprogs' 'libatasmart') +replaces=('kdemod-tribe-partitionmanager') +makedepends=('cmake' 'automoc4' 'pkgconfig') +conflicts=('kdemod-tribe-partitionmanager' 'chakra-libpartitionmanager') +groups=('chakra-uninstall') -groups=('kde-uninstall') +_gitroot="git://gitorious.org/chakra/tribe-partitionmanager.git" +_gitname="tribe-partitionmanager" -_gitroot="git://git.chakra-project.org/akabei/akabeicore.git" -_gitname="akabeicore" # # build function @@ -36,10 +36,10 @@ build() msg "Connecting to GIT server...." if [ -d $_gitname ] ; then - cd $_gitname && git pull + cd $_gitname && git pull origin msg "The local files are updated." else - git clone $_gitroot + git clone $_gitroot fi msg "GIT checkout done or server timeout" msg "Starting make..." diff --git a/tools-pkg-tribe/PKGBUILD b/tools-pkg-tribe/PKGBUILD new file mode 100644 index 000000000..996866f31 --- /dev/null +++ b/tools-pkg-tribe/PKGBUILD @@ -0,0 +1,82 @@ +# +# Chakra Packages for Chakra, part of chakra-project.org +# +# maintainer (i686): Phil Miller +# maintainer (x86_64): Manuel Tortosa + +# include global config +source ../_buildscripts/${current_repo}-${_arch}-cfg.conf + + +# +# package info +# +pkgname=tribe +pkgver=20100606 +_sver=20100404 +pkgrel=1 +pkgdesc="Tribe - Chakra LiveCD Installer" +url="http://git.chakra-project.org/chakra/" +license="GPL" +arch=('i686' 'x86_64') +depends=('kdelibs' 'kdeedu-marble>=4.4.2' 'squashfs-tools' 'arxin' "tribe-partitionmanager>=20100606") +makedepends=('cmake' 'kdelibs' 'kdeedu-marble>=4.4.2' 'kdebase-workspace') +provides=('tribe') +replaces=('kdemod-tribe-svn' 'kdemod-tribe') +conflicts=('chakra-tribe' 'tribe-svn' 'kdemod-partitionmanager' 'kdemod-tribe' 'kdemod-tribe-debug' 'kdemod-tribe-partitionmanager') +options=('!splithdr' 'splitdbg') +source=("http://chakra-project.org/sources/tribe/tribe-screenshots-${_sver}.tar.gz") +md5sums=('9939bbb9994cf78f9ec4101ab6fa1209') # tribe-screenshots-20100404.tar.gz + +groups=('kde-uninstall') +install=tools-tribe.install + +_gitroot="git://gitorious.org/chakra/tribe.git" +_gitname="tribe" + +# +# build function +# +build() +{ + cd "${srcdir}" + msg "Connecting to GIT server...." + + if [ -d $_gitname ] ; then + cd $_gitname && git pull origin newbase + msg "The local files are updated." + else + git clone $_gitroot + cd $_gitname && git checkout newbase + fi + msg "GIT checkout done or server timeout" + + msg "Starting make..." + + rm -rf "${srcdir}/$_gitname-build" + + cp -r "${srcdir}/$_gitname" "${srcdir}/$_gitname-build" + cd "${srcdir}/$_gitname-build/" + + msg "replace screenshots" + cp -vr "${srcdir}/tribe-screenshots-${_sver}/images/" "${srcdir}/$_gitname-build/ui" + + # add pkgver to tribe + sed -i -e "s~source build/from git~Build: ${pkgver}-${pkgrel} (Chakra-Distro)~g" config-tribe.h.cmake + cmake . -DCMAKE_INSTALL_PREFIX=${_installprefix} \ + -DCMAKE_BUILD_TYPE=${_build_type} \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_{SHARED,MODULE,EXE}_LINKER_FLAGS='-Wl,--no-undefined -Wl,--as-needed' || return 1 + + msg "Starting make..." + make || return 1 + + msg "Make successful, installing..." + make DESTDIR=$startdir/pkg install || return 1 + + # remove nasty files + find $startdir/pkg/ -name ".git" -type d -exec rm -fr {} + + + # remove release announcement + rm $startdir/pkg/usr/share/tribe/config/release_notes.txt +} \ No newline at end of file diff --git a/tools-pkg-tribe/tools-tribe.install b/tools-pkg-tribe/tools-tribe.install new file mode 100644 index 000000000..784a9469e --- /dev/null +++ b/tools-pkg-tribe/tools-tribe.install @@ -0,0 +1,67 @@ +post_install() { + if [ -e "/etc/chakra/updates.conf" ] ; then + + . /etc/chakra/updates.conf + + if [ "$UPDATE_XDG_ICON_DB" = "yes" ]; then + /usr/bin/chakra-update-icons + fi + + else + echo " > WARNING" + echo " The package kde-common seems not to be installed," + echo " this can possibly break the installation. Just install it" + echo " manually after this installation/update, run the following" + echo " commands and restart KDE afterwards:" + echo " sudo chakra-config-updater" + echo " kbuildsycoca4" + echo " " + fi +} + +post_upgrade() { + if [ -e "/etc/chakra/updates.conf" ] ; then + + . /etc/chakra/updates.conf + + if [ "$UPDATE_XDG_ICON_DB" = "yes" ]; then + /usr/bin/chakra-update-icons + fi + + else + echo " > WARNING" + echo " The package kde-common seems not to be installed," + echo " this can possibly break the installation. Just install it" + echo " manually after this installation/update, run the following" + echo " commands and restart KDE afterwards:" + echo " sudo chakra-config-updater" + echo " kbuildsycoca4" + echo " " + fi +} + +post_remove() { + if [ -e "/etc/chakra/updates.conf" ] ; then + + . /etc/chakra/updates.conf + + if [ "$UPDATE_XDG_ICON_DB" = "yes" ]; then + /usr/bin/chakra-update-icons + fi + + else + echo " > WARNING" + echo " The package kde-common seems not to be installed," + echo " this can possibly break the installation. Just install it" + echo " manually after this installation/update, run the following" + echo " commands and restart KDE afterwards:" + echo " sudo chakra-config-updater" + echo " kbuildsycoca4" + echo " " + fi +} + +op=$1 +shift + +$op $* \ No newline at end of file