}\r
return false;\r
}\r
+\r
+CString CAppUtils::GetClipboardLink()\r
+{\r
+ if (!OpenClipboard(NULL))\r
+ return CString();\r
+\r
+ CString sClipboardText;\r
+ HGLOBAL hglb = GetClipboardData(CF_TEXT);\r
+ if (hglb)\r
+ {\r
+ LPCSTR lpstr = (LPCSTR)GlobalLock(hglb);\r
+ sClipboardText = CString(lpstr);\r
+ GlobalUnlock(hglb); \r
+ }\r
+ hglb = GetClipboardData(CF_UNICODETEXT);\r
+ if (hglb)\r
+ {\r
+ LPCTSTR lpstr = (LPCTSTR)GlobalLock(hglb);\r
+ sClipboardText = lpstr;\r
+ GlobalUnlock(hglb); \r
+ }\r
+ CloseClipboard();\r
+\r
+ if(!sClipboardText.IsEmpty())\r
+ {\r
+ if(sClipboardText[0] == _T('\"') && sClipboardText[sClipboardText.GetLength()-1] == _T('\"'))\r
+ sClipboardText=sClipboardText.Mid(1,sClipboardText.GetLength()-2);\r
+\r
+ if(sClipboardText.Find( _T("http://")) == 0)\r
+ return sClipboardText;\r
+ \r
+ if(sClipboardText.Find( _T("https://")) == 0)\r
+ return sClipboardText;\r
+\r
+ if(sClipboardText.Find( _T("git://")) == 0)\r
+ return sClipboardText;\r
+\r
+ if(sClipboardText.Find( _T("ssh://")) == 0)\r
+ return sClipboardText;\r
+\r
+ if(sClipboardText.GetLength()>=2)\r
+ if( sClipboardText[1] == _T(':') )\r
+ if( (sClipboardText[0] >= 'A' && sClipboardText[0] <= 'Z') \r
+ || (sClipboardText[0] >= 'a' && sClipboardText[0] <= 'z') )\r
+ return sClipboardText;\r
+ }\r
+\r
+ return CString(_T(""));\r
+}
\ No newline at end of file
\r
static bool LaunchPAgent(CString *keyfile=NULL,CString * pRemote=NULL);\r
\r
+ static CString GetClipboardLink();\r
+\r
private:\r
static CString PickDiffTool(const CTGitPath& file1, const CTGitPath& file2);\r
static bool GetMimeType(const CTGitPath& file, CString& mimetype);\r
m_URLCombo.SetURLHistory(TRUE);\r
m_URLCombo.LoadHistory(_T("Software\\TortoiseGit\\History\\repoURLS"), _T("url"));\r
if(m_URL.IsEmpty())\r
- m_URLCombo.SetCurSel(0);\r
+ {\r
+ CString str=CAppUtils::GetClipboardLink();\r
+ if(str.IsEmpty())\r
+ m_URLCombo.SetCurSel(0);\r
+ else\r
+ m_URLCombo.SetWindowText(str);\r
+ }\r
else\r
m_URLCombo.SetWindowText(m_URL);\r
\r
\r
m_Other.SetURLHistory(TRUE);\r
m_Other.LoadHistory(_T("Software\\TortoiseGit\\History\\PullURLS"), _T("url"));\r
- m_Other.SetCurSel(0);\r
+ CString clippath=CAppUtils::GetClipboardLink();\r
+ if(clippath.IsEmpty())\r
+ m_Other.SetCurSel(0);\r
+ else\r
+ m_Other.SetWindowText(clippath);\r
\r
m_RemoteBranch.LoadHistory(_T("Software\\TortoiseGit\\History\\PullRemoteBranch"), _T("br"));\r
m_RemoteBranch.SetCurSel(0);\r
\r
+ CString WorkingDir=g_Git.m_CurrentDir;\r
+\r
if(m_IsPull)\r
- this->SetWindowTextW(_T("Pull"));\r
+ this->SetWindowTextW(CString(_T("Pull - "))+WorkingDir);\r
else\r
- this->SetWindowTextW(_T("Fetch"));\r
+ this->SetWindowTextW(CString(_T("Fetch - "))+WorkingDir);\r
\r
STRING_VECTOR list;\r
+ \r
+ CRegString remote(CString(_T("Software\\TortoiseGit\\History\\PullRemote\\")+WorkingDir));\r
+ m_RemoteReg = remote;\r
+ int sel=0;\r
\r
if(!g_Git.GetRemoteList(list))\r
{ \r
for(unsigned int i=0;i<list.size();i++)\r
+ {\r
m_Remote.AddString(list[i]);\r
+ if(list[i] == remote)\r
+ sel = i;\r
+ }\r
}\r
+ m_Remote.SetCurSel(sel);\r
+\r
EnableSaveRestore(_T("PullFetchDlg"));\r
this->m_RemoteManage.SetURL(CString());\r
return TRUE;\r
\r
}\r
\r
+ m_RemoteReg = m_Remote.GetString();\r
+\r
m_Other.SaveHistory();\r
m_RemoteBranch.SaveHistory();\r
this->OnOK();\r
#include "StandAloneDlg.h"\r
#include "HistoryCombo.h"\r
#include "HyperLink.h"\r
+#include "registry.h"\r
// CPullFetchDlg dialog\r
\r
class CPullFetchDlg : public CResizableStandAloneDialog\r
CHistoryCombo m_Other;\r
CHistoryCombo m_RemoteBranch;\r
virtual BOOL OnInitDialog();\r
-\r
+ CRegString m_RemoteReg;\r
\r
DECLARE_MESSAGE_MAP()\r
public:\r
CString WorkingDir=g_Git.m_CurrentDir;\r
WorkingDir.Replace(_T(':'),_T('_'));\r
m_RemoteURL.LoadHistory(CString(_T("Software\\TortoiseGit\\History\\PushURLS\\"))+WorkingDir, _T("url"));\r
- m_RemoteURL.SetCurSel(0);\r
+ CString clippath=CAppUtils::GetClipboardLink();\r
+ if(clippath.IsEmpty())\r
+ m_RemoteURL.SetCurSel(0);\r
+ else\r
+ m_RemoteURL.SetWindowText(clippath);\r
\r
m_RemoteURL.EnableWindow(FALSE);\r
CheckRadioButton(IDC_RD_REMOTE,IDC_RD_URL,IDC_RD_REMOTE);\r
>\r
</File>\r
<File\r
- RelativePath=".\copy.ico"\r
+ RelativePath="..\Resources\copy.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\copy.ico"\r
+ RelativePath=".\copy.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\explorer.ico"\r
+ RelativePath=".\explorer.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\explorer.ico"\r
+ RelativePath="..\Resources\explorer.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
+ RelativePath="..\Resources\gitconfig.ico"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\Resources\gitremote.ico"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath="..\Resources\graph-bar-stacked.ico"\r
>\r
</File>\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\open.ico"\r
+ RelativePath=".\open.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\open.ico"\r
+ RelativePath="..\Resources\open.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\save.ico"\r
+ RelativePath=".\save.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\save.ico"\r
+ RelativePath="..\Resources\save.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\saveas.ico"\r
+ RelativePath=".\saveas.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\saveas.ico"\r
+ RelativePath="..\Resources\saveas.ico"\r
>\r
</File>\r
<File\r