示例#1
0
TPZComponent* TPZBuilder :: createComponentWithId( const TPZString& id,
                                                   TPZComponent* owner )
{
   INDEX indice = getTagIndex(id);
   TPZTag* tag = getTagWithIndex(indice);
   if( ! tag )
   {
      TPZString err;
      tag = getTagWithIndex(1);
      err.sprintf(ERR_TPZBLDR_002, (char*)id );
      err=err+TPZString("(cont...)\n Help=     Avaliable ")+tag->tagName()+TPZString(" (")+showTagArray(tag->tagName())+TPZString(" )");
      EXIT_PROGRAM(err);
   }
   TPZComponent* rComponent = parseComponentDefinition(tag,owner,indice);
   if( ! rComponent )
   {
      tag = getTagWithIndex(1);
      TPZString err;
      err.sprintf(ERR_TPZBLDR_002, (char*)id );
      err=err+TPZString("(cont...)\n Help=     Avaliable ")+tag->tagName()+TPZString(" (")+showTagArray(tag->tagName())+TPZString(" )");
      EXIT_PROGRAM(err);
      
   }
   return rComponent;
}
示例#2
0
文件: bookmarks.cpp 项目: cyx01/gqrx
bool Bookmarks::setTagChecked(QString tagName, bool bChecked)
{
    int idx = getTagIndex(tagName);
    if (idx == -1) return false;
    m_TagList[idx].active = bChecked;
    emit BookmarksChanged();
    emit TagListChanged();
    return true;
}
示例#3
0
文件: bookmarks.cpp 项目: cyx01/gqrx
TagInfo &Bookmarks::findOrAddTag(QString tagName)
{
    tagName = tagName.trimmed();

    if (tagName.isEmpty())
        tagName=TagInfo::strUntagged;

    int idx = getTagIndex(tagName);

    if (idx != -1)
        return m_TagList[idx];

    TagInfo info;
    info.name=tagName;
    m_TagList.append(info);
    emit TagListChanged();
    return m_TagList.last();
}
示例#4
0
文件: bookmarks.cpp 项目: cyx01/gqrx
bool Bookmarks::removeTag(QString tagName)
{
    tagName = tagName.trimmed();

    // Do not delete "Untagged" tag.
    if(tagName.compare(TagInfo::strUntagged, tagName)==0)
        return false;

    int idx = getTagIndex(tagName);
    if (idx == -1)
        return false;

    // Delete Tag from all Bookmarks that use it.
    TagInfo* pTagToDelete = &m_TagList[idx];
    for(int i=0; i<m_BookmarkList.size(); ++i)
    {
        BookmarkInfo& bmi = m_BookmarkList[i];
        for(int t=0; t<bmi.tags.size(); ++t)
        {
            TagInfo* pTag = bmi.tags[t];
            if(pTag == pTagToDelete)
            {
                if(bmi.tags.size()>1) bmi.tags.removeAt(t);
                else bmi.tags[0] = &findOrAddTag(TagInfo::strUntagged);
            }
        }
    }

    // Delete Tag.
    m_TagList.removeAt(idx);

    emit BookmarksChanged();
    emit TagListChanged();

    return true;
}
示例#5
0
bool DRAL_CLIENT_BINARY_0_IMPLEMENTATION_CLASS::SetTag (void * buffer)
{
    char tag_name [9];
    UINT32 size;
    char * buffer2;
    char * str;
    UINT64 * value;
    struct setTagFormat
    {
        UINT64 commandCode : 4;
        UINT64 variant : 2;
        UINT64 flags : 4;
        UINT64 reserved : 6;
        UINT64 n : 16;
        UINT64 item_id : 32;
        UINT64 tag_name : 64;
    } * commandSetTag;
    UINT32 n;
    UINT32 item_id;
    UINT16 variant;
    UBYTE flags;
    
    commandSetTag=(setTagFormat *)buffer;

    //the values must be saved because '*buffer' may change if full
    n=commandSetTag->n;
    item_id=commandSetTag->item_id;
    variant=commandSetTag->variant;
    flags=commandSetTag->flags;

    buffer2 = (char *) ReadBytes(8);  // reading the tag name
    if (buffer2 == NULL)
    {
        return false;
    }

    memcpy(tag_name,buffer2,8);//copy the tag name, because '*buffer' may change
    tag_name[8]='\0';

    UINT32 tag_idx = getTagIndex(tag_name, strlen(tag_name));
    UINT32 str_idx;

    switch (variant)
    {
      case DRAL0_SINGLEVALUE:

        value = (UINT64 *)ReadBytes(sizeof(*value)); //the value
        if (value == NULL)
        {
            return false;
        }
        dralListener->SetTagSingleValue(item_id, tag_idx,*value,flags);
        break;

      case DRAL0_STRING:

        if (n % 8)
        {
            size=n+8-(n % 8);
        }
        else
        {
            size=n;
        }

        buffer2 = (char *) ReadBytes (size);  // read the string
        if (buffer2 == NULL)
        {
            return false;
        }
        
        str = new char [size+1]; // +1 for the '\0'
        
        strncpy(str,buffer2,n);
        str[n]='\0';

        str_idx = getStringIndex(str, strlen(str));

        dralListener->SetTagString(item_id, tag_idx, str_idx, flags);
        
        delete [] str;
        
        break;

      case DRAL0_SET:

        value = (UINT64 *) ReadBytes(n*sizeof(UINT64)); //read the set
        if (value == NULL)
        {
            return false;
        }
        dralListener->SetTagSet(item_id, tag_idx, n, value, flags);
        break;

      default:
        dralListener->Error(
            "Unknown SetTag variant\n"
            "Please report this bug to [email protected] attaching "
            "input files (if any)"
            );
        return false;
    }
    return true;
}