summaryrefslogtreecommitdiffstats
path: root/tdescreensaver
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-01-26 13:16:20 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-01-26 13:16:20 -0600
commitdc6b76cac424bdf8b3cffb4ae82f3954d8acdba5 (patch)
tree4ebcd3dac0133d8d3fa880bbf83692c305b7350d /tdescreensaver
parent1a9478c6e1b77b05814af8fa02cd563a5da8946b (diff)
downloadtdebase-dc6b76cac424bdf8b3cffb4ae82f3954d8acdba5.tar.gz
tdebase-dc6b76cac424bdf8b3cffb4ae82f3954d8acdba5.zip
Rename a number of libraries and executables to avoid conflicts with KDE4
Diffstat (limited to 'tdescreensaver')
-rw-r--r--tdescreensaver/AUTHORS23
-rw-r--r--tdescreensaver/CMakeLists.txt44
-rw-r--r--tdescreensaver/ChangeLog93
-rw-r--r--tdescreensaver/KBlankscreen.desktop323
-rw-r--r--tdescreensaver/KRandom.desktop321
-rw-r--r--tdescreensaver/Makefile.am27
-rw-r--r--tdescreensaver/blankscrn.cpp135
-rw-r--r--tdescreensaver/blankscrn.h56
-rw-r--r--tdescreensaver/random.cpp292
-rw-r--r--tdescreensaver/random.h38
10 files changed, 1352 insertions, 0 deletions
diff --git a/tdescreensaver/AUTHORS b/tdescreensaver/AUTHORS
new file mode 100644
index 000000000..fda66bb39
--- /dev/null
+++ b/tdescreensaver/AUTHORS
@@ -0,0 +1,23 @@
+ blank - Copyright (c) 1997 Martin Jones <mjones@kde.org>
+ banner - Copyright (c) 1997 Martin Jones <mjones@kde.org>
+ polygon - Copyright (c) 1997 Martin Jones <mjones@kde.org>
+ lines - Copyright (c) 1997 Dirk Staneker
+ blob - Copyright (c) 1997 Tiaan Wessels <tiaan@netsys.co.za>
+
+Ported from xlockmore: (but blame Martin if they don't work)
+ rock - Copyright (c) 1992 Jamie Zawinski
+ flame - Copyright (c) 1991 Scott Draves <spot@draves.org>
+ pyro - Copyright (c) 1991 Patrick J. Naughton
+ laser - Copyright (c) 1995 Pascal Pensa <pensa@aurora.unice.fr>
+
+Ported from xlockmore by Emanuel Pirker <epirker@edu.uni-klu.ac.at>:
+ bat - Copyright (c) 1988 Sun Microsystems
+ forest - Copyright (c) 1995 Pascal Pensa <pensa@aurora.unice.fr>
+ hop - Copyright (c) 1991 Patrick J. Naughton
+ lissie - Copyright (c) Alexander Jolk <ub9x@rz.uni-karlsruhe.de>
+ slip - Copyright (c) 1992 Scott Draves <spot@cs.cmu.edu>
+ swarm - Copyright (c) 1991 Patrick J. Naughton
+ morph3d - Copyright (c) 1997 by Marcelo F. Vianna
+
+Ported from xscreensaver by Alex Zepeda <garbanzo@hooked.net>
+ bsod - Copyright (c) 1998 Jamie Zawinski <jwz@jwz.org>
diff --git a/tdescreensaver/CMakeLists.txt b/tdescreensaver/CMakeLists.txt
new file mode 100644
index 000000000..289ec1661
--- /dev/null
+++ b/tdescreensaver/CMakeLists.txt
@@ -0,0 +1,44 @@
+#################################################
+#
+# (C) 2010-2011 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+
+##### other data ################################
+
+install( FILES KRandom.desktop KBlankscreen.desktop DESTINATION ${APPS_INSTALL_DIR}/System/ScreenSavers )
+
+
+##### krandom (executable) ######################
+
+tde_add_executable( krandom.kss AUTOMOC
+ SOURCES random.cpp
+ LINK tdeui-shared ${GL_LIBRARY}
+ DESTINATION ${BIN_INSTALL_DIR}
+)
+
+
+##### kblankscrn (executable) ###################
+
+tde_add_executable( kblankscrn.kss AUTOMOC
+ SOURCES blankscrn.cpp
+ LINK tdescreensaver-shared tdeui-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+)
diff --git a/tdescreensaver/ChangeLog b/tdescreensaver/ChangeLog
new file mode 100644
index 000000000..7bfaa2596
--- /dev/null
+++ b/tdescreensaver/ChangeLog
@@ -0,0 +1,93 @@
+2001-03-10 Martin R. Jones <mjones@kde.org>
+ * added libtdescreensaver and ported KDE savers to it.
+ * big cleanup.
+
+2000-01-10 Alexander Neundorf <alexander.neundorf@rz.tu-ilmenau.de>
+ * banner.h, banner.cpp:
+ -added cycling color option
+ -added "show current time" option
+ -replaced the readEntry()'s with the appropriate read*Entry()'s
+ * replaced the glocale->translate with i18n in
+ attraction.cpp, banner.cpp, bat.cpp, blankscrn.cpp, blob.cpp,
+ bouboule.cpp, flame.cpp, forest.cpp, hop.cpp, laser.cpp, lines.cpp,
+ lissie.cpp, main.cpp, morph3d.cpp, pipes.cpp, polygon.cpp, pyro.cpp, rock.cpp,
+ slidescreen.cpp, slideshow.cpp, slip.cpp, space.cpp, swarm.cpp
+
+1999-04-28 Christophe Prud'homme <Christophe.Prudhomme@ann.jussieu.fr>
+
+ * bouboule.cpp: the global variable initialized in bouboule is
+ used also in qt2. I just renamed the variable to
+ bouboule_initialized. However it is just a hack, and I think that
+ such global variables are C pratice and not C++
+
+1998-12-13 Christian Esken <esken@kde.org>
+
+ * Calling kcheckpass (only on Shadow systems). This checks if the password
+ database can be acessed. This uses the new return code (#2) by kcheckpass.
+
+1998-10-24 Alex Zepeda <garbanzo@hooked.net>
+
+ * bsod.cpp (BSODSaver::BSODSaver): Use srandomdev where available.
+
+1998-10-23 Alex Zepeda <garbanzo@hooked.net>
+
+ * bsod.cpp (BSODSaver::BSODSaver): initialize the random seed correctly.
+
+ * amiga.xpm, atari.xbm, bsod.cpp, bsod.h, mac.xbm, AUTHORS, Makefile.am:
+ New screensaver: BSOD. Yay! Still needs some final polishing however (such as a
+ configuration dialog box).
+
+ * saver.h: Add correct C style prototypes for startScreenSaver and friends.
+
+ * main.cpp: Make startScreenSaver and friends use C style name mangling.
+
+Version 0.3.7
+
+added geometry management to all screensaver setups except kmorph3d (Mario
+Weilguni <mweilguni@kde.org>)
+
+Version 0.3.6
+
+added "blob" saver from Tiaan Wessels <tiaan@netsys.co.za>
+
+Version 0.3.5
+
+fixes from Emanuel Pirker for ported xlock savers.
+
+Version 0.3.4
+
+More xlock ports from Emanuel Pirker <epirker@edu.uni-klu.ac.at>
+
+Version 0.3.3
+
+Fix small window problem under kwm (hopefully)
+Fixes for Qt-1.2
+
+
+Version 0.3.2
+
+Updated lines
+added About dialogs for all savers
+Shadow password support added by Martin Hartig
+Use libtdeui for colour dialog
+
+
+Version 0.3.1
+
+Ported some xlock savers. Basic interface code done, but will need more work
+ for some savers yet to be ported.
+Included "lines" (contributed by Dirk Staneker
+ <dirk.staneker@student.uni-tuebingen.de>)
+locking bug fix
+
+Version 0.3
+
+fixes to password stuff
+
+Version 0.2
+
+tdescreensaver.h/cpp external control files
+SIGUSR1 causes the screen saver to lock immediately
+hopefully StaysOnTop and windows opening after ss invoked will not display
+ over saver window anymore
+minor bug fixes
diff --git a/tdescreensaver/KBlankscreen.desktop b/tdescreensaver/KBlankscreen.desktop
new file mode 100644
index 000000000..a69ca3779
--- /dev/null
+++ b/tdescreensaver/KBlankscreen.desktop
@@ -0,0 +1,323 @@
+[Desktop Entry]
+Exec=kblankscrn.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+OnlyShowIn=TDE;
+Name=Blank Screen
+Name[af]=Leë Skerm
+Name[ar]=شاشة فارغة
+Name[az]=Boş Ekran
+Name[be]=Чысты экран
+Name[bg]=Празен екран
+Name[bn]=ফাঁকা স্ক্রীণ
+Name[br]=Skramm goullo
+Name[bs]=Prazan ekran
+Name[ca]=Pantalla en blanc
+Name[cs]=Prázdná obrazovka
+Name[csb]=Czôrny ekran
+Name[cy]=Sgrîn Gwag
+Name[da]=Blank skærm
+Name[de]=Leerer Bildschirm
+Name[el]=Κενή οθόνη
+Name[eo]=Nigra ekrano
+Name[es]=Pantalla negra
+Name[et]=Tühi ekraan
+Name[eu]=Leiho beltza
+Name[fa]=پردۀ خالی
+Name[fi]=Tyhjä ruutu
+Name[fr]=Écran vide
+Name[fy]=Leech skerm
+Name[ga]=Scáileán Glan
+Name[gl]=Pantalla baleira
+Name[he]=מסך ריק
+Name[hi]=स्क्रीन शून्य करें
+Name[hr]=Prazan zaslon
+Name[hu]=Üres képernyő
+Name[id]=Layar Kosong
+Name[is]=Svartur skjár
+Name[it]=Schermo nero
+Name[ja]=なし
+Name[ka]=ცარიელი ეკრანი
+Name[kk]=Бос экран
+Name[km]=អេក្រង់​ទទេ
+Name[ko]=빈 화면
+Name[lo]=ຈໍວ່າງ
+Name[lt]=Tuščias ekranas
+Name[lv]=Tukšs Ekrāns
+Name[mk]=Празен екран
+Name[mn]=Хоосон дэлгэц
+Name[ms]=Skrin Kosong
+Name[mt]=Skrin Vojt
+Name[nb]=Tom skjerm
+Name[nds]=Leddig Schirm
+Name[ne]=खाली पर्दा
+Name[nl]=Leeg scherm
+Name[nn]=Tom skjerm
+Name[nso]=Pontsho yeo Esenago Selo
+Name[oc]=Ecran blanc
+Name[pa]=ਖਾਲੀ ਸਕਰੀਨ
+Name[pl]=Czarny ekran
+Name[pt]=Ecrã Vazio
+Name[pt_BR]=Limpar Tela
+Name[ro]=Ecran gol
+Name[ru]=Пустой экран
+Name[rw]=Mugaragaza Itanditseho
+Name[se]=Guorus šearbma
+Name[sk]=Prázdna obrazovka
+Name[sl]=Prazen zaslon
+Name[sr]=Празан екран
+Name[sr@Latn]=Prazan ekran
+Name[ss]=Skrini lesingenalutfo
+Name[sv]=Tom skärm
+Name[ta]=வெற்று திரை
+Name[te]=ఖాళి తెర
+Name[tg]=Пардаи сафед
+Name[th]=หน้าจอว่าง
+Name[tr]=Boş Ekran
+Name[tt]=Buş Küräk
+Name[uk]=Порожній екран
+Name[uz]=Boʻsh ekran
+Name[uz@cyrillic]=Бўш экран
+Name[ven]=Tshikirini tshi sina tshithu
+Name[vi]=Màn hình Trống
+Name[wa]=Noere waitroûle
+Name[xh]=Ikhusi Elingenanto
+Name[zh_CN]=空屏幕
+Name[zh_TW]=空白螢幕
+Name[zu]=Iskrini Esingenalutho
+
+[Desktop Action Setup]
+Exec=kblankscrn.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[ar]=إعداد...
+Name[az]=Qurğular...
+Name[be]=Настаўленні...
+Name[bg]=Настройване...
+Name[bn]=সেট-আপ...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Configuració...
+Name[cs]=Nastavení...
+Name[csb]=Ùstôw...
+Name[cy]=Gosod...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=Ρύθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistused...
+Name[eu]=Konfigurazioa...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hr]=Postavke...
+Name[hu]=Beállítás...
+Name[id]=Aturan...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=セットアップ...
+Name[ka]=კონფიგურაცია...
+Name[kk]=Баптау...
+Name[km]=ដំឡើង...
+Name[ko]=설정...
+Name[lo]=ຕິດຕັ້ງ..
+Name[lt]=Nustatymas...
+Name[lv]=Uzstādīšana...
+Name[mk]=Постави...
+Name[mn]=Тохируулга...
+Name[ms]=Tetapan...
+Name[nb]=Oppsett …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[oc]=Configuracion...
+Name[pa]=ਸੈੱਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Opțiuni...
+Name[ru]=Настройка...
+Name[rw]=Iboneza...
+Name[se]=Heiveheapmi …
+Name[sk]=Nastavenie...
+Name[sl]=Nastavitve ...
+Name[sr]=Подеси...
+Name[sr@Latn]=Podesi...
+Name[ss]=Lungiselela...
+Name[sv]=Inställningar...
+Name[ta]=அமைப்பு...
+Name[te]=సెటప్...
+Name[tg]=Танзимот...
+Name[th]=ตั้งค่า...
+Name[tr]=Kurulum...
+Name[tt]=Caylaw...
+Name[uk]=Встановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Cài đặt...
+Name[wa]=Apontyî...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kblankscrn.kss -window-id %w
+Name=Display in Specified Window
+Name[af]=Vertoon in gespesifiseerde venster
+Name[ar]=أعرض في النافذة المحددة
+Name[az]=Bildirilən Pəncərədə Göstər
+Name[be]=Паказваць у вызначаным акне
+Name[bg]=Стартиране в избран прозорец
+Name[bn]=নির্দিষ্ট উইণ্ডোয় দেখাও
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v určeném okně
+Name[csb]=Wëskrzëni w pòdónym òknie
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In angegebenem Fenster anzeigen
+Name[el]=Προβολή στο καθορισμένο παράθυρο
+Name[eo]=Montru en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Erakutsi adierazitako leihoan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiëare finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra especificada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निर्दिष्ट विंडो में प्रदर्शित करें
+Name[hr]=Prikaži u odabranom prozoru
+Name[hu]=Megjelenítés egy megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定のウィンドウで表示
+Name[ka]=მოცემულ ფანჯარაში ასახვა
+Name[kk]=Келтірілген терезеде көрсету
+Name[km]=បង្ហាញ​ក្នុង​បង្អួច​ដែល​បាន​បញ្ជាក់​លម្អិត
+Name[ko]=지정한 창에 보이기
+Name[lt]=Rodyti nurodytame lange
+Name[lv]=Rādīt norādītajā logā
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Paparan dalam Tetingkap Yang Dinyatakan
+Name[mt]=Uri f'window speċifika
+Name[nb]=Vis i det valgte vinduet
+Name[nds]=In't utsöchte Finster wiesen
+Name[ne]=निर्दिष्ट गरिएको सञ्झ्यालमा प्रदर्शन गर्नुहोस्
+Name[nl]=In een gedefinieerd venster weergeven
+Name[nn]=Vis i vald vindauge
+Name[pa]=ਦਿੱਤੇ ਝਰੋਖੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w podanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afișează în fereastra specificată
+Name[ru]=Показать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[se]=Čájet meroštuvvon láses
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v določenemu oknu
+Name[sr]=Прикажи у задатом прозору
+Name[sr@Latn]=Prikaži u zadatom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=குறிப்பிடப்பட்ட சாளரத்தில் காட்டு
+Name[th]=แสดงในหน้าต่างที่กำหนด
+Name[tr]=Belirtilen Pencerede Göster
+Name[tt]=Äytelgän Täräzädä Kürsät
+Name[uk]=Відобразити у вказаному вікні
+Name[uz]=Koʻrsatilgan oynada koʻrsatish
+Name[uz@cyrillic]=Кўрсатилган ойнада кўрсатиш
+Name[vi]=Hiển thị trong một Cửa sổ Đặc biệt
+Name[wa]=Håyner dins l' purnea specifyî
+Name[zh_CN]=在指定窗口中显示
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kblankscrn.kss -root
+Name=Display in Root Window
+Name[af]=Vertoon in root venster
+Name[ar]=أعرض في النافذة الجذرية
+Name[az]=Kök Pəncərədə Göstər
+Name[be]=Паказваць у галоўным акне
+Name[bg]=Стартиране в главния прозорец
+Name[bn]=রুট উইণ্ডোয় দেখাও
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra root
+Name[cs]=Zobrazit na pozadí plochy
+Name[csb]=Wëskrzëni w przédnym òknie
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=Im Basisfenster (Root Window) anzeigen
+Name[el]=Προβολή στο βασικό παράθυρο
+Name[eo]=Montru en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Erakutsi leiho nagusian
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में प्रदर्शित करें
+Name[hr]=Prikaži u korijenskom prozoru
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í bakgrunni skjáborðs
+Name[it]=Mostra sulla finestra di sfondo
+Name[ja]=ルートウィンドウで表示
+Name[ka]=ძირეულ ფანჯარაში ასახვა
+Name[kk]=Root терезесінде көрсету
+Name[km]=បង្ហាញ​ក្នុង​បង្អួច Root
+Name[ko]=전체 화면에 보이기
+Name[lt]=Rodyti root lange
+Name[lv]=Rādīt saknes logā
+Name[mk]=Прикажи во кореновиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[mt]=Uri fil-window ewlenija
+Name[nb]=Vis i rotvinduet
+Name[nds]=In't Hööftfinster wiesen
+Name[ne]=रुट सञ्झ्यालमा प्रदर्शन गर्नुहोस्
+Name[nl]=In hoofdvenster weergeven
+Name[nn]=Vis i rotvindauget
+Name[pa]=ਰੂਟ(Root) ਝਰੋਖੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela-raiz
+Name[ro]=Afișează în fereastra rădăcină
+Name[ru]=Показать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[se]=Čájet ruohtasláses
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у кореном прозору
+Name[sr@Latn]=Prikaži u korenom prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=மூல சாளரத்தில் காட்டு
+Name[th]=แสดงในหน้าต่างหลัก
+Name[tr]=Kök Pencerede Göster
+Name[tt]=Root Täräzäsendä Kürsät
+Name[uk]=Відобразити на тлі екрана
+Name[uz]=Tub oynada koʻrsatish
+Name[uz@cyrillic]=Туб ойнада кўрсатиш
+Name[vi]=Hiển thị trong Cửa sổ của Gốc
+Name[wa]=Håyner e purnea raecene (li fond do scribanne)
+Name[zh_CN]=在 Root 窗口中显示
+Name[zh_TW]=在 Root 視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/KRandom.desktop b/tdescreensaver/KRandom.desktop
new file mode 100644
index 000000000..9ab77efd2
--- /dev/null
+++ b/tdescreensaver/KRandom.desktop
@@ -0,0 +1,321 @@
+[Desktop Entry]
+Exec=krandom.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+OnlyShowIn=TDE;
+Name=Random
+Name[af]=Lukrake
+Name[ar]=عشوائي
+Name[az]=Təsadüfi
+Name[be]=Выпадковы
+Name[bg]=Произволен
+Name[bn]=এলোমেলোভাবে
+Name[br]=Dre zegouezh
+Name[bs]=Bilo koji
+Name[ca]=Aleatori
+Name[cs]=Náhodný
+Name[csb]=Przëtrôfkòwi
+Name[cy]=Ar Hap
+Name[da]=Tilfældig
+Name[de]=Zufällig
+Name[el]=Τυχαία
+Name[eo]=Hazardo
+Name[es]=Aleatorio
+Name[et]=Juhuslik
+Name[eu]=Ausazkoa
+Name[fa]=تصادفی
+Name[fi]=Satunnainen
+Name[fr]=Aléatoire
+Name[fy]=Samar in
+Name[ga]=Fánach
+Name[gl]=Aleatório
+Name[he]=אקראי
+Name[hi]=बेतरतीब
+Name[hr]=Nasumice
+Name[hu]=Véletlenszerű
+Name[id]=Acak
+Name[is]=Slembið
+Name[it]=Casuale
+Name[ja]=ランダム
+Name[ka]=შემთხვევითი
+Name[kk]=Кездейсоқ
+Name[km]=ចៃដន្យ
+Name[ko]=아무거나
+Name[lo]=ສຸ່ມ
+Name[lt]=Atsitiktinis
+Name[lv]=Gadījuma
+Name[mk]=Случаен
+Name[mn]=Дурын
+Name[ms]=Rawak
+Name[mt]=Imtella' bil-Polza
+Name[nb]=Tilfeldig
+Name[nds]=Tofall
+Name[ne]=अनियमित
+Name[nl]=Willekeurig
+Name[nn]=Tilfeldig
+Name[nso]=Kago Rarela
+Name[oc]=Aleatori
+Name[pa]=ਰਲਵਾਂ
+Name[pl]=Losowy
+Name[pt]=Aleatório
+Name[pt_BR]=Aleatório
+Name[ro]=Aleator
+Name[ru]=Случайный
+Name[rw]=Bibonetse
+Name[se]=Sáhtodohko
+Name[sk]=Náhodný
+Name[sl]=Naključno
+Name[sr]=Случајно
+Name[sr@Latn]=Slučajno
+Name[sv]=Slumpmässig
+Name[ta]=ஒழுங்கற்ற
+Name[tg]=Тассодуфӣ
+Name[th]=สุ่ม
+Name[tr]=Rastgele
+Name[tt]=Oçraqlı
+Name[uk]=Випадковий
+Name[uz]=Tasodifiy
+Name[uz@cyrillic]=Тасодифий
+Name[ven]=Zwothe
+Name[vi]=Ngẫu nhiên
+Name[wa]=A l' astcheyance
+Name[xh]=Ngaphandle kwenjongo
+Name[zh_CN]=随机
+Name[zh_TW]=隨機
+Name[zu]=Okungenaphethini
+
+[Desktop Action Setup]
+Exec=krandom.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[ar]=إعداد...
+Name[az]=Qurğular...
+Name[be]=Настаўленні...
+Name[bg]=Настройване...
+Name[bn]=সেট-আপ...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Configuració...
+Name[cs]=Nastavení...
+Name[csb]=Ùstôw...
+Name[cy]=Gosod...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=Ρύθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistused...
+Name[eu]=Konfigurazioa...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hr]=Postavke...
+Name[hu]=Beállítás...
+Name[id]=Aturan...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=セットアップ...
+Name[ka]=კონფიგურაცია...
+Name[kk]=Баптау...
+Name[km]=ដំឡើង...
+Name[ko]=설정...
+Name[lo]=ຕິດຕັ້ງ..
+Name[lt]=Nustatymas...
+Name[lv]=Uzstādīšana...
+Name[mk]=Постави...
+Name[mn]=Тохируулга...
+Name[ms]=Tetapan...
+Name[nb]=Oppsett …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[oc]=Configuracion...
+Name[pa]=ਸੈੱਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Opțiuni...
+Name[ru]=Настройка...
+Name[rw]=Iboneza...
+Name[se]=Heiveheapmi …
+Name[sk]=Nastavenie...
+Name[sl]=Nastavitve ...
+Name[sr]=Подеси...
+Name[sr@Latn]=Podesi...
+Name[ss]=Lungiselela...
+Name[sv]=Inställningar...
+Name[ta]=அமைப்பு...
+Name[te]=సెటప్...
+Name[tg]=Танзимот...
+Name[th]=ตั้งค่า...
+Name[tr]=Kurulum...
+Name[tt]=Caylaw...
+Name[uk]=Встановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Cài đặt...
+Name[wa]=Apontyî...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=krandom.kss -window-id %w
+Name=Display in Specified Window
+Name[af]=Vertoon in gespesifiseerde venster
+Name[ar]=أعرض في النافذة المحددة
+Name[az]=Bildirilən Pəncərədə Göstər
+Name[be]=Паказваць у вызначаным акне
+Name[bg]=Стартиране в избран прозорец
+Name[bn]=নির্দিষ্ট উইণ্ডোয় দেখাও
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v určeném okně
+Name[csb]=Wëskrzëni w pòdónym òknie
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In angegebenem Fenster anzeigen
+Name[el]=Προβολή στο καθορισμένο παράθυρο
+Name[eo]=Montru en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Erakutsi adierazitako leihoan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiëare finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra especificada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निर्दिष्ट विंडो में प्रदर्शित करें
+Name[hr]=Prikaži u odabranom prozoru
+Name[hu]=Megjelenítés egy megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定のウィンドウで表示
+Name[ka]=მოცემულ ფანჯარაში ასახვა
+Name[kk]=Келтірілген терезеде көрсету
+Name[km]=បង្ហាញ​ក្នុង​បង្អួច​ដែល​បាន​បញ្ជាក់​លម្អិត
+Name[ko]=지정한 창에 보이기
+Name[lt]=Rodyti nurodytame lange
+Name[lv]=Rādīt norādītajā logā
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Paparan dalam Tetingkap Yang Dinyatakan
+Name[mt]=Uri f'window speċifika
+Name[nb]=Vis i det valgte vinduet
+Name[nds]=In't utsöchte Finster wiesen
+Name[ne]=निर्दिष्ट गरिएको सञ्झ्यालमा प्रदर्शन गर्नुहोस्
+Name[nl]=In een gedefinieerd venster weergeven
+Name[nn]=Vis i vald vindauge
+Name[pa]=ਦਿੱਤੇ ਝਰੋਖੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w podanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afișează în fereastra specificată
+Name[ru]=Показать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[se]=Čájet meroštuvvon láses
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v določenemu oknu
+Name[sr]=Прикажи у задатом прозору
+Name[sr@Latn]=Prikaži u zadatom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=குறிப்பிடப்பட்ட சாளரத்தில் காட்டு
+Name[th]=แสดงในหน้าต่างที่กำหนด
+Name[tr]=Belirtilen Pencerede Göster
+Name[tt]=Äytelgän Täräzädä Kürsät
+Name[uk]=Відобразити у вказаному вікні
+Name[uz]=Koʻrsatilgan oynada koʻrsatish
+Name[uz@cyrillic]=Кўрсатилган ойнада кўрсатиш
+Name[vi]=Hiển thị trong một Cửa sổ Đặc biệt
+Name[wa]=Håyner dins l' purnea specifyî
+Name[zh_CN]=在指定窗口中显示
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=krandom.kss -root
+Name=Display in Root Window
+Name[af]=Vertoon in root venster
+Name[ar]=أعرض في النافذة الجذرية
+Name[az]=Kök Pəncərədə Göstər
+Name[be]=Паказваць у галоўным акне
+Name[bg]=Стартиране в главния прозорец
+Name[bn]=রুট উইণ্ডোয় দেখাও
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra root
+Name[cs]=Zobrazit na pozadí plochy
+Name[csb]=Wëskrzëni w przédnym òknie
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=Im Basisfenster (Root Window) anzeigen
+Name[el]=Προβολή στο βασικό παράθυρο
+Name[eo]=Montru en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Erakutsi leiho nagusian
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में प्रदर्शित करें
+Name[hr]=Prikaži u korijenskom prozoru
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í bakgrunni skjáborðs
+Name[it]=Mostra sulla finestra di sfondo
+Name[ja]=ルートウィンドウで表示
+Name[ka]=ძირეულ ფანჯარაში ასახვა
+Name[kk]=Root терезесінде көрсету
+Name[km]=បង្ហាញ​ក្នុង​បង្អួច Root
+Name[ko]=전체 화면에 보이기
+Name[lt]=Rodyti root lange
+Name[lv]=Rādīt saknes logā
+Name[mk]=Прикажи во кореновиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[mt]=Uri fil-window ewlenija
+Name[nb]=Vis i rotvinduet
+Name[nds]=In't Hööftfinster wiesen
+Name[ne]=रुट सञ्झ्यालमा प्रदर्शन गर्नुहोस्
+Name[nl]=In hoofdvenster weergeven
+Name[nn]=Vis i rotvindauget
+Name[pa]=ਰੂਟ(Root) ਝਰੋਖੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela-raiz
+Name[ro]=Afișează în fereastra rădăcină
+Name[ru]=Показать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[se]=Čájet ruohtasláses
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у кореном прозору
+Name[sr@Latn]=Prikaži u korenom prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=மூல சாளரத்தில் காட்டு
+Name[th]=แสดงในหน้าต่างหลัก
+Name[tr]=Kök Pencerede Göster
+Name[tt]=Root Täräzäsendä Kürsät
+Name[uk]=Відобразити на тлі екрана
+Name[uz]=Tub oynada koʻrsatish
+Name[uz@cyrillic]=Туб ойнада кўрсатиш
+Name[vi]=Hiển thị trong Cửa sổ của Gốc
+Name[wa]=Håyner e purnea raecene (li fond do scribanne)
+Name[zh_CN]=在 Root 窗口中显示
+Name[zh_TW]=在 Root 視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/Makefile.am b/tdescreensaver/Makefile.am
new file mode 100644
index 000000000..f46573d5f
--- /dev/null
+++ b/tdescreensaver/Makefile.am
@@ -0,0 +1,27 @@
+# Makefile.am for tdescreensaver.
+#
+
+AM_CPPFLAGS = -UQT_NO_ASCII_CAST
+
+INCLUDES = $(GLINC) $(all_includes)
+AM_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor
+
+bin_PROGRAMS = krandom.kss kblankscrn.kss
+
+krandom_kss_SOURCES = random.cpp
+krandom_kss_LDADD = $(LIB_TDEUI) $(GLLIB) -lm
+
+kblankscrn_kss_SOURCES = blankscrn.cpp
+kblankscrn_kss_LDADD = $(LIB_TDEUI) -ltdescreensaver -lm
+
+METASOURCES = AUTO
+
+messages:
+ $(XGETTEXT) *.cpp *.h -o $(podir)/tdescreensaver.pot
+
+########## Meta objects ##########
+
+desktop_DATA = KRandom.desktop KBlankscreen.desktop
+desktopdir = $(kde_appsdir)/System/ScreenSavers
+
+EXTRA_DIST = $(desktop_DATA)
diff --git a/tdescreensaver/blankscrn.cpp b/tdescreensaver/blankscrn.cpp
new file mode 100644
index 000000000..e2c6ed889
--- /dev/null
+++ b/tdescreensaver/blankscrn.cpp
@@ -0,0 +1,135 @@
+//-----------------------------------------------------------------------------
+//
+// kblankscrn - Basic screen saver for KDE
+//
+// Copyright (c) Martin R. Jones 1996
+//
+// 1998/04/19 Layout management added by Mario Weilguni <mweilguni@kde.org>
+// 2001/03/04 Converted to use libtdescreensaver by Martin R. Jones
+
+#include <stdlib.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <kapplication.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kcolordialog.h>
+#include <kbuttonbox.h>
+#include <kcolorbutton.h>
+#include <kglobal.h>
+#include "blankscrn.h"
+#include "blankscrn.moc"
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kblankscrn.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KBlankScreen" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver* kss_create( WId id )
+ {
+ return new KBlankSaver( id );
+ }
+
+ KDE_EXPORT TQDialog* kss_setup()
+ {
+ return new KBlankSetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+KBlankSetup::KBlankSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Blank Screen Saver" ),
+ Ok|Cancel, Ok, true )
+{
+ readSettings();
+
+ TQFrame *main = makeMainWidget();
+ TQGridLayout *grid = new TQGridLayout(main, 4, 2, 0, spacingHint() );
+
+ TQLabel *label = new TQLabel( i18n("Color:"), main );
+ grid->addWidget(label, 0, 0);
+
+ KColorButton *colorPush = new KColorButton( color, main );
+ colorPush->setMinimumWidth(80);
+ connect( colorPush, TQT_SIGNAL( changed(const TQColor &) ),
+ TQT_SLOT( slotColor(const TQColor &) ) );
+ grid->addWidget(colorPush, 1, 0);
+
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 165 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new KBlankSaver( preview->winId() );
+ grid->addMultiCellWidget(preview, 0, 2, 1, 1);
+
+ grid->setRowStretch( 2, 10 );
+ grid->setRowStretch( 3, 20 );
+
+ setMinimumSize( sizeHint() );
+}
+
+// read settings from config file
+void KBlankSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ color = config->readColorEntry( "Color", &black );
+}
+
+void KBlankSetup::slotColor( const TQColor &col )
+{
+ color = col;
+ saver->setColor( color );
+}
+
+// Ok pressed - save settings and exit
+void KBlankSetup::slotOk()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+ config->writeEntry( "Color", color );
+ config->sync();
+
+ accept();
+}
+
+//-----------------------------------------------------------------------------
+
+
+KBlankSaver::KBlankSaver( WId id ) : KScreenSaver( id )
+{
+ readSettings();
+ blank();
+}
+
+KBlankSaver::~KBlankSaver()
+{
+}
+
+// set the color
+void KBlankSaver::setColor( const TQColor &col )
+{
+ color = col;
+ blank();
+}
+
+// read configuration settings from config file
+void KBlankSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ color = config->readColorEntry( "Color", &black );
+}
+
+void KBlankSaver::blank()
+{
+ setBackgroundColor( color );
+ erase();
+}
+
diff --git a/tdescreensaver/blankscrn.h b/tdescreensaver/blankscrn.h
new file mode 100644
index 000000000..ba6da0226
--- /dev/null
+++ b/tdescreensaver/blankscrn.h
@@ -0,0 +1,56 @@
+//-----------------------------------------------------------------------------
+//
+// kblankscrn - Basic screen saver for KDE
+//
+// Copyright (c) Martin R. Jones 1996
+//
+
+#ifndef __BLANKSCRN_H__
+#define __BLANKSCRN_H__
+
+#include <tqcolor.h>
+#include <kdialogbase.h>
+#include <tdescreensaver.h>
+
+class KColorButton;
+
+
+class KBlankSaver : public KScreenSaver
+{
+ Q_OBJECT
+public:
+ KBlankSaver( WId drawable );
+ virtual ~KBlankSaver();
+
+ void setColor( const TQColor &col );
+
+private:
+ void readSettings();
+ void blank();
+
+private:
+ TQColor color;
+};
+
+class KBlankSetup : public KDialogBase
+{
+ Q_OBJECT
+public:
+ KBlankSetup( TQWidget *parent = NULL, const char *name = NULL );
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotColor( const TQColor & );
+ void slotOk();
+
+private:
+ TQWidget *preview;
+ KBlankSaver *saver;
+
+ TQColor color;
+};
+
+#endif
+
diff --git a/tdescreensaver/random.cpp b/tdescreensaver/random.cpp
new file mode 100644
index 000000000..cc8b7d279
--- /dev/null
+++ b/tdescreensaver/random.cpp
@@ -0,0 +1,292 @@
+ //-----------------------------------------------------------------------------
+//
+// Screen savers for KDE
+//
+// Copyright (c) Martin R. Jones 1999
+//
+// This is an extremely simple program that starts a random screensaver.
+//
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <tqtextstream.h>
+#include <tqlayout.h>
+#include <tqframe.h>
+#include <tqcheckbox.h>
+#include <tqwidget.h>
+#include <tqfileinfo.h>
+
+#include <kapplication.h>
+#include <kstandarddirs.h>
+#include <kglobal.h>
+#include <klocale.h>
+#include <kdesktopfile.h>
+#include <krandomsequence.h>
+#include <kdebug.h>
+#include <kcmdlineargs.h>
+#include <kdialogbase.h>
+#include <kconfig.h>
+
+#include "tdescreensaver_vroot.h"
+#include "random.h"
+
+#define MAX_ARGS 20
+
+static void usage(char *name)
+{
+ puts(i18n("Usage: %1 [-setup] [args]\n"
+ "Starts a random screen saver.\n"
+ "Any arguments (except -setup) are passed on to the screen saver.").arg( name ).local8Bit().data());
+}
+
+static const char appName[] = "random";
+
+static const char description[] = I18N_NOOP("Start a random TDE screen saver");
+
+static const char version[] = "2.0.0";
+
+static const KCmdLineOptions options[] =
+{
+ { "setup", I18N_NOOP("Setup screen saver"), 0 },
+ { "window-id wid", I18N_NOOP("Run in the specified XWindow"), 0 },
+ { "root", I18N_NOOP("Run in the root XWindow"), 0 },
+ // { "+-- [options]", I18N_NOOP("Options to pass to the screen saver"), 0 }
+ KCmdLineLastOption
+};
+
+//----------------------------------------------------------------------------
+
+#ifdef HAVE_GLXCHOOSEVISUAL
+#include <GL/glx.h>
+#endif
+
+//-------------------------------------
+bool hasDirectRendering () {
+ Display *dpy = TQApplication::desktop()->x11Display();
+
+#ifdef HAVE_GLXCHOOSEVISUAL
+ int attribSingle[] = {
+ GLX_RGBA,
+ GLX_RED_SIZE, 1,
+ GLX_GREEN_SIZE, 1,
+ GLX_BLUE_SIZE, 1,
+ None
+ };
+ XVisualInfo* visinfo = glXChooseVisual (
+ dpy, TQApplication::desktop()->primaryScreen(), attribSingle
+ );
+ if (visinfo) {
+ GLXContext ctx = glXCreateContext ( dpy, visinfo, NULL, True );
+ if (glXIsDirect(dpy, ctx)) {
+ glXDestroyContext (dpy,ctx);
+ return true;
+ }
+ glXDestroyContext (dpy,ctx);
+ return false;
+ } else {
+ return false;
+ }
+#else
+#error no GL?
+ return false;
+#endif
+
+}
+
+int main(int argc, char *argv[])
+{
+ KLocale::setMainCatalogue("tdescreensaver");
+ TDECmdLineArgs::init(argc, argv, appName, I18N_NOOP("Random screen saver"), description, version);
+
+ TDECmdLineArgs::addCmdLineOptions(options);
+
+ TDEApplication app;
+
+ Window windowId = 0;
+
+ TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
+
+ if (args->isSet("setup"))
+ {
+ KRandomSetup setup;
+ setup.exec();
+ exit(0);
+ }
+
+ if (args->isSet("window-id"))
+ {
+ windowId = atol(args->getOption("window-id"));
+ }
+
+ if (args->isSet("root"))
+ {
+ windowId = RootWindow(tqt_xdisplay(), tqt_xscreen());
+ }
+
+ TDEGlobal::dirs()->addResourceType("scrsav",
+ TDEGlobal::dirs()->kde_default("apps") +
+ "apps/ScreenSavers/");
+ TDEGlobal::dirs()->addResourceType("scrsav",
+ TDEGlobal::dirs()->kde_default("apps") +
+ "System/ScreenSavers/");
+ TQStringList tempSaverFileList = TDEGlobal::dirs()->findAllResources("scrsav",
+ "*.desktop", false, true);
+
+ TQStringList saverFileList;
+
+ TDEConfig type("krandom.kssrc");
+ type.setGroup("Settings");
+ bool opengl = type.readBoolEntry("OpenGL", hasDirectRendering());
+ kdDebug() << "hasOPEN " << opengl << endl;
+ bool manipulatescreen = type.readBoolEntry("ManipulateScreen");
+ bool fortune = !KStandardDirs::findExe("fortune").isEmpty();
+ TQStringList defaults = type.readListEntry( "Defaults" );
+ TQMap<TQString, int> def_numbers;
+ for ( TQStringList::ConstIterator it = defaults.begin(); it != defaults.end(); ++it ) {
+ int index = ( *it ).find( ':' );
+ if ( index == -1 )
+ def_numbers[*it] = 1;
+ else
+ def_numbers[( *it ).left( index )] = ( *it ).mid( index + 1 ).toInt();
+ }
+
+ for (uint i = 0; i < tempSaverFileList.count(); i++)
+ {
+ int howoften = 1;
+ if ( defaults.count() != 0 ) {
+ TQFileInfo fi( tempSaverFileList[i] );
+ if ( def_numbers.contains( fi.fileName() ) )
+ howoften = def_numbers[fi.fileName()];
+ else
+ howoften = 0;
+ }
+
+ KDesktopFile saver(tempSaverFileList[i], true);
+ if (!saver.tryExec())
+ continue;
+ TQString saverType = saver.readEntry("X-TDE-Type");
+ if (!saverType.isEmpty()) // no X-TDE-Type defined so must be OK
+ {
+ TQStringList saverTypes = TQStringList::split(";", saverType);
+ for (TQStringList::ConstIterator it = saverTypes.begin(); it != saverTypes.end(); ++it )
+ {
+ if (*it == "ManipulateScreen")
+ {
+ if (!manipulatescreen)
+ howoften = 0;
+ }
+ else
+ if (*it == "OpenGL")
+ {
+ if (!opengl)
+ howoften = 0;
+ }
+ if (*it == "Fortune")
+ {
+ if (!fortune)
+ howoften = 0;
+ }
+
+ }
+ }
+ for ( int j = 0; j < howoften; ++j )
+ saverFileList.append(tempSaverFileList[i]);
+ }
+ kdDebug() << "final " << saverFileList << endl;
+
+ KRandomSequence rnd;
+ int indx = rnd.getLong(saverFileList.count());
+ TQString filename = *(saverFileList.at(indx));
+
+ KDesktopFile config(filename, true);
+
+ TQString cmd;
+ if (windowId && config.hasActionGroup("InWindow"))
+ {
+ config.setActionGroup("InWindow");
+ }
+ else if ((windowId == 0) && config.hasActionGroup("Root"))
+ {
+ config.setActionGroup("Root");
+ }
+ cmd = config.readPathEntry("Exec");
+
+ TQTextStream ts(&cmd, IO_ReadOnly);
+ TQString word;
+ ts >> word;
+ TQString exeFile = KStandardDirs::findExe(word);
+
+ if (!exeFile.isEmpty())
+ {
+ char *sargs[MAX_ARGS];
+ sargs[0] = new char [strlen(word.ascii())+1];
+ strcpy(sargs[0], word.ascii());
+
+ int i = 1;
+ while (!ts.atEnd() && i < MAX_ARGS-1)
+ {
+ ts >> word;
+ if (word == "%w")
+ {
+ word = word.setNum(windowId);
+ }
+
+ sargs[i] = new char [strlen(word.ascii())+1];
+ strcpy(sargs[i], word.ascii());
+ kdDebug() << "word is " << word.ascii() << endl;
+
+ i++;
+ }
+
+ sargs[i] = 0;
+
+ execv(exeFile.ascii(), sargs);
+ }
+
+ // If we end up here then we couldn't start a saver.
+ // If we have been supplied a window id or root window then blank it.
+ Window win = windowId ? windowId : RootWindow(tqt_xdisplay(), tqt_xscreen());
+ XSetWindowBackground(tqt_xdisplay(), win,
+ BlackPixel(tqt_xdisplay(), tqt_xscreen()));
+ XClearWindow(tqt_xdisplay(), win);
+}
+
+
+KRandomSetup::KRandomSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Random Screen Saver" ),
+ Ok|Cancel, Ok, true )
+{
+
+ TQFrame *main = makeMainWidget();
+ TQGridLayout *grid = new TQGridLayout(main, 4, 2, 0, spacingHint() );
+
+ openGL = new TQCheckBox( i18n("Use OpenGL screen savers"), main );
+ grid->addWidget(openGL, 0, 0);
+
+ manipulateScreen = new TQCheckBox(i18n("Use screen savers that manipulate the screen"), main);
+ grid->addWidget(manipulateScreen, 1, 0);
+
+ setMinimumSize( sizeHint() );
+
+ TDEConfig config("krandom.kssrc");
+ config.setGroup("Settings");
+ openGL->setChecked(config.readBoolEntry("OpenGL", hasDirectRendering()));
+ manipulateScreen->setChecked(config.readBoolEntry("ManipulateScreen", true));
+}
+
+void KRandomSetup::slotOk()
+{
+ TDEConfig config("krandom.kssrc");
+ config.setGroup("Settings");
+ config.writeEntry("OpenGL", openGL->isChecked());
+ config.writeEntry("ManipulateScreen", manipulateScreen->isChecked());
+
+ accept();
+}
+
+#include "random.moc"
diff --git a/tdescreensaver/random.h b/tdescreensaver/random.h
new file mode 100644
index 000000000..e34556662
--- /dev/null
+++ b/tdescreensaver/random.h
@@ -0,0 +1,38 @@
+/*
+ Copyright (c) 2003 Chris Howells <howells@kde.org>
+
+ *************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Lesser General Public *
+ * License as published by the Free Software Foundation; version *
+ * 2 of the License. *
+ * *
+ *************************************************************************
+*/
+
+#ifndef RANDOM_H
+#define RANDOM_H
+
+class TQWidget;
+class TQCheckBox;
+
+class KRandomSetup : public KDialogBase
+{
+ Q_OBJECT
+ public:
+ KRandomSetup( TQWidget *parent = NULL, const char *name = NULL );
+
+ private:
+
+ TQWidget *preview;
+ TQCheckBox *openGL;
+ TQCheckBox *manipulateScreen;
+
+ private slots:
+
+ void slotOk();
+
+};
+
+#endif