You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pcmanfm-qt-packaging/libfm-qt/filemenu.h

209 lines
4.2 KiB

/*
<one line to give the library's name and an idea of what it does.>
Copyright (C) 2012 Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef FM_FILEMENU_H
#define FM_FILEMENU_H
#include "libfmqtglobals.h"
#include <QMenu>
#include <qabstractitemmodel.h>
#include <libfm/fm.h>
class QAction;
struct _FmFileActionItem;
namespace Fm {
class FileLauncher;
class LIBFM_QT_API FileMenu : public QMenu {
Q_OBJECT
public:
explicit FileMenu(FmFileInfoList* files, FmFileInfo* info, FmPath* cwd, QWidget* parent = 0);
explicit FileMenu(FmFileInfoList* files, FmFileInfo* info, FmPath* cwd, const QString& title, QWidget* parent = 0);
~FileMenu();
bool useTrash() {
return useTrash_;
}
void setUseTrash(bool trash);
bool confirmDelete() {
return confirmDelete_;
}
void setConfirmDelete(bool confirm) {
confirmDelete_ = confirm;
}
QAction* openAction() {
return openAction_;
}
QAction* openWithMenuAction() {
return openWithMenuAction_;
}
QAction* openWithAction() {
return openWithAction_;
}
QAction* separator1() {
return separator1_;
}
QAction* cutAction() {
return cutAction_;
}
QAction* copyAction() {
return copyAction_;
}
QAction* pasteAction() {
return pasteAction_;
}
QAction* deleteAction() {
return deleteAction_;
}
QAction* unTrashAction() {
return unTrashAction_;
}
QAction* renameAction() {
return renameAction_;
}
QAction* separator2() {
return separator2_;
}
QAction* propertiesAction() {
return propertiesAction_;
}
FmFileInfoList* files() {
return files_;
}
FmFileInfo* firstFile() {
return info_;
}
FmPath* cwd() {
return cwd_;
}
void setFileLauncher(FileLauncher* launcher) {
fileLauncher_ = launcher;
}
FileLauncher* fileLauncher() {
return fileLauncher_;
}
bool sameType() const {
return sameType_;
}
bool sameFilesystem() const {
return sameFilesystem_;
}
bool allVirtual() const {
return allVirtual_;
}
bool allTrash() const {
return allTrash_;
}
bool confirmTrash() const {
return confirmTrash_;
}
void setConfirmTrash(bool value) {
confirmTrash_ = value;
}
protected:
void createMenu(FmFileInfoList* files, FmFileInfo* info, FmPath* cwd);
#ifdef CUSTOM_ACTIONS
void addCustomActionItem(QMenu* menu, struct _FmFileActionItem* item);
#endif
void openFilesWithApp(GAppInfo* app);
protected Q_SLOTS:
void onOpenTriggered();
void onOpenWithTriggered();
void onFilePropertiesTriggered();
void onApplicationTriggered();
#ifdef CUSTOM_ACTIONS
void onCustomActionTrigerred();
#endif
void onCompress();
void onExtract();
void onExtractHere();
void onCutTriggered();
void onCopyTriggered();
void onPasteTriggered();
void onRenameTriggered();
void onDeleteTriggered();
void onUnTrashTriggered();
private:
FmFileInfoList* files_;
FmFileInfo* info_;
FmPath* cwd_;
bool useTrash_;
bool confirmDelete_;
bool confirmTrash_; // Confirm before moving files into "trash can"
bool sameType_;
bool sameFilesystem_;
bool allVirtual_;
bool allTrash_;
QAction* openAction_;
QAction* openWithMenuAction_;
QAction* openWithAction_;
QAction* separator1_;
QAction* cutAction_;
QAction* copyAction_;
QAction* pasteAction_;
QAction* deleteAction_;
QAction* unTrashAction_;
QAction* renameAction_;
QAction* separator2_;
QAction* propertiesAction_;
FileLauncher* fileLauncher_;
};
}
#endif // FM_FILEMENU_H