hidden directory crash - analysis..

Joseph Wenninger jowenn at kde.org
Mon Feb 24 18:56:22 GMT 2003


Hi

The attached patch isn't the complete implementation yet, but it would
allow configuring the visibility of hidden directories on a per tree
base. In the 3.1 branch it would need a modification in the config files
for showing hidden directories, in head a configuration gui could be
added. Basically it's the same you Waldo's fix, but with the ability to
make it configurable.

What do you think ?

Kind regards
Joseph Wenninger

Am Fre, 2003-02-21 um 23.52 schrieb Waldo Bastian:
> On Friday 21 February 2003 20:25, Maksim Orlovich wrote:
> > Since I don't think it'd be backwards compatible to make
> > KDirLister::setShowDotFiles context dependent,
> 
> KDirLister is not really designed to have different settings for different 
> directories. It will be very hairy to add it.
> 
> > the setting in the sidebar
> > treeview should probably be fixed to the one of the view's root directory.
> 
> The attached patch does this. However, it now becomes very obvious that the 
> "show hidden files" menu-option has no effect on the dirtree. I'm not sure if 
> there is a simple way to make it follow the other view in this regard, but 
> otherwise I would like to suggest to simply disable showing dotfiles in the 
> directory tree and be done with it. (also attached)
> 
> Cheers,
> Waldo
> -- 
> bastian at kde.org -=|[ SuSE, The Linux Desktop Experts ]|=- bastian at suse.com
> ----
> 



