[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    [PATCH] Bug 58580 - Konqueror sidebar settings not stored in profile
From:       Andre Moreira Magalhaes <andrunko () yahoo ! com ! br>
Date:       2004-10-28 3:04:21
Message-ID: 20041028030421.36822.qmail () web51903 ! mail ! yahoo ! com
[Download RAW message or body]

I have fixed the bug 58580, and i would like to know what you think
about. I really believe that the sidebar need a rewrite but anyway the
patch fix the bug. 

i have done another patches including a new sidebar look. if somebody
want to take a look, the link is:
http://www.kde-apps.org/content/show.php?content=16962

ok to commit?

cheers
Andrunko

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
["bug58580.diff" (text/x-diff)]

Index: konqueror/konq_mainwindow.cc
===================================================================
RCS file: /home/kde/kdebase/konqueror/konq_mainwindow.cc,v
retrieving revision 1.1364
diff -u -p -r1.1364 konq_mainwindow.cc
--- konqueror/konq_mainwindow.cc	21 Oct 2004 14:14:47 -0000	1.1364
+++ konqueror/konq_mainwindow.cc	28 Oct 2004 01:56:21 -0000
@@ -4193,6 +4193,11 @@ QString KonqExtendedBookmarkOwner::curre
    return m_pKonqMainWindow->currentURL();
 }
 
