Logo Search packages:      
Sourcecode: ktikz version File versions  Download package

QDockWidget * TikzCommandInserter::getDockWidget ( QWidget *  parent = 0 )

This function returns a dock widget containing a list of TikZ commands which can be inserted in the main text by clicking on them.

Parameters:
parentthe parent widget
Returns:
a dock widget with TikZ commands

Definition at line 279 of file tikzcommandinserter.cpp.

References insertTag().

{
      QDockWidget *tikzDock = new QDockWidget(parent);
      tikzDock->setObjectName("CommandsDock");
      tikzDock->setAllowedAreas(Qt::AllDockWidgetAreas);
      tikzDock->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
      tikzDock->setWindowTitle(m_tikzSections.title);
      tikzDock->setWhatsThis(tr("<p>This is a list of TikZ "
          "commands.  You can insert these commands in your code by "
          "clicking on them.  You can obtain more commands by "
          "changing the category in the combo box.</p>"));

      QAction *focusTikzDockAction = new QAction(parent);
      focusTikzDockAction->setShortcut(QKeySequence(tr("Alt+I")));
      tikzDock->addAction(focusTikzDockAction);
      connect(focusTikzDockAction, SIGNAL(triggered()), tikzDock, SLOT(setFocus()));

      QLabel *commandsComboLabel = new QLabel(tr("Category:"));
      QComboBox *commandsCombo = new QComboBox;
      commandsCombo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
      QStackedWidget *commandsStack = new QStackedWidget;
      connect(commandsCombo, SIGNAL(currentIndexChanged(int)), commandsStack, SLOT(setCurrentIndex(int)));

      QListWidget *tikzListWidget = new QListWidget;
      addListWidgetItems(tikzListWidget, m_tikzSections, false); // don't add children
      tikzListWidget->setMouseTracking(true);
      connect(tikzListWidget, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(setListStatusTip(QListWidgetItem*)));
      connect(tikzListWidget, SIGNAL(itemEntered(QListWidgetItem*)), this, SLOT(setListStatusTip(QListWidgetItem*)));
      connect(tikzListWidget, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(insertTag(QListWidgetItem*)));
//    connect(tikzListWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(insertTag(QListWidgetItem*)));
      commandsCombo->addItem(tr("General"));
      commandsStack->addWidget(tikzListWidget);

      for (int i = 0; i < m_tikzSections.children.size(); ++i)
      {
            QListWidget *tikzListWidget = new QListWidget;
            addListWidgetItems(tikzListWidget, m_tikzSections.children.at(i));
            tikzListWidget->setMouseTracking(true);
            connect(tikzListWidget, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(setListStatusTip(QListWidgetItem*)));
            connect(tikzListWidget, SIGNAL(itemEntered(QListWidgetItem*)), this, SLOT(setListStatusTip(QListWidgetItem*)));
            connect(tikzListWidget, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(insertTag(QListWidgetItem*)));
//          connect(tikzListWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(insertTag(QListWidgetItem*)));

            QString comboItemText = m_tikzSections.children.at(i).title;
            commandsCombo->addItem(comboItemText.remove('&'));
            commandsStack->addWidget(tikzListWidget);
      }

      QGridLayout *tikzLayout = new QGridLayout;
      tikzLayout->addWidget(commandsComboLabel, 0, 0);
      tikzLayout->addWidget(commandsCombo, 0, 1);
      tikzLayout->addWidget(commandsStack, 1, 0, 1, 2);
      tikzLayout->setMargin(5);

      TikzCommandWidget *tikzWidget = new TikzCommandWidget;
      tikzWidget->setLayout(tikzLayout);
      tikzDock->setWidget(tikzWidget);
      tikzDock->setFocusProxy(commandsCombo);

      return tikzDock;
}

Here is the call graph for this function:


Generated by  Doxygen 1.6.0   Back to index