Пример #1
0
void OptionsTiffImporter::loadIsdMetadata(const QString& filename)
{
   if ((filename.isEmpty() == true) || (mpDescriptor == NULL))
   {
      return;
   }

   QuickbirdIsd isd(mpDescriptor->getMetadata());

   QFileInfo fileInfo(filename);
   if ((fileInfo.isFile() == false) || (fileInfo.exists() == false))
   {
      isd.removeIsdMetadata();
   }
   else
   {
      isd.loadIsdMetadata(filename);
   }
}
Пример #2
0
LRESULT CConfigDlgAssociation::OnChangeIcon(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
    if(BN_CLICKED==wNotifyCode) {
        for(int i=0; i<COUNTOF(AssocSettings); i++) {
            if(hWndCtl==AssocSettings[i].Button_SetIcon) {
                CIconSelectDialog isd(AssocSettings[i].AssocInfo);
                if(IDOK==isd.DoModal()) {
                    TRACE(_T("IconFile=%s\n"),AssocSettings[i].AssocInfo.IconFile);
                    AssocSettings[i].SetIcon(AssocSettings[i].AssocInfo.IconFile,AssocSettings[i].AssocInfo.IconIndex);
                    AssocSettings[i].bChanged=true;
                    //LFAssist.exeの実行を要請
                    mr_ConfigDlg.RequireAssistant();
                }
                break;
            }
        }
    }
    return 0;
}
Пример #3
0
static int
hx_inet_pton4(const char* s, UINT8* d)
{
    // NB: inet_pton() does not support BSD style partial address formats
    unsigned int elem, pos, n;
    elem = 0;
    while (*s)
    {
        n = pos = 0;
        while (isd(*s))
        {
            if (pos++ > 2)
            {
                return 0;
            }
            n = n*10 + (*s++ - '0');
        }
        if (pos == 0 || n > 255)
        {
            return 0;
        }
        d[elem] = n;
        if (elem < 3)
        {
            if (*s != '.')
            {
                return 0;
            }
            ++s;
        }
        if (elem++ > 3)
        {
            return 0;
        }
    }

    return (elem == 4) ? 1 : 0;
}
Пример #4
0
void OptionsTiffImporter::setDataDescriptor(RasterDataDescriptor* pDescriptor)
{
   if (pDescriptor == mpDescriptor)
   {
      return;
   }

   mpDescriptor = pDescriptor;

   // Update the ISD filename
   QString isdFilename;
   if (mpDescriptor != NULL)
   {
      DynamicObject* pMetadata = mpDescriptor->getMetadata();
      if (pMetadata != NULL)
      {
         QuickbirdIsd isd(pMetadata);
         isdFilename = isd.getIsdFilename();
      }
   }

   setFilename(isdFilename);

   // Update the browse directory
   QString browseDir;
   if (mpDescriptor != NULL)
   {
      const FileDescriptor* pFileDescriptor = mpDescriptor->getFileDescriptor();
      if (pFileDescriptor != NULL)
      {
         browseDir = QString::fromStdString(pFileDescriptor->getFilename().getPath());
      }
   }

   mpFilename->setBrowseDirectory(browseDir);
}
Пример #5
0
LRESULT CConfigDlgAssociation::OnSetAssoc(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
    if(BN_CLICKED!=wNotifyCode) {
        return 0;
    }

    TCHAR ResourcePath[_MAX_PATH+1];	//アイコンファイル名
    int IconIndex=-1;
    if(IDC_BUTTON_ASSOC_SET_DEFAULT_ICON==wID||IDC_BUTTON_ASSOC_SET_DEFAULT_ICON_SINGLE==wID) {
        //--------------
        // 標準アイコン
        //--------------
        FILL_ZERO(ResourcePath);
        GetModuleFileName(GetModuleHandle(NULL), ResourcePath, _MAX_PATH);	//本体のパス取得
        //EXEのパスを元にDLLのファイル名を組み立てる
        PathRemoveFileSpec(ResourcePath);
        PathAppend(ResourcePath,CString(MAKEINTRESOURCE(IDS_ICON_FILE_NAME_DEFAULT)));
    } else if(IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON==wID||IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON_SINGLE==wID) {
        //------------------------------------
        // 外部のアイコンファイルをセットする
        //------------------------------------

        //アイコンを選択させる(デフォルトは標準アイコン)
        ASSOCINFO ac;
        CIconSelectDialog isd(ac);
        if(IDOK!=isd.DoModal()) {
            return 0;
        }
        TRACE(_T("IconFile=%s\n"),ac.IconFile);
        _tcsncpy_s(ResourcePath,ac.IconFile,_MAX_PATH);
        IconIndex=ac.IconIndex;
        if(IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON_SINGLE==wID&&-1==IconIndex) {
            //アイコンが選択されていない
            return 0;
        }
    }
    for(int i=0; i<COUNTOF(AssocSettings); i++) {
        switch(wID) {
        case IDC_BUTTON_ASSOC_CHECK_TO_DEFAULT:	//標準の関連付け
            if(-1==UtilCheckNumberArray(NO_DEFAULT_ASSOCS,COUNTOF(NO_DEFAULT_ASSOCS),i)) {
                AssocSettings[i].Button_SetIcon.EnableWindow(TRUE);
                AssocSettings[i].Check_SetAssoc.SetCheck(TRUE);
            }
            break;
        case IDC_BUTTON_ASSOC_CHECK_ALL:
            AssocSettings[i].Button_SetIcon.EnableWindow(TRUE);
            AssocSettings[i].Check_SetAssoc.SetCheck(TRUE);
            break;
        case IDC_BUTTON_ASSOC_UNCHECK_ALL:
            AssocSettings[i].Button_SetIcon.EnableWindow(FALSE);
            AssocSettings[i].Check_SetAssoc.SetCheck(FALSE);
            AssocSettings[i].SetIconFromAssoc(Icon_SystemDefault);
            break;
        case IDC_BUTTON_ASSOC_SET_DEFAULT_ICON:	//FALLTHROUGH
        case IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON:
            //全て標準アイコンに/全て外部アイコンに
        {
            //アイコン数の取得
            long IconCount=(long)ExtractIcon(GetModuleHandle(NULL),ResourcePath,-1);
            const bool bExtraIcon=(IconCount>=35);	//アイコンの数が35より多ければ全て識別するタイプのアイコンだということになる
            if(AssocSettings[i].Check_SetAssoc.GetCheck()) {
                AssocSettings[i].AssocInfo.IconIndex=bExtraIcon?AssocSettings[i].DefaultIconIndex_Ex:AssocSettings[i].DefaultIconIndex;
                AssocSettings[i].AssocInfo.IconFile=ResourcePath;
                AssocSettings[i].SetIcon(AssocSettings[i].AssocInfo.IconFile,AssocSettings[i].AssocInfo.IconIndex);
                AssocSettings[i].bChanged=true;
            }
        }
        break;
        case IDC_BUTTON_ASSOC_SET_DEFAULT_ICON_SINGLE:
            //全て標準単一アイコンに
            if(AssocSettings[i].Check_SetAssoc.GetCheck()) {
                AssocSettings[i].AssocInfo.IconIndex=ICONINDEX_EXTERNAL_SINGLE;
                AssocSettings[i].AssocInfo.IconFile=ResourcePath;
                AssocSettings[i].SetIcon(AssocSettings[i].AssocInfo.IconFile,AssocSettings[i].AssocInfo.IconIndex);
                AssocSettings[i].bChanged=true;
            }
            break;
        case IDC_BUTTON_ASSOC_SET_EXTERNAL_ICON_SINGLE:
            //全て外部単一アイコンに
            if(AssocSettings[i].Check_SetAssoc.GetCheck()) {
                AssocSettings[i].AssocInfo.IconIndex=IconIndex;
                AssocSettings[i].AssocInfo.IconFile=ResourcePath;
                AssocSettings[i].SetIcon(AssocSettings[i].AssocInfo.IconFile,AssocSettings[i].AssocInfo.IconIndex);
                AssocSettings[i].bChanged=true;
            }
            break;
        }
    }
    //LFAssist.exeの実行を要請
    mr_ConfigDlg.RequireAssistant();
    return 0;
}