summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mailit/viewatt.cpp
blob: 3515ba5b53fd28523c0a8dd414f6167673da310b (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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/**********************************************************************
** Copyright (C) 2001 Trolltech AS.  All rights reserved.
**
** This file is part of Qt Palmtop Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include <qpe/resource.h>
#include "viewatt.h"
#include <qwhatsthis.h>
#include <qpe/applnk.h>
#include <qpe/mimetype.h>

ViewAtt::ViewAtt(QWidget *parent, const char *name, WFlags f)
	: QMainWindow(parent, name, f)
{
	setCaption(tr("Exploring attatchments"));

	setToolBarsMovable( FALSE );
	bar = new QToolBar(this);
	installButton = new QAction( tr( "Install" ), Resource::loadPixmap( "exec" ), QString::null, CTRL + Key_C, this, 0 );
	connect(installButton, SIGNAL(activated()), this, SLOT(install()) );
	installButton->setWhatsThis(tr("Click here to install the attachment to your Documents"));

	listView = new QListView(this, "AttView");
	listView->addColumn( tr("Attatchment") );
	listView->addColumn( tr("Type") );
	listView->addColumn( tr("Installed") );
	setCentralWidget(listView);
	QWhatsThis::add(listView,QWidget::tr("This is an overview about all attachments in the mail"));
}

void ViewAtt::update(Email *mailIn, bool inbox)
{
	QListViewItem *item;
	Enclosure *ePtr;



	listView->clear();
	if (inbox) {
		bar->clear();
		installButton->addTo( bar );
		bar->show();
	} else {
		bar->hide();
	}

	mail = mailIn;
	for ( ePtr=mail->files.first(); ePtr != 0; ePtr=mail->files.next() ) {

		QString isInstalled = tr("No");
		if (ePtr->installed)
			isInstalled = tr("Yes");
		item = new QListViewItem(listView, ePtr->originalName, ePtr->contentType, isInstalled);

		const QString& mtypeDef=(const QString&) ePtr->contentType+"/"+ePtr->contentAttribute;

		MimeType mt(mtypeDef);

		item->setPixmap(0, mt.pixmap());

		/*
		if (ePtr->contentType == "TEXT") {
			actions = new QAction( tr("View"), Resource::loadPixmap("TextEditor"), QString::null, CTRL + Key_C, this, 0);
			actions->addTo(bar);
				}
		if (ePtr->contentType == "AUDIO") {
			actions = new QAction( tr("Play"), Resource::loadPixmap("SoundPlayer"), QString::null, CTRL + Key_C, this, 0);
			actions->addTo(bar);
			item->setPixmap(0, Resource::loadPixmap("play"));
		}
		if (ePtr->contentType == "IMAGE") {
			actions = new QAction( tr("Show"), Resource::loadPixmap("pixmap"), QString::null, CTRL + Key_C, this, 0);
			actions->addTo(bar);
			item->setPixmap(0, Resource::loadPixmap("pixmap"));
		}*/
	}
}

void ViewAtt::install()
{
	Enclosure *ePtr, *selPtr;
	QListViewItem *item;
	QString filename;
	DocLnk d;

	item = listView->selectedItem();
	if (item != NULL) {
		filename  = item->text(0);
		selPtr = NULL;
		for ( ePtr=mail->files.first(); ePtr != 0; ePtr=mail->files.next() ) {
			if (ePtr->originalName == filename)
				selPtr = ePtr;
		}

		if (selPtr == NULL) {
			qWarning("Internal error, file is not installed to documents");
			return;
		}

		d.setName(selPtr->originalName);
		d.setFile(selPtr->path + selPtr->name);
		d.setType(selPtr->contentType + "/" + selPtr->contentAttribute);
		d.writeLink();
		selPtr->installed = TRUE;
		item->setText(2, tr("Yes"));
	}
}