Esempio n. 1
1
void ReportViewWidget::on_actionRunQryFromFile_triggered()
{
	QString path = m_dirModel->data(ui.dirView->currentIndex(), QDirModel::FilePathRole).toString();
	if (!QFileInfo(path).isFile() || !QFile(path).exists())
		return;

    QString errorStr;
    int errorLine;
    int errorColumn;

    QFile file(path);
    if (!file.open(QFile::ReadOnly | QFile::Text)) {
        QMessageBox::warning(this, "CuteFarm",
                             tr("Can not read file  %1\nError: %2")
                             .arg(QFile(path).fileName())
                             .arg(file.errorString()));
        return;
    }

    if (!m_domDocument.setContent(&file, true, &errorStr, &errorLine,
                                &errorColumn)) {
        QMessageBox::information(this, "CuteFarm",
                                 tr("Error in line %1, column %2\nError: %3")
                                 .arg(errorLine)
                                 .arg(errorColumn)
                                 .arg(errorStr));
        return;
    }

    QDomElement root = m_domDocument.documentElement();
    if (root.tagName() != "qry") {
        QMessageBox::information(this, "CuteFarm",
                                 tr("This file is not a query file."));
        return;
    } else if (root.hasAttribute("version")
               && root.attribute("version") != "1.0") {
        QMessageBox::information(this, "CuteFarm",
                                 tr("The file is not an query version 1.0 "
                                    "file."));
        return;
    }

    QString sql = root.firstChildElement("sql").text();
    file.close();

	if (sql.contains("INSERT", Qt::CaseInsensitive) ||
			sql.contains("UPDATE", Qt::CaseInsensitive) ||
			sql.contains("CREATE", Qt::CaseInsensitive) ||
			sql.contains("DELETE", Qt::CaseInsensitive))
		return;

	QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
	m_qryModel->setQuery(sql);
	ui.resultView->resizeColumnsToContents();
	ui.resultView->horizontalHeader()->setStretchLastSection(true);
	QApplication::restoreOverrideCursor();

	if (m_qryModel->lastError().type() != QSqlError::NoError)
		emit statusMsg(tr("Error"), 2500);
	else
		emit statusMsg("Ok", 2500);

	ui.textEditError->setText(m_qryModel->lastError().text());
}
Esempio n. 2
0
void ReportViewWidget::on_actionRunQryFromText_triggered()
{
	QString query = ui.textEditSql->toPlainText();
	if (query.isEmpty())
		return;

	if (query.contains("INSERT", Qt::CaseInsensitive) ||
			query.contains("UPDATE", Qt::CaseInsensitive) ||
			query.contains("CREATE", Qt::CaseInsensitive) ||
			query.contains("DELETE", Qt::CaseInsensitive) ||
			query.contains("PRAGMA", Qt::CaseInsensitive))
		return;

	QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
	m_qryModel->setQuery(query);
	ui.resultView->resizeColumnsToContents();
	ui.resultView->horizontalHeader()->setStretchLastSection(true);
	QApplication::restoreOverrideCursor();

	if (m_qryModel->lastError().type() != QSqlError::NoError)
		emit statusMsg(tr("Error"), 2500);
	else
		emit statusMsg("Ok", 2500);

	ui.textEditError->setText(m_qryModel->lastError().text());

}
Esempio n. 3
0
void Status::addMsg(enum statusMsg::msgLevel level, const std::string &nodeId, const std::string &name, const std::string &msg)
{
    statusMsg statusMsg(level, nodeId, name, msg);
    m_messages.insert({level, statusMsg });
    if (level > m_highestMsgLevel)
        m_highestMsgLevel = level;
}
Esempio n. 4
0
double TriCubicHermite::interpolateScalar( const xyzVector loc ) const
{
	assert(data->nDim() == 1);
	const int faceIndex = planeMesh->locatePointInMeshFace( loc );
	if ( !faceReady[faceIndex] )
	{
		std::stringstream ss;
		ss << "interp coefficients not defined at face " << faceIndex;
		OutputMessage statusMsg(ss.str(), OutputMessage::errorPriority, "TriCubicHermite::interpolateScalar");
		log->logMessage(statusMsg);
		return 0.0;
	}
	if ( planeMesh->pointIsOutsideMesh( loc ) )
	{
		return 0.0;
	}
	else
	{	
		const std::vector<int> faceVerts = planeMesh->ccwVerticesAroundFace(faceIndex);
		const xyzVector v0 = planeMesh->particlePosition(faceVerts[0]);
	
		const double denom = faceU[faceIndex][0] * faceV[faceIndex][1] - faceV[faceIndex][0] * faceU[faceIndex][1];
	
		const double uLoc = ( faceV[faceIndex][1] * (loc.x - v0.x) - faceV[faceIndex][0] * (loc.y - v0.y) ) / denom;
		const double vLoc = (-faceU[faceIndex][1] * (loc.x - v0.x) + faceU[faceIndex][0] * (loc.y - v0.y) ) / denom;
						
		return faceCoeffs[faceIndex][0] + faceCoeffs[faceIndex][1] * vLoc + faceCoeffs[faceIndex][2] * vLoc * vLoc +
						faceCoeffs[faceIndex][3] * vLoc * vLoc * vLoc + faceCoeffs[faceIndex][4] * uLoc + 
						faceCoeffs[faceIndex][5] * uLoc * vLoc + faceCoeffs[faceIndex][6] * uLoc * vLoc * vLoc + 
						faceCoeffs[faceIndex][7] * uLoc * uLoc + faceCoeffs[faceIndex][8] * uLoc * uLoc * vLoc +
						faceCoeffs[faceIndex][9] * uLoc * uLoc * uLoc;
	}
};
Esempio n. 5
0
TriCubicHermite::TriCubicHermite( const PolyMesh2d* aMesh, const Field* aField )
{
	log = Logger::Instance();
	if ( aMesh->getFaceKind() != Faces::triangularFaces || aMesh->nDim() != 2 )
	{
		OutputMessage statusMsg("TriCubicHermite can only be used on triangulations of planar particles",
								OutputMessage::errorPriority, "TriCubicHermite constructor.");
		log->logMessage(statusMsg);
		return;
	}

	planeMesh = aMesh;
	data = aField;

	const int nTri = aMesh->nFaces();
	faceU = std::vector< std::vector<double> > ( nTri );
	faceV = std::vector< std::vector<double> > ( nTri );
	faceCoeffs = std::vector< std::vector<double> > ( nTri );
	for ( int i = 0; i < nTri; ++i)
	{
		faceU[i] = std::vector<double> ( 2, 0.0 );
		faceV[i] = std::vector<double> ( 2, 0.0 );
		faceCoeffs[i] = std::vector<double> (10 * aField->nDim(), 0.0 );
	}
	faceReady = std::vector< bool > ( nTri, false );
	faceMapsReady = false;
	allFacesReady = false;
};
Esempio n. 6
0
INT_PTR FacebookProto::GetMyAwayMsg(WPARAM, LPARAM lParam)
{
	ptrT statusMsg(getTStringA("StatusMsg"));
	if (statusMsg == NULL || statusMsg[0] == '\0')
		return 0;

	return (lParam & SGMA_UNICODE) ? (INT_PTR)mir_t2u(statusMsg) : (INT_PTR)mir_t2a(statusMsg);
}
Esempio n. 7
0
void ClientAgent::UpdateStatus(int32 status)
{
	BMessage statusMsg(M_CW_UPDATE_STATUS);
	statusMsg.AddPointer("item", fAgentWinItem);
	statusMsg.AddInt32("status", status);
	Window()->PostMessage(&statusMsg);
	if (status == WIN_NICK_BIT) system_beep(kSoundEventNames[(uint32)seNickMentioned]);
}
Esempio n. 8
0
//rename the elements in the project dom tree
void Project::slotRenamed(const KURL& oldURL, const KURL& newURL)
{
  if ( oldURL == newURL)  // just in case
    return;

  // remove the target if already there
  // TODO: check if this is correct because it removes a folder but not the content?
  d->m_projectFiles.removeFromListAndXML(newURL);

  emit statusMsg(i18n("Renaming files..."));
  progressBar->setTotalSteps(d->m_projectFiles.count());
  progressBar->setValue(0);
  progressBar->setTextEnabled(true);

  QDomElement el;
  bool isFolder = oldURL.fileName(false).isEmpty();
  ProjectList::Iterator it( d->m_projectFiles );
  for ( ; it.current(); ++it)
  {
    ProjectURL * curUrl = it.current();
    if ( oldURL == *curUrl || (isFolder && oldURL.isParentOf(*curUrl)) )
    {
      curUrl->setPath( curUrl->path().replace(oldURL.path(), newURL.path()) );
      el = curUrl->domElement;
      el.setAttribute("url", d->m_projectFiles.toRelative(*curUrl).path());
//      el.setAttribute("upload_time", "");
      d->m_modified = true;
      if (! isFolder)
        break;
    }
    progressBar->advance(1);
  }

  progressBar->setTotalSteps(1);
  progressBar->setValue(0);
  progressBar->setTextEnabled(false);

  emit statusMsg(QString::null);
  if (d->m_modified)
    setModified();  // there happens more than setting the flag !

  emit reloadTree(&(d->m_projectFiles), false, QStringList());
  emit newStatus();
}
Esempio n. 9
0
void ReportViewWidget::on_actionCSV_triggered()
{
	if (m_qryModel->rowCount() < 1)
		return;

	QString fileName = QFileDialog::getSaveFileName(
			this, tr("Save csv file"), QDir::homePath(), "*.csv");

	if (fileName.isEmpty())
		return;

	QFile file(fileName);

	if (file.open(QFile::WriteOnly | QFile::Truncate)) {
	    QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
		QTextStream out(&file);
		out.setCodec("UTF-8");
        for (int col = 0; col < m_qryModel->columnCount(); ++col) {
            out << m_qryModel->headerData(col, Qt::Horizontal, Qt::DisplayRole).toString();
            out << "|";

        }
        out << endl;
		for (int i = 0; i < m_qryModel->rowCount(); ++i) {
			for (int j = 0; j < m_qryModel->columnCount(); ++j) {
				out << m_qryModel->record(i).field(j).value().toString();
				out << "|";
			}
			out << endl;
		}
		emit statusMsg(tr("Saved"), 5000);
		file.close();
		QApplication::restoreOverrideCursor();
	}
	else
		emit statusMsg(tr("Error: %1").arg(file.errorString()), 5000);

}
Esempio n. 10
0
void PMShell::slotFileSave( )
{
	m_pPart->slotAboutToSave( );

   if( m_pPart->isModified( ) )
   {
      if( !m_pPart->url( ).isEmpty( ) &&
          m_pPart->isReadWrite( ) )
         m_pPart->saveAs( m_pPart->url( ) );
      else
         saveAs( );
      setCaption( m_pPart->url( ).prettyURL( ) );
   }
   else
      emit statusMsg( i18n( "No changes need to be saved" ) );
}
Esempio n. 11
0
//-----------------------------------------------------------------------------
int KMFolder::open(void)
{
  int rc = 0;

  mOpenCount++;
  if (mOpenCount > 1) return 0;  // already open

  assert(name() != "");

  mFilesLocked = FALSE;
  mStream = fopen(location(), "r+"); // messages file
  if (!mStream) 
  {
    debug("Cannot open folder `%s': %s", (const char*)location(), 
	  strerror(errno));
    mOpenCount = 0;
    return errno;
  }

  if (!path().isEmpty())
  {
    if (isIndexOutdated()) // test if contents file has changed
    {
      QString str;
      mIndexStream = NULL;
      str.sprintf(i18n("Folder `%s' changed. Recreating index."), 
		  (const char*)name());
      emit statusMsg(str);
    }
    else mIndexStream = fopen(indexLocation(), "r+"); // index file

    if (!mIndexStream) rc = createIndexFromContents();
    else readIndex();
  }
  else
  {
    //debug("No path specified for folder `" + name() +
    //      "' -- Turning autoCreateIndex off");
    mAutoCreateIndex = FALSE;
    rc = createIndexFromContents();
  }

  if (!rc) lock();
  mQuiet = 0;

  return rc;
}
Esempio n. 12
0
int neUserManager::checkPingAndStatus(neUser *user)
{
    int ret = 0;
    nemsgPing pingMsg((ncSocket *)0);
    nemsgStatus statusMsg((ncSocket *)0);
    static int pingTime = g_config.getUserPingDelay();
    static int statusTime = g_config.getUserStatusDelay();

    assert(user);
    assert(user->getSocket());

    /* check if a ping message should be sent to the user */
    if (user->isPingTime())
    {
        pingMsg.setSocket(user->getSocket());
        user->lockWriteLock();
        if (pingMsg.send())
        {
            iprintf("Removing User %x (ping send failed).\n",user);
            ret = 1;
        }
        else
        {
            user->setPingTime(pingTime);

            /* check if a status message should be sent to the user */
            if (user->isStatusTime())
            {
                statusMsg.setSocket(user->getSocket());
                if (statusMsg.send
                    (m_serverStatus->getNumUsers(),
                     m_serverStatus->getNumUserFiles(),
                     m_serverStatus->getTotalSizeofFilesInMB()))
                {
                    iprintf("Removing User %x (status send failed).\n",user);
                    ret = 1;
                }
                else
                {
                    user->setStatusTime(statusTime);
                }
            }
        }
        user->unlockWriteLock();
    }
    return ret;
}
Esempio n. 13
0
Field TriCubicHermite::scalarGradient( const Particles& aParticles ) const
{
	assert(data->nDim() == 1);
	Field result("n/a","n/a", 2, aParticles.N());
	if ( !allFacesReady ) 
	{
		OutputMessage statusMsg("interp coefficients not defined ", OutputMessage::errorPriority, "(Field) TriCubicHermite::scalarGradient");
		log->logMessage(statusMsg);
		return result;
	}
	
	for ( int i = 0; i < aParticles.N(); ++i )
	{
		xyzVector newGrad = scalarGradient( aParticles.physCoord(i) );
		result.insertVectorToField( i, newGrad );
	}
	return result;
};
Esempio n. 14
0
Field TriCubicHermite::scalarLaplacian( const Particles& aParticles ) const
{
	assert(data->nDim() == 1);
	Field result("n/a","n/a", 1, aParticles.N());
	if ( !allFacesReady ) 
	{
		OutputMessage statusMsg("interp coefficients not defined ", OutputMessage::errorPriority, "(Field) TriCubicHermite::scalarLaplacian");
		log->logMessage(statusMsg);
		return result;
	}
	
	for ( int i = 0; i < aParticles.N(); ++i )
	{
		double newVal = scalarLaplacian( aParticles.physCoord(i) );
		result.insertScalarToField( i, newVal );
	}
	return result;
};
Esempio n. 15
0
void ClientAgent::Display(const char* buffer, uint32 fore, uint32 back, uint32 font)
{
	// displays normal text if no color codes are present
	// (i.e. if the text has already been filtered by ServerAgent::FilterCrap
	ParsemIRCColors(buffer, fore, back, font);

	if (IsHidden()) {
		BMessage statusMsg(M_CW_UPDATE_STATUS);
		statusMsg.AddPointer("item", fAgentWinItem);
		statusMsg.AddInt32("status", WIN_PAGESIX_BIT);
		Window()->PostMessage(&statusMsg);
	}

	if (fIsLogging) {
		BMessage logMessage(M_CLIENT_LOG);
		logMessage.AddString("name", fId.String());
		logMessage.AddString("data", buffer);
		fSMsgr.SendMessage(&logMessage);
	}
}
Esempio n. 16
0
void ClientAgent::Show(void)
{
	Window()->PostMessage(M_STATUS_CLEAR);
	this->fMsgr.SendMessage(M_STATUS_ADDITEMS);

	BMessage statusMsg(M_CW_UPDATE_STATUS);
	statusMsg.AddPointer("item", fAgentWinItem);
	statusMsg.AddInt32("status", WIN_NORMAL_BIT);
	statusMsg.AddBool("hidden", false);
	Window()->PostMessage(&statusMsg);

	const BRect* agentRect(dynamic_cast<ClientWindow*>(Window())->AgentRect());

	if (*agentRect != Frame()) {
		ResizeTo(agentRect->Width(), agentRect->Height());
		MoveTo(agentRect->left, agentRect->top);
	}

	// make RunView recalculate itself
	fText->Show();
	BView::Show();
}
Esempio n. 17
0
xyzVector TriCubicHermite::scalarGradient( const xyzVector loc ) const
{
	assert(data->nDim() == 1);
	xyzVector result;
	const int faceIndex = planeMesh->locatePointInMeshFace( loc );
	if ( !faceReady[faceIndex] )
	{
		std::stringstream ss;
		ss << "interp coefficients not defined at face " << faceIndex;
		OutputMessage statusMsg(ss.str(), OutputMessage::errorPriority, "TriCubicHermite::scalarGradient");
		log->logMessage(statusMsg);
		return result;
	}
	if ( !planeMesh->pointIsOutsideMesh(loc) )
	{
		const std::vector<int> faceVerts = planeMesh->ccwVerticesAroundFace(faceIndex);
		const xyzVector v0 = planeMesh->particlePosition(faceVerts[0]);
	
		const double denom = faceU[faceIndex][0] * faceV[faceIndex][1] - faceV[faceIndex][0] * faceU[faceIndex][1];
		const double a =  faceV[faceIndex][1] / denom;
		const double b = -faceU[faceIndex][1] / denom;
		const double c = -faceV[faceIndex][0] / denom;
		const double d =  faceU[faceIndex][0] / denom;
	
		const double uLoc = ( faceV[faceIndex][1] * (loc.x - v0.x) - faceV[faceIndex][0] * (loc.y - v0.y) ) / denom;
		const double vLoc = (-faceU[faceIndex][1] * (loc.x - v0.x) + faceU[faceIndex][0] * (loc.y - v0.y) ) / denom;

		double p_u = faceCoeffs[faceIndex][4] + faceCoeffs[faceIndex][5] * vLoc + faceCoeffs[faceIndex][6] * vLoc * vLoc
					 + faceCoeffs[faceIndex][7] * 2.0 * uLoc + 2.0 * uLoc * faceCoeffs[faceIndex][8] * vLoc + 
					 3.0 * uLoc * uLoc * faceCoeffs[faceIndex][9];
		double p_v = faceCoeffs[faceIndex][1] + 2.0 * faceCoeffs[faceIndex][2] * vLoc + 
					 3.0 * faceCoeffs[faceIndex][3] * vLoc * vLoc + faceCoeffs[faceIndex][5] * uLoc + 
					 2.0 * faceCoeffs[faceIndex][6] * uLoc * vLoc + faceCoeffs[faceIndex][8] * uLoc * uLoc;

	
		result = xyzVector(a * p_u + b * p_v, c * p_u + d * p_v );
	}
	return result;
};
Esempio n. 18
0
void Field::sumIntoVectorField( const xyzVector& vec )
{
	if ( _nDim > 1 )
	{
		for ( int i = 0; i < _N; ++i )
		{
			xComp[i] += vec.x;
			yComp[i] += vec.y;
		}
		if ( _nDim == 3 )
		{
			for ( int i = 0; i < _N; ++i )
				zComp[i] += vec.z;
		}
	}
	else
	{
		OutputMessage statusMsg("cannot add a vector to a scalar.", OutputMessage::errorPriority, "Field::sumIntoVectorField");
		log->logMessage(statusMsg);
		return;
	}
};
Esempio n. 19
0
//-----------------------------------------------------------------------------
int KMFolder::compact(void)
{
  KMFolder* tempFolder;
  KMMessage* msg;
  QString tempName, msgStr;
  int openCount = mOpenCount;
  int num, numStatus;


  if (!needsCompact)
  {
    //debug ("Not compacting %s; it's clean", name().data());
    return 0;
  }
  
  debug ("Compacting %s ", name().data());
  
  tempName = "." + name();
  tempName.detach();
  tempName += ".compacted";
  unlink(tempName);
  //tempFolder = parent()->createFolder(tempName); //sven: shouldn't be in list
  tempFolder = new KMFolder(parent(), tempName);   //sven: we create it
  if(tempFolder->create()) {
    debug("KMFolder::compact() Creating tempFolder failed!\n");
    delete tempFolder;                             //sven: and we delete it
    return 0;
  }

  quiet(TRUE);
  tempFolder->open();
  open();

  for(num=1,numStatus=9; count() > 0; num++, numStatus--)
  {
    if (numStatus <= 0)
    {
      msgStr.sprintf(i18n("Compacting folder: %d messages done"), num);
      emit statusMsg(msgStr);
      numStatus = 10;
    }

    msg = getMsg(0);
    if(msg)
      tempFolder->moveMsg(msg);
  }
  tempName = tempFolder->location();
  tempFolder->close(TRUE);
  close(TRUE);
  mMsgList.clear(TRUE);

  _rename(tempName, location());
  _rename(tempFolder->indexLocation(), indexLocation());

  // Now really free all memory
  delete tempFolder;                //sven: we delete it, not the manager

  if (openCount > 0)
  {
    open();
    mOpenCount = openCount;
  }
  quiet(FALSE);

  if (!mQuiet) emit changed();
  needsCompact = false;             // We are clean now
  return 0;
}
Esempio n. 20
0
//-----------------------------------------------------------------------------
int KMFolder::createIndexFromContents(void)
{
  char line[MAX_LINE];
  char status[8], xstatus[8];
  QString subjStr, dateStr, fromStr, toStr, xmarkStr, *lastStr=NULL;
  QString whoFieldName;
  unsigned long offs, size, pos;
  bool atEof = FALSE;
  bool inHeader = TRUE;
  KMMsgInfo* mi;
  QString msgStr(256);
  QRegExp regexp(MSG_SEPERATOR_REGEX);
  int i, num, numStatus, whoFieldLen;
  short needStatus;

  assert(mStream != NULL);
  rewind(mStream);

  mMsgList.clear();

  num     = -1;
  numStatus= 11;
  offs    = 0;
  size    = 0;
  dateStr = "";
  fromStr = "";
  toStr = "";
  subjStr = "";
  *status = '\0';
  *xstatus = '\0';
  xmarkStr = "";
  needStatus = 3;
  whoFieldName = QString(whoField()) + ':'; //unused (sven)
  whoFieldLen = whoFieldName.length();      //unused (sven)

  //debug("***whoField: %s (%d)",
  //      (const char*)whoFieldName, whoFieldLen);

  while (!atEof)
  {
    pos = ftell(mStream);
    if (!fgets(line, MAX_LINE, mStream)) atEof = TRUE;

    if (atEof ||
	(strncmp(line,MSG_SEPERATOR_START, msgSepLen)==0 && 
	 regexp.match(line) >= 0))
    {
      size = pos - offs;
      pos = ftell(mStream);

      if (num >= 0)
      {
	if (numStatus <= 0)
	{
	  msgStr.sprintf(i18n("Creating index file: %d messages done"), num);
	  emit statusMsg(msgStr);
	  numStatus = 10;
	}

	if (size > 0)
	{
	  mi = new KMMsgInfo(this);
	  mi->init(subjStr, fromStr, toStr, 0, KMMsgStatusNew, xmarkStr, offs, size);
	  mi->setStatus(status,xstatus);
	  mi->setDate(dateStr);
	  mi->setDirty(FALSE);
	  mMsgList.append(mi);

	  *status = '\0';
	  *xstatus = '\0';
	  needStatus = 3;
	  xmarkStr = "";
	  dateStr = "";
	  fromStr = "";
	  subjStr = "";
	}
	else num--,numStatus++;
      }

      offs = ftell(mStream);
      num++;
      numStatus--;
      inHeader = TRUE;
      continue;
    }
    // Is this a long header line?
    if (inHeader && (line[0]=='\t' || line[0]==' '))
    {
      i = 0;
      while (line [i]=='\t' || line [i]==' ') i++;
      if (line [i] < ' ' && line [i]>0) inHeader = FALSE;
      else if (lastStr) *lastStr += line + i;
    } 
    else lastStr = NULL;

    if (inHeader && (line [0]=='\n' || line [0]=='\r'))
      inHeader = FALSE;
    if (!inHeader) continue;

    if ((needStatus & 1) && strncasecmp(line, "Status:", 7) == 0 && 
	isblank(line[7])) 
    {
      for(i=0; i<4 && line[i+8] > ' '; i++)
	status[i] = line[i+8];
      status[i] = '\0';
      needStatus &= ~1;
    }
    else if ((needStatus & 2) && strncasecmp(line, "X-Status:", 9)==0 &&
	     isblank(line[9]))
    {
      for(i=0; i<4 && line[i+10] > ' '; i++)
	xstatus[i] = line[i+10];
      xstatus[i] = '\0';
      needStatus &= ~2;
    }
    else if (strncasecmp(line,"X-KMail-Mark:",13)==0 && isblank(line[13]))
      xmarkStr = QString(line+14).copy();
    else if (strncasecmp(line,"Date:",5)==0 && isblank(line[5]))
    {
      dateStr = QString(line+6).copy();
      lastStr = &dateStr;
    }
    else if (strncasecmp(line,"From:", 5)==0 &&
	     isblank(line[5]))
    {
      fromStr = QString(line+6).copy();
      lastStr = &fromStr;
    }
    else if (strncasecmp(line,"To:", 3)==0 &&
	     isblank(line[3]))
    {
      toStr = QString(line+4).copy();
      lastStr = &toStr;
    }
    else if (strncasecmp(line,"Subject:",8)==0 && isblank(line[8]))
    {
      subjStr = QString(line+9).copy();
      lastStr = &subjStr;
    }
  }

  if (mAutoCreateIndex)
  {
    emit statusMsg(i18n("Writing index file"));
    writeIndex();
  }
  else mHeaderOffset = 0;

  return 0;
}
Esempio n. 21
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // Register QtKeypadBridge for the virtual keyboard functionality
    ui->keypadWidget->installEventFilter(&qt_keypad_bridge);
    ui->lcdView->installEventFilter(&qt_keypad_bridge);

    //Emu -> GUI (QueuedConnection as they're different threads)
    connect(&emu, SIGNAL(serialChar(char)), this, SLOT(serialChar(char)), Qt::QueuedConnection);
    connect(&emu, SIGNAL(debugStr(QString)), this, SLOT(debugStr(QString))); //Not queued connection as it may cause a hang
    connect(&emu, SIGNAL(speedChanged(double)), this, SLOT(showSpeed(double)), Qt::QueuedConnection);
    connect(&emu, SIGNAL(statusMsg(QString)), ui->statusbar, SLOT(showMessage(QString)), Qt::QueuedConnection);
    connect(&emu, SIGNAL(turboModeChanged(bool)), ui->buttonSpeed, SLOT(setChecked(bool)), Qt::QueuedConnection);
    connect(&emu, SIGNAL(usblinkChanged(bool)), this, SLOT(usblinkChanged(bool)), Qt::QueuedConnection);

    //Menu "Emulator"
    connect(ui->buttonReset, SIGNAL(clicked(bool)), &emu, SLOT(reset()));
    connect(ui->actionReset, SIGNAL(triggered()), &emu, SLOT(reset()));
    connect(ui->actionRestart, SIGNAL(triggered()), this, SLOT(restart()));
    connect(ui->actionDebugger, SIGNAL(triggered()), &emu, SLOT(enterDebugger()));
    connect(ui->buttonPause, SIGNAL(clicked(bool)), &emu, SLOT(setPaused(bool)));
    connect(ui->buttonPause, SIGNAL(clicked(bool)), ui->actionPause, SLOT(setChecked(bool)));
    connect(ui->actionPause, SIGNAL(toggled(bool)), &emu, SLOT(setPaused(bool)));
    connect(ui->actionPause, SIGNAL(toggled(bool)), ui->buttonPause, SLOT(setChecked(bool)));
    connect(ui->buttonSpeed, SIGNAL(clicked(bool)), &emu, SLOT(setTurboMode(bool)));
    QShortcut *shortcut = new QShortcut(QKeySequence(Qt::Key_F11), this);
    shortcut->setAutoRepeat(false);
    connect(shortcut, SIGNAL(activated()), &emu, SLOT(toggleTurbo()));

    //Menu "Tools"
    connect(ui->buttonScreenshot, SIGNAL(clicked()), this, SLOT(screenshot()));
    connect(ui->actionScreenshot, SIGNAL(triggered()), this, SLOT(screenshot()));
    connect(ui->actionConnect, SIGNAL(triggered()), this, SLOT(connectUSB()));
    connect(ui->buttonUSB, SIGNAL(clicked(bool)), this, SLOT(connectUSB()));
    connect(ui->actionXModem, SIGNAL(triggered()), this, SLOT(xmodemSend()));
    ui->actionConnect->setShortcut(QKeySequence(Qt::Key_F10));
    ui->actionConnect->setAutoRepeat(false);

    //Menu "Flash"
    connect(ui->actionSave, SIGNAL(triggered()), this, SLOT(saveFlash()));
    connect(ui->actionCreate_flash, SIGNAL(triggered()), this, SLOT(createFlash()));

    //Debugging
    connect(ui->lineEdit, SIGNAL(returnPressed()), this, SLOT(debugCommand()));

    //File transfer
    connect(ui->refreshButton, SIGNAL(clicked(bool)), this, SLOT(reload_filebrowser()));
    connect(this, SIGNAL(usblink_progress_changed(int)), this, SLOT(changeProgress(int)), Qt::QueuedConnection);

    //Settings
    connect(ui->checkDebugger, SIGNAL(toggled(bool)), this, SLOT(setDebuggerOnStartup(bool)));
    connect(ui->checkWarning, SIGNAL(toggled(bool)), this, SLOT(setDebuggerOnWarning(bool)));
    connect(ui->uiDocks, SIGNAL(toggled(bool)), this, SLOT(setUIMode(bool)));
    connect(ui->checkAutostart, SIGNAL(toggled(bool)), this, SLOT(setAutostart(bool)));
    connect(ui->fileBoot1, SIGNAL(pressed()), this, SLOT(selectBoot1()));
    connect(ui->fileFlash, SIGNAL(pressed()), this, SLOT(selectFlash()));
    connect(ui->pathTransfer, SIGNAL(textEdited(QString)), this, SLOT(setUSBPath(QString)));
    connect(ui->spinGDB, SIGNAL(valueChanged(int)), this, SLOT(setGDBPort(int)));
    connect(ui->spinRDBG, SIGNAL(valueChanged(int)), this, SLOT(setRDBGPort(int)));
    connect(ui->orderDiags, SIGNAL(toggled(bool)), this, SLOT(setBootOrder(bool)));

    //Set up monospace fonts
    QFont monospace = QFontDatabase::systemFont(QFontDatabase::FixedFont);
    ui->debugConsole->setFont(monospace);
    ui->serialConsole->setFont(monospace);

    qRegisterMetaType<QVector<int>>();

