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