~feng-kylin/youker-assistant/youker-assistant

« back to all changes in this revision

Viewing changes to src/qtmenuitem.cpp

  • Committer: kobe
  • Date: 2015-02-13 07:37:10 UTC
  • Revision ID: xiangli@ubuntukylin.com-20150213073710-0jyp02ilyi5njj10
Qt Version

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/****************************************************************************
2
 
**
3
 
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4
 
** All rights reserved.
5
 
** Contact: Nokia Corporation (qt-info@nokia.com)
6
 
**
7
 
** This file is part of the examples of the Qt Toolkit.
8
 
**
9
 
** You may use this file under the terms of the BSD license as follows:
10
 
**
11
 
** "Redistribution and use in source and binary forms, with or without
12
 
** modification, are permitted provided that the following conditions are
13
 
** met:
14
 
**   * Redistributions of source code must retain the above copyright
15
 
**     notice, this list of conditions and the following disclaimer.
16
 
**   * Redistributions in binary form must reproduce the above copyright
17
 
**     notice, this list of conditions and the following disclaimer in
18
 
**     the documentation and/or other materials provided with the
19
 
**     distribution.
20
 
**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
21
 
**     the names of its contributors may be used to endorse or promote
22
 
**     products derived from this software without specific prior written
23
 
**     permission.
24
 
**
25
 
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26
 
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27
 
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28
 
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29
 
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30
 
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTgall
31
 
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32
 
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33
 
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34
 
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35
 
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36
 
** $QT_END_LICENSE$
37
 
**
38
 
****************************************************************************/
39
 
 
40
 
#include "qtmenuitem.h"
41
 
 
42
 
void QtMenuBase::setIconSource(const QUrl &icon)
43
 
{
44
 
    _iconSource = icon;
45
 
    if (_iconName.isEmpty())
46
 
        action()->setIcon(QIcon(icon.toLocalFile()));
47
 
    else
48
 
        action()->setIcon(QIcon::fromTheme(_iconName, QIcon(_iconSource.toLocalFile())));
49
 
 
50
 
    emit iconSourceChanged();
51
 
}
52
 
 
53
 
QUrl QtMenuBase::iconSource() const
54
 
{
55
 
    return _iconSource;
56
 
}
57
 
 
58
 
void QtMenuBase::setIconName(const QString &icon)
59
 
{
60
 
    _iconName = icon;
61
 
    action()->setIcon(QIcon::fromTheme(_iconName, QIcon(_iconSource.toLocalFile())));
62
 
 
63
 
    emit iconNameChanged();
64
 
}
65
 
 
66
 
QString QtMenuBase::iconName() const
67
 
{
68
 
    return _iconName;
69
 
}
70
 
 
71
 
QtMenuSeparator::QtMenuSeparator(QObject *parent)
72
 
    : QtMenuBase(parent), _action(new QAction(this))
73
 
{
74
 
    _action->setSeparator(true);
75
 
}
76
 
 
77
 
QtMenuSeparator::~QtMenuSeparator()
78
 
{
79
 
}
80
 
 
81
 
QAction * QtMenuSeparator::action()
82
 
{
83
 
    return _action;
84
 
}
85
 
 
86
 
QtMenuItem::QtMenuItem(QObject *parent)
87
 
    : QtMenuBase(parent), _action(new QAction(this))
88
 
{
89
 
    connect(_action, SIGNAL(triggered()), this, SIGNAL(triggered()));
90
 
    connect(_action, SIGNAL(toggled(bool)), this, SIGNAL(toggled(bool)));
91
 
    connect(_action, SIGNAL(changed()), this, SIGNAL(enabledChanged()));
92
 
}
93
 
 
94
 
QtMenuItem::~QtMenuItem()
95
 
{
96
 
}
97
 
 
98
 
void QtMenuItem::setText(const QString &text)
99
 
{
100
 
    _action->setText(text);
101
 
    emit textChanged();
102
 
}
103
 
 
104
 
void QtMenuItem::setShortcut(const QString &shortcut)
105
 
{
106
 
    _action->setShortcut(QKeySequence(shortcut));
107
 
    emit shortcutChanged();
108
 
}
109
 
 
110
 
void QtMenuItem::setCheckable(bool checkable)
111
 
{
112
 
    _action->setCheckable(checkable);
113
 
}
114
 
 
115
 
void QtMenuItem::setChecked(bool checked)
116
 
{
117
 
    _action->setChecked(checked);
118
 
}
119
 
 
120
 
void QtMenuItem::setEnabled(bool enabled)
121
 
{
122
 
    _action->setEnabled(enabled);
123
 
}
124
 
 
125
 
QString QtMenuItem::text() const
126
 
{
127
 
    return _action->text();
128
 
}
129
 
 
130
 
QString QtMenuItem::shortcut() const
131
 
{
132
 
    return _action->shortcut().toString();
133
 
}
134
 
 
135
 
bool QtMenuItem::checkable() const
136
 
{
137
 
    return _action->isCheckable();
138
 
}
139
 
 
140
 
bool QtMenuItem::checked() const
141
 
{
142
 
    return _action->isChecked();
143
 
}
144
 
 
145
 
bool QtMenuItem::enabled() const
146
 
{
147
 
    return _action->isEnabled();
148
 
}
149
 
 
150
 
QAction * QtMenuItem::action()
151
 
{
152
 
    return _action;
153
 
}