~ben-kietzman/ubuntu/quantal/mountmanager/fix-for-598070

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
77
78
79
80
81
82
83
//MountManager - the program for easy mounting of storage devices in Linux
//Copyright (C) 2007-2008 Tikhonov Sergey
//
//This file is part of MountManager Plugin "Images mounting"
//
//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.
//
//This program 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 General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
#ifndef IMAGESMOUNTING_H
#define IMAGESMOUNTING_H

#include <QObject>
#include <QProcess>
#include "plugininterface.h"

class QWidget;
class QDialog;
class QDockWidget;
class QTextBrowser;
class QAction;
class QPushButton;
class QCheckBox;
class QLineEdit;

class ImagesMounting : public QObject, public MountManagerPlugin
{
	Q_OBJECT
	Q_INTERFACES(MountManagerPlugin)
	private slots:
		void chooseImage();
		void processFinished(int exitCode,QProcess::ExitStatus exitStatus);
		void chooseMountPoint();
		void mount();
		void unmount();
	signals:
		void showError(const QString &);
	private:
		QDialog *mainWidget;
		Actions actions;
		QPushButton *mountButton;
		QPushButton *unmountButton;
		QPushButton *closeButton;
		QLineEdit *imagePath;
		QLineEdit *mountPointPath;
		QPushButton *chooseImagePath;
		QPushButton *chooseMountPointPath;
		QCheckBox *openDirAfterMounting;

		QString homePath;
		QString imageType;
		QString tempIsoImagePath;
		QProcess *process;
		bool wasMounting;

		bool convert();
	public:
		ImagesMounting(QWidget *parent = 0);
		~ImagesMounting();

		void setParent(QObject *parent);

		const QString pluginName() const;
		const QString pluginDescription() const;
		
		QDialog* dialog() const;
		QDockWidget* dockWidget() const;
		QMenu* menu() const;
		QToolBar* toolBar() const;
		
		Actions menuActions() const;
};

#endif