FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

KDE5의 defaultDownloadPath는 어디에 정의되어 있는지 아시는 분 계신가요?

게시판 질문게시판 KDE5의 defaultDownloadPath는 어디에 정의되어 있는지 아시는 분 계신가요?

  • This topic has 3개 답변, 1명 참여, and was last updated 3 years 전에 by 난해주님. This post has been viewed 29 times
  • 만든이
    게시글
  • #13729
    난해주님
    참가자
    • 게시글114
    • 댓글337
    • 총합451
    • ★★
    @workman729

      이번에 fedora 27에서의 KDE location env 중 downloadPath()가 따옴표("")를 제거하지 않는 버그가 있습니다.
      다음 아니라 $XDG_DOWNLOAD_DIR="$HOME/Downloads"를 호출할 때 Qdir가 따옴표 제거 없이 그대로 노출되는 데
      혹 KDE5에서 어디에 정의되어 있는지 아시는 분이 계신가요?
     
      영어가 짧아 kde 포럼에 질문도 못 하겠고 일일히 소스 점검할려는 데 grep 하다 쓰러지겠습니다.
      KDE5에 능통하신 분 중 소스 어디에 있는지 힌트라도 주실 분이 계실까요?
     
      제가 약간 힌트를 드린다면 kde4에선 kdelibs의 kglobalsettings.cpp에 있습니다.
      아래의 원문 소스중 662번 라인에 remove 하는 것이 보이시죠...^^
     
      정확히 제가 찾고자 하는 부분입니다.
     
      KDE5에선 어디에 있을까요? 한 동안 KDE를 쓰지 않은지가 오래되어서 막상 찾으려니
      일일히 확인해야 해서 엄두가 나지 않습니다.
     
      KDE5 소스 패키지 중 어디에 있는지 그 이름이라도 알면 grep으로 하면 금방 찾을 수 있는 데 말이지요!
      제가 그 패키지를 모르겠습니다. 아니면 KDE5도 같은 소스를 이용하는가요?

      도움 주실 분....^^

      652 QString KGlobalSettings::downloadPath()
      653 {
      654     // Qt 4.x does not have QDesktopServices::DownloadLocation, so we do our own xdg reading.
      655     QString defaultDownloadPath = QDir::homePath() + "/Downloads";
      656     QString downloadPath = defaultDownloadPath;
      657 #ifndef Q_WS_WIN
      658     const QString xdgUserDirs = KGlobal::dirs()->localxdgconfdir() + QLatin1String( "user-dirs.dirs" );
      659     if( QFile::exists( xdgUserDirs ) ) {
      660         KConfig xdgUserConf( xdgUserDirs, KConfig::SimpleConfig );
      661         KConfigGroup g( &xdgUserConf, "" );
      662         downloadPath  = g.readPathEntry( "XDG_DOWNLOAD_DIR", downloadPath ).remove(  '"' );
      663         if ( downloadPath.isEmpty() ) {
      664             downloadPath = defaultDownloadPath;
      665         }
      666     }
      667 #endif
      668     downloadPath = QDir::cleanPath( downloadPath );
      669     QDir().mkpath(downloadPath);
      670     if ( !downloadPath.endsWith( '/' ) ) {
      671         downloadPath.append( QLatin1Char(  '/' ) );
      672     }
      673     return downloadPath;
      674 }

2 답변 글타래를 보이고 있습니다
  • 글쓴이
    답변
    • #15721
      난해주님
      참가자
      참가자
      • 게시글114
      • 댓글337
      • 총합451
      • ★★
      @workman729

      qtbase에서 패스가 정의되어 있는 데 일견 보기에도 정상인것 같군요! 어디에서 결과가 달라지는지 알 수 가 없습니다.
      아래 링크를 참조 하세요.

      https://github.com/RSATom/Qt/blob/master/qtbase/src/corelib/io/qstandardpaths_unix.cpp

    • #15722
      난해주님
      참가자
      참가자
      • 게시글114
      • 댓글337
      • 총합451
      • ★★
      @workman729

       테스트 해보니 결과물 자체에 따옴표가 있습니다. 알아서 제와하고 사용하라 이거군요!
      여하튼 qt5 이후로는 맘에 들지 않는군요!

    • #15723
      난해주님
      참가자
      참가자
      • 게시글114
      • 댓글337
      • 총합451
      • ★★
      @workman729

      패키지 제작자에게 조처도록 하였으며 패치된 것을 확인 하였습니다.
      참고 하십시오.

2 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.