Fix duplicate code. Don't update menu if it was not initialized before

wilder-work
Montel Laurent 11 years ago
parent b8c241544e
commit 20f56236f6
  1. 4
      editor/kmcomposewin.cpp
  2. 1
      kmmainwidget.cpp
  3. 18
      widgets/kactionmenutransport.cpp

@ -1156,10 +1156,6 @@ void KMComposeWin::setupActions( void )
}
// needed for sending "default transport"
actActionNowMenu->setDelayed( true );
actActionLaterMenu->setDelayed( true );
connect( actActionNowMenu, SIGNAL(triggered(bool)), this,
SLOT(slotSendNow()) );
connect( actActionLaterMenu, SIGNAL(triggered(bool)), this,

@ -2865,7 +2865,6 @@ void KMMainWidget::setupActions()
mSendActionMenu->setIcon(KIcon(QLatin1String("mail-send-via")));
mSendActionMenu->setText(i18n("Send Queued Messages Via"));
actionCollection()->addAction(QLatin1String("send_queued_via"), mSendActionMenu );
mSendActionMenu->setDelayed(true);
connect(mSendActionMenu, SIGNAL(transportSelected(MailTransport::Transport*)), SLOT(slotSendQueuedVia(MailTransport::Transport*)));

@ -24,10 +24,10 @@ KActionMenuTransport::KActionMenuTransport(QObject *parent)
: KActionMenu(parent),
mInitialized(false)
{
setDelayed(true);
connect( MailTransport::TransportManager::self(), SIGNAL(transportsChanged()), this, SLOT(updateTransportMenu()));
connect( menu(),SIGNAL(aboutToShow()),SLOT(slotCheckTransportMenu()));
connect( menu(), SIGNAL(triggered(QAction*)), this, SLOT(slotSelectTransport(QAction*)) );
}
KActionMenuTransport::~KActionMenuTransport()
@ -45,13 +45,15 @@ void KActionMenuTransport::slotCheckTransportMenu()
void KActionMenuTransport::updateTransportMenu()
{
menu()->clear();
const QList<MailTransport::Transport*> transports = MailTransport::TransportManager::self()->transports();
Q_FOREACH (MailTransport::Transport *transport, transports ) {
const QString name = transport->name().replace( QLatin1Char('&'), QLatin1String("&&") );
QAction *action = new QAction( name, this );
action->setData( transport->id() );
menu()->addAction( action );
if (mInitialized) {
menu()->clear();
const QList<MailTransport::Transport*> transports = MailTransport::TransportManager::self()->transports();
Q_FOREACH (MailTransport::Transport *transport, transports ) {
const QString name = transport->name().replace( QLatin1Char('&'), QLatin1String("&&") );
QAction *action = new QAction( name, this );
action->setData( transport->id() );
menu()->addAction( action );
}
}
}

Loading…
Cancel
Save