summaryrefslogtreecommitdiffstats
path: root/opensuse/core/tdelibs/fileshare.diff
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/core/tdelibs/fileshare.diff')
-rw-r--r--opensuse/core/tdelibs/fileshare.diff296
1 files changed, 0 insertions, 296 deletions
diff --git a/opensuse/core/tdelibs/fileshare.diff b/opensuse/core/tdelibs/fileshare.diff
deleted file mode 100644
index 86f7d0941..000000000
--- a/opensuse/core/tdelibs/fileshare.diff
+++ /dev/null
@@ -1,296 +0,0 @@
---- kio/kfile/kfilesharedlg.cpp
-+++ kio/kfile/kfilesharedlg.cpp 2004/08/06 08:38:31
-@@ -24,6 +24,7 @@
- #include <qradiobutton.h>
- #include <qbuttongroup.h>
- #include <qlayout.h>
-+#include <qlineedit.h>
- #include <kprocess.h>
- #include <kprocio.h>
- #include <klocale.h>
-@@ -93,8 +94,10 @@
- delete m_widget;
- m_rbShare = 0L;
- m_rbUnShare = 0L;
-+ m_rbSharerw = 0L;
- m_widget = new QWidget( d->m_vBox );
- QVBoxLayout * vbox = new QVBoxLayout( m_widget );
-+ //QHBoxLayout * hbox = new QHBoxLayout( vbox );
-
- switch ( KFileShare::authorization() ) {
- case KFileShare::Authorized:
-@@ -105,18 +108,31 @@
- home += '/';
- bool ok = true;
- KFileItemList items = properties->items();
-- // We have 3 possibilities: all shared, all unshared, or mixed.
-+ // We have some possibilities: all shared, all unshared (ro,rw), or mixed.
- bool allShared = true;
- bool allUnshared = true;
-+ bool allreadonly = true;
- KFileItemListIterator it( items );
- for ( ; it.current() && ok; ++it ) {
- QString path = (*it)->url().path();
-+
-+ // 0 => not shared
-+ // 1 => shared read only
-+ // 3 => shared writeable
-+ int dirStatus = KFileShare::isDirectoryShared( path );
- if ( !path.startsWith( home ) )
- ok = false;
-- if ( KFileShare::isDirectoryShared( path ) )
-+ if ( dirStatus == 1 ) {
- allUnshared = false;
-- else
-+ }
-+ else if ( dirStatus == 3 ) {
-+ allUnshared = false;
-+ allreadonly = false;
-+ }
-+ else {
- allShared = false;
-+ allreadonly = false;
-+ }
- }
- if ( !ok )
- {
-@@ -136,16 +152,31 @@
- vbox->addWidget( m_rbUnShare, 0 );
- rbGroup->insert( m_rbUnShare );
-
-- m_rbShare = new QRadioButton( i18n("Shared"), m_widget );
-+ m_rbShare = new QRadioButton( i18n("Shared - read only for others"), m_widget );
- connect( m_rbShare, SIGNAL( toggled(bool) ), SIGNAL( changed() ) );
- vbox->addWidget( m_rbShare, 0 );
- rbGroup->insert( m_rbShare );
-
-+ m_rbSharerw = new QRadioButton( i18n("Shared - writeable for others"), m_widget );
-+ connect( m_rbSharerw, SIGNAL( toggled(bool) ), SIGNAL( changed() ) );
-+ vbox->addWidget( m_rbSharerw, 0 );
-+ rbGroup->insert( m_rbSharerw );
-+
-+ //QLabel *testlabel1 = new QLabel(i18n("Enter Samba Share Name here"),m_widget);
-+ //m_leSmbShareName = new QLineEdit(m_widget);
-+ //m_leSmbShareName->setMaxLength(12);
-+
-+ //hbox->addWidget( testlabel1, 0 );
-+ //hbox->addWidget( m_leSmbShareName );
-+ //vbox->addLayout( hbox );
-+
- // Activate depending on status
- if ( allShared )
-- m_rbShare->setChecked(true);
-+ m_rbSharerw->setChecked(true);
- if ( allUnshared )
- m_rbUnShare->setChecked(true);
-+ if ( allreadonly )
-+ m_rbShare->setChecked(true);
-
- // Some help text
- QLabel *label = new QLabel( i18n("Sharing this folder makes it available under Linux/UNIX (NFS) and Windows (Samba).") , m_widget );
-@@ -204,7 +235,7 @@
- void KFileSharePropsPlugin::applyChanges()
- {
- kdDebug() << "KFileSharePropsPlugin::applyChanges" << endl;
-- if ( m_rbShare && m_rbUnShare )
-+ if ( m_rbShare && m_rbUnShare && m_rbSharerw )
- {
- bool share = m_rbShare->isChecked();
- KFileItemList items = properties->items();
-@@ -212,7 +243,7 @@
- bool ok = true;
- for ( ; it.current() && ok; ++it ) {
- QString path = (*it)->url().path();
-- ok = setShared( path, share );
-+ ok = SuSEsetShared( path, share, m_rbSharerw->isChecked() );
- if (!ok) {
- if (share)
- KMessageBox::detailedError(properties,
-@@ -239,8 +270,14 @@
-
- bool KFileSharePropsPlugin::setShared( const QString& path, bool shared )
- {
-- kdDebug() << "KFileSharePropsPlugin::setShared " << path << "," << shared << endl;
-- return KFileShare::setShared( path, shared );
-+ return SuSEsetShared( path, shared, true );
-+}
-+
-+bool KFileSharePropsPlugin::SuSEsetShared( const QString& path, bool shared, bool readonly )
-+{
-+ kdDebug() << "KFileSharePropsPlugin::setShared " << path << ","
-+ << shared << readonly << endl;
-+ return KFileShare::SuSEsetShared( path, shared, readonly );
- }
-
- QWidget* KFileSharePropsPlugin::page() const
---- kio/kfile/kfilesharedlg.h
-+++ kio/kfile/kfilesharedlg.h 2004/08/06 08:38:31
-@@ -54,10 +54,13 @@
- private:
- void init();
- bool setShared( const QString&path, bool shared );
-+ bool SuSEsetShared( const QString&path, bool shared, bool readonly );
-
- QWidget *m_widget;
- QRadioButton *m_rbShare;
-+ QRadioButton *m_rbSharerw;
- QRadioButton *m_rbUnShare;
-+ //QLineEdit *m_leSmbShareName;
- QPushButton *m_pbConfig;
- class Private;
- Private *d;
---- kio/kio/kfileshare.cpp
-+++ kio/kio/kfileshare.cpp 2004/08/06 08:38:51
-@@ -20,6 +20,7 @@
- #include "kfileshare.h"
- #include <qdir.h>
- #include <qfile.h>
-+#include <qregexp.h>
- #include <kprocess.h>
- #include <kprocio.h>
- #include <klocale.h>
-@@ -35,8 +36,10 @@
- #include <kuser.h>
-
- KFileShare::Authorization KFileShare::s_authorization = NotInitialized;
--QStringList* KFileShare::s_shareList = 0L;
--static KStaticDeleter<QStringList> sdShareList;
-+//QStringList* KFileShare::s_shareList = 0L;
-+//static KStaticDeleter<QStringList> sdShareList;
-+QMap<QString,QString>* KFileShare::s_shareMap = 0L;
-+static KStaticDeleter<QMap<QString,QString> > sdShareMap;
-
- KFileShare::ShareMode KFileShare::s_shareMode;
- bool KFileShare::s_sambaEnabled;
-@@ -164,10 +167,10 @@
- void KFileShare::readShareList()
- {
- KFileSharePrivate::self();
-- if ( !s_shareList )
-- sdShareList.setObject( s_shareList, new QStringList );
-+ if ( !s_shareMap )
-+ sdShareMap.setObject( s_shareMap, new QMap<QString,QString> );
- else
-- s_shareList->clear();
-+ s_shareMap->clear();
-
- // /usr/sbin on Mandrake, $PATH allows flexibility for other distributions
- QString exe = findExe( "filesharelist" );
-@@ -185,29 +188,45 @@
-
- // Reading code shamelessly stolen from khostname.cpp ;)
- QString line;
-+ QString options;
-+ QString path;
- int length;
-+ QRegExp rx_line("([^\\s]+)\\s+(.*)");
- do {
- length = proc.readln(line, true);
- if ( length > 0 )
- {
- if ( line[length-1] != '/' )
- line += '/';
-- s_shareList->append(line);
-+ if( rx_line.search( line ) != -1 ) {
-+ options = rx_line.cap(1);
-+ path = rx_line.cap(2);
-+ (*s_shareMap)[path] = options;
-+ }
- kdDebug(7000) << "Shared dir:" << line << endl;
- }
- } while (length > -1);
- }
-
-
--bool KFileShare::isDirectoryShared( const QString& _path )
-+int KFileShare::isDirectoryShared( const QString& _path )
- {
-- if ( ! s_shareList )
-+ int ret(0);
-+
-+ if ( ! s_shareMap )
- readShareList();
-
- QString path( _path );
- if ( path[path.length()-1] != '/' )
- path += '/';
-- return s_shareList && s_shareList->contains( path );
-+ //return s_shareList && s_shareList->contains( path );
-+ if( (*s_shareMap).contains(path) && !((*s_shareMap)[path].isEmpty()) ) {
-+ ret+=1;
-+ if( (*s_shareMap)[path].find("readwrite") != -1 )
-+ ret+=2;
-+ }
-+
-+ return ret;
- }
-
- KFileShare::Authorization KFileShare::authorization()
-@@ -230,17 +249,30 @@
-
- bool KFileShare::setShared( const QString& path, bool shared )
- {
-+ return SuSEsetShared( path, shared, false );
-+}
-+
-+bool KFileShare::SuSEsetShared( const QString& path, bool shared, bool rw )
-+{
- if (! KFileShare::sharingEnabled() ||
- KFileShare::shareMode() == Advanced)
- return false;
-
-- kdDebug(7000) << "KFileShare::setShared " << path << "," << shared << endl;
- QString exe = KFileShare::findExe( "fileshareset" );
- if (exe.isEmpty())
- return false;
--
-+
-+ // we want to share, so we kick it first - just to be sure
- KProcess proc;
- proc << exe;
-+ proc << "--remove";
-+ proc << path;
-+ proc.start( KProcess::Block );
-+ proc.clearArguments();
-+
-+ proc << exe;
-+ if( rw )
-+ proc << "--rw";
- if ( shared )
- proc << "--add";
- else
---- kio/kio/kfileshare.h
-+++ kio/kio/kfileshare.h 2004/08/06 08:38:31
-@@ -65,7 +65,7 @@
- /**
- * Call this to know if a directory is currently shared
- */
-- static bool isDirectoryShared( const QString& path );
-+ static int isDirectoryShared( const QString& path );
-
- enum Authorization { NotInitialized, ErrorNotFound, Authorized, UserNotAllowed };
- /**
-@@ -83,7 +83,12 @@
- * @returns wether the perl script was successful
- */
- static bool setShared( const QString& path, bool shared );
--
-+
-+ /*
-+ * SuSE only enhancement for now
-+ */
-+ static bool SuSEsetShared( const QString& path, bool shared, bool ro );
-+
- /**
- * The used share mode.
- * Simple means that the simple sharing dialog is used and
-@@ -132,7 +137,8 @@
-
- private:
- static Authorization s_authorization;
-- static QStringList* s_shareList;
-+// static QStringList* s_shareList;
-+ static QMap<QString,QString>* s_shareMap;
- static ShareMode s_shareMode;
- static bool s_sambaEnabled;
- static bool s_nfsEnabled;