Changeset View
Changeset View
Standalone View
Standalone View
core/ModuleView.cpp
Show First 20 Lines • Show All 100 Lines • ▼ Show 20 Line(s) | 70 | { | |||
---|---|---|---|---|---|
101 | d->mHelp->setEnabled(false); | 101 | d->mHelp->setEnabled(false); | ||
102 | // Connect up the buttons | 102 | // Connect up the buttons | ||
103 | connect( d->mApply, SIGNAL(clicked()), this, SLOT(moduleSave()) ); | 103 | connect( d->mApply, SIGNAL(clicked()), this, SLOT(moduleSave()) ); | ||
104 | connect( d->mReset, &QAbstractButton::clicked, this, &ModuleView::moduleLoad ); | 104 | connect( d->mReset, &QAbstractButton::clicked, this, &ModuleView::moduleLoad ); | ||
105 | connect( d->mHelp, &QAbstractButton::clicked, this, &ModuleView::moduleHelp ); | 105 | connect( d->mHelp, &QAbstractButton::clicked, this, &ModuleView::moduleHelp ); | ||
106 | connect( d->mDefault, &QAbstractButton::clicked, this, &ModuleView::moduleDefaults ); | 106 | connect( d->mDefault, &QAbstractButton::clicked, this, &ModuleView::moduleDefaults ); | ||
107 | connect( d->mPageWidget, SIGNAL(currentPageChanged(KPageWidgetItem*,KPageWidgetItem*)), | 107 | connect( d->mPageWidget, SIGNAL(currentPageChanged(KPageWidgetItem*,KPageWidgetItem*)), | ||
108 | this, SLOT(activeModuleChanged(KPageWidgetItem*,KPageWidgetItem*)) ); | 108 | this, SLOT(activeModuleChanged(KPageWidgetItem*,KPageWidgetItem*)) ); | ||
109 | connect( this, &ModuleView::moduleChanged, this, &ModuleView::updateButtons ); | | |||
110 | 109 | | |||
111 | d->mApplyAuthorize = new KAuth::ObjectDecorator(d->mApply); | 110 | d->mApplyAuthorize = new KAuth::ObjectDecorator(d->mApply); | ||
112 | d->mApplyAuthorize->setAuthAction( KAuth::Action() ); | 111 | d->mApplyAuthorize->setAuthAction( KAuth::Action() ); | ||
113 | } | 112 | } | ||
114 | 113 | | |||
115 | ModuleView::~ModuleView() | 114 | ModuleView::~ModuleView() | ||
116 | { | 115 | { | ||
117 | delete d; | 116 | delete d; | ||
▲ Show 20 Lines • Show All 249 Lines • ▼ Show 20 Line(s) | 333 | { | |||
367 | } | 366 | } | ||
368 | } | 367 | } | ||
369 | 368 | | |||
370 | void ModuleView::stateChanged() | 369 | void ModuleView::stateChanged() | ||
371 | { | 370 | { | ||
372 | KCModuleProxy * activeModule = d->mPages.value( d->mPageWidget->currentPage() ); | 371 | KCModuleProxy * activeModule = d->mPages.value( d->mPageWidget->currentPage() ); | ||
373 | KAuth::Action moduleAction; | 372 | KAuth::Action moduleAction; | ||
374 | bool change = false; | 373 | bool change = false; | ||
374 | bool defaulted = false; | ||||
375 | KCModule::Buttons buttons = KCModule::NoAdditionalButton; | ||||
375 | if( activeModule ) { | 376 | if( activeModule ) { | ||
377 | buttons = activeModule->buttons(); | ||||
376 | change = activeModule->changed(); | 378 | change = activeModule->changed(); | ||
379 | defaulted = activeModule->defaulted(); | ||||
377 | 380 | | |||
378 | disconnect( d->mApplyAuthorize, SIGNAL(authorized(KAuth::Action)), this, SLOT(moduleSave()) ); | 381 | disconnect( d->mApplyAuthorize, SIGNAL(authorized(KAuth::Action)), this, SLOT(moduleSave()) ); | ||
379 | disconnect( d->mApply, SIGNAL(clicked()), this, SLOT(moduleSave()) ); | 382 | disconnect( d->mApply, SIGNAL(clicked()), this, SLOT(moduleSave()) ); | ||
380 | if( activeModule->realModule()->authAction().isValid() ) { | 383 | if( activeModule->realModule()->authAction().isValid() ) { | ||
381 | connect( d->mApplyAuthorize, SIGNAL(authorized(KAuth::Action)), this, SLOT(moduleSave()) ); | 384 | connect( d->mApplyAuthorize, SIGNAL(authorized(KAuth::Action)), this, SLOT(moduleSave()) ); | ||
382 | moduleAction = activeModule->realModule()->authAction(); | 385 | moduleAction = activeModule->realModule()->authAction(); | ||
383 | } else { | 386 | } else { | ||
384 | connect( d->mApply, SIGNAL(clicked()), this, SLOT(moduleSave()) ); | 387 | connect( d->mApply, SIGNAL(clicked()), this, SLOT(moduleSave()) ); | ||
385 | } | 388 | } | ||
386 | } | 389 | } | ||
387 | 390 | | |||
388 | updatePageIconHeader( d->mPageWidget->currentPage() ); | 391 | updatePageIconHeader( d->mPageWidget->currentPage() ); | ||
389 | d->mApplyAuthorize->setAuthAction( moduleAction ); | 392 | d->mApplyAuthorize->setAuthAction( moduleAction ); | ||
390 | d->mApply->setEnabled( change ); | 393 | d->mDefault->setEnabled( (buttons & KCModule::Default) && !defaulted ); | ||
391 | d->mReset->setEnabled( change ); | 394 | d->mApply->setEnabled( (buttons & KCModule::Apply) && change ); | ||
395 | d->mReset->setEnabled( (buttons & KCModule::Apply) && change ); | ||||
396 | d->mHelp->setEnabled(buttons & KCModule::Help ); | ||||
392 | emit moduleChanged( change ); | 397 | emit moduleChanged( change ); | ||
393 | } | 398 | } | ||
394 | 399 | | |||
395 | void ModuleView::keyPressEvent ( QKeyEvent * event ) | 400 | void ModuleView::keyPressEvent ( QKeyEvent * event ) | ||
396 | { | 401 | { | ||
397 | if ( event->key() == Qt::Key_F1 && d->mHelp->isVisible() && d->mHelp->isEnabled()) { | 402 | if ( event->key() == Qt::Key_F1 && d->mHelp->isVisible() && d->mHelp->isEnabled()) { | ||
398 | d->mHelp->animateClick(); | 403 | d->mHelp->animateClick(); | ||
399 | event->accept(); | 404 | event->accept(); | ||
400 | return; | 405 | return; | ||
401 | } else if ( event->key() == Qt::Key_Escape ) { | 406 | } else if ( event->key() == Qt::Key_Escape ) { | ||
402 | event->accept(); | 407 | event->accept(); | ||
403 | emit closeRequest(); | 408 | emit closeRequest(); | ||
404 | return; | 409 | return; | ||
405 | } else if ( event->key() == Qt::Key_F1 && event->modifiers() == Qt::ShiftModifier ) { | 410 | } else if ( event->key() == Qt::Key_F1 && event->modifiers() == Qt::ShiftModifier ) { | ||
406 | QWhatsThis::enterWhatsThisMode(); | 411 | QWhatsThis::enterWhatsThisMode(); | ||
407 | event->accept(); | 412 | event->accept(); | ||
408 | return; | 413 | return; | ||
409 | } | 414 | } | ||
410 | 415 | | |||
411 | QWidget::keyPressEvent( event ); | 416 | QWidget::keyPressEvent( event ); | ||
412 | } | 417 | } | ||
413 | 418 | | |||
414 | void ModuleView::updateButtons() | | |||
415 | { | | |||
416 | KCModuleProxy * activeModule = d->mPages.value( d->mPageWidget->currentPage() ); | | |||
417 | if( !activeModule ) { | | |||
418 | return; | | |||
419 | } | | |||
420 | | ||||
421 | const int buttons = activeModule->buttons(); | | |||
422 | | ||||
423 | d->mApply->setVisible(buttons & KCModule::Apply ); | | |||
424 | d->mReset->setVisible(buttons & KCModule::Apply ); | | |||
425 | | ||||
426 | d->mHelp->setEnabled(buttons & KCModule::Help ); | | |||
427 | d->mDefault->setEnabled(buttons & KCModule::Default ); | | |||
davidedmundson: Not saying this is wrong, but can you explain this change?
In https://phabricator.kde. | |||||
It feels kind of wrong indeed. Better align that behavior with the one from kcmshell. I'll make a reworked patch in that direction. ervin: It feels kind of wrong indeed. Better align that behavior with the one from kcmshell. I'll make… | |||||
428 | } | | |||
429 | | ||||
430 | void ModuleView::setFaceType(KPageView::FaceType type) | 419 | void ModuleView::setFaceType(KPageView::FaceType type) | ||
431 | { | 420 | { | ||
432 | d->mPageWidget->setFaceType(type); | 421 | d->mPageWidget->setFaceType(type); | ||
433 | } | 422 | } | ||
434 | 423 | | |||
435 | KPageView::FaceType ModuleView::faceType() const | 424 | KPageView::FaceType ModuleView::faceType() const | ||
436 | { | 425 | { | ||
437 | return d->mPageWidget->faceType(); | 426 | return d->mPageWidget->faceType(); | ||
438 | } | 427 | } | ||
439 | 428 | |
Not saying this is wrong, but can you explain this change?
In https://phabricator.kde.org/D25072
we do setEnabled((buttons & Default) && !defaulted) rather than changing visibility, presumably it's there to make sure buttons don't move as you navigate between modules.