コード例 #1
0
CAcceleratorSettingsPage::CAcceleratorSettingsPage(QWidget* /* parent */ )
	: BtConfigPage()
{
	QVBoxLayout* mainLayout = new QVBoxLayout(this);
	this->setLayout(mainLayout);

	QHBoxLayout* layoutForWindowTypeChooser = new QHBoxLayout();
	mainLayout->addLayout(layoutForWindowTypeChooser);

	QLabel* label = new QLabel(tr("Choose action group:"), this);
	layoutForWindowTypeChooser->addWidget(label);

	m_typeChooser = new QComboBox(this);
	layoutForWindowTypeChooser->addWidget(m_typeChooser);

	bool ok = connect(m_typeChooser, SIGNAL(activated(const QString&)),
		SLOT(slotKeyChooserTypeChanged(const QString&)) );	
	Q_ASSERT(ok);

	m_keyChooserStack = new QStackedWidget(this);

	m_application.title = tr("Main Window");
	m_general = WindowType(tr("All text windows"));
	m_bible = WindowType(tr("Bible windows"));
	m_commentary = WindowType(tr("Commentary windows"));
	m_lexicon = WindowType(tr("Lexicon windows"));
	m_book = WindowType(tr("Book windows"));

	m_typeChooser->addItem(m_application.title);
	m_typeChooser->addItem(m_general.title);
	m_typeChooser->addItem(m_bible.title);
	m_typeChooser->addItem(m_commentary.title);
	m_typeChooser->addItem(m_lexicon.title);
	m_typeChooser->addItem(m_book.title);

	// create shortcuteditors

	// ------ Application -------------- //
	m_application.actionCollection = new BtActionCollection(this);
	BibleTime::insertKeyboardActions( m_application.actionCollection);
	CBTConfig::setupAccelSettings(CBTConfig::application, m_application.actionCollection);
	m_application.keyChooser = new BtShortcutsEditor(m_application.actionCollection,m_keyChooserStack);
	m_keyChooserStack->addWidget(m_application.keyChooser);
	ok = connect(m_application.keyChooser, SIGNAL(keyChangeRequest(BtShortcutsEditor*, const QString&)),
		this, SLOT(completeKeyChangeRequest(BtShortcutsEditor*, const QString&)));
	Q_ASSERT(ok);

	// ----- All display windows ------ //
	m_general.actionCollection = new BtActionCollection(this);
	CDisplayWindow::insertKeyboardActions( m_general.actionCollection);
	CBTConfig::setupAccelSettings(CBTConfig::allWindows,m_general.actionCollection);
	m_general.keyChooser = new BtShortcutsEditor(m_general.actionCollection, m_keyChooserStack);
	m_keyChooserStack->addWidget(m_general.keyChooser);
	ok = connect(m_general.keyChooser, SIGNAL(keyChangeRequest(BtShortcutsEditor*, const QString&)),
		this, SLOT(completeKeyChangeRequest(BtShortcutsEditor*, const QString&)));
	Q_ASSERT(ok);

	// ----- Bible windows ------ //
	m_bible.actionCollection = new BtActionCollection(this);
	CBibleReadWindow::insertKeyboardActions( m_bible.actionCollection);
	CBTConfig::setupAccelSettings(CBTConfig::bibleWindow,m_bible.actionCollection);
	m_bible.keyChooser = new BtShortcutsEditor(m_bible.actionCollection, m_keyChooserStack);
	m_keyChooserStack->addWidget(m_bible.keyChooser);
	ok = connect(m_bible.keyChooser, SIGNAL(keyChangeRequest(BtShortcutsEditor*, const QString&)),
		this, SLOT(completeKeyChangeRequest(BtShortcutsEditor*, const QString&)));
	Q_ASSERT(ok);
	
	// ----- Commentary windows ------ //
	m_commentary.actionCollection = new BtActionCollection(this);
	CCommentaryReadWindow::insertKeyboardActions( m_commentary.actionCollection);
	CBTConfig::setupAccelSettings(CBTConfig::commentaryWindow,	m_commentary.actionCollection);
	m_commentary.keyChooser = new BtShortcutsEditor(m_commentary.actionCollection, m_keyChooserStack);
	m_keyChooserStack->addWidget(m_commentary.keyChooser);
	ok = connect(m_commentary.keyChooser, SIGNAL(keyChangeRequest(BtShortcutsEditor*, const QString&)),
		this, SLOT(completeKeyChangeRequest(BtShortcutsEditor*, const QString&)));
	Q_ASSERT(ok);
	
	// ----- Lexicon windows ------ //
	m_lexicon.actionCollection = new BtActionCollection(this);
	CLexiconReadWindow::insertKeyboardActions(  m_lexicon.actionCollection );
	CBTConfig::setupAccelSettings(CBTConfig::lexiconWindow, m_lexicon.actionCollection);
	m_lexicon.keyChooser = new BtShortcutsEditor(m_lexicon.actionCollection, m_keyChooserStack										 );
	m_keyChooserStack->addWidget(m_lexicon.keyChooser);
	ok = connect(m_lexicon.keyChooser, SIGNAL(keyChangeRequest(BtShortcutsEditor*, const QString&)),
		this, SLOT(completeKeyChangeRequest(BtShortcutsEditor*, const QString&)));
	Q_ASSERT(ok);

	// ----- Book windows ------ //
	m_book.actionCollection= new BtActionCollection(this);
	CBookReadWindow::insertKeyboardActions( m_book.actionCollection);
	CBTConfig::setupAccelSettings(CBTConfig::bookWindow, m_book.actionCollection);
	m_book.keyChooser = new BtShortcutsEditor(m_book.actionCollection, m_keyChooserStack);
	m_keyChooserStack->addWidget(m_book.keyChooser);
	ok = connect(m_book.keyChooser, SIGNAL(keyChangeRequest(BtShortcutsEditor*, const QString&)),
		this, SLOT(completeKeyChangeRequest(BtShortcutsEditor*, const QString&)));
	Q_ASSERT(ok);
	
	mainLayout->addWidget(m_keyChooserStack);
	slotKeyChooserTypeChanged(m_application.title);

	m_typeChooser->setFocus(Qt::MouseFocusReason);
	qDebug("CAcceleratorSettingsPage::CAcceleratorSettingsPage end");
}
コード例 #2
0
CAcceleratorSettingsPage::CAcceleratorSettingsPage(CConfigurationDialog *parent)
        : BtConfigDialog::Page(CResMgr::settings::keys::icon(), parent)
{
    QVBoxLayout *mainLayout = new QVBoxLayout(this);

    QHBoxLayout* layoutForWindowTypeChooser = new QHBoxLayout();
    mainLayout->addLayout(layoutForWindowTypeChooser);

    m_actionGroupLabel = new QLabel(this);
    layoutForWindowTypeChooser->addWidget(m_actionGroupLabel);

    m_typeChooser = new QComboBox(this);
    layoutForWindowTypeChooser->addWidget(m_typeChooser);

    BT_CONNECT(m_typeChooser, SIGNAL(activated(QString const &)),
               SLOT(slotKeyChooserTypeChanged(QString const &)) );

    // m_*.title strings are empty here, they are filled and added to the stacked widget in the retranslateUi() function
    m_keyChooserStack = new QStackedWidget(this);
    retranslateUi();

    // create shortcuteditors

    // ------ Application -------------- //
    m_application.actionCollection = new BtActionCollection(this);
    BibleTime::insertKeyboardActions( m_application.actionCollection);
    m_application.actionCollection->readShortcuts("Application shortcuts");
    m_application.keyChooser = new BtShortcutsEditor(m_application.actionCollection, m_keyChooserStack);
    m_keyChooserStack->addWidget(m_application.keyChooser);
    BT_CONNECT(m_application.keyChooser,
               SIGNAL(keyChangeRequest(BtShortcutsEditor *, QString const &)),
               this,
               SLOT(completeKeyChangeRequest(BtShortcutsEditor *,
                                             QString const &)));

    // ----- All display windows ------ //
    m_general.actionCollection = new BtActionCollection(this);
    CDisplayWindow::insertKeyboardActions( m_general.actionCollection);
    m_general.actionCollection->readShortcuts("Displaywindow shortcuts");
    m_general.keyChooser = new BtShortcutsEditor(m_general.actionCollection, m_keyChooserStack);
    m_keyChooserStack->addWidget(m_general.keyChooser);
    BT_CONNECT(m_general.keyChooser,
               SIGNAL(keyChangeRequest(BtShortcutsEditor *, QString const &)),
               this,
               SLOT(completeKeyChangeRequest(BtShortcutsEditor *,
                                             QString const &)));

    // ----- Bible windows ------ //
    m_bible.actionCollection = new BtActionCollection(this);
    CBibleReadWindow::insertKeyboardActions( m_bible.actionCollection);
    m_bible.actionCollection->readShortcuts("Bible shortcuts");
    m_bible.keyChooser = new BtShortcutsEditor(m_bible.actionCollection, m_keyChooserStack);
    m_keyChooserStack->addWidget(m_bible.keyChooser);
    BT_CONNECT(m_bible.keyChooser,
               SIGNAL(keyChangeRequest(BtShortcutsEditor *, QString const &)),
               this,
               SLOT(completeKeyChangeRequest(BtShortcutsEditor *,
                                             QString const &)));

    // ----- Commentary windows ------ //
    m_commentary.actionCollection = new BtActionCollection(this);
    CCommentaryReadWindow::insertKeyboardActions( m_commentary.actionCollection);
    m_commentary.actionCollection->readShortcuts("Commentary shortcuts");
    m_commentary.keyChooser = new BtShortcutsEditor(m_commentary.actionCollection, m_keyChooserStack);
    m_keyChooserStack->addWidget(m_commentary.keyChooser);
    BT_CONNECT(m_commentary.keyChooser,
               SIGNAL(keyChangeRequest(BtShortcutsEditor *, QString const &)),
               this,
               SLOT(completeKeyChangeRequest(BtShortcutsEditor *,
                                             QString const &)));

    // ----- Lexicon windows ------ //
    m_lexicon.actionCollection = new BtActionCollection(this);
    CLexiconReadWindow::insertKeyboardActions(  m_lexicon.actionCollection );
    m_lexicon.actionCollection->readShortcuts("Lexicon shortcuts");
    m_lexicon.keyChooser = new BtShortcutsEditor(m_lexicon.actionCollection, m_keyChooserStack);
    m_keyChooserStack->addWidget(m_lexicon.keyChooser);
    BT_CONNECT(m_lexicon.keyChooser,
               SIGNAL(keyChangeRequest(BtShortcutsEditor *, QString const &)),
               this,
               SLOT(completeKeyChangeRequest(BtShortcutsEditor *,
                                             QString const &)));

    // ----- Book windows ------ //
    m_book.actionCollection = new BtActionCollection(this);
    CBookReadWindow::insertKeyboardActions( m_book.actionCollection);
    m_book.actionCollection->readShortcuts("Book shortcuts");
    m_book.keyChooser = new BtShortcutsEditor(m_book.actionCollection, m_keyChooserStack);
    m_keyChooserStack->addWidget(m_book.keyChooser);
    BT_CONNECT(m_book.keyChooser,
               SIGNAL(keyChangeRequest(BtShortcutsEditor *, QString const &)),
               this,
               SLOT(completeKeyChangeRequest(BtShortcutsEditor *,
                                             QString const &)));

    mainLayout->addWidget(m_keyChooserStack);
    slotKeyChooserTypeChanged(m_application.title);

    m_typeChooser->setFocus(Qt::MouseFocusReason);

    retranslateUi();
}