mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-20 00:41:23 +00:00
39d4e03d48
like Sabine's ".csv test files" folder, which did not appear in the directory view after being created. svn path=/trunk/KDE/kdebase/apps/; revision=1051124
145 lines
4.2 KiB
C++
145 lines
4.2 KiB
C++
/* This file is part of the KDE project
|
|
Copyright (C) 1998-2009 David Faure <faure@kde.org>
|
|
2003 Sven Leiber <s.leiber@web.de>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License version 2 as published by the Free Software Foundation.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef KNEWMENU_H
|
|
#define KNEWMENU_H
|
|
|
|
#include <kactionmenu.h>
|
|
#include <kurl.h>
|
|
#include <libkonq_export.h>
|
|
|
|
class KJob;
|
|
namespace KIO { class Job; }
|
|
|
|
class KActionCollection;
|
|
class KNewMenuPrivate;
|
|
|
|
/**
|
|
* The 'New' submenu, both for the File menu and the RMB popup menu.
|
|
* (The same instance can be used by both).
|
|
* It fills the menu with 'Folder' and one item per installed template.
|
|
*
|
|
* To use this class, you need to connect aboutToShow() of the File menu
|
|
* with slotCheckUpToDate() and to call slotCheckUpToDate() before showing
|
|
* the RMB popupmenu.
|
|
*
|
|
* KNewMenu automatically updates the list of templates shown if installed templates
|
|
* are added/updated/deleted.
|
|
*
|
|
* @author David Faure <faure@kde.org>
|
|
* Ideas and code for the new template handling mechanism ('link' desktop files)
|
|
* from Christoph Pickart <pickart@iam.uni-bonn.de>
|
|
*/
|
|
class LIBKONQ_EXPORT KNewMenu : public KActionMenu
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
|
|
/**
|
|
* Constructor
|
|
* @param parent the parent KActionCollection this KAction should be
|
|
* added to.
|
|
* @param parentWidget the parent widget that will be the owner of
|
|
* this KNewMenu and that will take care of destroying this instance
|
|
* once the parentWidget itself got destroyed.
|
|
* @param name action name, when adding the action to the collection
|
|
*/
|
|
KNewMenu( KActionCollection * parent, QWidget* parentWidget, const QString& name );
|
|
virtual ~KNewMenu();
|
|
|
|
/**
|
|
* Set if the directory view currently shows dot files.
|
|
* @since 4.4
|
|
*/
|
|
void setViewShowsHiddenFiles(bool b);
|
|
|
|
/**
|
|
* Set the files the popup is shown for
|
|
* Call this before showing up the menu
|
|
*/
|
|
void setPopupFiles(const KUrl::List& files);
|
|
|
|
public Q_SLOTS:
|
|
/**
|
|
* Checks if updating the list is necessary
|
|
* IMPORTANT : Call this in the slot for aboutToShow.
|
|
* And while you're there, you probably want to call setViewShowsHiddenFiles ;)
|
|
*/
|
|
void slotCheckUpToDate();
|
|
|
|
/**
|
|
* Call this to create a new directory as if the user had done it using
|
|
* a popupmenu. This is useful to make sure that creating a directory with
|
|
* a key shortcut (e.g. F10) triggers the exact same code as when using
|
|
* the New menu.
|
|
* Requirements: call setPopupFiles first, and keep this KNewMenu instance
|
|
* alive (the mkdir is async).
|
|
* @since 4.3
|
|
*/
|
|
void createDirectory();
|
|
|
|
Q_SIGNALS:
|
|
/**
|
|
* Emitted once @p url has been successfully created
|
|
*/
|
|
void itemCreated(const KUrl& url);
|
|
|
|
protected Q_SLOTS:
|
|
/**
|
|
* Called when the job that copied the template has finished.
|
|
* This method is virtual so that error handling can be reimplemented.
|
|
* Make sure to call the base class slotResult when !job->error() though.
|
|
*/
|
|
virtual void slotResult( KJob* job );
|
|
|
|
private Q_SLOTS:
|
|
/**
|
|
* Called when New->* is clicked
|
|
*/
|
|
void slotActionTriggered(QAction*);
|
|
|
|
/**
|
|
* Fills the templates list.
|
|
*/
|
|
void slotFillTemplates();
|
|
|
|
private:
|
|
void newDir();
|
|
|
|
/**
|
|
* Fills the menu from the templates list.
|
|
*/
|
|
void fillMenu();
|
|
|
|
/**
|
|
* Opens the desktop files and completes the Entry list
|
|
* Input: the entry list. Output: the entry list ;-)
|
|
*/
|
|
void parseFiles();
|
|
|
|
/**
|
|
* Make the main menus on the startup.
|
|
*/
|
|
void makeMenus();
|
|
|
|
KNewMenuPrivate* d;
|
|
};
|
|
|
|
#endif
|