diff options
Diffstat (limited to 'redhat/kdebase')
-rw-r--r-- | redhat/kdebase/kdebase-3.5.13-add_usbstorage_panel.patch | 1284 | ||||
-rw-r--r-- | redhat/kdebase/trinity-kdebase-3.5.13.spec | 23 |
2 files changed, 1295 insertions, 12 deletions
diff --git a/redhat/kdebase/kdebase-3.5.13-add_usbstorage_panel.patch b/redhat/kdebase/kdebase-3.5.13-add_usbstorage_panel.patch new file mode 100644 index 000000000..8ac303883 --- /dev/null +++ b/redhat/kdebase/kdebase-3.5.13-add_usbstorage_panel.patch @@ -0,0 +1,1284 @@ +Index: kdebase/kioslave/media/kcmodule/managermoduleview.ui +=================================================================== +--- kdebase/kioslave/media/kcmodule/managermoduleview.ui (revision 604326) ++++ kdebase/kioslave/media/kcmodule/managermoduleview.ui (working copy) +@@ -8,10 +8,13 @@ + <rect> + <x>0</x> + <y>0</y> +- <width>600</width> +- <height>480</height> ++ <width>340</width> ++ <height>476</height> + </rect> + </property> ++ <property name="caption"> ++ <string>ManagerModuleView</string> ++ </property> + <vbox> + <property name="name"> + <cstring>unnamed</cstring> +@@ -49,6 +52,245 @@ + <string>Select this if you want to enable application autostart after mounting a device.</string> + </property> + </widget> ++ <widget class="TQGroupBox"> ++ <property name="name"> ++ <cstring>groupbox_mount</cstring> ++ </property> ++ <property name="title"> ++ <string>Mount options</string> ++ </property> ++ <vbox> ++ <property name="name"> ++ <cstring>unnamed</cstring> ++ </property> ++ <widget class="TQLabel"> ++ <property name="name"> ++ <cstring>textLabel3</cstring> ++ </property> ++ <property name="text"> ++ <string>Here you can specify default mount options for your storage media. Please note that some options are not supported for certain filesystems and/or medium. You will be able to redefine all these options on per-volume basis later, using Properties dialog of the corresponding volume.<br> ++Some of the options are tristate. Leave them "undefined" to let KDE choose the best value depending on your media.</string> ++ </property> ++ <property name="alignment"> ++ <set>WordBreak|AlignVCenter</set> ++ </property> ++ </widget> ++ <widget class="TQLayoutWidget"> ++ <property name="name"> ++ <cstring>layout30</cstring> ++ </property> ++ <grid> ++ <property name="name"> ++ <cstring>unnamed</cstring> ++ </property> ++ <widget class="TQCheckBox" row="1" column="0"> ++ <property name="name"> ++ <cstring>option_ro</cstring> ++ </property> ++ <property name="text"> ++ <string>Read only</string> ++ </property> ++ <property name="whatsThis" stdset="0"> ++ <string>By default, mount all file systems read-only.</string> ++ </property> ++ </widget> ++ <widget class="TQCheckBox" row="2" column="1"> ++ <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="TQCheckBox" row="0" column="1"> ++ <property name="name"> ++ <cstring>option_flush</cstring> ++ </property> ++ <property name="text"> ++ <string>Flushed IO</string> ++ </property> ++ <property name="tristate"> ++ <bool>true</bool> ++ </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" row="3" column="0"> ++ <property name="name"> ++ <cstring>option_sync</cstring> ++ </property> ++ <property name="text"> ++ <string>Synchronous</string> ++ </property> ++ <property name="tristate"> ++ <bool>true</bool> ++ </property> ++ <property name="whatsThis" stdset="0"> ++ <string>All I/O to the file system should be done synchronously.</string> ++ </property> ++ </widget> ++ <widget class="TQCheckBox" row="2" column="0"> ++ <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" row="1" column="1"> ++ <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="TQLayoutWidget" row="3" column="1" rowspan="2" colspan="1"> ++ <property name="name"> ++ <cstring>layout29</cstring> ++ </property> ++ <grid> ++ <property name="name"> ++ <cstring>unnamed</cstring> ++ </property> ++ <widget class="TQLabel" row="1" column="0"> ++ <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><h2>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.</h2> ++ ++<h3><b>Lower</b></h3> ++Force the short name to lower case upon display; store a long name when the short name is not all upper case. ++ ++<h3><b>Windows 95</b></h3> ++Force the short name to upper case upon display; store a long name when the short name is not all upper case. ++ ++<h3><b>Windows NT</b></h3> ++Display the shortname as is; store a long name when the short name is not all lower case or all upper case. ++ ++<h3><b>Mixed</b></h3> ++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" row="0" column="1"> ++ <item> ++ <property name="text"> ++ <string>All Data</string> ++ </property> ++ </item> ++ <item> ++ <property name="text"> ++ <string>Ordered</string> ++ </property> ++ </item> ++ <item> ++ <property name="text"> ++ <string>Writeback</string> ++ </property> ++ </item> ++ <property name="name"> ++ <cstring>option_journaling</cstring> ++ </property> ++ <property name="currentItem"> ++ <number>1</number> ++ </property> ++ </widget> ++ <widget class="TQLabel" row="0" column="0"> ++ <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><h2>Specifies the journalling mode for file data. Metadata is always journaled. </h2> ++ ++<h3><b>All Data</b></h3> ++ 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. ++ ++<h3><b>Ordered</b></h3> ++ All data is forced directly out to the main file system prior to its metadata being committed to the journal. ++ ++<h3><b>Write Back</b></h3> ++ 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" row="1" column="1"> ++ <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> ++ </widget> ++ </grid> ++ </widget> ++ <widget class="TQCheckBox" row="0" column="0"> ++ <property name="name"> ++ <cstring>option_automount</cstring> ++ </property> ++ <property name="text"> ++ <string>Mount automatically</string> ++ </property> ++ <property name="whatsThis" stdset="0"> ++ <string>By default, mount all file systems automatically.</string> ++ </property> ++ </widget> ++ <widget class="TQCheckBox" row="4" column="0"> ++ <property name="name"> ++ <cstring>option_atime</cstring> ++ </property> ++ <property name="text"> ++ <string>Access time updates</string> ++ </property> ++ <property name="tristate"> ++ <bool>true</bool> ++ </property> ++ <property name="whatsThis" stdset="0"> ++ <string>Update inode access time for each access.</string> ++ </property> ++ </widget> ++ </grid> ++ </widget> ++ </vbox> ++ </widget> + <spacer> + <property name="name"> + <cstring>spacer1</cstring> +@@ -62,11 +304,40 @@ + <property name="tqsizeHint"> + <size> + <width>21</width> +- <height>360</height> ++ <height>130</height> + </size> + </property> + </spacer> + </vbox> + </widget> ++<connections> ++ <connection> ++ <sender>kcfg_HalBackendEnabled</sender> ++ <signal>toggled(bool)</signal> ++ <receiver>groupbox_mount</receiver> ++ <slot>setEnabled(bool)</slot> ++ </connection> ++</connections> ++<tabstops> ++ <tabstop>kcfg_HalBackendEnabled</tabstop> ++ <tabstop>kcfg_CdPollingEnabled</tabstop> ++ <tabstop>kcfg_AutostartEnabled</tabstop> ++ <tabstop>option_automount</tabstop> ++ <tabstop>option_ro</tabstop> ++ <tabstop>option_quiet</tabstop> ++ <tabstop>option_sync</tabstop> ++ <tabstop>option_atime</tabstop> ++ <tabstop>option_flush</tabstop> ++ <tabstop>option_utf8</tabstop> ++ <tabstop>option_uid</tabstop> ++ <tabstop>option_journaling</tabstop> ++ <tabstop>option_shortname</tabstop> ++</tabstops> ++<includes> ++ <include location="local" impldecl="in implementation">managermoduleview.ui.h</include> ++</includes> ++<functions> ++ <function access="private" specifier="non virtual">init()</function> ++</functions> + <layoutdefaults spacing="6" margin="11"/> + </UI> +Index: kdebase/kioslave/media/kcmodule/managermodule.cpp +=================================================================== +--- kdebase/kioslave/media/kcmodule/managermodule.cpp (revision 604326) ++++ kdebase/kioslave/media/kcmodule/managermodule.cpp (working copy) +@@ -1,5 +1,6 @@ + /* This file is part of the KDE Project + Copyright (c) 2005 Kévin Ottens <ervin ipsquad net> ++ Copyright (c) 2006 Valentine Sinitsyn <e_val@inbox.ru> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public +@@ -20,9 +21,13 @@ + + #include "managermodule.h" + ++#include <kconfig.h> + #include <klocale.h> + #include <dcopref.h> ++#include <tqbutton.h> + #include <tqcheckbox.h> ++#include <tqcombobox.h> ++#include <tqobjectlist.h> + #include <kdirnotify_stub.h> + + #include "managermoduleview.h" +@@ -31,7 +36,7 @@ + ManagerModule::ManagerModule( TQWidget* parent, const char* name ) + : KCModule( parent, name ) + { +- ManagerModuleView *view = new ManagerModuleView( this ); ++ view = new ManagerModuleView( this ); + + addConfig( MediaManagerSettings::self(), view ); + +@@ -49,12 +54,87 @@ + #endif + view->kcfg_CdPollingEnabled->setEnabled( false ); + ++ connect( view->option_automount, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_ro, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_quiet, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_flush, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_uid, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_utf8, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_sync, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_atime, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_shortname, SIGNAL( activated(int) ), this, SLOT( emitChanged() ) ); ++ connect( view->option_journaling, SIGNAL( activated(int) ), this, SLOT( emitChanged() ) ); ++ + load(); ++} ++ ++ ++void ManagerModule::load() ++{ ++ KCModule::load(); ++ ++ KConfig config("mediamanagerrc"); ++ config.setGroup("DefaultOptions"); ++ ++ view->option_automount->setChecked( config.readBoolEntry("automount", false) ); ++ view->option_ro->setChecked( config.readBoolEntry("ro", false) ); ++ view->option_quiet->setChecked( config.readBoolEntry("quiet", false) ); ++ if (config.hasKey("flush")) ++ view->option_flush->setChecked( config.readBoolEntry("flush") ); ++ else ++ view->option_flush->setNoChange(); ++ view->option_uid->setChecked( config.readBoolEntry("uid", true) ); ++ view->option_utf8->setChecked( config.readBoolEntry("utf8", true) ); ++ if (config.hasKey("sync")) ++ view->option_sync->setChecked( config.readBoolEntry("sync") ); ++ else ++ view->option_sync->setNoChange(); ++ if (config.hasKey("atime")) ++ view->option_atime->setChecked( config.readBoolEntry("atime") ); ++ else ++ view->option_atime->setNoChange(); ++ ++ QString value; ++ ++ value = config.readEntry("shortname", "lower").lower(); ++ for (int i = 0; i < view->option_shortname->count(); i++) ++ if (view->option_shortname->text(i).lower() == value) view->option_shortname->setCurrentItem(i); ++ ++ value = config.readEntry("journaling", "ordered").lower(); ++ for (int i = 0; i < view->option_journaling->count(); i++) ++ if (view->option_journaling->text(i).lower() == value) view->option_journaling->setCurrentItem(i); ++ ++ rememberSettings(); + } + + void ManagerModule::save() + { + KCModule::save(); ++ ++ KConfig config("mediamanagerrc"); ++ config.setGroup("DefaultOptions"); ++ ++ config.writeEntry("automount", view->option_automount->isChecked()); ++ config.writeEntry("ro", view->option_ro->isChecked()); ++ config.writeEntry("quiet", view->option_quiet->isChecked()); ++ if (view->option_flush->state() == QButton::NoChange) ++ config.deleteEntry("flush"); ++ else ++ config.writeEntry("flush", view->option_flush->isChecked()); ++ config.writeEntry("uid", view->option_uid->isChecked()); ++ config.writeEntry("utf8", view->option_utf8->isChecked()); ++ if (view->option_sync->state() == QButton::NoChange) ++ config.deleteEntry("sync"); ++ else ++ config.writeEntry("sync", view->option_sync->isChecked()); ++ if (view->option_atime->state() == QButton::NoChange) ++ config.deleteEntry("atime"); ++ else ++ config.writeEntry("atime", view->option_atime->isChecked()); ++ config.writeEntry("journaling", view->option_journaling->currentText().lower()); ++ config.writeEntry("shortname", view->option_shortname->currentText().lower()); ++ ++ rememberSettings(); + + //Well... reloadBackends is buggy with HAL, it seems to be linked + //to a bug in the unmaintained Qt3 DBUS binding ;-/ +@@ -70,5 +150,64 @@ + notifier.FilesAdded( "media:/" ); + } + ++void ManagerModule::defaults() ++{ ++ KCModule::defaults(); ++ ++ view->option_automount->setChecked(false); ++ view->option_ro->setChecked(false); ++ view->option_quiet->setChecked(false); ++ view->option_flush->setNoChange(); ++ view->option_uid->setChecked(true); ++ view->option_utf8->setChecked(true); ++ view->option_sync->setNoChange(); ++ view->option_atime->setNoChange(); ++ view->option_journaling->setCurrentItem(1); ++ view->option_shortname->setCurrentItem(0); ++} + ++void ManagerModule::rememberSettings() ++{ ++ QObjectList *options = view->queryList(0, "^option_"); ++ QObject *current = 0; ++ QObjectListIterator it(*options); ++ ++ settings.clear(); ++ while ( (current = it.current()) != 0 ) { ++ if (current->isA("QCheckBox")) ++ settings[current] = ((QCheckBox *)current)->state(); ++ else if (current->isA("QComboBox")) ++ settings[current] = ((QComboBox *)current)->currentItem(); ++ ++it; ++ } ++ delete options; ++ ++} ++ ++void ManagerModule::emitChanged() ++{ ++ QObjectList *options = view->queryList(0, "^option_"); ++ QObject *current = 0; ++ QObjectListIterator it(*options); ++ int value = -1; ++ bool somethingChanged = false; ++ ++ while ( (current = it.current()) != 0 ) { ++ if (current->isA("QCheckBox")) ++ value = ((QCheckBox *)current)->state(); ++ else if (current->isA("QComboBox")) ++ value = ((QComboBox *)current)->currentItem(); ++ ++ if (settings[current] != value) { ++ somethingChanged = true; ++ break; ++ } ++ ++ ++it; ++ } ++ delete options; ++ ++ emit changed(somethingChanged); ++} ++ + #include "managermodule.moc" +Index: kdebase/kioslave/media/kcmodule/main.cpp +=================================================================== +--- kdebase/kioslave/media/kcmodule/main.cpp (revision 604326) ++++ kdebase/kioslave/media/kcmodule/main.cpp (working copy) +@@ -67,6 +67,7 @@ + I18N_NOOP("(c) 2005 Jean-Remy Falleri")); + about->addAuthor("Jean-Remy Falleri", I18N_NOOP("Maintainer"), "jr.falleri@laposte.net"); + about->addAuthor("Kevin Ottens", 0, "ervin ipsquad net"); ++ about->addAuthor("Valentine Sinitsyn", 0, "e_val@inbox.ru"); + about->addCredit("Achim Bohnet", I18N_NOOP("Help for the application design")); + + setAboutData( about ); +Index: kdebase/kioslave/media/kcmodule/managermodule.h +=================================================================== +--- kdebase/kioslave/media/kcmodule/managermodule.h (revision 604326) ++++ kdebase/kioslave/media/kcmodule/managermodule.h (working copy) +@@ -1,5 +1,6 @@ + /* This file is part of the KDE Project + Copyright (c) 2005 Kévin Ottens <ervin ipsquad net> ++ Copyright (c) 2006 Valentine Sinitsyn <e_val@inbox.ru> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public +@@ -19,8 +20,11 @@ + #ifndef _MANAGERMODULE_H_ + #define _MANAGERMODULE_H_ + ++#include <tqmap.h> + #include <kcmodule.h> + ++class ManagerModuleView; ++ + class ManagerModule : public KCModule + { + Q_OBJECT +@@ -28,7 +32,18 @@ + public: + ManagerModule( TQWidget* parent = 0, const char* name = 0); + ++ void load(); + void save(); ++ void defaults(); ++ ++private: ++ void rememberSettings(); ++ ++ ManagerModuleView *view; ++ TQMap<TQObject *, int> settings; ++ ++private slots: ++ void emitChanged(); + }; + + #endif +Index: kdebase/kioslave/media/kcmodule/managermoduleview.ui.h +=================================================================== +--- kdebase/kioslave/media/kcmodule/managermoduleview.ui.h (revision 0) ++++ kdebase/kioslave/media/kcmodule/managermoduleview.ui.h (revision 0) +@@ -0,0 +1,18 @@ ++/**************************************************************************** ++** ui.h extension file, included from the uic-generated form implementation. ++** ++** If you want to add, delete, or rename functions or slots, use ++** Qt Designer to update this file, preserving your code. ++** ++** You should not define a constructor or destructor in this file. ++** Instead, write your code in functions called init() and destroy(). ++** These will automatically be called by the form's constructor and ++** destructor. ++*****************************************************************************/ ++ ++void ManagerModuleView::init() ++{ ++ option_flush->setNoChange(); ++ option_sync->setNoChange(); ++ option_atime->setNoChange(); ++} +Index: kdebase/kioslave/media/propsdlgplugin/propertiespage.cpp +=================================================================== +--- kdebase/kioslave/media/propsdlgplugin/propertiespage.cpp (revision 604326) ++++ kdebase/kioslave/media/propsdlgplugin/propertiespage.cpp (working copy) +@@ -140,12 +140,23 @@ + 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")) ++ !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 { + +@@ -198,6 +210,7 @@ + } + 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; + +Index: kdebase/kioslave/media/propsdlgplugin/propertiespagegui.ui +=================================================================== +--- kdebase/kioslave/media/propsdlgplugin/propertiespagegui.ui (revision 604326) ++++ kdebase/kioslave/media/propsdlgplugin/propertiespagegui.ui (working copy) +@@ -8,207 +8,207 @@ + <rect> + <x>0</x> + <y>0</y> +- <width>527</width> +- <height>476</height> ++ <width>219</width> ++ <height>446</height> + </rect> + </property> +- <hbox> ++ <property name="caption"> ++ <string>PropertiesPageGUI</string> ++ </property> ++ <vbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> +- <property name="margin"> +- <number>0</number> +- </property> +- <widget class="TQLayoutWidget"> ++ <widget class="TQCheckBox"> + <property name="name"> +- <cstring>layout17</cstring> ++ <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="TQGroupBox"> ++ <widget class="TQLayoutWidget"> + <property name="name"> +- <cstring>groupbox_generic</cstring> ++ <cstring>layout15</cstring> + </property> +- <property name="title"> +- <string>Generic Mount Options</string> +- </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>layout15</cstring> ++ <cstring>layout14</cstring> + </property> +- <vbox> ++ <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> +- <widget class="TQCheckBox"> ++ <widget class="TQLabel"> + <property name="name"> +- <cstring>option_ro</cstring> ++ <cstring>textLabel3</cstring> + </property> + <property name="text"> +- <string>Read only</string> ++ <string>Mountpoint:</string> + </property> +- <property name="whatsThis" stdset="0"> +- <string>Mount the file system read-only.</string> ++ <property name="buddy" stdset="0"> ++ <cstring>option_mountpoint</cstring> + </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> ++ <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="TQCheckBox"> ++ <widget class="TQLineEdit"> + <property name="name"> +- <cstring>option_sync</cstring> ++ <cstring>option_mountpoint</cstring> + </property> + <property name="text"> +- <string>Synchronous</string> ++ <string></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> ++ </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> +- <widget class="TQGroupBox"> ++ </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>groupbox_specific</cstring> ++ <cstring>layout11</cstring> + </property> +- <property name="title"> +- <string>Filesystem Specific Mount Options</string> +- </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>layout11</cstring> ++ <cstring>layout7</cstring> + </property> +- <vbox> ++ <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> +- <widget class="TQCheckBox"> ++ <widget class="TQLabel"> + <property name="name"> +- <cstring>option_flush</cstring> ++ <cstring>text_journaling</cstring> + </property> + <property name="text"> +- <string>Flushed IO</string> ++ <string>Journaling:</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 name="buddy" stdset="0"> ++ <cstring>option_journaling</cstring> + </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><h2>Specifies the journalling mode for file data. Metadata is always journaled. </h2> ++ <string><h2>Specifies the journalling mode for file data. Metadata is always journaled. </h2> + + <h3><b>All Data</b></h3> + 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. +@@ -218,29 +218,29 @@ + + <h3><b>Write Back</b></h3> + 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><h2>Specifies the journalling mode for file data. Metadata is always journaled. </h2> ++ </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><h2>Specifies the journalling mode for file data. Metadata is always journaled. </h2> + + <h3><b>All Data</b></h3> + 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. +@@ -250,30 +250,30 @@ + + <h3><b>Write Back</b></h3> + 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> ++ </property> + </widget> +- <widget class="TQLayoutWidget"> ++ </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>layout14</cstring> ++ <cstring>text_shortname</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><h2>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.</h2> ++ <property name="text"> ++ <string>Short names:</string> ++ </property> ++ <property name="buddy" stdset="0"> ++ <cstring>option_shortname</cstring> ++ </property> ++ <property name="whatsThis" stdset="0"> ++ <string><h2>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.</h2> + + <h3><b>Lower</b></h3> + Force the short name to lower case upon display; store a long name when the short name is not all upper case. +@@ -286,34 +286,34 @@ + + <h3><b>Mixed</b></h3> + 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><h2>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.</h2> ++ </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><h2>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.</h2> + + <h3><b>Lower</b></h3> + Force the short name to lower case upon display; store a long name when the short name is not all upper case. +@@ -326,42 +326,40 @@ + + <h3><b>Mixed</b></h3> + Display the short name as is; store a long name when the short name is not all upper case.</string> +- </property> +- </widget> +- </hbox> ++ </property> + </widget> +- </vbox> ++ </hbox> + </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="tqsizeHint"> +- <size> +- <width>20</width> +- <height>20</height> +- </size> +- </property> +- </spacer> + </vbox> + </widget> +- </hbox> ++ <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="tqsizeHint"> ++ <size> ++ <width>20</width> ++ <height>20</height> ++ </size> ++ </property> ++ </spacer> ++ </vbox> + </widget> + <connections> + <connection> +Index: kdebase/kioslave/media/mediamanager/halbackend.cpp +=================================================================== +--- kdebase/kioslave/media/mediamanager/halbackend.cpp (revision 604326) ++++ kdebase/kioslave/media/mediamanager/halbackend.cpp (working copy) +@@ -1,5 +1,6 @@ + /* This file is part of the KDE Project + Copyright (c) 2004-2005 Jérôme Lodewyck <jerome dot lodewyck at normalesup dot org> ++ Copyright (c) 2006 Valentine Sinitsyn <e_val@inbox.ru> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public +@@ -56,9 +57,7 @@ + { + char* _ppt_string; + TQString _ppt_QString; +- DBusError error; +- dbus_error_init(&error); +- _ppt_string = libhal_device_get_property_string(ctx, udi, key, &error); ++ _ppt_string = libhal_device_get_property_string(ctx, udi, key, NULL); + if ( _ppt_string ) + _ppt_QString = _ppt_string; + libhal_free_string(_ppt_string); +@@ -929,7 +928,16 @@ + } + + KConfig config("mediamanagerrc"); +- config.setGroup(name); ++ ++ bool use_defaults = true; ++ if (config.hasGroup(name)) ++ { ++ config.setGroup(name); ++ use_defaults = config.readBoolEntry("use_defaults", false); ++ } ++ ++ if (use_defaults) ++ config.setGroup("DefaultOptions"); + + char ** array = libhal_device_get_property_strlist(m_halContext, volume_udi.latin1(), "volume.mount.valid_options", NULL); + TQMap<TQString,bool> valids; +@@ -944,6 +952,8 @@ + libhal_free_string_array(array); + TQStringList result; + TQString tmp; ++ ++ result << TQString("use_defaults=%1").arg(use_defaults ? "true" : "false"); + + TQString fstype = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.fstype"); + if (fstype.isNull()) +@@ -956,9 +966,18 @@ + removable = libhal_device_get_property_bool(m_halContext, drive_udi.latin1(), "storage.removable", NULL) + || libhal_device_get_property_bool(m_halContext, drive_udi.latin1(), "storage.hotpluggable", NULL); + +- config.setGroup(drive_udi); +- bool value = config.readBoolEntry("automount", false); +- config.setGroup(name); ++ bool value; ++ if (use_defaults) ++ { ++ value = config.readBoolEntry("automount", false); ++ } ++ else ++ { ++ QString current_group = config.group(); ++ config.setGroup(drive_udi); ++ value = config.readBoolEntry("automount", false); ++ config.setGroup(current_group); ++ } + + if (libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_blank", NULL) + || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_vcd", NULL) +@@ -1083,7 +1099,7 @@ + + TQMap<TQString,TQString> valids = MediaManagerUtils::splitOptions(options); + +- const char *names[] = { "ro", "quiet", "atime", "uid", "utf8", "flush", "sync", 0 }; ++ const char *names[] = { "use_defaults", "ro", "quiet", "atime", "uid", "utf8", "flush", "sync", 0 }; + for (int index = 0; names[index]; ++index) + if (valids.contains(names[index])) + config.writeEntry(names[index], valids[names[index]] == "true"); diff --git a/redhat/kdebase/trinity-kdebase-3.5.13.spec b/redhat/kdebase/trinity-kdebase-3.5.13.spec index 483f03611..c70115656 100644 --- a/redhat/kdebase/trinity-kdebase-3.5.13.spec +++ b/redhat/kdebase/trinity-kdebase-3.5.13.spec @@ -1,17 +1,10 @@ -# Default version for this component -%if "%{?version}" == "" -%define version 3.5.13 -%endif -%define release 21 - # If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt". %if "%{?_prefix}" != "/usr" %define _variant .opt -%define _docdir %{_prefix}/share/doc +%define _docdir %{_datadir}/doc %endif # TDE 3.5.13 specific building variables -BuildRequires: cmake >= 2.8 %define tde_docdir %{_docdir}/kde %define tde_libdir %{_libdir}/trinity @@ -23,8 +16,8 @@ BuildRequires: cmake >= 2.8 Name: trinity-kdebase -Version: %{?version} -Release: %{?release}%{?dist}%{?_variant} +Version: 3.5.13 +Release: 22%{?release}%{?dist}%{?_variant} License: GPL Summary: Trinity Base Programs Group: User Interface/Desktops @@ -61,7 +54,7 @@ Patch9: kdebase-3.5.13-startkde_ldpreload.patch Patch10: kdebase-3.5.13-kdesu-noignorebutton.patch ## [kdebase/kdesktop] Modifies 'open terminal here' on desktop [RHEL/Fedora] Patch11: kdebase-3.5.12-desktop-openterminalhere.patch -## [kdebase/kioslave] Forces HAL backend to use HAL mount options [RHEL/Fedora] +## [kdebase/kioslave] Forces HAL backend to use HAL mount options [Bug #986] Patch12: kdebase-3.5.12-halmountoptions.patch ## [kdebase/kdm/kfrontend] Global Xsession file is '/etc/X11/xinit/Xsession' [RHEL/Fedora] Patch13: kdebase-3.5.13-genkdmconf_Xsession_location.patch @@ -139,7 +132,8 @@ Patch51: kdebase-3.5.13-engage_lock_in_near_real_time_continued.patch Patch52: kdebase-3.5.13-fix_lock_failure.patch ## [kdebase/kioslave] Temporary fix for a probable race condition on some systems. [Bug #760] Patch53: kdebase-3.5.13-fix_race_condition.patch - +## [kdebase] Adds USB default mount options in control panel [Bug #986] +Patch54: kdebase-3.5.13-add_usbstorage_panel.patch ### FEDORA / RHEL distribution-specific settings ### @@ -194,6 +188,7 @@ Requires: redhat-indexhtml %endif +BuildRequires: cmake >= 2.8 BuildRequires: tqtinterface-devel BuildRequires: trinity-arts-devel BuildRequires: trinity-kdelibs-devel @@ -384,6 +379,7 @@ Protocol handlers (KIOslaves) for personal information management, including: %patch51 -p1 %patch52 -p1 %patch53 -p1 +%patch54 -p1 # Applies an optional distro-specific graphical theme %if "%{?tde_bg}" != "" @@ -770,6 +766,9 @@ update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : %{_datadir}/cmake/*.cmake %changelog +* Sat May 05 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-22 +- Adds panel to choose default mounting options for removable storage [Bug #986] + * Mon Apr 30 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-21 - Commit the rest of 8d521d0b, not merged due to GIT glitch [Commit #49526413] |