#ifdef Q_OS_ANDROID
    //On android the settings file is deleted everytime you update or uninstall,
    //so choose a better, safer, location
    QString path = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
    settings = new QSettings(path + "/nspire_emu.ini", QSettings::IniFormat);
#else
    settings = new QSettings();
#endif

    //Load settings
    setUIMode(settings->value("docksEnabled", true).toBool());
    restoreGeometry(settings->value("windowGeometry").toByteArray());
    restoreState(settings->value("windowState").toByteArray(), WindowStateVersion);
    selectBoot1(settings->value("boot1", "").toString());
    selectFlash(settings->value("flash", "").toString());
    setDebuggerOnStartup(settings->value("debugOnStart", false).toBool());
    setDebuggerOnWarning(settings->value("debugOnWarn", false).toBool());
    setUSBPath(settings->value("usbdir", QString("ndless")).toString());
    setGDBPort(settings->value("gdbPort", 3333).toUInt());
    setRDBGPort(settings->value("rdbgPort", 3334).toUInt());
    setBootOrder(false);

    bool autostart = settings->value("emuAutostart", false).toBool();
    setAutostart(autostart);
    if(emu.boot1 != "" && emu.flash != "" && autostart)
        emu.start();
    else
        ui->statusbar->showMessage(trUtf8("Start the emulation via Emulation->Restart."));

    #ifdef Q_OS_MAC
        QTimer::singleShot(50, [&] {dockVisibilityChanged(false);}); // Trigger dock update (after UI was shown)
    #endif
}
Esempio n. 22
0
void Field::outputForMatlab( const std::string filename, const Particles& particles ) const 
{
	std::ofstream file( filename.c_str() );
	if ( !file )
	{
		OutputMessage statusMsg("cannot open file.", OutputMessage::errorPriority, "Field::outputForMatlab");
		log->logMessage(statusMsg);
		return;
	}
	
	file << "Field_name = '" << _name << "'; " << std::endl;
	file << "units = '" << _units << "';" <<std::endl;
	
	const int n = particles.N();
	
	file << " x = [ ";
	for ( int i = 0; i < n-1; ++i)
	{
		file << particles.x[i] << " , ";
	}
	file << particles.x[n-1] << " ]; " << std::endl << std::endl;
	
	file << " y = [ ";
	for ( int i = 0; i < n-1; ++i)
	{
		file << particles.y[i] << " , ";
	}
	file << particles.y[n-1] << " ]; " << std::endl << std::endl;
	
	file << " x0 = [ ";
	for ( int i = 0; i < n-1; ++i)
	{
		file << particles.x0[i] << " , ";
	}
	file << particles.x0[n-1] << " ]; " << std::endl << std::endl;
	
	file << " y0 = [ ";
	for ( int i = 0; i < n-1; ++i)
	{
		file << particles.y0[i] << " , ";
	}
	file << particles.y0[n-1] << " ]; " << std::endl << std::endl;

	if ( particles.nDim() == 3 )
	{
		file << " z = [ ";
		for ( int i = 0; i < n-1; ++i)
		{
			file << particles.z[i] << " , ";
		}
		file << particles.z[n-1] << " ]; " << std::endl << std::endl;
		
		file << " z0 = [ ";
		for ( int i = 0; i < n-1; ++i)
		{
			file << particles.z0[i] << " , ";
		}
		file << particles.z0[n-1] << " ]; " << std::endl << std::endl;
	}
	
	if ( _nDim == 1 )
	{
		file << "scalarField = [ " ;
		for ( int i = 0; i < n-1; ++i )
		{
			file << scalar[i] << " , ";
		}
		file << scalar[n-1] << " ]; " << std::endl;
	}
	else
	{
		if ( _nDim == 2)
		{
			file << "vectorField = [ ";
			for ( int i = 0; i < n-1; ++i)
			{
				file << xComp[i] << " , " << yComp[i] << " ; " ;
			}
			file << xComp[n-1] << " , " << yComp[n-1] << " ];" << std::endl;
		}
		else
		{
			file << "vectorField = [ ";
			for ( int i = 0; i < n-1; ++i)
			{
				file << xComp[i] << " , " << yComp[i] << " , " << zComp[i] << " ; " ;
			}
			file << xComp[n-1] << " , " << yComp[n-1] << " , " << zComp[n-1] << " ];" << std::endl;
		}
	}
};
Esempio n. 23
0
void Project::slotRemove(const KURL& urlToRemove)
{
  emit statusMsg(i18n("Removing files..."));
  progressBar->setTotalSteps(d->m_projectFiles.count());
  progressBar->setValue(0);
  progressBar->setTextEnabled(true);

  KURL url;
  bool isFolder = d->m_projectFiles.isFolder(urlToRemove);
  ProjectList projectFiles = d->m_projectFiles;
  ProjectList::Iterator it(projectFiles);
  for ( ; it.current(); ++it)
  {
    url = *(it.current());
    if (urlToRemove == url || (isFolder && urlToRemove.isParentOf(url)) )
    {
      d->m_projectFiles.removeFromListAndXML(url);
      d->m_modified = true;
      emit eventHappened("after_project_remove", url.url(), QString::null);
      if (!isFolder)
        break;
    }
    progressBar->advance(1);
  }

  progressBar->setTotalSteps(1);
  progressBar->setValue(0);
  progressBar->setTextEnabled(false);

  emit statusMsg(QString::null);

  if (d->m_modified)
    setModified();  // there happens more than setting the flag !
  emit reloadTree( &(d->m_projectFiles), false, QStringList() );
  emit newStatus();

  QString urlPath = QExtFileInfo::toRelative(urlToRemove, d->baseURL).path();
  QString nice = urlPath;
  nice = KStringHandler::lsqueeze(nice, 60);
  if (KMessageBox::warningContinueCancel(d->m_mainWindow, i18n("<qt>Do you want to remove <br><b>%1</b><br> from the server(s) as well?</qt>").arg(nice), i18n("Remove From Server"), KStdGuiItem::remove(), "RemoveFromServer") == KMessageBox::Continue )
  {
    QDomNode profilesNode = d->m_sessionDom.firstChild().firstChild().namedItem("uploadprofiles");
    QDomNodeList profileList = profilesNode.toElement().elementsByTagName("profile");
    QDomElement e;
    QString s;
    for (uint i = 0; i < profileList.count(); i++)
    {
      e = profileList.item(i).toElement();
      QString path = e.attribute("remote_path","");
      if (!path.startsWith("/"))
        path.prepend("/");
      KURL baseUrl;
      baseUrl.setProtocol(e.attribute("remote_protocol","ftp"));
      baseUrl.setPort(e.attribute("remote_port","").toInt());
      baseUrl.setHost(e.attribute("remote_host",""));
      baseUrl.setPath(path);
      baseUrl.setUser(e.attribute("user",""));
      QString passwd = password(e.attribute("remote_protocol") + "://" + e.attribute("user") + "@" + e.attribute("remote_host"));
      baseUrl.setPass(passwd);
      baseUrl.addPath(urlPath);
      KIO::NetAccess::del(baseUrl, d->m_mainWindow);
    }
  }
}
Esempio n. 24
0
void ReportViewWidget::on_actionSaveQry_triggered()
{
	if (m_currentQry.isEmpty()) {

		ReportFileDialog fD(m_dirModel, this);
		start:
	    if (fD.exec() != QDialog::Accepted)
	         return;

		if (fD.fileName().isEmpty())
			return;

		m_currentQry = fD.path() + "/" + fD.fileName();

		if (QFile(m_currentQry).exists()) {
	        if (QMessageBox::question(this, "CuteFarm",
	                             tr("File %1 exists.\nReplace?")
	                             .arg(m_currentQry), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No)
	        	goto start;
		}

		QFile file(m_currentQry);
	    if (!file.open(QFile::WriteOnly | QFile::Text)) {
	        QMessageBox::warning(this, "CuteFarm",
	                             tr("Can not save file %1\n%2.")
	                             .arg(file.fileName())
	                             .arg(file.errorString()));
	        return;
	    }

	    QTextStream out(&file);
	    out << "<?xml version='1.0' encoding='UTF-8'?>\n"
	    	   "<!DOCTYPE qry>\n"
	    	   "<qry version=\"1.0\">\n"
	    	   "	<description>"+ Qt::escape(ui.textEditComt->toPlainText()) +"</description>\n"
	    	   "	<sql>"+ Qt::escape(ui.textEditSql->toPlainText()) +"</sql>\n"
	    	   "</qry>\n";

	    QModelIndex parent = ui.dirView->currentIndex().parent();
	    m_dirModel->refresh(parent);
	    file.close();
	    m_actnQryButton->setText(QFileInfo(file.fileName()).fileName());

	    return;
	}

    QFile file(m_currentQry);
    if (!file.open(QFile::WriteOnly | QFile::Text)) {
        QMessageBox::warning(this, "CuteFarm",
                             tr("Can not save file %1\n%2.")
                             .arg(QFile(m_currentQry).fileName())
                             .arg(file.errorString()));
        return;
    }

    QDomElement root = m_domDocument.documentElement();
    QDomElement oldDesc = root.firstChildElement("description");
    QDomElement newDesc = m_domDocument.createElement("description");
    QDomText newDescText = m_domDocument.createTextNode(ui.textEditComt->toPlainText());
    newDesc.appendChild(newDescText);
    root.replaceChild(newDesc, oldDesc);
    QDomElement oldSql = root.firstChildElement("sql");
    QDomElement newSql = m_domDocument.createElement("sql");
    QDomText newSqlText = m_domDocument.createTextNode(ui.textEditSql->toPlainText());
    newSql.appendChild(newSqlText);
    root.replaceChild(newSql, oldSql);

    const int IndentSize = 4;

    QTextStream out(&file);
    m_domDocument.save(out, IndentSize);
    file.close();
    QModelIndex parent = ui.dirView->currentIndex().parent();
    m_dirModel->refresh(parent);

    emit statusMsg(tr("Saved: %1").arg(m_currentQry), 5000);
}