28 #include <KUrlNavigator>
29 #include <KFilePlacesModel>
30 #include <KDirOperator>
31 #include <KActionCollection>
34 #include <kdeversion.h>
36 #include <QtGui/QLayout>
37 #include <QtCore/QDir>
47 QMetaObject::invokeMethod(
this,
"init", Qt::QueuedConnection );
50 void FileSystemBrowserView::init()
52 QVBoxLayout* layout =
new QVBoxLayout(
this );
53 layout->setMargin( 0 );
54 layout->setSpacing( 0 );
57 mToolbar =
new KToolBar(
this );
58 mToolbar->setMovable(
false );
59 mToolbar->setToolButtonStyle( Qt::ToolButtonIconOnly );
60 mToolbar->setIconDimensions( 16 );
61 mToolbar->setContextMenuPolicy( Qt::NoContextMenu );
62 layout->addWidget( mToolbar );
65 KFilePlacesModel* filePlacesModel =
new KFilePlacesModel(
this );
66 mUrlNavigator =
new KUrlNavigator( filePlacesModel , KUrl( QDir::homePath() ),
this );
67 connect( mUrlNavigator, SIGNAL(urlChanged(KUrl)), SLOT(setDirOperatorUrl(KUrl)) );
68 layout->addWidget( mUrlNavigator );
71 mDirOperator =
new KDirOperator( QDir::homePath(),
this );
72 mDirOperator->setView( KFile::Detail );
73 connect( mDirOperator, SIGNAL(urlEntered(KUrl)), SLOT(setNavigatorUrl(KUrl)));
74 connect( mDirOperator, SIGNAL(fileSelected(KFileItem)), SLOT(openFile(KFileItem)) );
75 layout->addWidget( mDirOperator );
78 static const char*
const ToolbarActionNames[] =
79 {
"back",
"forward",
"up",
"home",
"short view",
"detailed view",
"tree view" };
80 static const int ToolbarActionNamesCount =
sizeof(ToolbarActionNames) /
sizeof(ToolbarActionNames[0]);
82 const KActionCollection* dirOperatorActionCollection = mDirOperator->actionCollection();
83 for(
int i = 0; i<ToolbarActionNamesCount; ++i )
85 QAction* action = dirOperatorActionCollection->action( QLatin1String(ToolbarActionNames[i]) );
87 mToolbar->addAction( action );
90 mActionCollection =
new KActionCollection(
this );
91 QAction* syncDirAction = mActionCollection->addAction( QLatin1String(
"sync_dir"),
92 this, SLOT(syncCurrentDocumentDirectory()) );
93 syncDirAction->setIcon( KIcon( QLatin1String(
"go-parent-folder") ) );
94 syncDirAction->setText( i18nc(
"@action:intoolbar",
"Folder of Current Document") );
95 connect( mTool, SIGNAL(hasCurrentUrlChanged(
bool)), syncDirAction, SLOT(setEnabled(
bool)) );
97 mToolbar->addAction( syncDirAction );
101 void FileSystemBrowserView::setDirOperatorUrl(
const KUrl& url )
103 mDirOperator->setUrl( url,
true );
107 void FileSystemBrowserView::setNavigatorUrl(
const KUrl& url )
109 #if KDE_VERSION >= KDE_MAKE_VERSION( 4, 4, 50 )
110 mUrlNavigator->setLocationUrl( url );
112 mUrlNavigator->setUrl( url );
116 void FileSystemBrowserView::syncCurrentDocumentDirectory()
121 setNavigatorUrl( url );
124 void FileSystemBrowserView::openFile(
const KFileItem& fileItem )
126 mTool->
open( fileItem.url() );
virtual ~FileSystemBrowserView()
FileSystemBrowserView(FileSystemBrowserTool *tool, QWidget *parent=0)