+QString KonqMainWindow::currentProfile() const
+{
+   return m_pViewManager->currentProfile();
+}
+
 QString KonqMainWindow::currentURL() const
 {
   if ( !m_currentView )
Index: konqueror/konq_mainwindow.h
===================================================================
RCS file: /home/kde/kdebase/konqueror/konq_mainwindow.h,v
retrieving revision 1.440
diff -u -p -r1.440 konq_mainwindow.h
--- konqueror/konq_mainwindow.h	12 Sep 2004 22:02:55 -0000	1.440
+++ konqueror/konq_mainwindow.h	28 Oct 2004 01:56:21 -0000
@@ -93,6 +93,7 @@ class KonqMainWindow : public KParts::Ma
   Q_PROPERTY( QString currentTitle READ currentTitle )
   Q_PROPERTY( QString currentURL READ currentURL )
   Q_PROPERTY( bool isHTMLAllowed READ isHTMLAllowed )
+  Q_PROPERTY( QString currentProfile READ currentProfile  )
 public:
   enum ComboAction { ComboClear, ComboAdd, ComboRemove };
 
@@ -297,6 +298,7 @@ public:
 
   QString currentTitle() const;
   QString currentURL() const;
+  QString currentProfile() const;
 
   QStringList configModules() const;
 
Index: konqueror/profile_filemanagement.desktop
===================================================================
RCS file: /home/kde/kdebase/konqueror/profile_filemanagement.desktop,v
retrieving revision 1.166
diff -u -p -r1.166 profile_filemanagement.desktop
--- konqueror/profile_filemanagement.desktop	27 Oct 2004 02:59:56 -0000	1.166
+++ konqueror/profile_filemanagement.desktop	28 Oct 2004 01:56:21 -0000
@@ -70,7 +70,6 @@ Name[xx]=xxFile Managementxx
 Name[zh_TW]=檔案管理
 Name[zu]=Ukuphathwa kwamafayela
 RootItem=Container0
-View1__OpenViews=services.desktop
 View1_LinkedView=true
 View1_PassiveMode=true
 View1_ServiceName=konq_sidebartng
Index: konqueror/profile_filepreview.desktop
===================================================================
RCS file: /home/kde/kdebase/konqueror/profile_filepreview.desktop,v
retrieving revision 1.122
diff -u -p -r1.122 profile_filepreview.desktop
--- konqueror/profile_filepreview.desktop	27 Oct 2004 02:59:56 -0000	1.122
+++ konqueror/profile_filepreview.desktop	28 Oct 2004 01:56:21 -0000
@@ -70,7 +70,6 @@ Name[xx]=xxFile Previewxx
 Name[zh_TW]=檔案 覽
 Name[zu]=Umbukiso wangaphambili wefayela
 RootItem=Container0
-View1__OpenViews=home.desktop
 View1_LinkedView=true
 View1_LockedLocation=false
 View1_PassiveMode=true
Index: konqueror/sidebar/Makefile.am
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/Makefile.am,v
retrieving revision 1.26
diff -u -p -r1.26 Makefile.am
--- konqueror/sidebar/Makefile.am	2 Feb 2004 10:42:00 -0000	1.26
+++ konqueror/sidebar/Makefile.am	28 Oct 2004 01:56:22 -0000
@@ -39,3 +39,6 @@ partrc_DATA = konqsidebartng.rc
 versiondir = $(kde_datadir)/konqsidebartng/entries/
 version_DATA=.version
 
+updatedir = $(kde_datadir)/kconf_update
+update_DATA = konqsidebartng.upd
+update_SCRIPTS = move_konqsidebartng_entries.sh
Index: konqueror/sidebar/konqsidebar.cpp
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/konqsidebar.cpp,v
retrieving revision 1.27
diff -u -p -r1.27 konqsidebar.cpp
--- konqueror/sidebar/konqsidebar.cpp	2 Feb 2004 10:42:00 -0000	1.27
+++ konqueror/sidebar/konqsidebar.cpp	28 Oct 2004 01:56:22 -0000
@@ -29,7 +29,7 @@ KonqSidebar::KonqSidebar( QWidget *paren
 	setInstance( KonqSidebarFactory::instance() );
 	m_extension = 0;
 	// this should be your custom internal widget
-	m_widget = new Sidebar_Widget( parentWidget,this, widgetName ,universalMode);
+	m_widget = new Sidebar_Widget( parentWidget, this, widgetName ,universalMode, \
parentWidget->topLevelWidget()->property("currentProfile").toString() );  m_extension \
= new KonqSidebarBrowserExtension( this, m_widget,"KonqSidebar::BrowserExtension" );  \
connect(m_widget,SIGNAL(started(KIO::Job *)),  this, SIGNAL(started(KIO::Job*)));
Index: konqueror/sidebar/konqsidebartng.rc
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/konqsidebartng.rc,v
retrieving revision 1.4
diff -u -p -r1.4 konqsidebartng.rc
--- konqueror/sidebar/konqsidebartng.rc	21 Nov 2001 15:20:53 -0000	1.4
+++ konqueror/sidebar/konqsidebartng.rc	28 Oct 2004 01:56:22 -0000
@@ -1,2 +1,7 @@
+[filemanagement]
 OpenViews=home.desktop
 SingleWidgetMode=true
+
+[webbrowsing]
+OpenViews=bookmarks.desktop
+SingleWidgetMode=true
Index: konqueror/sidebar/konqsidebartng.upd
===================================================================
RCS file: konqueror/sidebar/konqsidebartng.upd
diff -N konqueror/sidebar/konqsidebartng.upd
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ konqueror/sidebar/konqsidebartng.upd	28 Oct 2004 01:56:22 -0000
@@ -0,0 +1,12 @@
+Id=konqsidebartng_rc
+File=konqsidebartng.rc
+Group=<default>,webbrowsing
+Options=Copy
+AllKeys
+Group=<default>,filemanagement
+Options=Copy
+AllKeys
+RemoveGroup=<default>
+
+Id=konqsidebartng_entries
+Script=move_konqsidebartng_entries.sh,sh
Index: konqueror/sidebar/move_konqsidebartng_entries.sh
===================================================================
RCS file: konqueror/sidebar/move_konqsidebartng_entries.sh
diff -N konqueror/sidebar/move_konqsidebartng_entries.sh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ konqueror/sidebar/move_konqsidebartng_entries.sh	28 Oct 2004 01:56:22 -0000
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+prefix=$(kde-config --localprefix)
+source="$prefix/share/apps/konqsidebartng"
+
+[ -d "$source/entries" ] || exit 0
+
+profiles="filemanagement webbrowsing"
+for profile in $profiles; do
+	dest="$source/$profile/entries"
+	if [ ! -d "$dest" ]; then
+		mkdir -p "$dest" || exit 1
+		cp $source/entries/.version $dest/
+		cp $source/entries/* $dest/
+	fi
+done
+
+rm -rf $source/entries
Index: konqueror/sidebar/sidebar_widget.cpp
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/sidebar_widget.cpp,v
retrieving revision 1.134
diff -u -p -r1.134 sidebar_widget.cpp
--- konqueror/sidebar/sidebar_widget.cpp	21 Sep 2004 16:32:35 -0000	1.134
+++ konqueror/sidebar/sidebar_widget.cpp	28 Oct 2004 01:56:22 -0000
@@ -51,11 +51,12 @@
 
 bool Sidebar_Widget::s_skipInitialCopy=false;
 
-addBackEnd::addBackEnd(QWidget *parent,class QPopupMenu *addmenu,bool universal, \
const char *name) +addBackEnd::addBackEnd(QWidget *parent,class QPopupMenu \
*addmenu,bool universal,const QString &currentProfile, const char *name)  : \
QObject(parent,name),  m_parent(parent)
 {
 	m_universal=universal;
+	m_currentProfile = currentProfile;
 	menu = addmenu;
 	connect(menu,SIGNAL(aboutToShow()),this,SLOT(aboutToShowAddMenu()));
 	connect(menu,SIGNAL(activated(int)),this,SLOT(activatedAddMenu(int)));
@@ -121,7 +122,7 @@ void addBackEnd::doRollBack()
 	if (KMessageBox::questionYesNo(m_parent, i18n("<qt>This removes all your entries \
from the sidebar and adds the system default ones.<BR><B>This procedure is \
irreversible</B><BR>Do you want to proceed?</qt>"))==KMessageBox::Yes)  {
 		KStandardDirs *dirs = KGlobal::dirs();
-		QString loc=dirs->saveLocation("data","konqsidebartng/",true);
+		QString loc=dirs->saveLocation("data","konqsidebartng/" + m_currentProfile + \
"/",true);  QDir dir(loc);
 		QStringList dirEntries = dir.entryList( QDir::Dirs | QDir::NoSymLinks );
 		dirEntries.remove(".");
@@ -135,7 +136,7 @@ void addBackEnd::doRollBack()
 }
 
 
-static QString findFileName(const QString* tmpl,bool universal) {
+static QString findFileName(const QString* tmpl,bool universal, const QString \
&profile) {  QString myFile, filename;
 	KStandardDirs *dirs = KGlobal::dirs();
 	QString tmp = *tmpl;
@@ -144,8 +145,8 @@ static QString findFileName(const QStrin
 		dirs->saveLocation("data", "konqsidebartng/kicker_entries/", true);
 		tmp.prepend("/konqsidebartng/kicker_entries/");
 	} else {
-		dirs->saveLocation("data", "konqsidebartng/entries/", true);
-		tmp.prepend("/konqsidebartng/entries/");
+		dirs->saveLocation("data", "konqsidebartng/" + profile + "/entries/", true);
+		tmp.prepend("/konqsidebartng/" + profile + "/entries/");
 	}
 	filename = tmp.arg("");
 	myFile = locateLocal("data", filename);
@@ -194,7 +195,7 @@ void addBackEnd::activatedAddMenu(int id
 			QString *tmp = new QString("");
 			if (func(tmp,libParam.at(id),&map))
 			{
-				QString myFile = findFileName(tmp,m_universal);
+				QString myFile = findFileName(tmp,m_universal,m_currentProfile);
 
 				if (!myFile.isEmpty())
 				{
@@ -227,8 +228,8 @@ void addBackEnd::activatedAddMenu(int id
 /*                      Sidebar_Widget                        */
 /**************************************************************/
 
-Sidebar_Widget::Sidebar_Widget(QWidget *parent, KParts::ReadOnlyPart *par, const \
                char *name,bool universalMode)
-	:QWidget(parent,name),m_universalMode(universalMode),m_partParent(par)
+Sidebar_Widget::Sidebar_Widget(QWidget *parent, KParts::ReadOnlyPart *par, const \
char *name,bool universalMode, const QString &currentProfile) \
+	:QWidget(parent,name),m_universalMode(universalMode),m_partParent(par),m_currentProfile(currentProfile)
  {
 	m_somethingVisible = false;
 	m_initial = true;
@@ -239,9 +240,14 @@ Sidebar_Widget::Sidebar_Widget(QWidget *
 	m_userMovedSplitter = false;
         //kdDebug() << "**** Sidebar_Widget:SidebarWidget()"<<endl;
 	if (universalMode)
-        	m_path = KGlobal::dirs()->saveLocation("data", \
"konqsidebartng/kicker_entries/", true); +	{
+		m_relPath = "konqsidebartng/kicker_entries/";
+	}
 	else
-	        m_path = KGlobal::dirs()->saveLocation("data", "konqsidebartng/entries/", \
true); +	{
+		m_relPath = "konqsidebartng/" + currentProfile + "/entries/";
+	}
+	m_path = KGlobal::dirs()->saveLocation("data", m_relPath, true);
 	m_buttons.setAutoDelete(true);
 	m_hasStoredUrl = false;
 	m_latestViewed = -1;
@@ -284,7 +290,7 @@ Sidebar_Widget::Sidebar_Widget(QWidget *
 		this, SLOT(activatedMenu(int)));
 
 	m_buttonPopup = 0;
-	addBackEnd *ab = new addBackEnd(this, \
addMenu,universalMode,"Sidebar_Widget-addBackEnd"); +	addBackEnd *ab = new \
addBackEnd(this, addMenu,universalMode,currentProfile,"Sidebar_Widget-addBackEnd");  \
connect(ab, SIGNAL(updateNeeded()),  this, SLOT(updateButtons()));
 	connect(ab, SIGNAL(initialCopyNeeded()),
@@ -297,9 +303,12 @@ Sidebar_Widget::Sidebar_Widget(QWidget *
 	s_skipInitialCopy=true;
 
 	if (universalMode)
-	m_config = new KConfig("konqsidebartng_kicker.rc");
+		m_config = new KConfig("konqsidebartng_kicker.rc");
 	else
-	m_config = new KConfig("konqsidebartng.rc");
+	{
+		m_config = new KConfig("konqsidebartng.rc");
+		m_config->setGroup(currentProfile);
+	}
 	connect(&m_configTimer, SIGNAL(timeout()),
 		this, SLOT(saveConfig()));
         readConfig();
@@ -317,13 +326,8 @@ void Sidebar_Widget::addWebSideBar(const
 	// Look for existing ones with this URL
 	KStandardDirs *dirs = KGlobal::dirs();
 	QString list;
-	if (m_universalMode) {
-		dirs->saveLocation("data", "konqsidebartng/kicker_entries/", true);
-		list = locateLocal("data", "/konqsidebartng/kicker_entries/");
-	} else {
-		dirs->saveLocation("data", "konqsidebartng/entries/", true);
-		list = locateLocal("data", "/konqsidebartng/entries/");
-	}
+	dirs->saveLocation("data", m_relPath, true);
+	list = locateLocal("data", m_relPath);
 
 	// Go through list to see which ones exist.  Check them for the URL
 	QStringList files = QDir(list).entryList("websidebarplugin*.desktop");
@@ -339,7 +343,7 @@ void Sidebar_Widget::addWebSideBar(const
 	}
 
 	QString tmpl = "websidebarplugin%1.desktop";
-	QString myFile = findFileName(&tmpl,m_universalMode);
+	QString myFile = findFileName(&tmpl,m_universalMode,m_currentProfile);
 
 	if (!myFile.isEmpty()) {
 		KSimpleConfig scf(myFile, false);
@@ -359,10 +363,7 @@ void Sidebar_Widget::addWebSideBar(const
 
 void Sidebar_Widget::finishRollBack()
 {
-	if (m_universalMode)
-	        m_path = KGlobal::dirs()->saveLocation("data","konqsidebartng/kicker_entries/",true);
                
-	else
-        	m_path = KGlobal::dirs()->saveLocation("data","konqsidebartng/entries/",true);
 +	m_path = KGlobal::dirs()->saveLocation("data",m_relPath,true);
         initialCopy();
         QTimer::singleShot(0,this,SLOT(updateButtons()));
 }
@@ -1240,16 +1241,7 @@ void Sidebar_Widget::customEvent(QCustom
 		} else {
 			emit fileMouseOver(*static_cast<KonqFileMouseOverEvent*>(ev)->item());
 		}
-	} else if (KonqConfigEvent::test(ev)) {
-		KonqConfigEvent *event = static_cast<KonqConfigEvent*>(ev);
-		if (event->save())
-			event->config()->writeEntry(event->prefix()+"OpenViews",m_visibleViews);
-		else
-		{
-			if (event->config()->hasKey(event->prefix()+"OpenViews"))
-				m_openViews = event->config()->readListEntry(event->prefix()+"OpenViews");
-		}
-	}
+	} 
 }
 
 void Sidebar_Widget::resizeEvent(QResizeEvent* ev)
Index: konqueror/sidebar/sidebar_widget.h
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/sidebar_widget.h,v
retrieving revision 1.55
diff -u -p -r1.55 sidebar_widget.h
--- konqueror/sidebar/sidebar_widget.h	11 Jun 2004 17:55:06 -0000	1.55
+++ konqueror/sidebar/sidebar_widget.h	28 Oct 2004 01:56:22 -0000
@@ -74,7 +74,7 @@ class addBackEnd: public QObject
 {
 	Q_OBJECT
 public:
-	addBackEnd(QWidget *parent,class QPopupMenu *addmenu, bool univeral,const char \
*name=0); +	addBackEnd(QWidget *parent,class QPopupMenu *addmenu, bool univeral, \
const QString &currentProfile, const char *name=0);  ~addBackEnd(){;}
 protected slots:
 	void aboutToShowAddMenu();
@@ -87,6 +87,7 @@ private:
 	QPtrVector<QString> libNames;
 	QPtrVector<QString> libParam;
 	bool m_universal;
+        QString m_currentProfile;
 	void doRollBack();
 	QWidget *m_parent;
 };
@@ -98,7 +99,8 @@ public:
 	friend class ButtonInfo;
 public:
 	Sidebar_Widget(QWidget *parent, KParts::ReadOnlyPart *par,
-						const char * name,bool universalMode);
+						const char * name,bool universalMode, 
+						const QString &currentProfile);
 	~Sidebar_Widget();
 	bool openURL(const class KURL &url);
 	void stdAction(const char *handlestd);
@@ -205,6 +207,8 @@ private:
 	bool m_initial;
 
 	QString m_path;
+	QString m_relPath;
+	QString m_currentProfile;
 	QStringList m_visibleViews; // The views that are actually open
 	QStringList m_openViews; // The views that should be opened
 



>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic