The check for conflictuous shortcut is now in KKeySequenceWidget, no need to check this manually anymore

svn path=/trunk/KDE/kdepim/; revision=719717
wilder-work
Olivier Goffart 19 years ago
parent fd15f72439
commit 73eb0cf45f
  1. 16
      configuredialog.cpp
  2. 3
      configuredialog_p.h
  3. 17
      customtemplates.cpp
  4. 2
      customtemplates.h
  5. 8
      foldershortcutdialog.cpp
  6. 1
      foldershortcutdialog.h
  7. 2
      kmail.notifyrc
  8. 15
      kmfilterdlg.cpp
  9. 2
      kmfilterdlg.h
  10. 21
      kmmainwidget.cpp
  11. 7
      kmmainwidget.h

@ -2440,9 +2440,10 @@ AppearancePageMessageTagTab::AppearancePageMessageTagTab( QWidget * parent )
QLabel *sclabel = new QLabel( i18n("Shortc&ut") , mTagSettingGroupBox );
sclabel->setBuddy( mKeySequenceWidget );
settings->addWidget( sclabel, 6, 0 );
mKeySequenceWidget->setCheckActionList(kmkernel->getKMMainWidget()->actionList());
connect( mKeySequenceWidget, SIGNAL( validationHook( const QKeySequence & ) ),
this, SLOT( slotValidationHook( const QKeySequence & ) ) );
connect( mKeySequenceWidget, SIGNAL( keySequenceChanged( const QKeySequence & ) ),
this, SLOT( slotEmitChangeCheck() ) );
//Sixth for Toolbar checkbox
mInToolbarCheck = new QCheckBox( i18n("Enable &Toolbar Button"),
@ -2494,16 +2495,6 @@ void AppearancePage::MessageTagTab::slotEmitChangeCheck()
slotEmitChanged();
}
void AppearancePage::MessageTagTab::slotValidationHook( const QKeySequence &newSeq )
{
//TODO also check against other unsaved tag shortcuts
if( !kmkernel->getKMMainWidget()->shortcutIsValid( newSeq, this ) )
mKeySequenceWidget->denyValidation();
else
slotEmitChangeCheck();
}
void AppearancePage::MessageTagTab::slotMoveTagUp()
{
int tmp_index = mTagListBox->currentRow();
@ -2571,6 +2562,7 @@ void AppearancePage::MessageTagTab::slotRecordTagSettings( int aIndex )
//Fourth row
tmp_desc->setIconName( mIconButton->icon() );
//Fifth row
mKeySequenceWidget->applyStealShortcut();
tmp_desc->setShortcut( KShortcut(mKeySequenceWidget->keySequence()) );
//Sixth row
tmp_desc->setInToolbar( mInToolbarCheck->isChecked() );

@ -622,9 +622,6 @@ private slots:
/*Transfers changes in the tag name edit box to the list box for tags. Private
since calling externally decouples the name in the list box from name edit box*/
void slotNameLineTextChanged( const QString & );
/*Processes the shortcut button, OnurTodo is private needed? */
void slotValidationHook( const QKeySequence &newSeq );
private:
virtual void doLoadFromGlobalSettings();

@ -81,8 +81,10 @@ CustomTemplates::CustomTemplates( QWidget *parent, const char *name )
connect( mType, SIGNAL( activated( int ) ),
this, SLOT( slotTypeActivated( int ) ) );
connect( mKeySequenceWidget, SIGNAL( validationHook( const QKeySequence& ) ),
this, SLOT( slotValidationHook( const QKeySequence& ) ) );
connect( mKeySequenceWidget, SIGNAL( keySequenceChanged( const QKeySequence& ) ),
this, SLOT( slotShortcutChanged( const QKeySequence& ) ) );
mKeySequenceWidget->setCheckActionList(kmkernel->getKMMainWidget()->actionList());
mReplyPix = KIconLoader().loadIcon( "mail-reply-sender", KIconLoader::Small );
mReplyAllPix = KIconLoader().loadIcon( "mail-reply-all", KIconLoader::Small );
@ -343,19 +345,16 @@ void CustomTemplates::slotTypeActivated( int index )
}
}
void CustomTemplates::slotValidationHook( const QKeySequence &newSeq )
void CustomTemplates::slotShortcutChanged( const QKeySequence &newSeq )
{
//TODO: check against other unsaved template shortcuts
if( !kmkernel->getKMMainWidget()->shortcutIsValid( newSeq, this ) )
mKeySequenceWidget->denyValidation();
else {
if ( mList->currentItem() )
{
mItemList[ mList->currentItem()->text( 1 ) ]->mShortcut =
KShortcut( newSeq );
mKeySequenceWidget->applyStealShortcut();
}
emit changed();
}
}
#include "customtemplates.moc"

@ -59,7 +59,7 @@ class CustomTemplates : public QWidget, public Ui::CustomTemplatesBase
void slotRemoveClicked();
void slotListSelectionChanged();
void slotTypeActivated( int index );
void slotValidationHook( const QKeySequence &newSeq );
void slotShortcutChanged( const QKeySequence &newSeq );
signals:

