161 connect (ui->m_pagelist, SIGNAL (currentRowChanged (int)), |
161 connect (ui->m_pagelist, SIGNAL (currentRowChanged (int)), |
162 this, SLOT (selectPage (int))); |
162 this, SLOT (selectPage (int))); |
163 } |
163 } |
164 |
164 |
165 // ============================================================================= |
165 // ============================================================================= |
166 // ----------------------------------------------------------------------------- |
166 // ============================================================================= |
167 ConfigDialog::~ConfigDialog() |
167 ConfigDialog::~ConfigDialog() |
168 { |
168 { |
169 delete ui; |
169 delete ui; |
170 } |
170 } |
171 |
171 |
172 // ============================================================================= |
172 // ============================================================================= |
173 // ----------------------------------------------------------------------------- |
173 // ============================================================================= |
174 void ConfigDialog::selectPage (int row) |
174 void ConfigDialog::selectPage (int row) |
175 { |
175 { |
176 ui->m_pagelist->setCurrentRow (row); |
176 ui->m_pagelist->setCurrentRow (row); |
177 ui->m_pages->setCurrentIndex (row); |
177 ui->m_pages->setCurrentIndex (row); |
178 } |
178 } |
179 |
179 |
180 // ============================================================================= |
180 // ============================================================================= |
181 // Adds a shortcut entry to the list of shortcuts. |
181 // Adds a shortcut entry to the list of shortcuts. |
182 // ----------------------------------------------------------------------------- |
182 // ============================================================================= |
183 void ConfigDialog::addShortcut (KeySequenceConfig& cfg, QAction* act, int& i) |
183 void ConfigDialog::addShortcut (KeySequenceConfig& cfg, QAction* act, int& i) |
184 { |
184 { |
185 ShortcutListItem* item = new ShortcutListItem; |
185 ShortcutListItem* item = new ShortcutListItem; |
186 item->setIcon (act->icon()); |
186 item->setIcon (act->icon()); |
187 item->setKeyConfig (&cfg); |
187 item->setKeyConfig (&cfg); |
196 ui->shortcutsList->insertItem (i++, item); |
196 ui->shortcutsList->insertItem (i++, item); |
197 } |
197 } |
198 |
198 |
199 // ============================================================================= |
199 // ============================================================================= |
200 // Initializes the table of grid stuff |
200 // Initializes the table of grid stuff |
201 // ----------------------------------------------------------------------------- |
201 // ============================================================================= |
202 void ConfigDialog::initGrids() |
202 void ConfigDialog::initGrids() |
203 { |
203 { |
204 QGridLayout* gridlayout = new QGridLayout; |
204 QGridLayout* gridlayout = new QGridLayout; |
205 QLabel* xlabel = new QLabel ("X"), |
205 QLabel* xlabel = new QLabel ("X"), |
206 *ylabel = new QLabel ("Y"), |
206 *ylabel = new QLabel ("Y"), |
315 ui->extProgs->setLayout (pathsLayout); |
315 ui->extProgs->setLayout (pathsLayout); |
316 } |
316 } |
317 |
317 |
318 // ============================================================================= |
318 // ============================================================================= |
319 // Set the settings based on widget data. |
319 // Set the settings based on widget data. |
320 // ----------------------------------------------------------------------------- |
320 // ============================================================================= |
321 void ConfigDialog::applySettings() |
321 void ConfigDialog::applySettings() |
322 { |
322 { |
323 // Apply configuration |
323 // Apply configuration |
324 lv_colorize = ui->colorizeObjects->isChecked(); |
324 lv_colorize = ui->colorizeObjects->isChecked(); |
325 gl_colorbfc = ui->colorBFC->isChecked(); |
325 gl_colorbfc = ui->colorBFC->isChecked(); |
368 g_win->updateDocumentList(); |
368 g_win->updateDocumentList(); |
369 } |
369 } |
370 |
370 |
371 // ============================================================================= |
371 // ============================================================================= |
372 // A dialog button was clicked |
372 // A dialog button was clicked |
373 // ----------------------------------------------------------------------------- |
373 // ============================================================================= |
374 void ConfigDialog::buttonClicked (QAbstractButton* button) |
374 void ConfigDialog::buttonClicked (QAbstractButton* button) |
375 { |
375 { |
376 typedef QDialogButtonBox QDDB; |
376 typedef QDialogButtonBox QDDB; |
377 QDialogButtonBox* dbb = ui->buttonBox; |
377 QDialogButtonBox* dbb = ui->buttonBox; |
378 |
378 |
436 } |
436 } |
437 } |
437 } |
438 |
438 |
439 // ============================================================================= |
439 // ============================================================================= |
440 // Quick colors: add or edit button was clicked. |
440 // Quick colors: add or edit button was clicked. |
441 // ----------------------------------------------------------------------------- |
441 // ============================================================================= |
442 void ConfigDialog::slot_setColor() |
442 void ConfigDialog::slot_setColor() |
443 { |
443 { |
444 LDQuickColor* entry = null; |
444 LDQuickColor* entry = null; |
445 QListWidgetItem* item = null; |
445 QListWidgetItem* item = null; |
446 const bool isNew = static_cast<QPushButton*> (sender()) == ui->quickColor_add; |
446 const bool isNew = static_cast<QPushButton*> (sender()) == ui->quickColor_add; |
481 updateQuickColorList (entry); |
481 updateQuickColorList (entry); |
482 } |
482 } |
483 |
483 |
484 // ============================================================================= |
484 // ============================================================================= |
485 // Remove a quick color |
485 // Remove a quick color |
486 // ----------------------------------------------------------------------------- |
486 // ============================================================================= |
487 void ConfigDialog::slot_delColor() |
487 void ConfigDialog::slot_delColor() |
488 { |
488 { |
489 if (ui->quickColorList->selectedItems().isEmpty()) |
489 if (ui->quickColorList->selectedItems().isEmpty()) |
490 return; |
490 return; |
491 |
491 |
494 updateQuickColorList(); |
494 updateQuickColorList(); |
495 } |
495 } |
496 |
496 |
497 // ============================================================================= |
497 // ============================================================================= |
498 // Move a quick color up/down |
498 // Move a quick color up/down |
499 // ----------------------------------------------------------------------------- |
499 // ============================================================================= |
500 void ConfigDialog::slot_moveColor() |
500 void ConfigDialog::slot_moveColor() |
501 { |
501 { |
502 const bool up = (static_cast<QPushButton*> (sender()) == ui->quickColor_moveUp); |
502 const bool up = (static_cast<QPushButton*> (sender()) == ui->quickColor_moveUp); |
503 |
503 |
504 if (ui->quickColorList->selectedItems().isEmpty()) |
504 if (ui->quickColorList->selectedItems().isEmpty()) |
518 updateQuickColorList (&quickColors[dest]); |
518 updateQuickColorList (&quickColors[dest]); |
519 } |
519 } |
520 |
520 |
521 // ============================================================================= |
521 // ============================================================================= |
522 // Add a separator to quick colors |
522 // Add a separator to quick colors |
523 // ----------------------------------------------------------------------------- |
523 // ============================================================================= |
524 void ConfigDialog::slot_addColorSeparator() |
524 void ConfigDialog::slot_addColorSeparator() |
525 { |
525 { |
526 quickColors << LDQuickColor::getSeparator(); |
526 quickColors << LDQuickColor::getSeparator(); |
527 updateQuickColorList (&quickColors[quickColors.size() - 1]); |
527 updateQuickColorList (&quickColors[quickColors.size() - 1]); |
528 } |
528 } |
529 |
529 |
530 // ============================================================================= |
530 // ============================================================================= |
531 // Clear all quick colors |
531 // Clear all quick colors |
532 // ----------------------------------------------------------------------------- |
532 // ============================================================================= |
533 void ConfigDialog::slot_clearColors() |
533 void ConfigDialog::slot_clearColors() |
534 { |
534 { |
535 quickColors.clear(); |
535 quickColors.clear(); |
536 updateQuickColorList(); |
536 updateQuickColorList(); |
537 } |
537 } |
538 |
538 |
539 // ============================================================================= |
539 // ============================================================================= |
540 // Pick a color and set the appropriate configuration option. |
540 // Pick a color and set the appropriate configuration option. |
541 // ----------------------------------------------------------------------------- |
541 // ============================================================================= |
542 void ConfigDialog::pickColor (QString& conf, QPushButton* button) |
542 void ConfigDialog::pickColor (QString& conf, QPushButton* button) |
543 { |
543 { |
544 QColor col = QColorDialog::getColor (QColor (conf)); |
544 QColor col = QColorDialog::getColor (QColor (conf)); |
545 |
545 |
546 if (col.isValid()) |
546 if (col.isValid()) |
555 setButtonBackground (button, colname); |
555 setButtonBackground (button, colname); |
556 } |
556 } |
557 } |
557 } |
558 |
558 |
559 // ============================================================================= |
559 // ============================================================================= |
560 // ----------------------------------------------------------------------------- |
560 // ============================================================================= |
561 void ConfigDialog::slot_setGLBackground() |
561 void ConfigDialog::slot_setGLBackground() |
562 { |
562 { |
563 pickColor (gl_bgcolor, ui->backgroundColorButton); |
563 pickColor (gl_bgcolor, ui->backgroundColorButton); |
564 } |
564 } |
565 |
565 |
566 // ============================================================================= |
566 // ============================================================================= |
567 // ----------------------------------------------------------------------------- |
567 // ============================================================================= |
568 void ConfigDialog::slot_setGLForeground() |
568 void ConfigDialog::slot_setGLForeground() |
569 { |
569 { |
570 pickColor (gl_maincolor, ui->mainColorButton); |
570 pickColor (gl_maincolor, ui->mainColorButton); |
571 } |
571 } |
572 |
572 |
573 // ============================================================================= |
573 // ============================================================================= |
574 // ----------------------------------------------------------------------------- |
574 // ============================================================================= |
575 void ConfigDialog::slot_setGLSelectColor() |
575 void ConfigDialog::slot_setGLSelectColor() |
576 { |
576 { |
577 pickColor (gl_selectcolor, ui->selColorButton); |
577 pickColor (gl_selectcolor, ui->selColorButton); |
578 } |
578 } |
579 |
579 |
580 // ============================================================================= |
580 // ============================================================================= |
581 // Sets background color of a given button. |
581 // Sets background color of a given button. |
582 // ----------------------------------------------------------------------------- |
582 // ============================================================================= |
583 void ConfigDialog::setButtonBackground (QPushButton* button, QString value) |
583 void ConfigDialog::setButtonBackground (QPushButton* button, QString value) |
584 { |
584 { |
585 button->setIcon (getIcon ("colorselect")); |
585 button->setIcon (getIcon ("colorselect")); |
586 button->setAutoFillBackground (true); |
586 button->setAutoFillBackground (true); |
587 button->setStyleSheet (fmt ("background-color: %1", value)); |
587 button->setStyleSheet (fmt ("background-color: %1", value)); |
588 } |
588 } |
589 |
589 |
590 // ============================================================================= |
590 // ============================================================================= |
591 // Finds the given list widget item in the list of widget items given. |
591 // Finds the given list widget item in the list of widget items given. |
592 // ----------------------------------------------------------------------------- |
592 // ============================================================================= |
593 int ConfigDialog::getItemRow (QListWidgetItem* item, QList<QListWidgetItem*>& haystack) |
593 int ConfigDialog::getItemRow (QListWidgetItem* item, QList<QListWidgetItem*>& haystack) |
594 { |
594 { |
595 int i = 0; |
595 int i = 0; |
596 |
596 |
597 for (QListWidgetItem* it : haystack) |
597 for (QListWidgetItem* it : haystack) |
605 return -1; |
605 return -1; |
606 } |
606 } |
607 |
607 |
608 // ============================================================================= |
608 // ============================================================================= |
609 // Which quick color is currently selected? |
609 // Which quick color is currently selected? |
610 // ----------------------------------------------------------------------------- |
610 // ============================================================================= |
611 QListWidgetItem* ConfigDialog::getSelectedQuickColor() |
611 QListWidgetItem* ConfigDialog::getSelectedQuickColor() |
612 { |
612 { |
613 if (ui->quickColorList->selectedItems().isEmpty()) |
613 if (ui->quickColorList->selectedItems().isEmpty()) |
614 return null; |
614 return null; |
615 |
615 |
616 return ui->quickColorList->selectedItems() [0]; |
616 return ui->quickColorList->selectedItems() [0]; |
617 } |
617 } |
618 |
618 |
619 // ============================================================================= |
619 // ============================================================================= |
620 // Get the list of shortcuts selected |
620 // Get the list of shortcuts selected |
621 // ----------------------------------------------------------------------------- |
621 // ============================================================================= |
622 QList<ShortcutListItem*> ConfigDialog::getShortcutSelection() |
622 QList<ShortcutListItem*> ConfigDialog::getShortcutSelection() |
623 { |
623 { |
624 QList<ShortcutListItem*> out; |
624 QList<ShortcutListItem*> out; |
625 |
625 |
626 for (QListWidgetItem* entry : ui->shortcutsList->selectedItems()) |
626 for (QListWidgetItem* entry : ui->shortcutsList->selectedItems()) |
645 setShortcutText (item); |
645 setShortcutText (item); |
646 } |
646 } |
647 |
647 |
648 // ============================================================================= |
648 // ============================================================================= |
649 // Reset a shortcut to defaults |
649 // Reset a shortcut to defaults |
650 // ----------------------------------------------------------------------------- |
650 // ============================================================================= |
651 void ConfigDialog::slot_resetShortcut() |
651 void ConfigDialog::slot_resetShortcut() |
652 { |
652 { |
653 QList<ShortcutListItem*> sel = getShortcutSelection(); |
653 QList<ShortcutListItem*> sel = getShortcutSelection(); |
654 |
654 |
655 for (ShortcutListItem* item : sel) |
655 for (ShortcutListItem* item : sel) |
659 } |
659 } |
660 } |
660 } |
661 |
661 |
662 // ============================================================================= |
662 // ============================================================================= |
663 // Remove the shortcut of an action. |
663 // Remove the shortcut of an action. |
664 // ----------------------------------------------------------------------------- |
664 // ============================================================================= |
665 void ConfigDialog::slot_clearShortcut() |
665 void ConfigDialog::slot_clearShortcut() |
666 { |
666 { |
667 QList<ShortcutListItem*> sel = getShortcutSelection(); |
667 QList<ShortcutListItem*> sel = getShortcutSelection(); |
668 |
668 |
669 for (ShortcutListItem* item : sel) |
669 for (ShortcutListItem* item : sel) |
673 } |
673 } |
674 } |
674 } |
675 |
675 |
676 // ============================================================================= |
676 // ============================================================================= |
677 // Set the path of an external program |
677 // Set the path of an external program |
678 // ----------------------------------------------------------------------------- |
678 // ============================================================================= |
679 void ConfigDialog::slot_setExtProgPath() |
679 void ConfigDialog::slot_setExtProgPath() |
680 { |
680 { |
681 const LDExtProgInfo* info = null; |
681 const LDExtProgInfo* info = null; |
682 |
682 |
683 for (const LDExtProgInfo& it : g_LDExtProgInfo) |
683 for (const LDExtProgInfo& it : g_LDExtProgInfo) |
698 info->input->setText (fpath); |
698 info->input->setText (fpath); |
699 } |
699 } |
700 |
700 |
701 // ============================================================================= |
701 // ============================================================================= |
702 // '...' button pressed for the download path |
702 // '...' button pressed for the download path |
703 // ----------------------------------------------------------------------------- |
703 // ============================================================================= |
704 void ConfigDialog::slot_findDownloadFolder() |
704 void ConfigDialog::slot_findDownloadFolder() |
705 { |
705 { |
706 QString dpath = QFileDialog::getExistingDirectory(); |
706 QString dpath = QFileDialog::getExistingDirectory(); |
707 ui->downloadPath->setText (dpath); |
707 ui->downloadPath->setText (dpath); |
708 } |
708 } |
709 |
709 |
710 // ============================================================================= |
710 // ============================================================================= |
711 // Updates the text string for a given shortcut list item |
711 // Updates the text string for a given shortcut list item |
712 // ----------------------------------------------------------------------------- |
712 // ============================================================================= |
713 void ConfigDialog::setShortcutText (ShortcutListItem* item) |
713 void ConfigDialog::setShortcutText (ShortcutListItem* item) |
714 { |
714 { |
715 QAction* act = item->getAction(); |
715 QAction* act = item->getAction(); |
716 QString label = act->iconText(); |
716 QString label = act->iconText(); |
717 QString keybind = item->getKeyConfig()->getValue().toString(); |
717 QString keybind = item->getKeyConfig()->getValue().toString(); |
718 item->setText (fmt ("%1 (%2)", label, keybind)); |
718 item->setText (fmt ("%1 (%2)", label, keybind)); |
719 } |
719 } |
720 |
720 |
721 // ============================================================================= |
721 // ============================================================================= |
722 // Gets the configuration string of the quick color toolbar |
722 // Gets the configuration string of the quick color toolbar |
723 // ----------------------------------------------------------------------------- |
723 // ============================================================================= |
724 QString ConfigDialog::quickColorString() |
724 QString ConfigDialog::quickColorString() |
725 { |
725 { |
726 QString val; |
726 QString val; |
727 |
727 |
728 for (const LDQuickColor& entry : quickColors) |
728 for (const LDQuickColor& entry : quickColors) |
763 |
763 |
764 updateOutput(); |
764 updateOutput(); |
765 } |
765 } |
766 |
766 |
767 // ============================================================================= |
767 // ============================================================================= |
768 // ----------------------------------------------------------------------------- |
768 // ============================================================================= |
769 bool KeySequenceDialog::staticDialog (KeySequenceConfig* cfg, QWidget* parent) |
769 bool KeySequenceDialog::staticDialog (KeySequenceConfig* cfg, QWidget* parent) |
770 { |
770 { |
771 KeySequenceDialog dlg (cfg->getValue(), parent); |
771 KeySequenceDialog dlg (cfg->getValue(), parent); |
772 |
772 |
773 if (dlg.exec() == false) |
773 if (dlg.exec() == false) |
789 QString text = fmt ("<center><b>%1</b></center>", shortcut); |
789 QString text = fmt ("<center><b>%1</b></center>", shortcut); |
790 lb_output->setText (text); |
790 lb_output->setText (text); |
791 } |
791 } |
792 |
792 |
793 // ============================================================================= |
793 // ============================================================================= |
794 // ----------------------------------------------------------------------------- |
794 // ============================================================================= |
795 void KeySequenceDialog::keyPressEvent (QKeyEvent* ev) |
795 void KeySequenceDialog::keyPressEvent (QKeyEvent* ev) |
796 { |
796 { |
797 seq = ev->key() + ev->modifiers(); |
797 seq = ev->key() + ev->modifiers(); |
798 updateOutput(); |
798 updateOutput(); |
799 } |
799 } |