Krazy/EBN: qMin is better than QMIN
[kphotoalbum.git] / MainWindow / ExternalPopup.h
blob0be9fb3ea9b558e5821a41e5da5df1c7e5bbe1df
1 /* Copyright (C) 2003-2006 Jesper K. Pedersen <blackie@kde.org>
3 This program is free software; you can redistribute it and/or
4 modify it under the terms of the GNU General Public
5 License as published by the Free Software Foundation; either
6 version 2 of the License, or (at your option) any later version.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program; see the file COPYING. If not, write to
15 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 Boston, MA 02110-1301, USA.
19 #ifndef EXTERNALPOPUP_H
20 #define EXTERNALPOPUP_H
21 #include <QMenu>
22 #include <QPixmap>
23 #include "DB/ImageInfoList.h"
24 #include <Utilities/Set.h>
25 #include <qpair.h>
27 namespace DB
29 class ImageInfo;
32 namespace MainWindow
35 using Utilities::StringSet;
37 typedef QSet< QPair<QString,QString> > OfferType;
39 class ExternalPopup :public QMenu {
40 Q_OBJECT
42 public:
43 ExternalPopup( QWidget* parent );
44 void populate( DB::ImageInfoPtr current, const QStringList& list );
46 protected slots:
47 void slotExecuteService( QAction* );
49 protected:
50 QString mimeType( const QString& file );
51 StringSet mimeTypes( const QStringList& files );
52 OfferType appInfos( const QStringList& files );
54 private:
55 QStringList _list;
56 DB::ImageInfoPtr _currentInfo;
57 QMap<QString,StringSet> _appToMimeTypeMap;
62 bool operator<( const QPair<QString,QPixmap>& a, const QPair<QString,QPixmap>& b );
64 #endif /* EXTERNALPOPUP_H */