Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f4e344449 | ||
|
|
a97bb39103 |
+1
-1
@@ -1 +1 @@
|
|||||||
1.0.32
|
1.0.33
|
||||||
|
|||||||
-19
@@ -1,19 +0,0 @@
|
|||||||
language: csharp
|
|
||||||
solution: src/JiraTimeBot.sln
|
|
||||||
|
|
||||||
before_deploy:
|
|
||||||
- "zip -j JiraTimeBot.zip src/JiraTimeBot/bin/Release/*"
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
provider: releases
|
|
||||||
api_key: $GITHUB_OAUTH_TOKEN
|
|
||||||
overwrite: true
|
|
||||||
file: JiraTimeBot.zip
|
|
||||||
skip_cleanup: true
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email:
|
|
||||||
on_success: never
|
|
||||||
on_failure: always
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# JiraTimeBot [](https://travis-ci.org/monster1025/JiraTimeBot)
|
# JiraTimeBot [](https://ci.appveyor.com/project/Monster1025/JiraTimeBot)
|
||||||
Приложение для автоматического добавления Jira Worklog'ов исходя из количества коммитов в ветку.
|
Приложение для автоматического добавления Jira Worklog'ов исходя из количества коммитов в ветку.
|
||||||
|
|
||||||
# Ограничения
|
# Ограничения
|
||||||
|
|||||||
@@ -116,6 +116,7 @@
|
|||||||
<Compile Include="UI\frmSettings.Designer.cs">
|
<Compile Include="UI\frmSettings.Designer.cs">
|
||||||
<DependentUpon>frmSettings.cs</DependentUpon>
|
<DependentUpon>frmSettings.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="UI\Tray\SingleInstance.cs" />
|
||||||
<Compile Include="UI\Tray\ITrayMenu.cs" />
|
<Compile Include="UI\Tray\ITrayMenu.cs" />
|
||||||
<Compile Include="UI\Tray\RestoreFromTray.cs" />
|
<Compile Include="UI\Tray\RestoreFromTray.cs" />
|
||||||
<Compile Include="UI\Tray\TrayMenu.cs" />
|
<Compile Include="UI\Tray\TrayMenu.cs" />
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System.Diagnostics;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using JiraTimeBot.UI.Tray;
|
||||||
|
|
||||||
namespace JiraTimeBot
|
namespace JiraTimeBot
|
||||||
{
|
{
|
||||||
@@ -25,7 +26,7 @@ namespace JiraTimeBot
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MessageBox.Show("Another instance of the app is already running.");
|
SingleInstance.ShowFirstInstance();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,6 @@ using System.Runtime.InteropServices;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.0.32")]
|
[assembly: AssemblyVersion("1.0.33")]
|
||||||
[assembly: AssemblyFileVersion("1.0.32")]
|
[assembly: AssemblyFileVersion("1.0.33")]
|
||||||
[assembly: AssemblyInformationalVersion("1.0.32")]
|
[assembly: AssemblyInformationalVersion("1.0.33")]
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace JiraTimeBot.UI.Tray
|
||||||
|
{
|
||||||
|
static class SingleInstance
|
||||||
|
{
|
||||||
|
public static readonly int WM_SHOWFIRSTINSTANCE = RegisterWindowMessage($"WM_SHOWFIRSTINSTANCE|{AssemblyGuid}");
|
||||||
|
|
||||||
|
public static void ShowFirstInstance()
|
||||||
|
{
|
||||||
|
const int HWND_BROADCAST = 0xffff;
|
||||||
|
PostMessage((IntPtr)HWND_BROADCAST, WM_SHOWFIRSTINSTANCE, IntPtr.Zero, IntPtr.Zero);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string AssemblyGuid
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
object[] attributes = Assembly.GetEntryAssembly().GetCustomAttributes(typeof(System.Runtime.InteropServices.GuidAttribute), false);
|
||||||
|
if (attributes.Length == 0) {
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
return ((GuidAttribute)attributes[0]).Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("user32")]
|
||||||
|
public static extern int RegisterWindowMessage(string message);
|
||||||
|
|
||||||
|
[DllImport("user32")]
|
||||||
|
public static extern bool PostMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,6 +31,16 @@ namespace JiraTimeBot.UI
|
|||||||
private readonly Action<string> _settingsErrorReporter;
|
private readonly Action<string> _settingsErrorReporter;
|
||||||
private bool _updateChecked;
|
private bool _updateChecked;
|
||||||
|
|
||||||
|
protected override void WndProc(ref Message message)
|
||||||
|
{
|
||||||
|
if (message.Msg == SingleInstance.WM_SHOWFIRSTINSTANCE) {
|
||||||
|
this.Show();
|
||||||
|
this.WindowState = FormWindowState.Normal;
|
||||||
|
_trayIcon.Hide();
|
||||||
|
}
|
||||||
|
base.WndProc(ref message);
|
||||||
|
}
|
||||||
|
|
||||||
private CancellationTokenSource GetTokenSource()
|
private CancellationTokenSource GetTokenSource()
|
||||||
{
|
{
|
||||||
var tokenSource = new CancellationTokenSource();
|
var tokenSource = new CancellationTokenSource();
|
||||||
|
|||||||
Reference in New Issue
Block a user