summaryrefslogtreecommitdiffstats
path: root/akregator/src/tagaction.cpp
blob: d9c29a988a911cb0892b75834a8687c74768dbae (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
/*
    This file is part of Akregator.

    Copyright (C) 2005 Frank Osterfeld <frank.osterfeld@kdemail.net>

    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.

    As a special exception, permission is given to link this program
    with any edition of TQt, and distribute the resulting executable,
    without including the source code for TQt in the source distribution.
*/

//#include "menuitems.h"
#include "tag.h"
#include "tagaction.h"

#include <kapplication.h>
#include <kdebug.h>
#include <kpopupmenu.h>

#include <tqmap.h>
#include <tqpopupmenu.h>


namespace Akregator {

class TagAction::TagActionPrivate
{
    public:
    Tag tag;
    //TQMap<int, TQPopupMenu*> idToPopup;
    //TQMap<TQPopupMenu*, int> popupToId;
};
 
TagAction::TagAction(const Tag& tag, const TQObject *receiver, const char *slot, TQObject *parent)
//KAction (const TQString &text, const KShortcut &cut, const TQObject *receiver, const char *slot, TQObject *parent, const char *name=0)
       : KToggleAction(tag.name(), KShortcut(), 0, 0, parent), d(new TagActionPrivate)
{
     d->tag = tag;
     connect(this, TQT_SIGNAL(toggled(const Tag&, bool)), receiver, slot);
     connect(this, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotToggled(bool)));
}

TagAction::~TagAction()
{
    delete d;
    d = 0;
}

Tag TagAction::tag() const
{
    return d->tag;
}

/*
void TagAction::unplug(TQWidget* widget)
{
    KToggleAction::unplug(widget);

    TQPopupMenu* popup = ::qt_cast<TQPopupMenu *>(widget);
    if (popup)
    {
        d->idToPopup.remove(d->popupToId[popup]);
        d->popupToId.remove(popup);
    }
}*/

/*
int TagAction::plug(TQWidget* widget, int index)
{
    TQPopupMenu* popup = ::qt_cast<TQPopupMenu *>( widget );
    if (!popup)
    {
        kdWarning() << "Can not plug KToggleAction in " << widget->className() << endl;
        return -1;
    }
    if (kapp && !kapp->authorizeKAction(name()))
        return -1;
    
   TagMenuItem* item = new TagMenuItem(d->tag);
    int id = popup->insertItem(TagMenuItem::checkBoxIconSet(isChecked(), popup->tqcolorGroup()), item, -1, index);
   
    
    popup->connectItem (id, this, TQT_SLOT(slotActivated()));

    d->popupToId[popup] = id;
    d->idToPopup[id] = popup;

    if ( id == -1 )
        return id;
    
    return id;   
}
*/
void TagAction::slotToggled(bool enabled)
{
    emit toggled(d->tag, enabled);
}

} // namespace Akregator

#include "tagaction.moc"