{"thread":{"id":"6670","subject":"[PATCH qgit] Show remote branch in orange tag mark","startedAt":"2007-02-04T09:30:35Z","lastAt":"2007-02-04T09:30:35Z","messageCount":1,"participants":["Marco Costalba"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"33551","messageId":"e5bfff550702040130q220a86bcxc65e015b73f76733@mail.gmail.com","threadId":"6670","inReplyTo":null,"subject":"[PATCH qgit] Show remote branch in orange tag mark","fromName":"Marco Costalba","fromEmail":"mcostalba@gmail.com","sentAt":"2007-02-04T09:30:35Z","receivedAt":"2007-02-04T09:30:35Z","isPatch":true,"sender":{"key":"mcostalba@gmail.com","avatar":null},"body":"Teach qgit about remote branches and show them with an orange\nbackground in tag mark indicator.\n\nSigned-off-by: Marco Costalba <mcostalba@gmail.com>\n---\n src/git.cpp         |   12 ++++++++++++\n src/git.h           |   12 +++++++-----\n src/git_startup.cpp |    5 +++++\n src/listview.cpp    |    3 +++\n 4 files changed, 27 insertions(+), 5 deletions(-)\n\ndiff --git a/src/git.cpp b/src/git.cpp\nindex 33834d5..08b3309 100644\n--- a/src/git.cpp\n+++ b/src/git.cpp\n@@ -182,6 +182,9 @@ const QStringList Git::getRefName(SCRef sha,\nRefType type, QString* curBranch) c\n \telse if (type == BRANCH)\n \t\treturn rf.branches;\n\n+\telse if (type == RMT_BRANCH)\n+\t\treturn rf.remoteBranches;\n+\n \telse if (type == REF)\n \t\treturn rf.refs;\n\n@@ -214,6 +217,9 @@ const QString Git::getRefSha(SCRef refName,\nRefType type, bool askGit) {\n \t\telse if ((any || type == BRANCH) && rf.branches.contains(refName))\n \t\t\treturn it.key();\n\n+\t\telse if ((any || type == RMT_BRANCH) && rf.remoteBranches.contains(refName))\n+\t\t\treturn it.key();\n+\n \t\telse if ((any || type == REF) && rf.refs.contains(refName))\n \t\t\treturn it.key();\n\n@@ -257,6 +263,9 @@ const QStringList Git::getAllRefNames(uint mask,\nbool onlyLoaded) {\n \t\tif (mask & BRANCH)\n \t\t\tappendNamesWithId(names, it.key(), (*it).branches, onlyLoaded);\n\n+\t\tif (mask & RMT_BRANCH)\n+\t\t\tappendNamesWithId(names, it.key(), (*it).remoteBranches, onlyLoaded);\n+\n \t\tif (mask & REF)\n \t\t\tappendNamesWithId(names, it.key(), (*it).refs, onlyLoaded);\n\n@@ -283,6 +292,9 @@ const QString Git::getRevInfo(SCRef sha) {\n \t\tconst QString cap(type & CUR_BRANCH ? \"Head: \" : \"Branch: \");\n \t\trefsInfo =  cap + getRefName(sha, BRANCH).join(\" \");\n \t}\n+\tif (type & RMT_BRANCH)\n+\t\trefsInfo.append(\"   Remote branch: \" + getRefName(sha,\nRMT_BRANCH).join(\" \"));\n+\n \tif (type & TAG)\n \t\trefsInfo.append(\"   Tag: \" + getRefName(sha, TAG).join(\" \"));\n\ndiff --git a/src/git.h b/src/git.h\nindex 48f4e06..5b174ab 100644\n--- a/src/git.h\n+++ b/src/git.h\n@@ -51,11 +51,12 @@ public:\n \tenum RefType {\n \t\tTAG        = 1,\n \t\tBRANCH     = 2,\n-\t\tCUR_BRANCH = 4,\n-\t\tREF        = 8,\n-\t\tAPPLIED    = 16,\n-\t\tUN_APPLIED = 32,\n-\t\tANY_REF    = 63\n+\t\tRMT_BRANCH = 4,\n+\t\tCUR_BRANCH = 8,\n+\t\tREF        = 16,\n+\t\tAPPLIED    = 32,\n+\t\tUN_APPLIED = 64,\n+\t\tANY_REF    = 127\n \t};\n\n \tvoid checkEnvironment();\n@@ -155,6 +156,7 @@ private:\n \t\tReference() : type(0) {}\n \t\tuint type;\n \t\tQStringList branches;\n+\t\tQStringList remoteBranches;\n \t\tQString     currentBranch;\n \t\tQStringList tags;\n \t\tQStringList refs;\ndiff --git a/src/git_startup.cpp b/src/git_startup.cpp\nindex 6b34460..84e62a5 100644\n--- a/src/git_startup.cpp\n+++ b/src/git_startup.cpp\n@@ -172,6 +172,11 @@ bool Git::getRefs() {\n \t\t\t\tcur->type |= CUR_BRANCH;\n \t\t\t\tcur->currentBranch = curBranchName;\n \t\t\t}\n+\t\t} else if (refName.startsWith(\"refs/remotes/\") &&\n!refName.endsWith(\"HEAD\")) {\n+\n+\t\t\tcur->remoteBranches.append(refName.mid(13));\n+\t\t\tcur->type |= RMT_BRANCH;\n+\n \t\t} else if (!refName.endsWith(\"HEAD\")) {\n\n \t\t\tcur->refs.append(refName);\ndiff --git a/src/listview.cpp b/src/listview.cpp\nindex bfc2a7d..80043e9 100644\n--- a/src/listview.cpp\n+++ b/src/listview.cpp\n@@ -635,6 +635,9 @@ void ListViewItem::paintTagMarks(int col) {\n \tif (rt & Git::BRANCH)\n \t\taddBranchPixmap(&newPm);\n\n+\tif (rt & Git::RMT_BRANCH)\n+\t\taddRefPixmap(&newPm, git->getRefName(_sha, Git::RMT_BRANCH), ORANGE);\n+\n \tif (rt & Git::TAG)\n \t\taddRefPixmap(&newPm, git->getRefName(_sha, Git::TAG), Qt::yellow);\n\n-- \n1.5.0-rc3.GIT\n"}]}