summaryrefslogtreecommitdiffstats
path: root/krusader/VFS/virt_vfs.h
blob: 2cf880fe4a7366e8b7be8667e420b04ce5ad0481 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/***************************************************************************
                          virt_vfs.h  -  description
                             -------------------
    begin                : Fri Dec 5 2003
    copyright            : (C) 2003 by Shie Erlich & Rafi Yanai
    email                : 
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef VIRT_VFS_H
#define VIRT_VFS_H

#include <kconfig.h>

#include "vfs.h"

/**
  *@author Shie Erlich & Rafi Yanai
  */

class virt_vfs : public vfs  {
Q_OBJECT
public: 
	virt_vfs(QObject* panel, bool quiet=false);
	~virt_vfs();
	
	/// Copy a file to the vfs (physical).
	void vfs_addFiles(KURL::List *fileUrls,KIO::CopyJob::CopyMode mode,QObject* toNotify,QString dir = "",  PreserveMode pmode = PM_DEFAULT );	
	/// Remove a file from the vfs (physical)
	void vfs_delFiles(QStringList *fileNames);	
	/// Remove a file from the collection (only its link, not the file)
	void vfs_removeFiles(QStringList *fileNames);	
	/// Return a list of URLs for multiple files	
	KURL::List* vfs_getFiles(QStringList* names);
	/// Return a URL to a single file	
	KURL vfs_getFile(const QString& name);
	/// Create a new directory
	void vfs_mkdir(const QString& name);
	/// Rename file
	void vfs_rename(const QString& fileName,const QString& newName);
	/// Calculate the amount of space occupied by a file or directory (recursive).
	virtual void vfs_calcSpace(QString name ,KIO::filesize_t *totalSize,unsigned long *totalFiles,unsigned long *totalDirs, bool * stop);
	
	/// Return the VFS working dir
	QString vfs_workingDir(){ return QString::null; }
	
protected slots:
	void slotStatResult(KIO::Job *job);

protected:
	/// Save the dictionary to file
	bool save();
	/// Restore the dictionary from file
	bool restore();	
	/// return the URLs DB
	KConfig*  getVirtDB();

	bool populateVfsList(const KURL& origin, bool showHidden);
	vfile* stat(const KURL& url);
	
	static QDict<KURL::List> virtVfsDict;
	static KConfig* virt_vfs_db;
	bool busy;
	QString path;
	KIO::UDSEntry entry;
};

#endif