@ -83,20 +83,16 @@ FolderShortcutDialog::FolderShortcutDialog( KMFolder *folder,
connect( this, SIGNAL( okClicked() ), SLOT( slotOk() ) );
mKeySeqWidget->setKeySequence( folder->shortcut().primary(),
KKeySequenceWidget::NoValidate );
mKeySeqWidget->setCheckActionList(mMainWidget->actionList());
}
FolderShortcutDialog::~FolderShortcutDialog()
{
}
void FolderShortcutDialog::slotValidationHook( const QKeySequence &newSeq )
{
if( !mMainWidget->shortcutIsValid( newSeq, this ) )
mKeySeqWidget->denyValidation();
}
void FolderShortcutDialog::slotOk()
{
mKeySeqWidget->applyStealShortcut();
mFolder->setShortcut( KShortcut(mKeySeqWidget->keySequence(), QKeySequence()) );
}

@ -58,7 +58,6 @@ public:
protected slots:
void slotOk();
void slotValidationHook( const QKeySequence &newSeq );
private:
KMFolder *mFolder;

@ -80,5 +80,5 @@ Comment[uz]=Янги хат келди
Comment[x-test]=xxNew mail arrivedxx
Sound=
Action=None
# None = 0, Sound = 1, Messagebox = 2, Logfile = 4, Stderr = 8, PassivePopup = 16, Execute = 32

@ -247,6 +247,7 @@ KMFilterDlg::KMFilterDlg(QWidget* parent, bool popFilter, bool createDummyFilter
mKeySeqWidget->setObjectName( "FilterShortcutSelector" );
gl->addWidget( mKeySeqWidget, 7, 3, 1, 1);
mKeySeqWidget->setEnabled( false );
mKeySeqWidget->setCheckActionList(kmkernel->getKMMainWidget()->actionList());
mConfigureToolbar = new QCheckBox( i18n("Additionally add this filter to the toolbar"), mAdvOptsGroup );
gl->addWidget( mConfigureToolbar, 8, 0, 1, 4 );
mConfigureToolbar->setEnabled( false );
@ -312,8 +313,8 @@ KMFilterDlg::KMFilterDlg(QWidget* parent, bool popFilter, bool createDummyFilter
connect( mConfigureShortcut, SIGNAL(toggled(bool)),
this, SLOT(slotConfigureShortcutButtonToggled(bool)) );
connect( mKeySeqWidget, SIGNAL( validationHook( const QKeySequence& ) ),
this, SLOT( slotValidationHook( const QKeySequence& ) ) );
connect( mKeySeqWidget, SIGNAL( keySequenceChanged( const QKeySequence& ) ),
this, SLOT( slotShortcutChanged( const QKeySequence& ) ) );
connect( mConfigureToolbar, SIGNAL(toggled(bool)),
this, SLOT(slotConfigureToolbarButtonToggled(bool)) );
@ -527,15 +528,13 @@ void KMFilterDlg::slotConfigureShortcutButtonToggled( bool aChecked )
}
}
void KMFilterDlg::slotValidationHook( const QKeySequence &newSeq )
void KMFilterDlg::slotShortcutChanged( const QKeySequence &newSeq )
{
//TODO also check against other unsaved filter shortcuts
if( !kmkernel->getKMMainWidget()->shortcutIsValid( newSeq, this ) )
mKeySeqWidget->denyValidation();
else
if ( mFilter )
{
mKeySeqWidget->applyStealShortcut();
mFilter->setShortcut( KShortcut( newSeq ) );
}
}
void KMFilterDlg::slotConfigureToolbarButtonToggled( bool aChecked )

@ -364,7 +364,7 @@ protected slots:
void slotApplicableAccountsChanged();
void slotStopProcessingButtonToggled( bool aChecked );
void slotConfigureShortcutButtonToggled( bool aChecked );
void slotValidationHook( const QKeySequence &newSeq );
void slotShortcutChanged( const QKeySequence &newSeq );
void slotConfigureToolbarButtonToggled( bool aChecked );
void slotFilterActionIconChanged( const QString &icon );
void slotReset();

@ -4175,24 +4175,9 @@ void KMMainWidget::initializeIMAPActions( bool setState /* false the first time,
factory->addClient( mGUIClient );
}
bool KMMainWidget::shortcutIsValid( const QKeySequence &sc, QWidget *parent ) const
{
//TODO: also check against global shortcuts
QList<QAction*> actions = actionCollection()->actions();
foreach ( QAction *a, actions ) {
foreach ( QKeySequence otherSc, a->shortcuts() ) {
if ( sc == otherSc ) {
QString title( i18n( "Shortcut conflict" ) );
QString msg( i18n( "<qt>The selected shortcut is already used by the <b>%1</b> action.<br>"
"Please select a different one.</qt>",
a->text().remove('&') ) );
KMessageBox::sorry( parent, msg );
return false;
}
}
}
return true;
QList<QAction*> KMMainWidget::actionList()
{
return actionCollection()->actions();
}
void KMMainWidget::slotShortcutChanged( KMFolder *folder )

@ -169,12 +169,9 @@ class KMAIL_EXPORT KMMainWidget : public QWidget
KMSystemTray *systray() const;
/**
Checks a shortcut against the actioncollection and returns whether it
is already used and therefor not valid or not.
If the shortcut is not valid, a message box is displayed informing the user
that the shortcut is already in use.
Return the list of all action, in order to check shortcuts conflicts against them.
*/
bool shortcutIsValid( const QKeySequence&, QWidget* ) const;
QList<QAction*> actionList();
void modifyFolder( KMFolderTreeItem *folderItem );

Loading…
Cancel
Save