-------------- next part --------------
? sidebar_trees.diff
Index: konq_sidebartree.cpp
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/konq_sidebartree.cpp,v
retrieving revision 1.24
diff -u -3 -p -r1.24 konq_sidebartree.cpp
--- konq_sidebartree.cpp	13 Dec 2002 22:53:51 -0000	1.24
+++ konq_sidebartree.cpp	24 Feb 2003 18:38:06 -0000
@@ -629,6 +629,8 @@ void KonqSidebarTree::loadTopLevelItem( 
     // Here's where we need to create the right module...
     // ### TODO: make this KTrader/KLibrary based.
     QString moduleName = cfg.readEntry( "X-KDE-TreeModule" );
+    QString showHidden=cfg.readEntry("X-KDE-TreeModule-ShowHidden","");
+
     if (moduleName.isEmpty()) moduleName="Directory";
     kdDebug(1201) << "##### Loading module: " << moduleName << " file: " << filename << endl;
 
@@ -636,7 +638,8 @@ void KonqSidebarTree::loadTopLevelItem( 
     func=plugins[moduleName];
     if (func!=0)
 	{
-		module=func(this);
+		kdDebug(1201)<<"showHidden: "<<showHidden<<endl;
+		module=func(this,showHidden.upper()=="TRUE");
 	}
 
     if (module==0) {kdDebug()<<"No Module loaded"<<endl; return;}
Index: konq_sidebartree.h
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/konq_sidebartree.h,v
retrieving revision 1.6
diff -u -3 -p -r1.6 konq_sidebartree.h
--- konq_sidebartree.h	18 Jul 2002 06:05:06 -0000	1.6
+++ konq_sidebartree.h	24 Feb 2003 18:38:06 -0000
@@ -38,7 +38,7 @@ class KonqSidebarTree_Internal;
 #define VIRT_Link 0
 #define VIRT_Folder 1 // A directory which is parsed for .desktop files
 
-typedef KonqSidebarTreeModule*(*getModule)(KonqSidebarTree*); 
+typedef KonqSidebarTreeModule*(*getModule)(KonqSidebarTree*, const bool); 
 
 typedef struct DirTreeConfigData_
 {
Index: konq_sidebartreemodule.h
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/konq_sidebartreemodule.h,v
retrieving revision 1.2
diff -u -3 -p -r1.2 konq_sidebartreemodule.h
--- konq_sidebartreemodule.h	15 Jan 2003 14:48:19 -0000	1.2
+++ konq_sidebartreemodule.h	24 Feb 2003 18:38:06 -0000
@@ -34,8 +34,8 @@ class KonqSidebarTree;
 class KonqSidebarTreeModule
 {
 public:
-    KonqSidebarTreeModule( KonqSidebarTree * parentTree )
-        : m_pTree( parentTree ) {}
+    KonqSidebarTreeModule( KonqSidebarTree * parentTree , bool showHidden=false)
+        : m_pTree( parentTree ), m_showHidden(showHidden) {}
     virtual ~KonqSidebarTreeModule() {}
 
     // Handle this new toplevel item [can only be called once currently]
@@ -50,9 +50,12 @@ public:
     virtual void followURL( const KURL & ) {}
 
     KonqSidebarTree *tree() const { return m_pTree; }
+    bool showHidden() { return m_showHidden;}
+    virtual void setShowHidden(bool showhidden) {m_showHidden=showhidden;}
 
 protected:
     KonqSidebarTree * m_pTree;
+    bool m_showHidden;
 };
 
 
Index: konqsidebar_tree.cpp
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/konqsidebar_tree.cpp,v
retrieving revision 1.10
diff -u -3 -p -r1.10 konqsidebar_tree.cpp
--- konqsidebar_tree.cpp	27 Feb 2002 22:21:36 -0000	1.10
+++ konqsidebar_tree.cpp	24 Feb 2003 18:38:06 -0000
@@ -132,6 +132,7 @@ extern "C"
 			map->insert("URL",ksc2.readEntry("X-KDE-Default-URL"));
 			map->insert("X-KDE-KonqSidebarModule","konqsidebar_tree");
 			map->insert("X-KDE-TreeModule",ksc2.readEntry("X-KDE-TreeModule"));
+			map->insert("X-KDE-TreeModule-ShowHidden",ksc2.readEntry("X-KDE-TreeModule-ShowHidden"));
 			fn->setLatin1("dirtree%1.desktop");
 			return true;
 		}
Index: bookmark_module/bookmark_module.cpp
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/bookmark_module/bookmark_module.cpp,v
retrieving revision 1.4
diff -u -3 -p -r1.4 bookmark_module.cpp
--- bookmark_module/bookmark_module.cpp	4 Mar 2002 23:53:54 -0000	1.4
+++ bookmark_module/bookmark_module.cpp	24 Feb 2003 18:38:06 -0000
@@ -107,7 +107,7 @@ KonqSidebarBookmarkItem * KonqSidebarBoo
 
 extern "C"
 {
-   KonqSidebarTreeModule* create_konq_sidebartree_bookmarks(KonqSidebarTree* par)
+   KonqSidebarTreeModule* create_konq_sidebartree_bookmarks(KonqSidebarTree* par,const bool)
 	{
 		return new KonqSidebarBookmarkModule(par);
 	} 
Index: dirtree_module/dirtree_module.cpp
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/dirtree_module/dirtree_module.cpp,v
retrieving revision 1.21
diff -u -3 -p -r1.21 dirtree_module.cpp
--- dirtree_module/dirtree_module.cpp	21 Oct 2002 04:21:08 -0000	1.21
+++ dirtree_module/dirtree_module.cpp	24 Feb 2003 18:38:06 -0000
@@ -28,8 +28,8 @@
 #include <kdirlister.h>
 
 
-KonqSidebarDirTreeModule::KonqSidebarDirTreeModule( KonqSidebarTree * parentTree )
-    : KonqSidebarTreeModule( parentTree ), m_dirLister(0L), m_topLevelItem(0L), m_pProps(0L)
+KonqSidebarDirTreeModule::KonqSidebarDirTreeModule( KonqSidebarTree * parentTree , bool showHidden)
+    : KonqSidebarTreeModule( parentTree, showHidden ), m_dirLister(0L), m_topLevelItem(0L), m_pProps(0L)
 {
     // Used to be static...
     s_defaultViewProps = new KonqPropsView(
@@ -207,7 +207,7 @@ void KonqSidebarDirTreeModule::listDirec
     // newProps returns true the first time, and any time something might
     // have changed.
     /*bool newProps = */m_pProps->enterDir( url );
-    m_dirLister->setShowingDotFiles( m_pProps->isShowingDotFiles() );
+    m_dirLister->setShowingDotFiles( showHidden()); //m_pProps->isShowingDotFiles() );
     
     if (tree()->isOpeningFirstChild()) m_dirLister->setAutoErrorHandlingEnabled(false,0);
 	else m_dirLister->setAutoErrorHandlingEnabled(true,tree());
@@ -418,9 +418,9 @@ void KonqSidebarDirTreeModule::followURL
 
 extern "C"
 {
-        KonqSidebarTreeModule *create_konq_sidebartree_dirtree(KonqSidebarTree* par)
+        KonqSidebarTreeModule *create_konq_sidebartree_dirtree(KonqSidebarTree* par,const bool showHidden)
 	{
-		return new KonqSidebarDirTreeModule(par);
+		return new KonqSidebarDirTreeModule(par,showHidden);
 	}
 }
 
Index: dirtree_module/dirtree_module.h
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/dirtree_module/dirtree_module.h,v
retrieving revision 1.6
diff -u -3 -p -r1.6 dirtree_module.h
--- dirtree_module/dirtree_module.h	23 Jan 2002 23:46:40 -0000	1.6
+++ dirtree_module/dirtree_module.h	24 Feb 2003 18:38:06 -0000
@@ -34,7 +34,7 @@ class KonqSidebarDirTreeModule : public 
 {
     Q_OBJECT
 public:
-    KonqSidebarDirTreeModule( KonqSidebarTree * parentTree );
+    KonqSidebarDirTreeModule( KonqSidebarTree * parentTree, bool );
     virtual ~KonqSidebarDirTreeModule();
 
     virtual void addTopLevelItem( KonqSidebarTreeTopLevelItem * item );
Index: history_module/history_module.cpp
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/history_module/history_module.cpp,v
retrieving revision 1.16
diff -u -3 -p -r1.16 history_module.cpp
--- history_module/history_module.cpp	17 Sep 2002 20:22:42 -0000	1.16
+++ history_module/history_module.cpp	24 Feb 2003 18:38:06 -0000
@@ -338,7 +338,7 @@ void KonqSidebarHistoryModule::slotClear
 
 extern "C"
 {
-	KonqSidebarTreeModule* create_konq_sidebartree_history(KonqSidebarTree* par)
+	KonqSidebarTreeModule* create_konq_sidebartree_history(KonqSidebarTree* par, const bool)
 	{
 		return new KonqSidebarHistoryModule(par);
 	}
Index: init/dirtree_module.desktop
===================================================================
RCS file: /home/kde/kdebase/konqueror/sidebar/trees/init/dirtree_module.desktop,v
retrieving revision 1.57
diff -u -3 -p -r1.57 dirtree_module.desktop
--- init/dirtree_module.desktop	21 Jan 2003 13:33:40 -0000	1.57
+++ init/dirtree_module.desktop	24 Feb 2003 18:38:06 -0000
@@ -64,3 +64,4 @@ Open=false
 X-KDE-TreeModule=Directory
 X-KDE-TreeModule-Lib=konq_sidebartree_dirtree
 X-KDE-Default-URL=file:/
+X-KDE-TreeModule-ShowHidden=false


More information about the kfm-devel mailing list