summaryrefslogtreecommitdiffstats
path: root/krename/fileplugin.h
blob: b9b2fa799db39739cb39117654db83e8a5f7e9a9 (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
/***************************************************************************
                          fileplugin.h  -  description
                             -------------------
    begin                : Mon Jul 1 2002
    copyright            : (C) 2002 by Dominik Seichter
    email                : domseichter@web.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef FILEPLUGIN_H
#define FILEPLUGIN_H

#include "batchrenamer.h"
#include "pluginloader.h"
#include "plugin.h"
#include "helpdialog.h"
#include <kmimetype.h>

/*
 * number of items we shall cache from file plugins
 */
#define CACHE_MAX 2000

class KFileMetaInfoProvider;
class KFileMimeTypeInfo;
class KPushButton;
class KService;
class TQLabel;
class TQWidget;
class TQVBoxLayout;
class KFilePlugin;
class FilePlugin : public Plugin  {
    Q_OBJECT
  TQ_OBJECT
    public:
        FilePlugin( KService* service );
        ~FilePlugin();

        inline bool isValid() const;

        virtual const TQString getName() const;
        virtual const TQString getAccelName() const;
        virtual const TQString getPattern() const;
        virtual const int type() const;

        virtual bool checkError();
        virtual void drawInterface( TQWidget* w, TQVBoxLayout* l );
        virtual TQString processFile( BatchRenamer* b, int i, TQString token, int mode );

        virtual void addHelp( HelpDialogData* data );
        virtual const TQPixmap getIcon() const;
        
        virtual bool alwaysUsed() const { return true; }
        
        virtual const TQStringList getKeys() const { return keys; }

        virtual void clearCache();
        
    private:
        void setPattern( KMimeType::Ptr mime );
        
    protected:
        bool supports( const TQString & token );
        void setupKeys();
        
        TQMap<TQString,TQString> cache;
        KFilePlugin* fileplugin;

        TQString m_name, m_comment, m_icon, m_mimetype, m_pattern;

        TQStringList keys;
};

bool FilePlugin::isValid() const
{
    return keys.count() > 0 && fileplugin ? true : false;
}

#endif