Exemple #1
0
void PMLatheEdit::slotAddPointBelow( )
{
   int index = m_pPoints->currentRow( );
   if( index >= 0 )
   {
      QValueList<PMVector> points = m_pPoints->vectors( );
      QValueListIterator<PMVector> it = points.at( index );

      if( it != points.end( ) )
      {
         QValueListIterator<PMVector> it2 = it;
         it2++;
         PMVector v;
         if( it2 == points.end( ) )
            v = *it;
         else
            v = ( *it + *it2 ) / 2;
         
         points.insert( it2, v );
         m_pPoints->setVectors( points, true );
         m_pPoints->setCurrentCell( index + 1, m_pPoints->currentColumn( ) );
         updatePointButtons( );
         emit dataChanged( );
         emit sizeChanged( );
      }
   }
}
/**
 * Return a list of PackageVersion objects sorted by their version numbers,
 * with the oldest version at the beginning and the latest version at the end
 * of the list.
 */
QValueList<PackageVersion*> Package::sortedVersionList()
{
	QValueList<PackageVersion*> sortedVersions;
	QValueList<PackageVersion*>::iterator sortedVersionIterator;
	PackageVersionMap::iterator versionIterator;

	for( versionIterator = m_versions.begin();
	     versionIterator != m_versions.end(); versionIterator++ )
	{
		if( versionIterator == m_versions.begin() ) {
			sortedVersions.append( *versionIterator );
			continue; // if there is only one version, it can't be compared
		}

		// reverse iteration through the sorted version list
		sortedVersionIterator = sortedVersions.end();
		while( true )
		{
			if( sortedVersionIterator == sortedVersions.begin() )
			{
				sortedVersions.prepend( *versionIterator );
				break;
			}

			sortedVersionIterator--;
			if( (*versionIterator)->isNewerThan(
			      (*sortedVersionIterator)->version() ) )
			{
				sortedVersionIterator++; // insert after the compared one, not before
				sortedVersions.insert( sortedVersionIterator, *versionIterator );
				break;
			}
		}
	}
	return sortedVersions;
} // end of sortedVersionList()
Exemple #3
0
//-------------------------------------------------------------------------
KJSDebugWin::KJSDebugWin(QWidget *parent, const char *name) : KMainWindow(parent, name, WType_TopLevel), KInstance("kjs_debugger")
{
    m_breakpoints = 0;
    m_breakpointCount = 0;

    m_curSourceFile = 0;
    m_mode = Continue;
    m_nextSourceUrl = "";
    m_nextSourceBaseLine = 1;
    m_execs = 0;
    m_execsCount = 0;
    m_execsAlloc = 0;
    m_steppingDepth = 0;

    m_stopIcon = KGlobal::iconLoader()->loadIcon("stop", KIcon::Small);
    m_emptyIcon = QPixmap(m_stopIcon.width(), m_stopIcon.height());
    QBitmap emptyMask(m_stopIcon.width(), m_stopIcon.height(), true);
    m_emptyIcon.setMask(emptyMask);

    setCaption(i18n("JavaScript Debugger"));

    QWidget *mainWidget = new QWidget(this);
    setCentralWidget(mainWidget);

    QVBoxLayout *vl = new QVBoxLayout(mainWidget, 5);

    // frame list & code
    QSplitter *hsplitter = new QSplitter(Qt::Vertical, mainWidget);
    QSplitter *vsplitter = new QSplitter(hsplitter);
    QFont font(KGlobalSettings::fixedFont());

    QWidget *contextContainer = new QWidget(vsplitter);

    QLabel *contextLabel = new QLabel(i18n("Call stack"), contextContainer);
    QWidget *contextListContainer = new QWidget(contextContainer);
    m_contextList = new QListBox(contextListContainer);
    m_contextList->setMinimumSize(100, 200);
    connect(m_contextList, SIGNAL(highlighted(int)), this, SLOT(slotShowFrame(int)));

    QHBoxLayout *clistLayout = new QHBoxLayout(contextListContainer);
    clistLayout->addWidget(m_contextList);
    clistLayout->addSpacing(KDialog::spacingHint());

    QVBoxLayout *contextLayout = new QVBoxLayout(contextContainer);
    contextLayout->addWidget(contextLabel);
    contextLayout->addSpacing(KDialog::spacingHint());
    contextLayout->addWidget(contextListContainer);

    // source selection & display
    QWidget *sourceSelDisplay = new QWidget(vsplitter);
    QVBoxLayout *ssdvl = new QVBoxLayout(sourceSelDisplay);

    m_sourceSel = new QComboBox(toolBar());
    connect(m_sourceSel, SIGNAL(activated(int)), this, SLOT(slotSourceSelected(int)));

    m_sourceDisplay = new SourceDisplay(this, sourceSelDisplay);
    ssdvl->addWidget(m_sourceDisplay);
    connect(m_sourceDisplay, SIGNAL(lineDoubleClicked(int)), SLOT(slotToggleBreakpoint(int)));

    QValueList< int > vsplitSizes;
    vsplitSizes.insert(vsplitSizes.end(), 120);
    vsplitSizes.insert(vsplitSizes.end(), 480);
    vsplitter->setSizes(vsplitSizes);

    // evaluate

    QWidget *evalContainer = new QWidget(hsplitter);

    QLabel *evalLabel = new QLabel(i18n("JavaScript console"), evalContainer);
    m_evalEdit = new EvalMultiLineEdit(evalContainer);
    m_evalEdit->setWordWrap(QMultiLineEdit::NoWrap);
    m_evalEdit->setFont(font);
    connect(m_evalEdit, SIGNAL(returnPressed()), SLOT(slotEval()));
    m_evalDepth = 0;

    QVBoxLayout *evalLayout = new QVBoxLayout(evalContainer);
    evalLayout->addSpacing(KDialog::spacingHint());
    evalLayout->addWidget(evalLabel);
    evalLayout->addSpacing(KDialog::spacingHint());
    evalLayout->addWidget(m_evalEdit);

    QValueList< int > hsplitSizes;
    hsplitSizes.insert(hsplitSizes.end(), 400);
    hsplitSizes.insert(hsplitSizes.end(), 200);
    hsplitter->setSizes(hsplitSizes);

    vl->addWidget(hsplitter);

    // actions
    KPopupMenu *debugMenu = new KPopupMenu(this);
    menuBar()->insertItem("&Debug", debugMenu);

    m_actionCollection = new KActionCollection(this);
    m_actionCollection->setInstance(this);

    // Venkman use F12, KDevelop F10
    KShortcut scNext = KShortcut(KKeySequence(KKey(Qt::Key_F12)));
    scNext.append(KKeySequence(KKey(Qt::Key_F10)));
    m_nextAction = new KAction(i18n("Next breakpoint", "&Next"), "dbgnext", scNext, this, SLOT(slotNext()), m_actionCollection, "next");
    m_stepAction = new KAction(i18n("&Step"), "dbgstep", KShortcut(Qt::Key_F11), this, SLOT(slotStep()), m_actionCollection, "step");
    // Venkman use F5, Kdevelop F9
    KShortcut scCont = KShortcut(KKeySequence(KKey(Qt::Key_F5)));
    scCont.append(KKeySequence(KKey(Qt::Key_F9)));
    m_continueAction = new KAction(i18n("&Continue"), "dbgrun", scCont, this, SLOT(slotContinue()), m_actionCollection, "cont");
    m_stopAction = new KAction(i18n("St&op"), "stop", KShortcut(Qt::Key_F4), this, SLOT(slotStop()), m_actionCollection, "stop");
    m_breakAction = new KAction(i18n("&Break at Next Statement"), "dbgrunto", KShortcut(Qt::Key_F8), this, SLOT(slotBreakNext()), m_actionCollection,
                                "breaknext");


    m_nextAction->setToolTip(i18n("Next breakpoint", "Next"));
    m_stepAction->setToolTip(i18n("Step"));
    m_continueAction->setToolTip(i18n("Continue"));
    m_stopAction->setToolTip(i18n("Stop"));
    m_breakAction->setToolTip("Break at next Statement");

    m_nextAction->setEnabled(false);
    m_stepAction->setEnabled(false);
    m_continueAction->setEnabled(false);
    m_stopAction->setEnabled(false);
    m_breakAction->setEnabled(true);

    m_nextAction->plug(debugMenu);
    m_stepAction->plug(debugMenu);
    m_continueAction->plug(debugMenu);
    //   m_stopAction->plug(debugMenu); ### disabled until DebuggerImp::stop() works reliably
    m_breakAction->plug(debugMenu);

    m_nextAction->plug(toolBar());
    m_stepAction->plug(toolBar());
    m_continueAction->plug(toolBar());
    //   m_stopAction->plug(toolBar()); ###
    m_breakAction->plug(toolBar());

    toolBar()->insertWidget(1, 300, m_sourceSel);
    toolBar()->setItemAutoSized(1);

    updateContextList();
    setMinimumSize(300, 200);
    resize(600, 450);
}