summaryrefslogtreecommitdiffstats
path: root/tdeioslave/media/propsdlgplugin
diff options
context:
space:
mode:
Diffstat (limited to 'tdeioslave/media/propsdlgplugin')
-rw-r--r--tdeioslave/media/propsdlgplugin/CMakeLists.txt35
-rw-r--r--tdeioslave/media/propsdlgplugin/Makefile.am12
-rw-r--r--tdeioslave/media/propsdlgplugin/media_propsdlgplugin.desktop102
-rw-r--r--tdeioslave/media/propsdlgplugin/propertiespage.cpp229
-rw-r--r--tdeioslave/media/propsdlgplugin/propertiespage.h46
-rw-r--r--tdeioslave/media/propsdlgplugin/propertiespagegui.ui385
-rw-r--r--tdeioslave/media/propsdlgplugin/propertiespagegui.ui.h22
-rw-r--r--tdeioslave/media/propsdlgplugin/propsdlgshareplugin.cpp101
-rw-r--r--tdeioslave/media/propsdlgplugin/propsdlgshareplugin.h44
9 files changed, 976 insertions, 0 deletions
diff --git a/tdeioslave/media/propsdlgplugin/CMakeLists.txt b/tdeioslave/media/propsdlgplugin/CMakeLists.txt
new file mode 100644
index 000000000..f029b52ab
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/CMakeLists.txt
@@ -0,0 +1,35 @@
+#################################################
+#
+# (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}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+
+##### other data ################################
+
+install( FILES media_propsdlgplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+
+##### media_propsdlgplugin (module) #############
+
+tde_add_kpart( media_propsdlgplugin AUTOMOC
+ SOURCES
+ propertiespage.cpp propertiespagegui.ui propsdlgshareplugin.cpp
+ LINK mediacommon-static tdeio-shared
+ DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/tdeioslave/media/propsdlgplugin/Makefile.am b/tdeioslave/media/propsdlgplugin/Makefile.am
new file mode 100644
index 000000000..5e3d8af83
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/Makefile.am
@@ -0,0 +1,12 @@
+METASOURCES = AUTO
+
+kde_module_LTLIBRARIES = media_propsdlgplugin.la
+
+media_propsdlgplugin_la_LIBADD = ../libmediacommon/libmediacommon.la $(LIB_KIO)
+media_propsdlgplugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+
+AM_CPPFLAGS = $(all_includes)
+
+kde_services_DATA = media_propsdlgplugin.desktop
+
+media_propsdlgplugin_la_SOURCES = propertiespage.cpp propertiespagegui.ui propsdlgshareplugin.cpp
diff --git a/tdeioslave/media/propsdlgplugin/media_propsdlgplugin.desktop b/tdeioslave/media/propsdlgplugin/media_propsdlgplugin.desktop
new file mode 100644
index 000000000..2b24348c5
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/media_propsdlgplugin.desktop
@@ -0,0 +1,102 @@
+[Desktop Entry]
+Type=Service
+Name=Media Properties Page
+Name[bg]=Страница с информация за носителя
+Name[bn]=মিডিয়া বৈশিষ্ট্যাবলী পৃষ্ঠা
+Name[ca]=Pàgina de propietats de suport
+Name[cs]=Stránka vlastností média
+Name[csb]=Starna swòjiznë media
+Name[da]=Medieegenskabsside
+Name[de]=Eigenschaften von Medien
+Name[el]=Σελίδα ιδιοτήτων μέσων
+Name[eo]=Medio-Ecoj Paĝo
+Name[es]=Página de propiedades de medios
+Name[et]=Andmekandjate omadused
+Name[fa]=صفحۀ ویژگیهای رسانه
+Name[fi]=Mediaominaisuudet
+Name[fr]=Page de propriétés du média
+Name[fy]=Media eigenskip side
+Name[gl]=Páxina de Propiedades dos Media
+Name[he]=דף מאפייני מדיה
+Name[hr]=Stranica svojstva medija
+Name[hu]=Médiajellemzők lap
+Name[is]=Eiginleikar miðils
+Name[it]=Pagina delle proprietà dei dispositivi di archiviazione
+Name[ja]=メディア属性ページ
+Name[kk]=Медиа қасиеттер беті
+Name[km]=ទំព័រ​លក្ខណៈសម្បត្តិ​មេឌៀ
+Name[lt]=Media įrenginio savybių puslapis
+Name[nb]=Side for medievarsling
+Name[nds]=Medienegenschappen-Siet
+Name[ne]=मिडिया विशेषता पृष्ठ
+Name[nl]=Pagina met media-eigenschappen
+Name[nn]=Side for medieeigenskapar
+Name[pa]=ਮੀਡਿਆ ਵਿਸ਼ੇਸ਼ਤਾ ਸਫ਼ਾ
+Name[pl]=Strona właściwości nośnika
+Name[pt]=Página de Propriedades de Suportes Físicos
+Name[pt_BR]=Página de Propriedades da Mídia
+Name[ro]=Pagina de proprietăți media
+Name[ru]=Свойства диска
+Name[sk]=Strana vlastností média
+Name[sl]=Stran z lastnostmi nosilca
+Name[sr]=Страна са својствима медијума
+Name[sr@Latn]=Strana sa svojstvima medijuma
+Name[sv]=Sida för mediaegenskaper
+Name[te]=మాధ్యమ గుణాల పుట
+Name[th]=หน้าคุณสมบัติของสื่อ
+Name[tr]=Ortam Özellikleri Sayfası
+Name[uk]=Сторінка властивостей носіїв інформації
+Name[uz]=Saqlash uskunalarning xossalari
+Name[uz@cyrillic]=Сақлаш ускуналарнинг хоссалари
+Name[vi]=Trang tài sản phương tiện
+Name[wa]=Pådje des prôpietés media
+Name[zh_CN]=介质属性页面
+Name[zh_TW]=媒體內容頁
+Comment=Konqueror properties dialog plugin to configure mount behaviour
+Comment[bg]=Приставка за настройване на монтирането (Konqueror)
+Comment[ca]=Diàleg de propietats de l'endollable Konqueror per a configurar el comportament de muntatge
+Comment[cs]=Dialog nastavení chování připojení modulu pro Konqueror
+Comment[csb]=Plugins òkna swòjiznë Konquerora do kònfigùracëji zachówaniô mòntowaniô
+Comment[da]=Konqueror plugin med egenskabsdialog til at indstille monteringsopførsel
+Comment[de]=Konqueror-Modul zum Einstellen des Verhaltens beim Einbinden
+Comment[el]=Πρόσθετο διαλόγου ιδιοτήτων του Konqueror για τη ρύθμιση της συμπεριφοράς προσάρτησης
+Comment[eo]=Konkeranto eco-dialogo kromaĵo por agordi surmeto-konduton
+Comment[es]=Complemento de la ventana de propiedades de Konqueror para configurar el comportamiento del montaje
+Comment[et]=Konquerori seadistustedialoogi plugin andmekandjate ühendamise seadistamiseks
+Comment[fa]=وصلۀ محاورۀ ویژگیهای Konqueror برای پیکربندی رفتار سوار کردن
+Comment[fi]=Konquerorin ominaisuussovelma, joka tarkkailee liitospisteitä
+Comment[fr]=Module de Konqueror pour configurer le comportement du montage
+Comment[fy]=Konqueror eigenskip-dialooch-plugin om keppelgedrach te konfigurearjen
+Comment[gl]=Extensión de diálogo de propiedades para Konqueror para configurar o comportamento das montaxes
+Comment[he]=תוסף חלון מאפיינים של Konqueror לקביעת אפשרויות חיבור
+Comment[hr]=Konqueror dodatak dijaloga svojstava za konfiguriranje načina pristupanja
+Comment[hu]=Konqueror beállítómodul a csatlakoztatási mód megadásához
+Comment[is]=Konqueror eiginleikagluggi til að stilla tengihegðun
+Comment[it]=Plugin della configurazione di Konqueror per configurare il montaggio
+Comment[ja]=mount の挙動を設定する Konqueror プロパティダイアログ プラグイン
+Comment[kk]=Жалғау тәртібін баптайтын Konqueror қасиеттер диалогының плагин модулі
+Comment[km]=កម្មវិធី​ជំនួយ​ឲ្យ​មាន​ប្រអប់​លក្ខណៈសម្បត្តិ Konqueror ដើម្បី​កំណត់​រចនាសម្ព័ន្ធ​ឥរិយាបថ​ម៉ោន
+Comment[lt]=Konqueror savybių dialogo priedas, leidžiantis konfigūruoti montavimo elgseną
+Comment[nb]=Et programtillegg for å sette opp montering av enheter i Konqueror
+Comment[nds]=Egenschappendialoog-Plugin för Konqueror för't Instellen vun't Inhangbedregen
+Comment[ne]=माउन्ट व्यवहार कन्फिगर गर्न कन्क्वेरर विशेषता संवाद प्लगइन
+Comment[nl]=Dialoogvenster voor Konqueror om het aankoppelgedrag in te stellen
+Comment[nn]=Programtillegg for oppsett av montering i Konqueror
+Comment[pl]=Wtyczka okna właściwości Konquerora do konfiguracji zachowania montowania
+Comment[pt]='Plugin' da janela de propriedades do Konqueror, para configurar o comportamento da montagem
+Comment[pt_BR]=Plug-in do diálogo de propriedades do Konqueror para configurar o comportamento da montagem
+Comment[ro]=Plugin de dialog al proprietăților Konqueror pentru a configura comportarea lui mount
+Comment[ru]=Модуль свойств для Konqueror, отвечающий за поведение при подключении файловых систем
+Comment[sk]=Modul Konqueror dialógu vlastností pre konfiguráciu správania pripojenia
+Comment[sl]=Vstavek za Konqueror s katerim se nastavlja obnašanje priklopa medijev
+Comment[sr]=Прикључак са својствима Konqueror-а за подешавање понашања при монтирању
+Comment[sr@Latn]=Priključak sa svojstvima Konqueror-a za podešavanje ponašanja pri montiranju
+Comment[sv]=Konqueror insticksprogram med egenskapsdialogruta för att anpassa monteringsbeteende
+Comment[th]=ปลั๊กอินกล่องตอบโต้ของ Konqueror ใช้เพื่อปรับแต่งพฤติกรรมการเมานท์สื่อ
+Comment[uk]=Втулок вікна властивостей Konqueror для налаштування поведінки монтування
+Comment[vi]=bổ sung hộp thoại tài sản Konqueror để cấu hình ứng xử gắn kết
+Comment[wa]=Tchôke-divins di dvize di prôpietés Konqueror po-z apontyî l' dujhance do montaedje
+Comment[zh_CN]=配置挂载行为的 Konqueror 属性对话框插件
+Comment[zh_TW]=Konqueror 內容對話框外掛程式,用於設定掛載的行為
+X-TDE-Library=media_propsdlgplugin
+ServiceTypes=KPropsDlg/Plugin,media/audiocd,media/hdd_mounted,media/hdd_unmounted,media/hdd_mounted_decrypted,media/hdd_unmounted_decrypted,media/cdrom_mounted,media/cdrom_unmounted,media/cdrom_mounted_decrypted,media/cdrom_unmounted_decrypted,media/cdwriter_mounted,media/cdwriter_mounted_decrypted,media/nfs_mounted,media/cdwriter_unmounted,media/cdwriter_unmounted_decrypted,media/nfs_unmounted,media/removable_mounted,media/removable_mounted_decrypted,media/dvd_mounted,media/dvd_mounted_decrypted,media/removable_unmounted,media/removable_unmounted_decrypted,media/dvd_unmounted,media/dvd_unmounted_decrypted,media/smb_mounted,media/dvdvideo,media/smb_unmounted,media/floppy5_mounted,media/floppy5_unmounted,media/floppy_mounted,media/zip_mounted,media/floppy_unmounted,media/zip_unmounted,media/camera_mounted,media/camera_unmounted
diff --git a/tdeioslave/media/propsdlgplugin/propertiespage.cpp b/tdeioslave/media/propsdlgplugin/propertiespage.cpp
new file mode 100644
index 000000000..33d481ef5
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/propertiespage.cpp
@@ -0,0 +1,229 @@
+/*
+ Copyright (c) 2004 Jan Schaefer <[email protected]>
+
+ 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 Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include <tqcheckbox.h>
+#include <tqtooltip.h>
+#include <tqbuttongroup.h>
+#include <tqlineedit.h>
+#include <tqfileinfo.h>
+#include <tqlabel.h>
+#include <tqregexp.h>
+#include <kpushbutton.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <tqcombobox.h>
+#include <tqtimer.h>
+#include <kdebug.h>
+#include "propertiespage.h"
+#include <dcopref.h>
+
+// keep in sync with .ui and kded module
+const char *short_names[] = {"lower", "win95", "winnt", "mixed", 0 };
+const char *journales[] = {"data", "ordered", "writeback", 0 };
+
+PropertiesPage::PropertiesPage(TQWidget* parent, const TQString &_id)
+ : PropertiesPageGUI(parent), id(_id)
+{
+ kdDebug() << "props page " << id << endl;
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call( "mountoptions", id);
+
+ TQStringList list;
+
+ if (reply.isValid())
+ list = reply;
+
+ if (list.size()) {
+ kdDebug() << "list " << list << endl;
+
+ for (TQStringList::ConstIterator it = list.begin(); it != list.end(); ++it)
+ {
+ TQString key = (*it).left((*it).find('='));
+ TQString value = (*it).mid((*it).find('=') + 1);
+ kdDebug() << "key '" << key << "' value '" << value << "'\n";
+ options[key] = value;
+ }
+
+ if (!options.contains("ro"))
+ option_ro->hide();
+ else
+ option_ro->setChecked(options["ro"] == "true");
+ connect( option_ro, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ if (!options.contains("quiet"))
+ option_quiet->hide();
+ else
+ option_quiet->setChecked(options["quiet"] == "true");
+ connect( option_quiet, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ if (!options.contains("sync"))
+ option_sync->hide();
+ else
+ option_sync->setChecked(options["sync"] == "true");
+ connect( option_sync, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ if (!options.contains("atime"))
+ option_atime->hide();
+ else
+ option_atime->setChecked(options["atime"] == "true");
+ connect( option_atime, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ if (!options.contains("flush"))
+ option_flush->hide();
+ else
+ option_flush->setChecked(options["flush"] == "true");
+ connect( option_flush, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ if (!options.contains("utf8"))
+ option_utf8->hide();
+ else
+ option_utf8->setChecked(options["utf8"] == "true");
+ connect( option_utf8, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ if (!options.contains("uid"))
+ option_uid->hide();
+ else
+ option_uid->setChecked(options["uid"] == "true");
+ connect( option_uid, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ if (!options.contains("shortname"))
+ {
+ option_shortname->hide();
+ text_shortname->hide();
+ }
+ else
+ {
+ for (int index = 0; short_names[index]; ++index)
+ if (options["shortname"] == short_names[index])
+ {
+ option_shortname->setCurrentItem(index);
+ break;
+ }
+ connect( option_shortname, TQT_SIGNAL( activated(int) ), TQT_SIGNAL( changed() ) );
+ }
+
+ if (!options.contains("journaling"))
+ {
+ text_journaling->hide();
+ option_journaling->hide();
+ }
+ else
+ {
+ for (int index = 0; journales[index]; ++index)
+ if (options["journaling"] == journales[index])
+ {
+ option_journaling->setCurrentItem(index);
+ break;
+ }
+ connect( option_journaling, TQT_SIGNAL( activated(int) ), TQT_SIGNAL( changed() ) );
+ }
+
+ label_filesystem->setText(i18n("Filesystem: %1").arg(options["filesystem"]));
+ option_mountpoint->setText(options["mountpoint"]);
+ connect( option_mountpoint, TQT_SIGNAL( textChanged( const TQString &) ), TQT_SIGNAL( changed() ) );
+ option_automount->setChecked(options["automount"] == "true");
+ connect( option_automount, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ bool has_groupbox_specific = true;
+ if (!options.contains("journaling") &&
+ !options.contains("shortname") &&
+ !options.contains("uid") &&
+ !options.contains("utf8") &&
+ !options.contains("flush")) {
+ groupbox_specific->hide();
+ has_groupbox_specific = false;
+ }
+
+ // The order is important - we want groupboxes to hide automatically depending on use_defaults
+ // but don't want to emit changed() until user actually changes something.
+ connect( option_defaults, TQT_SIGNAL( toggled(bool) ), groupbox_generic, SLOT( setHidden(bool) ) );
+ if (has_groupbox_specific)
+ connect( option_defaults, TQT_SIGNAL( toggled(bool) ), groupbox_specific, SLOT( setHidden(bool) ) );
+ option_defaults->setChecked(options["use_defaults"] == "true");
+ connect( option_defaults, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) );
+
+ } else {
+
+ groupbox_generic->setEnabled(false);
+ groupbox_specific->setEnabled(false);
+ label_filesystem->hide();
+ }
+}
+
+PropertiesPage::~PropertiesPage()
+{
+}
+
+bool PropertiesPage::save()
+{
+ TQStringList result;
+
+ if (options.contains("ro"))
+ result << TQString("ro=%1").arg(option_ro->isChecked() ? "true" : "false");
+
+ if (options.contains("quiet"))
+ result << TQString("quiet=%1").arg(option_quiet->isChecked() ? "true" : "false");
+
+ if (options.contains("sync"))
+ result << TQString("sync=%1").arg(option_sync->isChecked() ? "true" : "false");
+
+ if (options.contains("atime"))
+ result << TQString("atime=%1").arg(option_atime->isChecked() ? "true" : "false");
+
+ if (options.contains("flush"))
+ result << TQString("flush=%1").arg(option_flush->isChecked() ? "true" : "false");
+
+ if (options.contains("utf8"))
+ result << TQString("utf8=%1").arg(option_utf8->isChecked() ? "true" : "false");
+
+ if (options.contains("uid"))
+ result << TQString("uid=%1").arg(option_uid->isChecked() ? "true" : "false");
+
+ if (options.contains("shortname"))
+ result << TQString("shortname=%1").arg(short_names[option_shortname->currentItem()]);
+
+ if (options.contains("journaling"))
+ result << TQString("journaling=%1").arg(journales[option_journaling->currentItem()]);
+
+ TQString mp = option_mountpoint->text();
+ if (!mp.startsWith("/media/"))
+ {
+ KMessageBox::sorry(this, i18n("Mountpoint has to be below /media"));
+ return false;
+ }
+ result << TQString("mountpoint=%1").arg(mp);
+ result << TQString("automount=%1").arg(option_automount->isChecked() ? "true" : "false");
+ result << TQString("use_defaults=%1").arg(option_defaults->isChecked() ? "true" : "false");
+
+ kdDebug() << result << endl;
+
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call( "setMountoptions", id, result);
+
+ if (reply.isValid())
+ return (bool)reply;
+ else {
+ KMessageBox::sorry(this,
+ i18n("Saving the changes failed"));
+
+ return false;
+ }
+}
+
+#include "propertiespage.moc"
diff --git a/tdeioslave/media/propsdlgplugin/propertiespage.h b/tdeioslave/media/propsdlgplugin/propertiespage.h
new file mode 100644
index 000000000..50a480719
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/propertiespage.h
@@ -0,0 +1,46 @@
+/*
+ Copyright (c) 2004 Jan Schaefer <[email protected]>
+
+ 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 Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef PROPERTIESPAGE_H
+#define PROPERTIESPAGE_H
+
+#include "propertiespagegui.h"
+#include <tqmap.h>
+
+class TQCheckBox;
+class Medium;
+
+class PropertiesPage : public PropertiesPageGUI
+{
+ Q_OBJECT
+
+public:
+ PropertiesPage(TQWidget* parent, const TQString &_id);
+ virtual ~PropertiesPage();
+
+ bool save();
+
+protected:
+
+ TQMap<TQString,TQString> options;
+ TQString id;
+
+};
+
+#endif
diff --git a/tdeioslave/media/propsdlgplugin/propertiespagegui.ui b/tdeioslave/media/propsdlgplugin/propertiespagegui.ui
new file mode 100644
index 000000000..2a6ff899e
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/propertiespagegui.ui
@@ -0,0 +1,385 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>PropertiesPageGUI</class>
+<widget class="TQWidget">
+ <property name="name">
+ <cstring>PropertiesPageGUI</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>219</width>
+ <height>446</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>PropertiesPageGUI</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_defaults</cstring>
+ </property>
+ <property name="text">
+ <string>Use default mount options</string>
+ </property>
+ </widget>
+ <widget class="TQGroupBox">
+ <property name="name">
+ <cstring>groupbox_generic</cstring>
+ </property>
+ <property name="title">
+ <string>Generic Mount Options</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout15</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_ro</cstring>
+ </property>
+ <property name="text">
+ <string>Read only</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Mount the file system read-only.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_quiet</cstring>
+ </property>
+ <property name="text">
+ <string>Quiet</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attempts to chown or chmod files do not return errors, although they fail. Use with caution!</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_sync</cstring>
+ </property>
+ <property name="text">
+ <string>Synchronous</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>All I/O to the file system should be done synchronously.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_atime</cstring>
+ </property>
+ <property name="text">
+ <string>Access time updates</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Update inode access time for each access.</string>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout14</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Mountpoint:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>option_mountpoint</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Under what directory this file system shall be mounted. Please note that there is no guarantee that the system will respect your wish. For one the directory has to be below /media - and it does not yet have to exist.</string>
+ </property>
+ </widget>
+ <widget class="TQLineEdit">
+ <property name="name">
+ <cstring>option_mountpoint</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_automount</cstring>
+ </property>
+ <property name="text">
+ <string>Mount automatically</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Mount this file system automatically.</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="TQGroupBox">
+ <property name="name">
+ <cstring>groupbox_specific</cstring>
+ </property>
+ <property name="title">
+ <string>Filesystem Specific Mount Options</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout11</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_flush</cstring>
+ </property>
+ <property name="text">
+ <string>Flushed IO</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Always flush all data to the hot plug devices immediately and don't cache it.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_utf8</cstring>
+ </property>
+ <property name="text">
+ <string>UTF-8 charset</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>UTF8 is the filesystem safe 8-bit encoding of Unicode that is used by the console. It can be be enabled for the filesystem with this option.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>option_uid</cstring>
+ </property>
+ <property name="text">
+ <string>Mount as user</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Mount this file system as user.</string>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout7</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>text_journaling</cstring>
+ </property>
+ <property name="text">
+ <string>Journaling:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>option_journaling</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;h2&gt;Specifies the journalling mode for file data. Metadata is always journaled. &lt;/h2&gt;
+
+&lt;h3&gt;&lt;b&gt;All Data&lt;/b&gt;&lt;/h3&gt;
+ All data is committed into the journal prior to being written into the main file system. This is the slowest variant with the highest data security.
+
+&lt;h3&gt;&lt;b&gt;Ordered&lt;/b&gt;&lt;/h3&gt;
+ All data is forced directly out to the main file system prior to its metadata being committed to the journal.
+
+&lt;h3&gt;&lt;b&gt;Write Back&lt;/b&gt;&lt;/h3&gt;
+ Data ordering is not preserved - data may be written into the main file system after its metadata has been committed to the journal. This is rumoured to be the highest-throughput option. It guarantees internal file system integrity, however it can allow old data to appear in files after a crash and journal recovery.</string>
+ </property>
+ </widget>
+ <widget class="TQComboBox">
+ <item>
+ <property name="text">
+ <string>All Data</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Ordered</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Write Back</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>option_journaling</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;h2&gt;Specifies the journalling mode for file data. Metadata is always journaled. &lt;/h2&gt;
+
+&lt;h3&gt;&lt;b&gt;All Data&lt;/b&gt;&lt;/h3&gt;
+ All data is committed into the journal prior to being written into the main file system. This is the slowest variant with the highest data security.
+
+&lt;h3&gt;&lt;b&gt;Ordered&lt;/b&gt;&lt;/h3&gt;
+ All data is forced directly out to the main file system prior to its metadata being committed to the journal.
+
+&lt;h3&gt;&lt;b&gt;Write Back&lt;/b&gt;&lt;/h3&gt;
+ Data ordering is not preserved - data may be written into the main file system after its metadata has been committed to the journal. This is rumoured to be the highest-throughput option. It guarantees internal file system integrity, however it can allow old data to appear in files after a crash and journal recovery.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout14</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>text_shortname</cstring>
+ </property>
+ <property name="text">
+ <string>Short names:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>option_shortname</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;h2&gt;Defines the behaviour for creation and display of filenames which fit into 8.3 characters. If a long name for a file exists, it will always be preferred display.&lt;/h2&gt;
+
+&lt;h3&gt;&lt;b&gt;Lower&lt;/b&gt;&lt;/h3&gt;
+Force the short name to lower case upon display; store a long name when the short name is not all upper case.
+
+&lt;h3&gt;&lt;b&gt;Windows 95&lt;/b&gt;&lt;/h3&gt;
+Force the short name to upper case upon display; store a long name when the short name is not all upper case.
+
+&lt;h3&gt;&lt;b&gt;Windows NT&lt;/b&gt;&lt;/h3&gt;
+Display the shortname as is; store a long name when the short name is not all lower case or all upper case.
+
+&lt;h3&gt;&lt;b&gt;Mixed&lt;/b&gt;&lt;/h3&gt;
+Display the short name as is; store a long name when the short name is not all upper case.</string>
+ </property>
+ </widget>
+ <widget class="TQComboBox">
+ <item>
+ <property name="text">
+ <string>Lower</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Windows 95</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Windows NT</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Mixed</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>option_shortname</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;h2&gt;Defines the behaviour for creation and display of filenames which fit into 8.3 characters. If a long name for a file exists, it will always be preferred display.&lt;/h2&gt;
+
+&lt;h3&gt;&lt;b&gt;Lower&lt;/b&gt;&lt;/h3&gt;
+Force the short name to lower case upon display; store a long name when the short name is not all upper case.
+
+&lt;h3&gt;&lt;b&gt;Windows 95&lt;/b&gt;&lt;/h3&gt;
+Force the short name to upper case upon display; store a long name when the short name is not all upper case.
+
+&lt;h3&gt;&lt;b&gt;Windows NT&lt;/b&gt;&lt;/h3&gt;
+Display the shortname as is; store a long name when the short name is not all lower case or all upper case.
+
+&lt;h3&gt;&lt;b&gt;Mixed&lt;/b&gt;&lt;/h3&gt;
+Display the short name as is; store a long name when the short name is not all upper case.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>label_filesystem</cstring>
+ </property>
+ <property name="text">
+ <string>Filesystem: iso9660</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>option_ro</sender>
+ <signal>stateChanged(int)</signal>
+ <receiver>PropertiesPageGUI</receiver>
+ <slot>changedSlot()</slot>
+ </connection>
+</connections>
+<variables>
+ <variable>bool m_hasChanged;</variable>
+</variables>
+<Q_SIGNALS>
+ <signal>changed()</signal>
+</Q_SIGNALS>
+<Q_SLOTS>
+ <slot access="protected">changedSlot()</slot>
+</Q_SLOTS>
+<functions>
+ <function returnType="bool">hasChanged()</function>
+</functions>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/tdeioslave/media/propsdlgplugin/propertiespagegui.ui.h b/tdeioslave/media/propsdlgplugin/propertiespagegui.ui.h
new file mode 100644
index 000000000..45a9ca2d7
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/propertiespagegui.ui.h
@@ -0,0 +1,22 @@
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you wish to add, delete or rename functions or slots use
+** Qt Designer which will update this file, preserving your code. Create an
+** init() function in place of a constructor, and a destroy() function in
+** place of a destructor.
+*****************************************************************************/
+
+
+void PropertiesPageGUI::changedSlot()
+{
+ m_hasChanged = true;
+ emit changed();
+}
+
+bool PropertiesPageGUI::hasChanged()
+{
+ return m_hasChanged;
+}
+
+
diff --git a/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.cpp b/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.cpp
new file mode 100644
index 000000000..1ceff0bc1
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.cpp
@@ -0,0 +1,101 @@
+/*
+ Copyright (c) 2004 Jan Schaefer <[email protected]>
+
+ 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 Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include <tqstring.h>
+#include <tqvbox.h>
+#include <tqlayout.h>
+#include <tqlabel.h>
+#include <tqtimer.h>
+
+#include <kgenericfactory.h>
+#include <kdebug.h>
+#include <kpushbutton.h>
+#include <tdefileshare.h>
+#include <kmessagebox.h>
+#include <kprocess.h>
+#include <kstandarddirs.h>
+#include <kdialog.h>
+#include <kglobal.h>
+#include <dcopref.h>
+
+#include "propertiespage.h"
+#include "propsdlgshareplugin.h"
+#include "../libmediacommon/medium.h"
+
+typedef KGenericFactory<PropsDlgSharePlugin, KPropertiesDialog> PropsDlgSharePluginFactory;
+
+K_EXPORT_COMPONENT_FACTORY( media_propsdlgplugin,
+ PropsDlgSharePluginFactory("media_propsdlgplugin") )
+
+class PropsDlgSharePlugin::Private
+{
+ public:
+ PropertiesPage* page;
+};
+
+PropsDlgSharePlugin::PropsDlgSharePlugin( KPropertiesDialog *dlg,
+ const char *, const TQStringList & )
+ : KPropsDlgPlugin(dlg), d(0)
+{
+ if (properties->items().count() != 1)
+ return;
+
+ KFileItem *item = properties->items().first();
+
+ DCOPRef mediamanager("kded", "mediamanager");
+ kdDebug() << "properties " << item->url() << endl;
+ DCOPReply reply = mediamanager.call( "properties", item->url().url() );
+
+ if ( !reply.isValid() )
+ return;
+
+ TQVBox* vbox = properties->addVBoxPage(i18n("&Mounting"));
+
+ d = new Private();
+
+ d->page = new PropertiesPage(vbox, Medium::create(reply).id());
+ connect(d->page, TQT_SIGNAL(changed()),
+ TQT_SLOT(slotChanged()));
+
+ // TQTimer::singleShot(100, this, TQT_SLOT(slotChanged()));
+
+}
+
+void PropsDlgSharePlugin::slotChanged()
+{
+ kdDebug() << "slotChanged()\n";
+ setDirty(true);
+}
+
+PropsDlgSharePlugin::~PropsDlgSharePlugin()
+{
+ delete d;
+}
+
+void PropsDlgSharePlugin::applyChanges()
+{
+ kdDebug() << "applychanges\n";
+ if (!d->page->save()) {
+ properties->abortApplying();
+ }
+}
+
+
+#include "propsdlgshareplugin.moc"
+
diff --git a/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.h b/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.h
new file mode 100644
index 000000000..87b7d1e13
--- /dev/null
+++ b/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.h
@@ -0,0 +1,44 @@
+/*
+ Copyright (c) 2004 Jan Schaefer <[email protected]>
+
+ 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 Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KONQFILESHAREPLUGIN_H
+#define KONQFILESHAREPLUGIN_H
+
+#include <kpropertiesdialog.h>
+
+class PropsDlgSharePlugin : public KPropsDlgPlugin
+{
+Q_OBJECT
+public:
+ PropsDlgSharePlugin( KPropertiesDialog *dlg, const char *, const TQStringList & );
+ virtual ~PropsDlgSharePlugin();
+ virtual void applyChanges();
+
+public slots:
+ void slotChanged();
+
+private:
+ class Private;
+ Private *d;
+
+};
+
+#endif
+
+