|  | @@ -16,6 +16,7 @@
 | 
	
		
			
				|  |  |  #include <QTimer>
 | 
	
		
			
				|  |  |  #include <QBuffer>
 | 
	
		
			
				|  |  |  #include <QPainter>
 | 
	
		
			
				|  |  | +#include <QHash>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include <vtextedit/markdowneditorconfig.h>
 | 
	
		
			
				|  |  |  #include <vtextedit/previewmgr.h>
 | 
	
	
		
			
				|  | @@ -1396,12 +1397,22 @@ void MarkdownEditor::uploadImagesToImageHost()
 | 
	
		
			
				|  |  |      proDlg.setWindowModality(Qt::WindowModal);
 | 
	
		
			
				|  |  |      proDlg.setWindowTitle(tr("Upload Images To Image Host"));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    QHash<QString, QString> uploadedImages;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      int cnt = 0;
 | 
	
		
			
				|  |  |      auto cursor = m_textEdit->textCursor();
 | 
	
		
			
				|  |  |      cursor.beginEditBlock();
 | 
	
		
			
				|  |  |      for (int i = 0; i < images.size(); ++i) {
 | 
	
		
			
				|  |  |          const auto &link = images[i];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        auto it = uploadedImages.find(link.m_path);
 | 
	
		
			
				|  |  | +        if (it != uploadedImages.end()) {
 | 
	
		
			
				|  |  | +            cursor.setPosition(link.m_urlInLinkPos);
 | 
	
		
			
				|  |  | +            cursor.setPosition(link.m_urlInLinkPos + link.m_urlInLink.size(), QTextCursor::KeepAnchor);
 | 
	
		
			
				|  |  | +            cursor.insertText(it.value());
 | 
	
		
			
				|  |  | +            continue;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          proDlg.setValue(i + 1);
 | 
	
		
			
				|  |  |          if (proDlg.wasCanceled()) {
 | 
	
		
			
				|  |  |              break;
 | 
	
	
		
			
				|  | @@ -1444,6 +1455,7 @@ void MarkdownEditor::uploadImagesToImageHost()
 | 
	
		
			
				|  |  |          cursor.setPosition(link.m_urlInLinkPos);
 | 
	
		
			
				|  |  |          cursor.setPosition(link.m_urlInLinkPos + link.m_urlInLink.size(), QTextCursor::KeepAnchor);
 | 
	
		
			
				|  |  |          cursor.insertText(targetUrl);
 | 
	
		
			
				|  |  | +        uploadedImages.insert(link.m_path, targetUrl);
 | 
	
		
			
				|  |  |          ++cnt;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      cursor.endEditBlock();
 |