Finished translation & fixed configuration issues.

git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@1621 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4
This commit is contained in:
RKrom 2012-02-02 10:49:14 +00:00
commit affbfb0ce6
11 changed files with 165 additions and 94 deletions

View file

@ -91,7 +91,7 @@ namespace GreenshotConfluencePlugin {
} }
public override IEnumerable<IDestination> DynamicDestinations() { public override IEnumerable<IDestination> DynamicDestinations() {
if (!ConfluencePlugin.ConfluenceConnector.isLoggedIn) { if (ConfluencePlugin.ConfluenceConnectorNoLogin.isLoggedIn) {
yield break; yield break;
} }
List<Confluence.Page> currentPages = ConfluenceUtils.GetCurrentPages(); List<Confluence.Page> currentPages = ConfluenceUtils.GetCurrentPages();
@ -111,12 +111,16 @@ namespace GreenshotConfluencePlugin {
} }
Page selectedPage = page; Page selectedPage = page;
bool openPage = (page == null) && config.OpenPageAfterUpload;
string filename = ConfluencePlugin.Host.GetFilename(config.UploadFormat, captureDetails); string filename = ConfluencePlugin.Host.GetFilename(config.UploadFormat, captureDetails);
if (page == null) { if (selectedPage == null) {
ConfluenceUpload confluenceUpload = new ConfluenceUpload(filename); ConfluenceUpload confluenceUpload = new ConfluenceUpload(filename);
Nullable<bool> dialogResult = confluenceUpload.ShowDialog(); Nullable<bool> dialogResult = confluenceUpload.ShowDialog();
if (dialogResult.HasValue && dialogResult.Value) { if (dialogResult.HasValue && dialogResult.Value) {
selectedPage = confluenceUpload.SelectedPage; selectedPage = confluenceUpload.SelectedPage;
if (confluenceUpload.isOpenPageSelected) {
openPage = false;
}
filename = confluenceUpload.Filename; filename = confluenceUpload.Filename;
} else { } else {
return false; return false;
@ -124,7 +128,7 @@ namespace GreenshotConfluencePlugin {
} }
if (selectedPage != null) { if (selectedPage != null) {
using (Image image = surface.GetImageForExport()) { using (Image image = surface.GetImageForExport()) {
bool uploaded = upload(image, selectedPage, filename); bool uploaded = upload(image, selectedPage, filename, openPage);
if (uploaded) { if (uploaded) {
surface.SendMessageEvent(this, SurfaceMessageTyp.Info, ConfluencePlugin.Host.CoreLanguage.GetFormattedString("exported_to", Description)); surface.SendMessageEvent(this, SurfaceMessageTyp.Info, ConfluencePlugin.Host.CoreLanguage.GetFormattedString("exported_to", Description));
surface.Modified = false; surface.Modified = false;
@ -136,7 +140,7 @@ namespace GreenshotConfluencePlugin {
return false; return false;
} }
private bool upload(Image image, Page page, string filename) { private bool upload(Image image, Page page, string filename, bool openPage) {
using (MemoryStream stream = new MemoryStream()) { using (MemoryStream stream = new MemoryStream()) {
ConfluencePlugin.Host.SaveToStream(image, stream, config.UploadFormat, config.UploadJpegQuality); ConfluencePlugin.Host.SaveToStream(image, stream, config.UploadFormat, config.UploadJpegQuality);
byte [] buffer = stream.GetBuffer(); byte [] buffer = stream.GetBuffer();
@ -160,8 +164,10 @@ namespace GreenshotConfluencePlugin {
} }
} }
} }
if (config.OpenPageAfterUpload) { if (openPage) {
Process.Start(page.Url); try {
Process.Start(page.Url);
} catch {}
} else { } else {
System.Windows.MessageBox.Show(lang.GetString(LangKey.upload_success)); System.Windows.MessageBox.Show(lang.GetString(LangKey.upload_success));
} }

View file

@ -43,7 +43,7 @@ namespace GreenshotConfluencePlugin {
private static ILanguage lang = Language.GetInstance(); private static ILanguage lang = Language.GetInstance();
private static IGreenshotHost host; private static IGreenshotHost host;
public static ConfluenceConnector ConfluenceConnector { public static ConfluenceConnector ConfluenceConnectorNoLogin {
get { get {
if (confluenceConnector == null) { if (confluenceConnector == null) {
if (config.Url.Contains("soap-axis")) { if (config.Url.Contains("soap-axis")) {
@ -52,6 +52,15 @@ namespace GreenshotConfluencePlugin {
confluenceConnector = new ConfluenceConnector(config.Url + ConfluenceConfiguration.DEFAULT_POSTFIX, config.Timeout); confluenceConnector = new ConfluenceConnector(config.Url + ConfluenceConfiguration.DEFAULT_POSTFIX, config.Timeout);
} }
} }
return confluenceConnector;
}
}
public static ConfluenceConnector ConfluenceConnector {
get {
if (confluenceConnector == null) {
confluenceConnector = ConfluenceConnectorNoLogin;
}
try { try {
if (!confluenceConnector.isLoggedIn) { if (!confluenceConnector.isLoggedIn) {
confluenceConnector.login(); confluenceConnector.login();
@ -113,34 +122,16 @@ namespace GreenshotConfluencePlugin {
public virtual void Configure() { public virtual void Configure() {
ConfluenceConfiguration clonedConfig = config.Clone(); ConfluenceConfiguration clonedConfig = config.Clone();
ConfluenceConfigurationForm configForm = new ConfluenceConfigurationForm(clonedConfig); ConfluenceConfigurationForm configForm = new ConfluenceConfigurationForm(clonedConfig);
string url = config.Url;
Nullable<bool> dialogResult = configForm.ShowDialog(); Nullable<bool> dialogResult = configForm.ShowDialog();
if (dialogResult.HasValue && dialogResult.Value) { if (dialogResult.HasValue && dialogResult.Value) {
// copy the new object to the old... // copy the new object to the old...
clonedConfig.CloneTo(config); clonedConfig.CloneTo(config);
IniConfig.Save(); IniConfig.Save();
confluenceConnector.logout(); if (confluenceConnector != null) {
confluenceConnector = null; if (!url.Equals(config.Url) && confluenceConnector.isLoggedIn) {
} confluenceConnector.logout();
}
public void upload(IImageEditor imageEditor, Page page, string filename) {
using (MemoryStream stream = new MemoryStream()) {
imageEditor.SaveToStream(stream, config.UploadFormat, config.UploadJpegQuality);
byte [] buffer = stream.GetBuffer();
try {
confluenceConnector.addAttachment(page.id, "image/" + config.UploadFormat.ToString().ToLower(), null, filename, buffer);
imageEditor.Surface.Modified = false;
LOG.Debug("Uploaded to Confluence.");
if (config.CopyWikiMarkupForImageToClipboard) {
System.Windows.Clipboard.SetText("!" + filename + "!");
} }
if (config.OpenPageAfterUpload) {
Process.Start(page.Url);
} else {
System.Windows.MessageBox.Show(lang.GetString(LangKey.upload_success));
}
} catch(Exception e) {
System.Windows.MessageBox.Show(lang.GetString(LangKey.upload_failure) + " " + e.Message);
} }
} }
} }

View file

@ -4,7 +4,7 @@
xmlns:gscp="clr-namespace:GreenshotConfluencePlugin" xmlns:gscp="clr-namespace:GreenshotConfluencePlugin"
xmlns:l="clr-namespace:TranslationByMarkupExtension" xmlns:l="clr-namespace:TranslationByMarkupExtension"
xmlns:gsc="clr-namespace:GreenshotPlugin.Core;assembly=GreenshotPlugin" xmlns:gsc="clr-namespace:GreenshotPlugin.Core;assembly=GreenshotPlugin"
Title="Confluence plugin settings" SizeToContent="WidthAndHeight" Icon="/GreenshotConfluencePlugin;component/Images/Confluence.ico"> Title="{l:Translate plugin_settings}" SizeToContent="WidthAndHeight" Icon="/GreenshotConfluencePlugin;component/Images/Confluence.ico">
<Window.Resources> <Window.Resources>
<gscp:EnumDisplayer Type="{x:Type gsc:OutputFormat}" x:Key="outputFormats"/> <gscp:EnumDisplayer Type="{x:Type gsc:OutputFormat}" x:Key="outputFormats"/>
</Window.Resources> </Window.Resources>
@ -24,9 +24,9 @@
<Label Content="{l:Translate upload_format}" /> <Label Content="{l:Translate upload_format}" />
<ComboBox ItemsSource="{Binding Source={StaticResource outputFormats},Path=DisplayNames}" SelectedValue="{Binding UploadFormat, Converter={StaticResource outputFormats}}" /> <ComboBox ItemsSource="{Binding Source={StaticResource outputFormats},Path=DisplayNames}" SelectedValue="{Binding UploadFormat, Converter={StaticResource outputFormats}}" />
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<Button IsCancel="True" Content="Cancel"/> <Button IsCancel="True" Content="{l:Translate CANCEL}"/>
<Button IsDefault="True" Content="OK" Click="Button_Click"/> <Button IsDefault="True" Content="{l:Translate OK}" Click="Button_Click"/>
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
</Window> </Window>

View file

@ -35,11 +35,6 @@ namespace GreenshotConfluencePlugin {
InitializeComponent(); InitializeComponent();
} }
void Upload_Click(object sender, System.Windows.RoutedEventArgs e) {
ConfluenceUpload confluenceUpload = (ConfluenceUpload)Parent;
confluenceUpload.DialogResult = true;
}
void PageListView_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { void PageListView_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) {
SelectionChanged(); SelectionChanged();
} }
@ -47,6 +42,8 @@ namespace GreenshotConfluencePlugin {
void SelectionChanged() { void SelectionChanged() {
if (PageListView.HasItems && PageListView.SelectedItems.Count > 0) { if (PageListView.HasItems && PageListView.SelectedItems.Count > 0) {
confluenceUpload.SelectedPage = (Page)PageListView.SelectedItem; confluenceUpload.SelectedPage = (Page)PageListView.SelectedItem;
// Make sure the uploader knows we selected an already opened page
confluenceUpload.isOpenPageSelected = true;
} else { } else {
confluenceUpload.SelectedPage = null; confluenceUpload.SelectedPage = null;
} }

View file

@ -16,9 +16,9 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Space" /> <Label Grid.Row="0" Grid.Column="0" Content="Space" />
<ComboBox Grid.Row="0" Grid.Column="1" Name="SpaceComboBox" ItemsSource="{Binding Path=Spaces}" DisplayMemberPath="Name" SelectedValuePath="Key"/> <ComboBox Grid.Row="0" Grid.Column="1" Name="SpaceComboBox" ItemsSource="{Binding Path=Spaces}" DisplayMemberPath="Name" SelectedValuePath="Key"/>
<Label Grid.Row="1" Grid.Column="0" Content="Search text" /> <Label Grid.Row="1" Grid.Column="0" Content="{l:Translate search_text}" />
<TextBox Grid.Row="1" Grid.Column="1" Name="searchText" Text="" KeyDown="SearchText_KeyDown"/> <TextBox Grid.Row="1" Grid.Column="1" Name="searchText" Text="" KeyDown="SearchText_KeyDown"/>
<Button Grid.Row="2" Grid.ColumnSpan="2" Name="Search" Content="Search" Click="Search_Click" /> <Button Grid.Row="2" Grid.ColumnSpan="2" Name="Search" Content="{l:Translate search}" Click="Search_Click" />
<ListView Grid.Row="3" Grid.ColumnSpan="2" Name="PageListView" SelectionMode="Single" ItemsSource="{Binding Path=Pages}" SelectionChanged="PageListView_SelectionChanged"> <ListView Grid.Row="3" Grid.ColumnSpan="2" Name="PageListView" SelectionMode="Single" ItemsSource="{Binding Path=Pages}" SelectionChanged="PageListView_SelectionChanged">
<ListView.ItemTemplate> <ListView.ItemTemplate>
<DataTemplate> <DataTemplate>

View file

@ -10,7 +10,7 @@
VerticalAlignment="Top" HorizontalAlignment="Left" /> VerticalAlignment="Top" HorizontalAlignment="Left" />
<Border Name="ShowBusy" BorderBrush="Black" BorderThickness="1" Background="#80000000" Visibility="Visible"> <Border Name="ShowBusy" BorderBrush="Black" BorderThickness="1" Background="#80000000" Visibility="Visible">
<TextBlock Margin="0" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center" <TextBlock Margin="0" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="18" FontWeight="Bold" Foreground="#7EFFFFFF">Loading, please wait...</TextBlock> FontSize="18" FontWeight="Bold" Foreground="#7EFFFFFF" Text="{l:Translate loading}"/>
</Border> </Border>
</Grid> </Grid>
</Page> </Page>

View file

@ -2,16 +2,16 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:TranslationByMarkupExtension" xmlns:l="clr-namespace:TranslationByMarkupExtension"
Title="Upload to confluence" Height="640" Width="500" Icon="/GreenshotConfluencePlugin;component/Images/Confluence.ico"> Title="{l:Translate upload_menu_item}" Height="640" Width="500" Icon="/GreenshotConfluencePlugin;component/Images/Confluence.ico">
<StackPanel> <StackPanel>
<TabControl > <TabControl >
<TabItem Header="Open pages"> <TabItem Header="{l:Translate open_pages}">
<Frame NavigationUIVisibility="Hidden" Content="{Binding Path=PickerPage}" Height="500"/> <Frame NavigationUIVisibility="Hidden" Content="{Binding Path=PickerPage}" Height="500"/>
</TabItem> </TabItem>
<TabItem Header="Search pages"> <TabItem Header="{l:Translate search_pages}">
<Frame NavigationUIVisibility="Hidden" Content="{Binding Path=SearchPage}" Height="500"/> <Frame NavigationUIVisibility="Hidden" Content="{Binding Path=SearchPage}" Height="500"/>
</TabItem> </TabItem>
<TabItem Header="Browse pages"> <TabItem Header="{l:Translate browse_pages}">
<Frame NavigationUIVisibility="Hidden" Content="{Binding Path=BrowsePage}" Height="500"/> <Frame NavigationUIVisibility="Hidden" Content="{Binding Path=BrowsePage}" Height="500"/>
</TabItem> </TabItem>
</TabControl> </TabControl>
@ -26,9 +26,9 @@
<Label Grid.Row="0" Grid.Column="0" Content="{l:Translate filename}" /> <Label Grid.Row="0" Grid.Column="0" Content="{l:Translate filename}" />
<TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=Filename}" /> <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=Filename}" />
</Grid> </Grid>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<Button Name="Upload" Content="Upload" IsDefault="True" IsEnabled="False" Click="Upload_Click" /> <Button Name="Upload" Content="{l:Translate upload}" IsDefault="True" IsEnabled="False" Click="Upload_Click" />
<Button Name="Cancel" Content="Cancel" IsCancel="True" /> <Button Name="Cancel" Content="{l:Translate CANCEL}" IsCancel="True" />
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
</Window> </Window>

View file

@ -71,9 +71,14 @@ namespace GreenshotConfluencePlugin {
} else { } else {
Upload.IsEnabled = false; Upload.IsEnabled = false;
} }
isOpenPageSelected = false;
} }
} }
public bool isOpenPageSelected {
get;
set;
}
public string Filename { public string Filename {
get; get;
set; set;

View file

@ -1,10 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<language description="Deutsch" ietf="de-DE" version="0.8.0" prefix="confluence"> <language description="Deutsch" ietf="de-DE" version="0.8.0" prefix="confluence">
<resources> <resources>
<resource name="plugin_settings">
Confluence einstellungen
</resource>
<resource name="login_error"> <resource name="login_error">
Es gab ein Problem während dem Login: {0} Es gab ein Problem während dem Login: {0}
</resource> </resource>
<resource name="login_title"> <resource name="login_title">
Bitte geben Sie ihr Confluence anmelde Daten ein Bitte geben Sie ihr Confluence anmelde Daten ein
</resource> </resource>
<resource name="label_url"> <resource name="label_url">
@ -13,38 +16,59 @@
<resource name="label_timeout"> <resource name="label_timeout">
Timeout Timeout
</resource> </resource>
<resource name="label_user"> <resource name="label_user">
Benutzer Benutzer
</resource> </resource>
<resource name="label_password"> <resource name="label_password">
Password Password
</resource> </resource>
<resource name="OK"> <resource name="OK">
OK OK
</resource> </resource>
<resource name="CANCEL"> <resource name="CANCEL">
Cancel Abbrechen
</resource> </resource>
<resource name="upload_menu_item"> <resource name="upload_menu_item">
In Confluence hochladen In Confluence hochladen
</resource> </resource>
<resource name="upload_success"> <resource name="upload_success">
Ein erfolg beim Hochladen zum Confluence! Ein erfolg beim Hochladen zum Confluence!
</resource> </resource>
<resource name="upload_failure"> <resource name="upload_failure">
Es gab einen Fehler beim Hochladen zum Confluence: Es gab einen Fehler beim Hochladen zum Confluence:
</resource> </resource>
<resource name="open_page_after_upload"> <resource name="open_page_after_upload">
Seite nach dem upload öffnen Seite nach dem upload öffnen
</resource> </resource>
<resource name="upload_format"> <resource name="upload_format">
Upload format Bildformat für Hochladen
</resource> </resource>
<resource name="copy_wikimarkup"> <resource name="copy_wikimarkup">
Copy the Wikimarkup for image to the Clipboard Kopiere Wikimarkup in der Zwischenablage
</resource> </resource>
<resource name="filename"> <resource name="filename">
Filename Dateiname
</resource> </resource>
</resources> <resource name="upload">
Hochladen
</resource>
<resource name="open_pages">
Aktuelle Seiten
</resource>
<resource name="search_pages">
Seiten suchen
</resource>
<resource name="browse_pages">
Seiten durchstöbern
</resource>
<resource name="search_text">
Text suchen
</resource>
<resource name="search">
Suchen
</resource>
<resource name="loading">
Confluence Daten werden geladen, bitte warten!
</resource>
</resources>
</language> </language>

View file

@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<language description="English" ietf="en-US" version="0.8.0"> <language description="English" ietf="en-US" version="0.8.0">
<resources> <resources>
<resource name="plugin_settings">
Confluence settings
</resource>
<resource name="login_error"> <resource name="login_error">
There was a problem during the login: {0} There was a problem during the login: {0}
</resource> </resource>
<resource name="label_url"> <resource name="label_url">
Url Url
</resource> </resource>
<resource name="label_timeout"> <resource name="label_timeout">
Timeout Timeout
</resource> </resource>
<resource name="label_user"> <resource name="label_user">
@ -16,35 +19,56 @@
<resource name="label_password"> <resource name="label_password">
Password Password
</resource> </resource>
<resource name="login_title"> <resource name="login_title">
Please enter your Confluence login data Please enter your Confluence login data
</resource> </resource>
<resource name="OK"> <resource name="OK">
OK OK
</resource> </resource>
<resource name="CANCEL"> <resource name="CANCEL">
Cancel Cancel
</resource> </resource>
<resource name="upload_menu_item"> <resource name="upload_menu_item">
Upload to Confluence Upload to Confluence
</resource> </resource>
<resource name="upload_success"> <resource name="upload_success">
Successfully uploaded image to Confluence! Successfully uploaded image to Confluence!
</resource> </resource>
<resource name="upload_failure"> <resource name="upload_failure">
An error occured while uploading to Confluence: An error occured while uploading to Confluence:
</resource> </resource>
<resource name="open_page_after_upload"> <resource name="open_page_after_upload">
Open page after upload Open page after upload
</resource> </resource>
<resource name="upload_format"> <resource name="upload_format">
Upload format Upload format
</resource> </resource>
<resource name="copy_wikimarkup"> <resource name="copy_wikimarkup">
Copy the Wikimarkup for image to the Clipboard Copy Wikimarkup to the Clipboard
</resource> </resource>
<resource name="filename"> <resource name="filename">
Filename Filename
</resource> </resource>
</resources> <resource name="upload">
Upload
</resource>
<resource name="open_pages">
Open pages
</resource>
<resource name="search_pages">
Search pages
</resource>
<resource name="browse_pages">
Browse pages
</resource>
<resource name="search_text">
Search text
</resource>
<resource name="search">
Search
</resource>
<resource name="loading">
Confluence data is loading, please wait...
</resource>
</resources>
</language> </language>

View file

@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<language description="Nederlands" ietf="nl-NL" version="0.8.0"> <language description="Nederlands" ietf="nl-NL" version="0.8.0">
<resources> <resources>
<resource name="plugin_settings">
Confluence instellingen
</resource>
<resource name="login_error"> <resource name="login_error">
Tijden de login is een fout opgetreden: {0} Tijden de login is een fout opgetreden: {0}
</resource> </resource>
<resource name="label_url"> <resource name="label_url">
Url Url
</resource> </resource>
<resource name="label_timeout"> <resource name="label_timeout">
Timeout Timeout
</resource> </resource>
<resource name="label_user"> <resource name="label_user">
@ -16,35 +19,56 @@
<resource name="label_password"> <resource name="label_password">
Password Password
</resource> </resource>
<resource name="login_title"> <resource name="login_title">
Geef uw Confluence login data Geef uw Confluence login data
</resource> </resource>
<resource name="OK"> <resource name="OK">
OK OK
</resource> </resource>
<resource name="CANCEL"> <resource name="CANCEL">
Afbreken Afbreken
</resource> </resource>
<resource name="upload_menu_item"> <resource name="upload_menu_item">
Upload naar Confluence Upload naar Confluence
</resource> </resource>
<resource name="upload_success"> <resource name="upload_success">
Het uploaden naar Confluence is geslaagt! Het uploaden naar Confluence is geslaagt!
</resource> </resource>
<resource name="upload_failure"> <resource name="upload_failure">
Tijdens het uploaden naar Confluence is een fout opgetreden: Tijdens het uploaden naar Confluence is een fout opgetreden:
</resource> </resource>
<resource name="open_page_after_upload"> <resource name="open_page_after_upload">
Open pagina na het uploaden Open pagina na het uploaden
</resource> </resource>
<resource name="upload_format"> <resource name="upload_format">
Upload formaat Upload formaat
</resource> </resource>
<resource name="copy_wikimarkup"> <resource name="copy_wikimarkup">
Copy the Wikimarkup for image to the Clipboard Kopier Wikimarkup naar het klembord
</resource>
<resource name="filename">
Filename
</resource> </resource>
</resources> <resource name="filename">
Filenaam
</resource>
<resource name="upload">
Upload
</resource>
<resource name="open_pages">
Open paginas
</resource>
<resource name="search_pages">
Paginas zoeken
</resource>
<resource name="browse_pages">
Paginas browsen
</resource>
<resource name="search_text">
Zoek op text
</resource>
<resource name="search">
Zoeken
</resource>
<resource name="loading">
Confluence daten worden geladen, wachten A.U.B.
</resource>
</resources>
</language> </language>