void QgsGrassNewMapset::regionChanged() { mRegionModified = true; checkRegion(); drawRegion(); }
void JCFloaterAreaSearch::onRefresh() { //llinfos << "Clicked search" << llendl; mStopped = false; checkRegion(true); results(); }
// static void JCFloaterAreaSearch::processObjectPropertiesFamily(LLMessageSystem* msg) { checkRegion(); LLUUID object_id; msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_ObjectID, object_id); bool exists = (sObjectDetails.count(object_id) != 0); AObjectDetails* details = &sObjectDetails[object_id]; if (!exists || details->name == REQUEST_STRING) { // We cache unknown objects (to avoid having to request them later) // and requested objects. if (exists && sRequested > 0) sRequested--; msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_OwnerID, details->owner_id); msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_GroupID, details->group_id); msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Name, details->name); msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Description, details->desc); gCacheName->get(details->owner_id, false, boost::bind(&callbackLoadOwnerName, _1, _2, _3)); gCacheName->get(details->group_id, true, boost::bind(&callbackLoadOwnerName, _1, _2, _3)); LL_DEBUGS("AreaSearch") << "Got info for " << (exists ? "requested" : "unknown") << " object " << object_id << LL_ENDL; } }
static int r_getPos(lua_State *L) { Region *pR = checkRegion(L); assert(pR); Vertex::vertexToLuaVertex(L, pR->getPosition()); return 1; }
static int r_getY(lua_State *L) { Region *pR = checkRegion(L); assert(pR); lua_pushnumber(L, pR->getPosY()); return 1; }
static int r_isValid(lua_State *L) { Region *pR = checkRegion(L); assert(pR); lua_pushbooleancpp(L, pR->isValid()); return 1; }
void QgsGrassNewMapset::regionChanged() { QgsDebugMsg( "entered." ); mRegionModified = true; checkRegion(); drawRegion(); }
static int r_getCentroid(lua_State *L) { Region *RPtr = checkRegion(L); assert(RPtr); Vertex::vertexToLuaVertex(L, RPtr->getCentroid()); return 1; }
static int r_setY(lua_State *L) { Region *pR = checkRegion(L); assert(pR); pR->setPosY(static_cast<int>(luaL_checknumber(L, 2))); return 0; }
void QgsGrassNewMapset::setCurrentRegion() { QgsDebugMsg( "entered." ); QgsRectangle ext = mIface->mapCanvas()->extent(); int srsid = QgsProject::instance()->readNumEntry( "SpatialRefSys", "/ProjectCRSID", 0 ); QgsCoordinateReferenceSystem srs( srsid, QgsCoordinateReferenceSystem::InternalCrsId ); QgsDebugMsg( QString( "current project srsid = %1" ).arg( srsid ) ); QgsDebugMsg( QString( "srs.isValid() = %1" ).arg( srs.isValid() ) ); std::vector<QgsPoint> points; // TODO: this is not perfect points.push_back( QgsPoint( ext.xMinimum(), ext.yMinimum() ) ); points.push_back( QgsPoint( ext.xMaximum(), ext.yMaximum() ) ); // TODO add a method, this code is copy-paste from setSelectedRegion if ( srs.isValid() && mSrs.isValid() && srs.srsid() != mSrs.srsid() ) { QgsCoordinateTransform trans( srs, mSrs ); bool ok = true; for ( int i = 0; i < 2; i++ ) { try { points[i] = trans.transform( points[i] ); } catch ( QgsCsException &cse ) { Q_UNUSED( cse ); QgsDebugMsg( "Cannot transform point" ); ok = false; break; } } if ( !ok ) { QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot reproject region" ) ); return; } } mNorthLineEdit->setText( QString::number( points[1].y() ) ); mSouthLineEdit->setText( QString::number( points[0].y() ) ); mEastLineEdit->setText( QString::number( points[1].x() ) ); mWestLineEdit->setText( QString::number( points[0].x() ) ); mRegionModified = true; checkRegion(); drawRegion(); QgsDebugMsg( "setCurrentRegion - End" ); }
static int r_isPointInRegion(lua_State *L) { Region *pR = checkRegion(L); assert(pR); Vertex vertex; Vertex::luaVertexToVertex(L, 2, vertex); lua_pushbooleancpp(L, pR->isPointInRegion(vertex)); return 1; }
static int r_setPos(lua_State *L) { Region *pR = checkRegion(L); assert(pR); Vertex vertex; Vertex::luaVertexToVertex(L, 2, vertex); pR->setPos(vertex.x, vertex.y); return 0; }
bool searchMatched(mafLine_t *ml, char *seq, uint32_t start, uint32_t stop) { // report false if search did not match, true if it did if (ml->type != 's') return false; if (!(strcmp(ml->species, seq) == 0)) return false; if (checkRegion(start, stop, ml->start, ml->length, ml->sourceLength, ml->strand)) return true; return false; }
void JCFloaterAreaSearch::onCommitLine(LLUICtrl* caller, const LLSD& value, OBJECT_COLUMN_ORDER type) { std::string text = value.asString(); LLStringUtil::toLower(text); caller->setValue(text); mFilterStrings[type] = text; //llinfos << "loaded " << name << " with "<< text << llendl; checkRegion(); results(); }
void FSAreaSearch::cancel() { checkRegion(); closeFloater(); mSearchedName = ""; mSearchedDesc = ""; mSearchedOwner = ""; mSearchedGroup = ""; }
bool searchMatched(mafLine_t *ml, const char *seq, uint64_t start, uint64_t stop) { // report false if search did not match, true if it did if (maf_mafLine_getType(ml) != 's') return false; if (!(strcmp(maf_mafLine_getSpecies(ml), seq) == 0)) return false; if (checkRegion(start, stop, maf_mafLine_getStart(ml), maf_mafLine_getLength(ml), maf_mafLine_getSourceLength(ml), maf_mafLine_getStrand(ml))) return true; return false; }
// static void JCFloaterAreaSearch::cancel(void* data) { checkRegion(); if (sInstance) { sInstance->close(TRUE); } sSearchedName = ""; sSearchedDesc = ""; sSearchedOwner = ""; sSearchedGroup = ""; }
void QgsGrassNewMapset::setCurrentRegion() { QgsDebugMsg( "entered" ); QgsRectangle ext = mIface->mapCanvas()->extent(); QgsCoordinateReferenceSystem srs = mIface->mapCanvas()->mapSettings().destinationCrs(); QgsDebugMsg( "srs = " + srs.toWkt() ); std::vector<QgsPoint> points; // TODO: this is not perfect points.push_back( QgsPoint( ext.xMinimum(), ext.yMinimum() ) ); points.push_back( QgsPoint( ext.xMaximum(), ext.yMaximum() ) ); // TODO add a method, this code is copy-paste from setSelectedRegion if ( srs.isValid() && mCrs.isValid() && srs.srsid() != mCrs.srsid() ) { QgsCoordinateTransform trans( srs, mCrs ); bool ok = true; for ( int i = 0; i < 2; i++ ) { try { points[i] = trans.transform( points[i] ); } catch ( QgsCsException &cse ) { Q_UNUSED( cse ); QgsDebugMsg( "Cannot transform point" ); ok = false; break; } } if ( !ok ) { QgsGrass::warning( tr( "Cannot reproject region" ) ); return; } } mNorthLineEdit->setText( QString::number( points[1].y() ) ); mSouthLineEdit->setText( QString::number( points[0].y() ) ); mEastLineEdit->setText( QString::number( points[1].x() ) ); mWestLineEdit->setText( QString::number( points[0].x() ) ); mRegionModified = true; checkRegion(); drawRegion(); QgsDebugMsg( "setCurrentRegion - End" ); }
void FSAreaSearch::onCommitLine(LLLineEditor* line, void* user_data) { std::string name = line->getName(); std::string text = line->getText(); if (name == "Name query chunk") mSearchedName = text; else if (name == "Description query chunk") mSearchedDesc = text; else if (name == "Owner query chunk") mSearchedOwner = text; else if (name == "Group query chunk") mSearchedGroup = text; if (text.length() > 3) { checkRegion(); results(); } }
// static void JCFloaterAreaSearch::onCommitLine(LLLineEditor* line, void* user_data) { std::string name = line->getName(); std::string text = line->getText(); LLStringUtil::toLower(text); line->setText(text); if (name == "Name query chunk") sSearchedName = text; else if (name == "Description query chunk") sSearchedDesc = text; else if (name == "Owner query chunk") sSearchedOwner = text; else if (name == "Group query chunk") sSearchedGroup = text; if (text.length() > 3) { checkRegion(); setDirty(); } }
// static void JCFloaterAreaSearch::toggle() { if (sInstance) { if (sInstance->getVisible()) { sInstance->setVisible(FALSE); } else { checkRegion(); sInstance->setVisible(TRUE); } } else { sInstance = new JCFloaterAreaSearch(); LLUICtrlFactory::getInstance()->buildFloater(sInstance, "floater_area_search.xml"); } }
// static void JCFloaterAreaSearch::processObjectPropertiesFamily(LLMessageSystem* msg, void** user_data) { checkRegion(); LLUUID object_id; msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_ObjectID, object_id); AObjectDetails* details = &sObjectDetails[object_id]; if (!details->ready) sRequested--; // We cache unknown objects (to avoid having to request them later) // and requested objects. msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_OwnerID, details->owner_id); msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_GroupID, details->group_id); msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Name, details->name); msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Description, details->desc); details->ready = true; gCacheName->get(details->owner_id, FALSE, callbackLoadOwnerName); gCacheName->get(details->group_id, TRUE, callbackLoadOwnerName); }
// static void JCFloaterAreaSearch::onCommitLine(LLLineEditor* line, void* user_data) { std::string name = line->getName(); std::string text = line->getText(); line->setText(text); if (name == "Name query chunk") {sSearchedName = text; sSearchingName = (text.length() > 3);} else if (name == "Description query chunk") {sSearchedDesc = text; sSearchingDesc = (text.length() > 3);} else if (name == "Owner query chunk") {sSearchedOwner = text; sSearchingOwner = (text.length() > 3);} else if (name == "Group query chunk") {sSearchedGroup = text; sSearchingGroup = (text.length() > 3);} if (text.length() > 3) { checkRegion(); results(); } else { } }
// static void JCFloaterAreaSearch::processObjectPropertiesFamily(LLMessageSystem* msg, void** user_data) { checkRegion(); LLUUID object_id; msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_ObjectID, object_id); bool exists = (sObjectDetails.count(object_id) != 0); AObjectDetails* details = &sObjectDetails[object_id]; if (!exists || details->name == request_string) { // We cache unknown objects (to avoid having to request them later) // and requested objects. if (exists && sRequested > 0) sRequested--; msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_OwnerID, details->owner_id); msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_GroupID, details->group_id); msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Name, details->name); msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Description, details->desc); gCacheName->get(details->owner_id, false, boost::bind(&JCFloaterAreaSearch::results)); gCacheName->get(details->group_id, true, boost::bind(&JCFloaterAreaSearch::results)); //llinfos << "Got info for " << (exists ? "requested" : "unknown") << " object " << object_id << llendl; } }
void FSAreaSearch::processObjectPropertiesFamily(LLMessageSystem* msg) { checkRegion(); LLUUID object_id; msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_ObjectID, object_id); bool exists = (mObjectDetails.count(object_id) != 0); AObjectDetails* details = &mObjectDetails[object_id]; if (!exists || details->name == request_string) { // We cache unknown objects (to avoid having to request them later) // and requested objects. if (exists && mRequested > 0) mRequested--; msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_OwnerID, details->owner_id); msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_GroupID, details->group_id); msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Name, details->name); msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Description, details->desc); gCacheName->get(details->owner_id, false, boost::bind( &FSAreaSearch::callbackLoadOwnerName, this, _1, _2)); gCacheName->get(details->group_id, true, boost::bind( &FSAreaSearch::callbackLoadOwnerName, this, _1, _2)); } }
// static void JCFloaterAreaSearch::search(void* data) { //llinfos << "Clicked search" << llendl; checkRegion(); results(); }
void QgsGrassNewMapset::setSelectedRegion() { QgsDebugMsg( "entered." ); // mRegionsPoints are in EPSG 4326 = LL WGS84 int index = 2 * mRegionsComboBox->currentIndex(); std::vector<QgsPoint> points; // corners ll lr ur ul points.push_back( QgsPoint( mRegionsPoints[index] ) ); points.push_back( QgsPoint( mRegionsPoints[index+1].x(), mRegionsPoints[index].y() ) ); points.push_back( QgsPoint( mRegionsPoints[index+1] ) ); points.push_back( QgsPoint( mRegionsPoints[index].x(), mRegionsPoints[index+1].y() ) ); // Convert to currently selected coordinate system // Warning: seems that crashes if source == dest if ( mProjectionSelector->selectedCrsId() != GEOCRS_ID ) { // Warning: QgsCoordinateReferenceSystem::EpsgCrsId is broken (using epsg_id) //QgsCoordinateReferenceSystem source ( 4326, QgsCoordinateReferenceSystem::EpsgCrsId ); QgsCoordinateReferenceSystem source( GEOCRS_ID, QgsCoordinateReferenceSystem::InternalCrsId ); if ( !source.isValid() ) { QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot create QgsCoordinateReferenceSystem" ) ); return; } QgsCoordinateReferenceSystem dest( mProjectionSelector->selectedCrsId(), QgsCoordinateReferenceSystem::InternalCrsId ); if ( !dest.isValid() ) { QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot create QgsCoordinateReferenceSystem" ) ); return; } QgsCoordinateTransform trans( source, dest ); bool ok = true; for ( int i = 0; i < 4; i++ ) { QgsDebugMsg( QString( "%1,%2->" ).arg( points[i].x() ).arg( points[i].y() ) ); try { points[i] = trans.transform( points[i] ); QgsDebugMsg( QString( "%1,%2" ).arg( points[i].x() ).arg( points[i].y() ) ); } catch ( QgsCsException &cse ) { Q_UNUSED( cse ); QgsDebugMsg( "Cannot transform point" ); ok = false; break; } } if ( !ok ) { QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot reproject selected region." ) ); return; } } double n = -90.0, s = 90.0, e = -180.0, w = 180.0; if ( mCellHead.proj == PROJECTION_LL ) { n = points[2].y(); s = points[0].y(); e = points[1].x(); w = points[0].x(); if ( n > 90 ) n = 90; if ( s < -90 ) s = -90; #if 0 if ( e > 180 ) e = 180; if ( w < -180 ) w = 180; #endif } else { for ( int i = 0; i < 4; i++ ) { if ( i == 0 || points[i].y() > n ) n = points[i].y(); if ( i == 0 || points[i].y() < s ) s = points[i].y(); if ( i == 0 || points[i].x() > e ) e = points[i].x(); if ( i == 0 || points[i].x() < w ) w = points[i].x(); } } mNorthLineEdit->setText( QString::number( n ) ); mSouthLineEdit->setText( QString::number( s ) ); mEastLineEdit->setText( QString::number( e ) ); mWestLineEdit->setText( QString::number( w ) ); mRegionModified = true; checkRegion(); drawRegion(); }
/**************************** REGION ********************************/ void QgsGrassNewMapset::setRegionPage() { QgsDebugMsg( "entered." ); // Set defaults if ( !mRegionModified ) { setGrassRegionDefaults(); } // Create new projection QgsCoordinateReferenceSystem newSrs; if ( mProjRadioButton->isChecked() ) { QgsDebugMsg( QString( "selectedCrsId() = %1" ).arg( mProjectionSelector->selectedCrsId() ) ); if ( mProjectionSelector->selectedCrsId() > 0 ) { newSrs.createFromSrsId( mProjectionSelector->selectedCrsId() ); if ( ! newSrs.isValid() ) { QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot create projection." ) ); } } } // Reproject previous region if it was modified // and if previous and current projection is valid if ( mRegionModified && newSrs.isValid() && mSrs.isValid() && newSrs.srsid() != mSrs.srsid() ) { QgsCoordinateTransform trans( mSrs, newSrs ); double n = mNorthLineEdit->text().toDouble(); double s = mSouthLineEdit->text().toDouble(); double e = mEastLineEdit->text().toDouble(); double w = mWestLineEdit->text().toDouble(); std::vector<QgsPoint> points; // TODO: this is not perfect points.push_back( QgsPoint( w, s ) ); points.push_back( QgsPoint( e, n ) ); bool ok = true; for ( int i = 0; i < 2; i++ ) { try { points[i] = trans.transform( points[i] ); } catch ( QgsCsException &cse ) { Q_UNUSED( cse ); QgsDebugMsg( "Cannot transform point" ); ok = false; break; } } if ( ok ) { mNorthLineEdit->setText( QString::number( points[1].y() ) ); mSouthLineEdit->setText( QString::number( points[0].y() ) ); mEastLineEdit->setText( QString::number( points[1].x() ) ); mWestLineEdit->setText( QString::number( points[0].x() ) ); } else { QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot reproject previously set region, default region set." ) ); setGrassRegionDefaults(); } } // Set current region projection mSrs = newSrs; // Enable / disable region selection widgets if ( mNoProjRadioButton->isChecked() ) { mRegionMap->hide(); mCurrentRegionButton->hide(); mRegionsComboBox->hide(); mRegionButton->hide(); mSetRegionFrame->hide(); } else { mRegionMap->show(); mCurrentRegionButton->show(); mRegionsComboBox->show(); mRegionButton->show(); mSetRegionFrame->show(); QgsRectangle ext = mIface->mapCanvas()->extent(); if ( ext.xMinimum() >= ext.xMaximum() || ext.yMinimum() >= ext.yMaximum() ) { mCurrentRegionButton->setEnabled( false ); } } checkRegion(); if ( !mNoProjRadioButton->isChecked() ) { drawRegion(); } }
void FSAreaSearch::search() { checkRegion(); results(); }
void JCFloaterAreaSearch::onOpen() { checkRegion(); results(); }