Add tooltip support in KMenu

(cherry picked from commit 718f6ae321)
v3.5.13-sru
Francois Andriot 12 years ago committed by Slávek Banko
parent d531f6f841
commit 4844466a7d

@ -171,6 +171,20 @@
</widget>
</grid>
</widget>
<widget class="TQCheckBox">
<property name="name">
<cstring>kcfg_UseTooltip</cstring>
</property>
<property name="text">
<string>Show T&amp;ooltip</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
<property name="whatsThis" stdset="0">
<string>&lt;qt&gt;When this option is selected a tooltip will appear on the KMenu items.</string>
</property>
</widget>
<widget class="TQCheckBox">
<property name="name">
<cstring>kcfg_UseSidePixmap</cstring>

@ -170,10 +170,12 @@ void MenuTab::load( bool useDefaults )
void MenuTab::menuStyleChanged()
{
// Classic K Menu
if (m_comboMenuStyle->currentItem()==1) {
m_openOnHover->setEnabled(false);
m_subMenus->setEnabled(true);
kcfg_UseSidePixmap->setEnabled(true);
kcfg_UseTooltip->setEnabled(true);
kcfg_MenuEntryFormat->setEnabled(true);
kcfg_RecentVsOften->setEnabled(true);
m_showFrequent->setEnabled(true);
@ -182,10 +184,13 @@ void MenuTab::menuStyleChanged()
maxrecentdocs->setEnabled(true);
kcfg_NumVisibleEntries->setEnabled(true);
}
// Kickoff Menu
else {
m_openOnHover->setEnabled(true);
m_subMenus->setEnabled(false);
kcfg_UseSidePixmap->setEnabled(false);
kcfg_UseTooltip->setEnabled(false);
kcfg_MenuEntryFormat->setEnabled(false);
kcfg_RecentVsOften->setEnabled(false);
m_showFrequent->setEnabled(false);
@ -244,6 +249,13 @@ void MenuTab::save()
forceRestart = true;
}
bool tooltipsetting = kcfg_UseTooltip->isChecked();
bool oldtooltipsetting = c->readBoolEntry("UseTooltip", false);
if (tooltipsetting != oldtooltipsetting) {
forceRestart = true;
}
// Save KMenu settings
c->setGroup("KMenu");
c->writeEntry("CustomIcon", m_kmenu_icon);

@ -27,6 +27,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <tqpixmap.h>
#include <tqimage.h>
#include <tqmap.h>
#include <tqtooltip.h>
#include <dcopclient.h>
#include <kapplication.h>
@ -70,6 +71,7 @@ PanelServiceMenu::PanelServiceMenu(const TQString & label, const TQString & relP
connect(KSycoca::self(), TQT_SIGNAL(databaseChanged()),
TQT_SLOT(slotClearOnClose()));
connect(this, TQT_SIGNAL(aboutToHide()), this, TQT_SLOT(slotClose()));
connect(this, TQT_SIGNAL(highlighted(int)), this, TQT_SLOT(slotSetTooltip(int)));
}
PanelServiceMenu::~PanelServiceMenu()
@ -1006,3 +1008,19 @@ void PanelServiceMenu::updateRecentlyUsedApps(KService::Ptr &service)
RecentlyLaunchedApps::the().m_bNeedToUpdate = true;
}
void PanelServiceMenu::slotSetTooltip(int id)
{
TQToolTip::remove(this);
if (KickerSettings::useTooltip() && entryMap_.contains(id) && entryMap_[id]->isType(KST_KService)) {
KService::Ptr s(static_cast<KService *>(entryMap_[id].data()));
TQString text;
if (!s->genericName().isEmpty()) {
text = s->genericName();
}
if (text.isEmpty() && !s->comment().isEmpty()) {
text = s->comment();
}
TQToolTip::add(this, i18n(text.utf8()));
}
}

@ -81,6 +81,7 @@ protected slots:
virtual void slotClear();
virtual void configChanged();
virtual void slotClose();
void slotSetTooltip(int id);
void slotDragObjectDestroyed();
// for use in Add Applicaton To Panel

@ -359,6 +359,11 @@
<default>true</default>
</entry>
<entry name="UseTooltip" type="Bool" >
<label>Use Tooltip in Kmenu</label>
<default>false</default>
</entry>
<entry name="UseSearchBar" type="Bool" >
<label>Show searh field in Kmenu</label>
<default>true</default>

Loading…
Cancel
Save