mirror of
https://github.com/greenshot/greenshot
synced 2025-08-14 10:47:02 -07:00
Merge pull request #72 from greenshot/release/1.2.10
Release/1.2.10 -> master
This commit is contained in:
commit
d466e9b1a0
19 changed files with 1003 additions and 772 deletions
|
@ -104,8 +104,8 @@ namespace Greenshot.Drawing {
|
|||
return null;
|
||||
}
|
||||
set {
|
||||
ParentID = value.ID;
|
||||
foreach(var drawableContainer in this) {
|
||||
ParentID = value?.ID ?? Guid.NewGuid();
|
||||
foreach (var drawableContainer in this) {
|
||||
var dc = (DrawableContainer) drawableContainer;
|
||||
dc.Parent = value;
|
||||
}
|
||||
|
|
|
@ -132,7 +132,7 @@ namespace Greenshot.Drawing.Fields
|
|||
|
||||
public object GetFieldValue(IFieldType fieldType)
|
||||
{
|
||||
return GetField(fieldType).Value;
|
||||
return GetField(fieldType)?.Value;
|
||||
}
|
||||
|
||||
#region convenience methods to save us some casts outside
|
||||
|
@ -166,9 +166,9 @@ namespace Greenshot.Drawing.Fields
|
|||
return Convert.ToBoolean(GetFieldValue(fieldType));
|
||||
}
|
||||
|
||||
public Color GetFieldValueAsColor(IFieldType fieldType)
|
||||
public Color GetFieldValueAsColor(IFieldType fieldType, Color defaultColor = default(Color))
|
||||
{
|
||||
return (Color)GetFieldValue(fieldType);
|
||||
return (Color)(GetFieldValue(fieldType) ?? defaultColor);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -36,7 +36,10 @@ namespace Greenshot.Drawing {
|
|||
public class FreehandContainer : DrawableContainer {
|
||||
private static readonly float [] PointOffset = {0.5f, 0.25f, 0.75f};
|
||||
|
||||
[NonSerialized]
|
||||
[NonSerialized]
|
||||
private readonly object _freehandPathLock = new object();
|
||||
|
||||
[NonSerialized]
|
||||
private GraphicsPath freehandPath = new GraphicsPath();
|
||||
private Rectangle myBounds = Rectangle.Empty;
|
||||
private Point lastMouse = Point.Empty;
|
||||
|
@ -104,15 +107,21 @@ namespace Greenshot.Drawing {
|
|||
if (GeometryHelper.Distance2D(previousPoint.X, previousPoint.Y, mouseX, mouseY) >= 2*EditorConfig.FreehandSensitivity) {
|
||||
capturePoints.Add(new Point(mouseX, mouseY));
|
||||
}
|
||||
if (GeometryHelper.Distance2D(lastMouse.X, lastMouse.Y, mouseX, mouseY) >= EditorConfig.FreehandSensitivity) {
|
||||
//path.AddCurve(new Point[]{lastMouse, new Point(mouseX, mouseY)});
|
||||
freehandPath.AddLine(lastMouse, new Point(mouseX, mouseY));
|
||||
lastMouse = new Point(mouseX, mouseY);
|
||||
// Only re-calculate the bounds & redraw when we added something to the path
|
||||
myBounds = Rectangle.Round(freehandPath.GetBounds());
|
||||
Invalidate();
|
||||
}
|
||||
return true;
|
||||
if (GeometryHelper.Distance2D(lastMouse.X, lastMouse.Y, mouseX, mouseY) < EditorConfig.FreehandSensitivity)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
//path.AddCurve(new Point[]{lastMouse, new Point(mouseX, mouseY)});
|
||||
lastMouse = new Point(mouseX, mouseY);
|
||||
lock (_freehandPathLock)
|
||||
{
|
||||
freehandPath.AddLine(lastMouse, new Point(mouseX, mouseY));
|
||||
// Only re-calculate the bounds & redraw when we added something to the path
|
||||
myBounds = Rectangle.Round(freehandPath.GetBounds());
|
||||
}
|
||||
|
||||
Invalidate();
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -130,25 +139,34 @@ namespace Greenshot.Drawing {
|
|||
/// Here we recalculate the freehand path by smoothing out the lines with Beziers.
|
||||
/// </summary>
|
||||
private void RecalculatePath() {
|
||||
isRecalculated = true;
|
||||
// Dispose the previous path, if we have one
|
||||
freehandPath?.Dispose();
|
||||
freehandPath = new GraphicsPath();
|
||||
lock (_freehandPathLock)
|
||||
{
|
||||
isRecalculated = true;
|
||||
// Dispose the previous path, if we have one
|
||||
freehandPath?.Dispose();
|
||||
freehandPath = new GraphicsPath();
|
||||
|
||||
// Here we can put some cleanup... like losing all the uninteresting points.
|
||||
if (capturePoints.Count >= 3) {
|
||||
int index = 0;
|
||||
while ((capturePoints.Count - 1) % 3 != 0) {
|
||||
// duplicate points, first at 50% than 25% than 75%
|
||||
capturePoints.Insert((int)(capturePoints.Count*PointOffset[index]), capturePoints[(int)(capturePoints.Count*PointOffset[index++])]);
|
||||
}
|
||||
freehandPath.AddBeziers(capturePoints.ToArray());
|
||||
} else if (capturePoints.Count == 2) {
|
||||
freehandPath.AddLine(capturePoints[0], capturePoints[1]);
|
||||
}
|
||||
// Here we can put some cleanup... like losing all the uninteresting points.
|
||||
if (capturePoints.Count >= 3)
|
||||
{
|
||||
int index = 0;
|
||||
while ((capturePoints.Count - 1) % 3 != 0)
|
||||
{
|
||||
// duplicate points, first at 50% than 25% than 75%
|
||||
capturePoints.Insert((int)(capturePoints.Count * PointOffset[index]), capturePoints[(int)(capturePoints.Count * PointOffset[index++])]);
|
||||
}
|
||||
freehandPath.AddBeziers(capturePoints.ToArray());
|
||||
}
|
||||
else if (capturePoints.Count == 2)
|
||||
{
|
||||
freehandPath.AddLine(capturePoints[0], capturePoints[1]);
|
||||
}
|
||||
|
||||
// Recalculate the bounds
|
||||
myBounds = Rectangle.Round(freehandPath.GetBounds());
|
||||
|
||||
}
|
||||
|
||||
// Recalculate the bounds
|
||||
myBounds = Rectangle.Round(freehandPath.GetBounds());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -157,41 +175,48 @@ namespace Greenshot.Drawing {
|
|||
/// <param name="graphics"></param>
|
||||
/// <param name="renderMode"></param>
|
||||
public override void Draw(Graphics graphics, RenderMode renderMode) {
|
||||
graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||
graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
|
||||
|
||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
||||
Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
||||
using (Pen pen = new Pen(lineColor)) {
|
||||
using (var pen = new Pen(lineColor)) {
|
||||
pen.Width = lineThickness;
|
||||
if (pen.Width > 0) {
|
||||
// Make sure the lines are nicely rounded
|
||||
pen.EndCap = LineCap.Round;
|
||||
pen.StartCap = LineCap.Round;
|
||||
pen.LineJoin = LineJoin.Round;
|
||||
if (!(pen.Width > 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
// Make sure the lines are nicely rounded
|
||||
pen.EndCap = LineCap.Round;
|
||||
pen.StartCap = LineCap.Round;
|
||||
pen.LineJoin = LineJoin.Round;
|
||||
// Move to where we need to draw
|
||||
graphics.TranslateTransform(Left, Top);
|
||||
lock (_freehandPathLock)
|
||||
{
|
||||
if (isRecalculated && Selected && renderMode == RenderMode.EDIT)
|
||||
{
|
||||
DrawSelectionBorder(graphics, pen, freehandPath);
|
||||
}
|
||||
graphics.DrawPath(pen, freehandPath);
|
||||
}
|
||||
|
||||
// Move to where we need to draw
|
||||
graphics.TranslateTransform(Left,Top);
|
||||
if (isRecalculated && Selected && renderMode == RenderMode.EDIT) {
|
||||
DrawSelectionBorder(graphics, pen);
|
||||
}
|
||||
graphics.DrawPath(pen, freehandPath);
|
||||
// Move back, otherwise everything is shifted
|
||||
graphics.TranslateTransform(-Left,-Top);
|
||||
}
|
||||
// Move back, otherwise everything is shifted
|
||||
graphics.TranslateTransform(-Left,-Top);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Draw a selectionborder around the freehand path
|
||||
/// </summary>
|
||||
/// <param name="graphics"></param>
|
||||
/// <param name="linePen"></param>
|
||||
protected void DrawSelectionBorder(Graphics graphics, Pen linePen) {
|
||||
using (Pen selectionPen = (Pen) linePen.Clone()) {
|
||||
using (GraphicsPath selectionPath = (GraphicsPath) freehandPath.Clone()) {
|
||||
|
||||
/// <summary>
|
||||
/// Draw a selectionborder around the freehand path
|
||||
/// </summary>
|
||||
/// <param name="graphics">Graphics</param>
|
||||
/// <param name="linePen">Pen</param>
|
||||
/// <param name="path">GraphicsPath</param>
|
||||
protected static void DrawSelectionBorder(Graphics graphics, Pen linePen, GraphicsPath path) {
|
||||
using (var selectionPen = (Pen) linePen.Clone()) {
|
||||
using (var selectionPath = (GraphicsPath)path.Clone()) {
|
||||
selectionPen.Width += 5;
|
||||
selectionPen.Color = Color.FromArgb(120, Color.LightSeaGreen);
|
||||
graphics.DrawPath(selectionPen, selectionPath);
|
||||
|
@ -218,34 +243,42 @@ namespace Greenshot.Drawing {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// FreehandContainer are regarded equal if they are of the same type and their paths are equal.
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
/// <returns></returns>
|
||||
public override bool Equals(object obj) {
|
||||
/// <summary>
|
||||
/// FreehandContainer are regarded equal if they are of the same type and their paths are equal.
|
||||
/// </summary>
|
||||
/// <param name="obj">object</param>
|
||||
/// <returns>bool</returns>
|
||||
public override bool Equals(object obj) {
|
||||
bool ret = false;
|
||||
if(obj != null && GetType() == obj.GetType()) {
|
||||
FreehandContainer other = obj as FreehandContainer;
|
||||
if(other != null && freehandPath.Equals(other.freehandPath)) {
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
if (obj == null || GetType() != obj.GetType())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
var other = obj as FreehandContainer;
|
||||
if (other != null && Equals(freehandPath, other.freehandPath)) {
|
||||
ret = true;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public override int GetHashCode() {
|
||||
return freehandPath.GetHashCode();
|
||||
lock (_freehandPathLock)
|
||||
{
|
||||
return freehandPath?.GetHashCode() ?? 0;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool ClickableAt(int x, int y) {
|
||||
bool returnValue = base.ClickableAt(x, y);
|
||||
if (returnValue) {
|
||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
||||
using (Pen pen = new Pen(Color.White)) {
|
||||
using (var pen = new Pen(Color.White)) {
|
||||
pen.Width = lineThickness + 10;
|
||||
returnValue = freehandPath.IsOutlineVisible(x-Left,y-Top, pen);
|
||||
}
|
||||
lock (_freehandPathLock)
|
||||
{
|
||||
returnValue = freehandPath.IsOutlineVisible(x - Left, y - Top, pen);
|
||||
}
|
||||
}
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
|
|
@ -62,8 +62,8 @@ namespace Greenshot.Drawing {
|
|||
|
||||
public override void Draw(Graphics graphics, RenderMode rm) {
|
||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
||||
Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
||||
Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR);
|
||||
Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR, Color.Red);
|
||||
Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR, Color.Transparent);
|
||||
bool shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
||||
Rectangle rect = GuiRectangle.GetGuiRectangle(Left, Top, Width, Height);
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -23,15 +23,15 @@
|
|||
<!--
|
||||
Note to translator: uncomment entry below to have your effort honored
|
||||
-->
|
||||
<small>Versie 1.0 - Nederlandse vertaling van de help door Jurjen Ladenius en Stephan Paternotte</small>
|
||||
<small>Versie 1.2.10 - Nederlandse vertaling door Jurjen Ladenius en Stephan Paternotte</small>
|
||||
|
||||
<h2>Inhoud</h2>
|
||||
<ol>
|
||||
<li><a href="#screenshot">Een schermopname maken</a></li>
|
||||
<ol>
|
||||
<li><a href="#capture-region">Interactief kader</a></li>
|
||||
<li><a href="#capture-last-region">Laastgebruikte schermopname</a></li>
|
||||
<li><a href="#capture-window">Actief venster</a></li>
|
||||
<li><a href="#capture-last-region">Laaste schermopname herhalen</a></li>
|
||||
<li><a href="#capture-window">Actief vensteropname</a></li>
|
||||
<li><a href="#capture-fullscreen">Volledige schermopname</a></li>
|
||||
<li><a href="#capture-ie">Internet Explorer schermopname</a></li>
|
||||
</ol>
|
||||
|
@ -69,23 +69,23 @@
|
|||
<h2>Een schermopname maken</h2>
|
||||
<p>
|
||||
U kunt een schermopname maken door op uw toetsenbord de <kbd>Print</kbd>-toets te drukken of
|
||||
een rechtermuisklik op het Greenshot-icoon in het systeemvak te geven<br>
|
||||
door middel van een rechtermuisklik op het Greenshot-icoon in het systeemvak.</br>
|
||||
Er zijn meerdere mogelijkheden om een schermopname te maken:
|
||||
</p>
|
||||
|
||||
<a name="capture-region"></a>
|
||||
<h3>Interactief kader <kbd>Print</kbd></h3>
|
||||
<p>
|
||||
De "regio-opname" modus maakt het mogelijk om een gebied van het beeldscherm te markeren voor een schermopname.<br>
|
||||
Nadat de regio vastlegen modus gestart wordt verandert de mouse-cursor in een kruis.
|
||||
Positioneer de muis naar een hoek van het gebied waarvan u een schermopname wilt hebben en
|
||||
Deze "regio"-opnamemodus maakt het mogelijk om een gebied van het beeldscherm te selecteren voor een schermopname.</br>
|
||||
Bij het vastleggen van het opnamegebied verandert de mouse-cursor in een haarkruis.
|
||||
Positioneer de muis naar een hoek van het gebied waarvan u een schermopname wilt maken en
|
||||
druk op de linkermuisknop en houd deze ingedrukt. Beweeg nu de muis naar de diagonale hoek
|
||||
van uw doelgebied. Tijdens het bewegen ontstaat een groeiende groene rechthoek.
|
||||
Op het moment dat u de linkermuisknop loslaat wordt van het groene gebied een schermopname gemaakt.
|
||||
</p>
|
||||
<p class="hint">
|
||||
U kunt de <kbd>spatie</kbd> toets gebruiken om wisselen tussen de modi "regio-opname" en
|
||||
<a href="#capture-window">venster</a>. Met de Esc-toets breekt u de schermopname af.
|
||||
Met de <kbd>spatie</kbd>-balk kunt u wisselen tussen de modi "Interactief kader" en
|
||||
<a href="#capture-window">Actief vensteropname</a>. Met <kbd>Esc</kbd> breekt u de schermopname af.
|
||||
</p>
|
||||
<p class="hint">
|
||||
Als u een zeer exact gebied wilt vastleggen is het misschien eenvoudiger om eerst van een groter
|
||||
|
@ -94,30 +94,30 @@
|
|||
</p>
|
||||
|
||||
<a name="capture-last-region"></a>
|
||||
<h3>Laatstgebruikte schermopname<kbd>Shift</kbd> + <kbd>Print</kbd></h3>
|
||||
<h3>Laatste schermopname herhalen <kbd>Shift</kbd> + <kbd>Print</kbd></h3>
|
||||
<p>
|
||||
Als u al een keer een schermopname heeft gemaakt van een <a href="#capture-region">kader</a>
|
||||
of een <a href="#capture-window">venster</a>, dan heeft u met deze optie de mogelijkheid hetzelfde gebied nog eens vast te leggen.
|
||||
Als u al een keer een schermopname heeft gemaakt van een <a href="#capture-region">Interactief kader</a>
|
||||
of een <a href="#capture-window">Actief venster</a>, dan kunt u met deze optie hetzelfde gebied nog eens vastleggen.
|
||||
</p>
|
||||
|
||||
<a name="capture-window"></a>
|
||||
<h3>Actief venster <kbd>Alt</kbd> + <kbd>Print</kbd></h3>
|
||||
<h3>Actief vensteropname <kbd>Alt</kbd> + <kbd>Print</kbd></h3>
|
||||
<p>
|
||||
Maakt een schermopname van het aktieve venster.
|
||||
</p>
|
||||
<p class="hint">
|
||||
Gebruik bij Windows 7 of Vista de Schermopname-instellingen om te bepalen
|
||||
hoe Greenshot omgaat met transparante (Aero) vensterranden, etc. het vervangen
|
||||
van transparanties door een vaste kleur.
|
||||
hoe Greenshot omgaat met transparante (Aero) vensterranden, door bijv. transparanties
|
||||
te vervangen door een vaste kleur.
|
||||
</p>
|
||||
<p class="hint">
|
||||
De <a href="#settings">instellingendialoog</a> biedt de mogelijkheid om niet direct
|
||||
het actieve venster te fotograferen, maar een venster interactief te selecteren.
|
||||
Als deze optie geactiveerd is, kunt u een venster selecteren door het te klikken (zoals bij
|
||||
Als deze optie geactiveerd is, kunt u een venster selecteren door het te klikken. Net als bij
|
||||
<a href="#capture-region">Interactief kader</a>, zal Greenshot het te fotograferen
|
||||
gebied markeren).<br> Als u een deelvenster wilt fotograferen, zoals bijv. een browservenster
|
||||
gebied markeren.</br> Wilt u een deelvenster fotograferen, zoals bijv. een browservenster
|
||||
zonder menu of gereedschapsbalk of een enkel onderdeel in een webpagina,
|
||||
positioneer dan de muis over het deelvenster en druk de <kbd>PgDown</kbd>-toets. Hierna
|
||||
positioneer dan de muis over het deelvenster en druk de <kbd>Page Down</kbd>-toets. Hierna
|
||||
kunt u de specifieke vensterelementen selecteren voor de schermopname.
|
||||
</p>
|
||||
<p class="hint">
|
||||
|
@ -125,19 +125,19 @@
|
|||
"Venster"-schermopname zal het contextmenu verdwijnen en dat zal ook gebeuren als u
|
||||
Greenshot's contextmenu gebruikt om de schermopname te maken. Wilt u een
|
||||
schermopname maken van een contextmenu dat u zojuist met een rechtermuisklik hebt geopend,
|
||||
gebruik dan eenvoudig "Interactief kader" <kbd>Print</kbd> en druk dan de <kbd>Spatie</kbd>-balk.
|
||||
gebruik dan eenvoudig "Interactief kader" <kbd>Print</kbd> en druk dan de <kbd>spatie</kbd>-balk.
|
||||
</p>
|
||||
|
||||
<a name="capture-fullscreen"></a>
|
||||
<h3>Volledige schermopname <kbd>Control</kbd> + <kbd>Print</kbd></h3>
|
||||
<h3>Volledige schermopname <kbd>Ctrl</kbd> + <kbd>Print</kbd></h3>
|
||||
<p>
|
||||
Hierbij wordt een schermopname gemaakt van het gehele scherm, ook als meerdere monitoren gebruikt worden.
|
||||
Greenshot maakt een schermopname van het gehele scherm.
|
||||
</p>
|
||||
|
||||
<a name="capture-ie"></a>
|
||||
<h3>Internet Explorer schermopname<kbd>Control</kbd> + <kbd>Shift</kbd> + <kbd>Print</kbd></h3>
|
||||
<h3>Internet Explorer schermopname <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Print</kbd></h3>
|
||||
<p>
|
||||
Deze funcie maakt eenvoudig een schermopname van een webpagina die geopend is in Internet Explorer.
|
||||
Deze funcie maakt op eenvoudige wijze een schermopname van een webpagina die geopend is in Internet Explorer.
|
||||
Gebruik Greenshot's contextmenu om de tab in Internet Explorer te selecteren voor schermopname, of druk
|
||||
<kbd>Crtl</kbd> + <kbd>Shift</kbd> + <kbd>Print</kbd> om een schermopname te maken van de actieve tab.
|
||||
</p>
|
||||
|
@ -147,18 +147,18 @@
|
|||
<h2>De Greenshot beeldbewerker gebruiken</h2>
|
||||
<p>
|
||||
Greenshot heeft een eenvoudig te gebruiken beeldbewerkingsprogramma met verschillende handige functies en
|
||||
mogelijkheden om een schermopname te voorzien van vormen en annotaties. Het is ook mogelijk om bepaalde delen van
|
||||
uw screenshot onherkenbaar te maken of te markeren waardoor het beter opvalt.
|
||||
mogelijkheden om een schermopname te voorzien van vormen en annotaties. Het biedt ook mogelijkheden om
|
||||
delen van een schermopname onherkenbaar te maken of te markeren zodat het beter opvalt.
|
||||
</p>
|
||||
<p class="hint">
|
||||
De Greenshot beeldbewerker is niet alleen handig voor schermopnamen, maar is ook te gebruiken voor andere
|
||||
afbeeldingen uit bestanden of het klembord. Klik hiervoor met de rechter muisknop op het Greenshot-icoon
|
||||
in het systeemvak en selecteer <em>Afbeelding uit bestand openen</em> of
|
||||
<em>Afbeelding laden van het klembord</em>.
|
||||
in het systeemvak en selecteer <em>Afbeeldingsbestand openen</em> of
|
||||
<em>Afbeelding van het klembord laden</em>.
|
||||
</p>
|
||||
<p class="hint">
|
||||
Wanneer een schermopname is gemaakt wordt standaard de beeldbewerker geopend.
|
||||
Indien u dit niet wenst, kunt u dit gedrag in het <a href="#settings">instellingen-venster</a>
|
||||
Na het maken van een schermopname, wordt de afbeelding standaard in de beeldbewerker geopend.
|
||||
Indien u dit niet wenst, kunt u dit gedrag bij de <a href="#settings">Instellingen</a>
|
||||
afschakelen.
|
||||
</p>
|
||||
|
||||
|
@ -168,16 +168,16 @@
|
|||
<p>
|
||||
Kies een van de vormen in de gereedschapsbalk aan de linkerzijde van de beeldbewerker
|
||||
of van het menu <em>Object</em>. Aan elke toets is tevens een sneltoets gekoppeld
|
||||
voor snelle toegang via het toetsenbord.<br>
|
||||
voor snelle toegang via het toetsenbord.</br>
|
||||
Beschikbare vormen zijn: rechthoek <kbd>R</kbd>, ellips <kbd>E</kbd>, lijn <kbd>L</kbd>
|
||||
pijl <kbd>A</kbd> en vrije vorm <kbd>F</kbd>.<br>
|
||||
pijl <kbd>A</kbd> en vrije vorm <kbd>F</kbd>.</br>
|
||||
Klik en sleep de muis om de positie en de grootte van de vorm te bepalen.
|
||||
Laat de muisknop los als de vorm van de juiste afmetingen is.
|
||||
</p>
|
||||
<p>
|
||||
Getekende vormen kunnen worden verplaatst en vergroot met behulp van de knop Selectie
|
||||
<kbd>ESC</kbd> op de gereedschapsbalk.<br>Voor elk vormtype zijn specifieke
|
||||
opties beschikbaar om het uiterlijk aan te passen (bijv. lijndikte,
|
||||
Getekende vormen kunnen worden verplaatst en vergroot met behulp van de knop <em>Selectie</em>
|
||||
<kbd>ESC</kbd> op de gereedschapsbalk.</br>Voor elk vormtype zijn specifieke
|
||||
opties beschikbaar om de karakteristieken aan te passen (bijv. lijndikte,
|
||||
lijnkleur, vulkleur). U kunt het uiterlijk veranderen voor een bestaand geselecteerd object,
|
||||
maar u kunt ook de eigenschappen instellen voor de volgende te tekenen vorm.
|
||||
</p>
|
||||
|
@ -188,7 +188,7 @@
|
|||
<p class="hint">
|
||||
Wilt u een symmetrische vorm tekenen (bijv. een vierkant of een cirkel)? Houd dan tijdens het tekenen
|
||||
de <kbd>Shift</kbd>-toets ingedrukt. Bij het tekenen van pijlen, beperkt de <kbd>Shift</kbd>-toets
|
||||
de mogelijke hoeken tot veelvouden van 15°.<br>
|
||||
de mogelijke hoeken tot veelvouden van 15°.</br>
|
||||
Bij het vergroten van een bestaand object zorgt de <kbd>Shift</kbd>-toets ervoor dat de verhoudingen behouden blijven.
|
||||
</p>
|
||||
<p class="hint">
|
||||
|
@ -201,9 +201,9 @@
|
|||
<h3>Tekst toevoegen</h3>
|
||||
<p>
|
||||
Het gebruik van de Tekst-functie <kbd>T</kbd> is vergelijkbaar met dat van
|
||||
<a href="#editor-shapes">Vormen</a> toevoegen. Plaats een tekst-element van de gewenste grootte
|
||||
en typ de tekst.<br>
|
||||
Dubbelklik een bestaande tekst om deze te bewerken.<br>
|
||||
<a href="#editor-shapes">Vormen</a> toevoegen. Plaats een tekstkader van de gewenste grootte
|
||||
en typ de tekst.</br>
|
||||
Dubbelklik een bestaande tekst om deze te bewerken.</br>
|
||||
Gebruik <kbd>Return</kbd> of <kbd>Enter</kbd> als u klaar bent met bewerken.
|
||||
</p>
|
||||
<p class="hint">
|
||||
|
@ -215,7 +215,7 @@
|
|||
<h3>Markeren</h3>
|
||||
<p>
|
||||
Met de Markeer-functie <kbd>H</kbd>, kunt u een gebied markeren op precies dezelfde wijze
|
||||
als waarmee u een vorm <a href="#editor-shapes">shape</a> tekent.<br>
|
||||
als waarmee u een vorm <a href="#editor-shapes">shape</a> tekent.</br>
|
||||
De volgende opties bij het markeren zijn beschilbaar via de meest linkse knop
|
||||
in de gereedschapsbalk:
|
||||
</p>
|
||||
|
@ -231,8 +231,8 @@
|
|||
<h3>Maskeren</h3>
|
||||
<p>
|
||||
Delen van een schermopname maskeren is een goed gebruik wanneer persoonlijke gegevens in beeld zijn
|
||||
die beter privé kunnen blijven, zoals bijv. bankgegevens, namen, wachtwoorden of herkenbare personen.<br>
|
||||
De functie Maskeren <kbd>O</kbd> gebruikt u net als het <a href="#editor-highlight">Markeren</a>.<br>
|
||||
die beter privé kunnen blijven, zoals bijv. bankgegevens, namen, wachtwoorden of herkenbare personen.</br>
|
||||
De functie Maskeren <kbd>O</kbd> gebruikt u net als het <a href="#editor-highlight">Markeren</a>.</br>
|
||||
|
||||
Beschikbare opties voor Maskeren zijn:
|
||||
</p>
|
||||
|
@ -245,15 +245,15 @@
|
|||
* Afhankelijk van uw computer kan het vervagingseffect de werking van Greenshot's beeldbewerker
|
||||
trager maken. Merkt u dat de beeldbewerker bij de toepassing van Vervagen traag en sloom wordt,
|
||||
probeer dan de <em>kwaliteit van de voorvertoning</em> in de gereedschapsbalk te verminderen of
|
||||
verlaag de waarde voor de <em>Vervagings-radius</em>.<br>
|
||||
verlaag de waarde voor de <em>Vervagings-radius</em>.</br>
|
||||
Blijft de functie Vervagen traag reageren, probeer dan de functie Pixeleren te gebuiken.
|
||||
|
||||
</p>
|
||||
<a name="editor-effects"></a>
|
||||
<h3>Effecten toevoegen</h3>
|
||||
<h3>Effecten toepassen</h3>
|
||||
<p>
|
||||
U kunt aan uw schermopname verschillende effecten toevoegen. Zo kunt u bijvoorbeeld een lijst toevoegen
|
||||
of een schaduw of het effect van gescheurde randen om de afbeelding meer nadruk te geven.
|
||||
U kunt op uw schermopname verschillende effecten toepassen. Zo kunt u de afbeelding meer nadruk te geven door
|
||||
bijvoorbeeld een lijst of een schaduw of het effect van gescheurde randen toe te voegen.
|
||||
De effecten Grijstinten en Negatief zijn met name nuttig voor het afdrukken en de besparing van inkt of toner bij
|
||||
kleurrijke of donkere schermopnames.
|
||||
</p>
|
||||
|
@ -262,22 +262,22 @@
|
|||
<h3>Schermopname bijsnijden</h3>
|
||||
<p>
|
||||
Als u maar een deel van de schermopname nodig hebt, gebruik dan de functie bijsnijden <kbd>C</kbd>
|
||||
om de overtollige delen weg te snijden.<br>
|
||||
Na het activeren van de functie bijsnijden, tekent u een rechthoek om het gebied van de schermopname dat behouden
|
||||
moet worden. U kunt de afmetingen van het geselecteerde gebied naar wens aanpassen.<br>
|
||||
Bent u tevreden over het geselecteerde gebied, bevestig het bijsnijden dan in de gereedschapsbalk of type <kbd>Enter</kbd>.
|
||||
om overtollige delen weg te snijden.</br>
|
||||
Teken hiertoe een rechthoek om het gebied van de schermopname dat behouden moet worden.
|
||||
U kunt de afmetingen van het geselecteerde gebied naar wens aanpassen.</br>
|
||||
Bent u tevreden over het geselecteerde gebied, bevestig het bijsnijden dan in de gereedschapsbalk of toets <kbd>Enter</kbd>.
|
||||
U kunt het bijsnijden afbreken met de toets <kbd>ESC</kbd>.
|
||||
|
||||
</p>
|
||||
<p class="hint">
|
||||
<em>Automatisch Bijsnijden</em>: Als u een schermopname wilt bijsnijden tot een rand of vlakke achtergrondkleur,
|
||||
<em>Automatisch bijsnijden</em>: Als u een schermopname wilt bijsnijden tot een rand of vlakke achtergrondkleur,
|
||||
gebruik dan <em>Automatisch bijsnijden</em> in het menu <em>Bewerken</em> en Greenshot zal het bij te snijden gebied
|
||||
automatisch bepalen.
|
||||
</p>
|
||||
|
||||
<a name="editor-rotate"></a>
|
||||
<p class="hint">
|
||||
Gebruik de functie Roteren om een schermopname linksom of rechtsom te draaien.
|
||||
Gebruik de functie Draaien om een schermopname linksom of rechtsom te roteren.
|
||||
</p>
|
||||
|
||||
<a name="editor-adding-graphics"></a>
|
||||
|
@ -286,7 +286,7 @@
|
|||
U kunt eenvoudig afbeeldingen aan een schermopname toevoegen door een afbeeldingsbestand in
|
||||
het venster van de beeldbewerker te slepen. U kunt ook schermopnames van andere vensters invoegen met behulp van
|
||||
de functie <em>Venster invoegen</em> in het menu <em>Bewerken</em>. Een lijst van alle geopende vensters biedt u
|
||||
de gelegenheid er een te kiezen om in te voegen.
|
||||
de mogelijkheid er een te kiezen om in te voegen.
|
||||
</p>
|
||||
|
||||
<a name="editor-reuse-elements"></a>
|
||||
|
@ -294,7 +294,7 @@
|
|||
<p>
|
||||
Als u regelmatig dezelfde elementen toepast in de bewerking van uw schermopnamen
|
||||
(bijv. een tekstkader met browsertype en versienummer, of het maskeren van hetzelfde
|
||||
element in verschillende schermopnamen) dan kunt u deze elementen hergebruiken.<br>
|
||||
element in verschillende schermopnamen) dan kunt u deze elementen hergebruiken.</br>
|
||||
Kies in het menu <em>Objecten</em>, <em>Objecten opslaan</em> om de huidige elementen op te slaan
|
||||
voor later gebruik. <em>Objecten laden</em> past deze eerder opgeslagen elementen toe
|
||||
op een andere schermopname.
|
||||
|
@ -308,15 +308,15 @@
|
|||
de bovenste gereedschapsbalk of via de sneltoetsen:
|
||||
</p>
|
||||
<ul>
|
||||
<li><em>Opslaan</em> <kbd>Ctrl</kbd> + <kbd>S</kbd>: slaat de afbeelding op naar een bestand (als het bestand al is opgeslagen, anders wordt <em>Opslaan als…</em> getoond</li>
|
||||
<li><em>Opslaan</em> <kbd>Ctrl</kbd> + <kbd>S</kbd>: slaat de afbeelding op naar een bestand (als het bestand nog niet is opgeslagen wordt <em>Opslaan als…</em> getoond)</li>
|
||||
<li><em>Opslaan als…</em> <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>S</kbd>: laat u een locatie, bestandsnaam en afbeeldingsformaat kiezen voor het opslaan van het bestand</li>
|
||||
<li><em>Afbeelding naar klembord kopiëren</em> <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd>: plaatst een kopie van de afbeelding op het klembord, zodat u het vervolgens in een ander programma kunt kopiëren</li>
|
||||
<li><em>Afdrukken…</em> <kbd>Ctrl</kbd> + <kbd>P</kbd>: stuurt de afbeelding naar een printer</li>
|
||||
<li><em>E-mail</em> <kbd>Ctrl</kbd> + <kbd>E</kbd>: opent een nieuw bericht in uw standaard e-mailprogramme met de afbeelding als bijlage</li>
|
||||
<li><em>E-mail</em> <kbd>Ctrl</kbd> + <kbd>E</kbd>: opent een nieuw bericht in uw standaard e-mailprogramma met de afbeelding als bijlage</li>
|
||||
</ul>
|
||||
<p>
|
||||
Er zijn plugins om schermopnamen te exporteren naar andere bestemmingen, zoald DropBox, Picasa, Flickr.
|
||||
Selecteer de relevante plugins tijdens de installatie van Greenshot.
|
||||
Er zijn plugins om schermopnamen te exporteren naar andere bestemmingen, zoals DropBox, Picasa, Flickr.
|
||||
Selecteer de gewenste plugins tijdens de installatie van Greenshot.
|
||||
</p>
|
||||
<p class="hint">
|
||||
Klik, nadat u de afbeelding hebt opgeslagen, de statusbalk onderaan de beeldbewerker
|
||||
|
@ -331,25 +331,25 @@
|
|||
<a name="settings-general"></a>
|
||||
<h3>Algemene instellingen</h3>
|
||||
<ul>
|
||||
<li><em>Taal</em>: De taal waarin Greenshot wordt weergegeven.<br>
|
||||
<li><em>Taal</em>: De taal waarin Greenshot wordt weergegeven.</br>
|
||||
Aanvullende taalbestanden zijn te downloaden van de <a target="_blank" href="http://getgreenshot.org/downloads/">Greenshot website</a>. </li>
|
||||
<li><em>Greenshot automatisch opstarten</em>: Start het programma als de PC wordt opgestart.</li>
|
||||
<li><em>Sneltoetsen</em>: De sneltoetsen aanpassen voor het maken van schermopnames.</li>
|
||||
<li><em>Systeem-proxy gebruiken</em>: Greenshot gebruikt de systeem-proxy instelllingen bij het zoeken naar updates.</li>
|
||||
<li><em>Versiecontrole-interval [dagen]</em>: Greenshot automatisch uitkijken naar nieuwe versies. Gebruik deze instelling om het
|
||||
interval (in dagen) aan te passen of gebruik 0 om de versiecontrole af te schakelen.</li>
|
||||
<li><em>Greenshot met Windows opstarten</em>: Start het programma als de PC wordt opgestart.</li>
|
||||
<li><em>Sneltoetsen</em>: Hier kunt u de sneltoetsen voor het maken van schermopnames aanpassen.</li>
|
||||
<li><em>Standaard systeem-proxy gebruiken</em>: Greenshot gebruikt de systeem-proxy instelllingen bij het zoeken naar updates.</li>
|
||||
<li><em>Controleren op nieuwe versies [dagen]</em>: Greenshot controleert automatisch op nieuwe versies. Gebruik deze instelling om het
|
||||
interval in dagen aan te passen of gebruik 0 om de versiecontrole af te schakelen.</li>
|
||||
</ul>
|
||||
|
||||
<a name="settings-capture"></a>
|
||||
<h3>Opname-instellingen</h3>
|
||||
<h3>Schermopname-instellingen</h3>
|
||||
<ul>
|
||||
<li><em>Muisaanwijzer opnemen</em>: Indien geactiveerd, wordt de muisaanwijzer in de schermopname meegenomen. De muisaanwijzer is een apart element in the beeldbewerker, dus u kunt deze later nog verplaatsen of verwijderen.</li>
|
||||
<li><em>Camerageluid afspelen</em>: Het maken van een schermopname gaat gepaard met een geluidseffect</li>
|
||||
<li><em>Muisaanwijzer opnemen</em>: De muisaanwijzer wordt in de schermopname meegenomen. De muisaanwijzer is een apart element in the beeldbewerker, dus u kunt deze later nog verplaatsen of verwijderen.</li>
|
||||
<li><em>Camerageluid afspelen</em>: Bij de schermopname wordt een geluidseffect afgespeeld.</li>
|
||||
<li><em>Vertragingstijd voor de schermopname [ms]</em>: Een instelbare tijdsvertraging welke wordt toegepast voor de schermopname.</li>
|
||||
<li><em>Use interactive window capture mode</em>: Instead of capturing the active window right away, interactive mode
|
||||
allows you to select the window to capture. It is also possible to capture child windows, see <a href="#capture-window">window capture</a>.</li>
|
||||
<li><em>Vensteropname-modus</em>: In plaats van direct een opname te maken van het actieve venster, biedt de interactieve modus
|
||||
de mogelijkheid om een venster te selecteren voor de opname. Ook is het mogelijk een opname te maken van een deelvenster. Zie ook <a href="#capture-window">Actieve vensteropname</a>.</li>
|
||||
<li>
|
||||
<em>Aero schermopname (alleen Windows Vista / 7)</em>: Als u Greenshot gebruikt bij Windows Vista of Windows 7 met aero geactiveerd, dan kunt u
|
||||
<em>Aero schermopname (alleen Windows Vista/7)</em>: Als u Greenshot gebruikt bij Windows Vista of Windows 7 met aero geactiveerd, dan kunt u
|
||||
aangeven hoe transparante vensterranden moeten worden behandeld bij het maken van de schermopname. Gebruik deze instelling om te voorkomen dat elementen
|
||||
in de achtergrond met de transparante vensterranden mee worden gefotografeerd.
|
||||
<ul>
|
||||
|
@ -362,44 +362,43 @@
|
|||
Sla de afbeelding op als PNG voor volledige ondersteuning van transparanties.)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><em>Internet Explorer schermopname</em>: Maakt eenvoudige schermopnames mogelijk van webpagina's in Internet Explorer.</li>
|
||||
<li><em>Internet Explorer schermopname</em>: Maakt op eenvoudige wijze schermopnames mogelijk van webpagina's in Internet Explorer.</li>
|
||||
<li><em>Beeldbewerker-venster aanpassen op schermopname</em>: Indien geactiveerd, past de beeldbewerker automatisch het venster aan op de afmetingen van de schermopname.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<a name="settings-output"></a>
|
||||
<h3>Resultaat-instellingen</h3>
|
||||
<h3>Uitvoer</h3>
|
||||
<ul>
|
||||
<li><em>Bestemming schermopname</em>: Hiermee kunt u opgeven naar welke bestemming(en) de schermopnamen moeten worden opgeslagen.</li>
|
||||
<li><em>Preferred output file settings</em>: Directory and filename to be used when saving directly or to be suggested when saving (using the save-as dialog). Click the <em>?</em> button to learn more about the placeholders that can be used as filename pattern.</li>
|
||||
<li><em>Opslaglocatie</em>: Hier kunt u opgeven naar welke locatie(s) de schermopnamen moeten worden opgeslagen.</li>
|
||||
<li><em>Bestandsnaam</em>: Hier specificeert u de map en het patroon van de bstandsnamen welke worden gebruikt bij de opslag van de schermopnamen. Klik de knop <em>?</em> voor meer informatie over het construeren van een patroon voor de bestandsnaam.</li>
|
||||
<li><em>JPEG-instellingen</em>: De kwaliteit waarmee de afbeeldingen worden opgeslagen als JPEG-bestand.</li>
|
||||
</ul>
|
||||
|
||||
<a name="settings-destination"></a>
|
||||
<h3>Bestemming</h3>
|
||||
<p>
|
||||
Na de schermopname vertoont Greenshot een eenvoudig menu waarmee u zelf een bestemmingsmap kiezen.
|
||||
Is er geen noodzaak of heeft u geen behoefte om de bestemminsmap aan te passen,
|
||||
dan kunt Greenshot instellen de schermopnames direct naar meerdrere bestemmingen op te slaan, zonder
|
||||
tussenkomst van het keuzemenu.<br/>
|
||||
Opmerking: Net als bij het <a href="#editor-export">exporteren vanuit het beeldbewerkingsvenster</a>, zullen mogelijke bestemmingen
|
||||
afhangen van de plugins welke met Greenshot zijn geïnstalleerd.
|
||||
Na de schermopname vertoont Greenshot een eenvoudig menu waarmee u zelf een bestemmingsmap kunt kiezen.
|
||||
Heeft u geen behoefte om deze aan te passen, dan kunt Greenshot instellen de schermopnames direct naar
|
||||
meerdrere bestemmingen op te slaan, zonder tussenkomst van het keuzemenu.<br/>
|
||||
Opmerking: Net als bij het <a href="#editor-export">exporteren van schermopnamen</a>,
|
||||
zullen beschikbare bestemmingen afhangen van de plugins welke met Greenshot zijn geïnstalleerd.
|
||||
</p>
|
||||
|
||||
<a name="settings-printer"></a>
|
||||
<h3>Printer-instellingen</h3>
|
||||
<ul>
|
||||
<li><em>Afbeelding verkleinen tot pagina-afmetingen</em>: Wanneer de afbeelding te groot zou zijn voor het papier, wordt deze verkleind zodat deze past op de pagina.</li>
|
||||
<li><em>Afbeelding vergroten tot pagina-afmetingen</em>: Wanneer de afbeelding kleiner is dan de papiergrootte, wordt deze vergroot zodat de pagina vult.</li>
|
||||
<li><em>Afdruk roteren en aanpassen aan papier-oriëntatie</em>: Afbeeldingen met horizontale oriëntatie worden 90° gedraaid voor een afdruk op papier met verticale oriëntatie.</li>
|
||||
<li><em>Negatieve kleuren afdrukken</em>: De afbeelding wordt in kleur-negatief afgedrukt. Bijvoorbeeld handig bij het afdrukken van een afbeelding met witte tekst tegen een donkere achtergrond (besparing toner/inkt).</li>
|
||||
<li><em>Afdruk verkleinen tot papiergrootte</em>: Wanneer de afbeelding te groot zou zijn voor het papier, wordt deze verkleind zodat deze past op de pagina.</li>
|
||||
<li><em>Afdruk vergroten tot papiergrootte</em>: Wanneer de afbeelding kleiner is dan de papiergrootte, wordt deze vergroot zodat de pagina vult.</li>
|
||||
<li><em>Afdruk draaien en aanpassen aan het papier</em>: Afbeeldingen met horizontale oriëntatie worden 90° gedraaid voor een afdruk op papier met verticale oriëntatie.</li>
|
||||
<li><em>Afdrukken in negatief-kleuren</em>: De afbeelding wordt in kleur-negatief afgedrukt. Bijvoorbeeld handig bij het afdrukken van een afbeelding met witte tekst tegen een donkere achtergrond (besparing toner/inkt).</li>
|
||||
<li><em>Grijstinten forceren</em>: Kleuren in de afbeelding worden voor de afdruk omgezet naar grijstinten.</li>
|
||||
</ul>
|
||||
|
||||
<a name="settings-plugins"></a>
|
||||
<h3>Plugin-instellingen</h3>
|
||||
<p>
|
||||
Hier wordt de lijst met geïnstalleerde Greenshot-plugins weergegeven. Selecteer een plugin van de lijst and klik <em>Instellingen</em>
|
||||
Hier wordt de lijst met geïnstalleerde Greenshot-plugins weergegeven. Selecteer een plugin van de lijst en klik <em>Instellingen</em>
|
||||
om de instellingen van de plugin aan te passen.
|
||||
</p>
|
||||
|
||||
|
@ -414,8 +413,8 @@
|
|||
<h2>U wilt helpen?</h2>
|
||||
|
||||
<p>
|
||||
Op dit moment zoeken we geen hulp bij de ontwikkeling. Maar u kunt wel iets doen om
|
||||
het Greenshot ontwikkelteam te ondersteunen.<br>
|
||||
Op dit moment zoeken we geen hulp bij de ontwikkeling.
|
||||
Maar dit betekent niet dat u niets kunt doen om het Greenshot ontwikkelteam te ondersteunen.</br>
|
||||
Bij voorbaat dank :)
|
||||
</p>
|
||||
|
||||
|
@ -426,8 +425,8 @@
|
|||
goede software gratis en vrij toegankelijk te houden. Als Greenshot
|
||||
u helpt in uw werkzaamheden, als het u (of uw bedrijf)
|
||||
tijd en geld bespaart, of u vindt het gewoon een fijn programma en
|
||||
u staat positief tegenover het concept van open source software: Ondersteun ons werk dan met een donatie.<br>
|
||||
Bezoek onze website en lees daar hoe u het Greenshot team kunt ondersteunen:<br>
|
||||
u staat positief tegenover het concept van open source software: Ondersteun ons werk dan met een donatie.</br>
|
||||
Bezoek onze website en lees daar hoe u het Greenshot-team kunt ondersteunen:</br>
|
||||
<a target="_blank" href="http://getgreenshot.org/support/">http://getgreenshot.org/support/</a>
|
||||
</p>
|
||||
|
||||
|
@ -435,19 +434,19 @@
|
|||
<h3>Vertel het door</h3>
|
||||
<p>
|
||||
Bevalt Greenshot u? Vertel het dan door: vertel uw vrienden en collega's over Greenshot.
|
||||
En ook uw aanhang en achterban ! :)<br>
|
||||
Bespreek Greenshot met goede kritieken in software portals of plaats een verwijzing naar Greenshot in uw blog of op uw website.
|
||||
En ook uw aanhang en achterban ! :)</br>
|
||||
Bespreek Greenshot met goede kritieken op software portals of plaats een verwijzing naar Greenshot in uw blog of op uw website.
|
||||
</p>
|
||||
|
||||
<a name="help-translate"></a>
|
||||
<h3>Maak een vertaling</h3>
|
||||
<p>
|
||||
Is Greenshot niet beschikbaar in uw favoriete taal en u denkt dat u software kunt vertalen dan bent u welkom!
|
||||
Is Greenshot niet beschikbaar in uw favoriete taal en u denkt dat u software kunt vertalen dan bent u van harte welkom!
|
||||
Als geregisteerde gebruiker bij sourceforge.net kunt u uw vertaling in onze
|
||||
<a href="https://sourceforge.net/tracker/?group_id=191585&atid=1368020">vertalings tracker</a> aanmelden.<br>
|
||||
<a href="https://sourceforge.net/tracker/?group_id=191585&atid=1368020">vertalings tracker</a> aanmelden.</br>
|
||||
Voordat u begint is het verstandig om te kijken of Greenshot niet al in de taal vertaald is, zie de
|
||||
<a href="#">downloads pagina</a>. Ook kunt u op onze <a href="https://sourceforge.net/tracker/?group_id=191585&atid=1368020">vertalings tracker</a> kijken.
|
||||
Het zou namelijk kunnen dat iemand al aan de vertaling werkt of misschien hierover heeft gecommuniceerd.<br>
|
||||
Het zou namelijk kunnen zijn dat iemand al aan de vertaling werkt of misschien hierover heeft gecommuniceerd.</br>
|
||||
|
||||
Merk op dat vertalingen alleen kunnen worden geaccepteerd als ze afkomstig zijn van een geregistreerde
|
||||
sourceforge.net-gebruiker. Wij kunnen niet elke vertaling doorgronden en daarom is het belangrijk dat we
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
<language description="Nederlands" ietf="nl-NL" version="1.0.4" languagegroup="1">
|
||||
<resources>
|
||||
<resource name="about_bugs">Meld problemen bij</resource>
|
||||
<resource name="about_donations">Als Greenshot u bevalt, wilt u ons misschien ondersteunen:</resource>
|
||||
<resource name="about_donations">Als Greenshot u bevalt, wilt u ons wellicht ondersteunen:</resource>
|
||||
<resource name="about_host">Greenshot wordt uitgegeven door sourceforge.net op</resource>
|
||||
<resource name="about_icons">Iconen afkomstig van Yusuke Kamiyamane's Fugue (Creative Commons Attribution 3.0 license)</resource>
|
||||
<resource name="about_license">Copyright (C) 2007-2015 Thomas Braun, Jens Klingen, Robin Krom
|
||||
<resource name="about_license">Copyright (C) 2007-2017 Thomas Braun, Jens Klingen, Robin Krom
|
||||
Greenshot komt zonder enige garantie! Dit is gratis software en het staat u vrij het onder bepaalde voorwaarden te verspreiden.
|
||||
Details over de GNU General Public License:</resource>
|
||||
<resource name="about_title">Over Greenshot</resource>
|
||||
|
@ -24,7 +24,7 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
|
|||
<resource name="clipboard_error">Een onverwachte fout is opgetreden bij het kopiëren naar het klembord.</resource>
|
||||
<resource name="clipboard_inuse">Greenshot kon niet naar het klembord kopiëren vanwege een blokkade door het proces {0}.</resource>
|
||||
<resource name="clipboard_noimage">Geen klembord-afbeelding gevonden.</resource>
|
||||
<resource name="ClipboardFormat.BITMAP">Windows Bitmap</resource>
|
||||
<resource name="ClipboardFormat.BITMAP">Windows Bitmap (BMP)</resource>
|
||||
<resource name="ClipboardFormat.DIB">Device Independent Bitmap (DIB)</resource>
|
||||
<resource name="ClipboardFormat.HTML">HTML</resource>
|
||||
<resource name="ClipboardFormat.HTMLDATAURL">HTML met ingebedde afbeeldingen</resource>
|
||||
|
@ -53,7 +53,7 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
|
|||
<resource name="contextmenu_captureie">Internet Explorer vensteropname</resource>
|
||||
<resource name="contextmenu_captureiefromlist">Internet Explorer vensteropname uit lijst</resource>
|
||||
<resource name="contextmenu_capturelastregion">Laatste schermopname herhalen</resource>
|
||||
<resource name="contextmenu_capturewindow">Vensteropname</resource>
|
||||
<resource name="contextmenu_capturewindow">Actief vensteropname</resource>
|
||||
<resource name="contextmenu_capturewindowfromlist">Vensteropname uit lijst</resource>
|
||||
<resource name="contextmenu_donate">Greenshot ondersteunen</resource>
|
||||
<resource name="contextmenu_exit">Afsluiten</resource>
|
||||
|
@ -61,7 +61,7 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
|
|||
<resource name="contextmenu_openfile">Afbeeldingsbestand openen</resource>
|
||||
<resource name="contextmenu_openrecentcapture">Locatie laatste schermopname openen</resource>
|
||||
<resource name="contextmenu_quicksettings">Snelle instellingen</resource>
|
||||
<resource name="contextmenu_settings">Voorkeuren…</resource>
|
||||
<resource name="contextmenu_settings">Instellingen…</resource>
|
||||
<resource name="destination_exportfailed">Fout bij het exporteren naar {0}. Probeer het opnieuw.</resource>
|
||||
<resource name="editor_align_bottom">Onder</resource>
|
||||
<resource name="editor_align_center">Midden</resource>
|
||||
|
@ -125,7 +125,7 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
|
|||
<resource name="editor_italic">Cursief</resource>
|
||||
<resource name="editor_load_objects">Objecten uit bestand laden</resource>
|
||||
<resource name="editor_magnification_factor">Vergrotingsfactor</resource>
|
||||
<resource name="editor_match_capture_size">Grootte aanpassen aan schermopname</resource>
|
||||
<resource name="editor_match_capture_size">Canvas aanpassen aan schermopname</resource>
|
||||
<resource name="editor_obfuscate">Maskeren (O)</resource>
|
||||
<resource name="editor_obfuscate_blur">Vervagen</resource>
|
||||
<resource name="editor_obfuscate_mode">Maskeringswijze</resource>
|
||||
|
@ -140,8 +140,8 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
|
|||
<resource name="editor_resetsize">Afmetingen herstellen</resource>
|
||||
<resource name="editor_resize_percent">Procent</resource>
|
||||
<resource name="editor_resize_pixel">Pixels</resource>
|
||||
<resource name="editor_rotateccw">Linksom roteren (Control + ,)</resource>
|
||||
<resource name="editor_rotatecw">Rechtsom roteren (Control + .)</resource>
|
||||
<resource name="editor_rotateccw">Linksom draaien (Control + ,)</resource>
|
||||
<resource name="editor_rotatecw">Rechtsom draaien (Control + .)</resource>
|
||||
<resource name="editor_save">Opslaan</resource>
|
||||
<resource name="editor_save_objects">Objecten in bestand opslaan</resource>
|
||||
<resource name="editor_saveas">Opslaan als…</resource>
|
||||
|
@ -167,15 +167,15 @@ Controleer de toegangsrechten voor de betreffende locatie.</resource>
|
|||
<resource name="error_save">De schermopname kon niet worden opgeslagen, kies een andere bestemming.</resource>
|
||||
<resource name="error_save_invalid_chars">De bestandsnaam of bestemmingsmap is niet geldig. Corrigeer het bestandsnaampatroon en probeer het opnieuw.</resource>
|
||||
<resource name="expertsettings">Expert</resource>
|
||||
<resource name="expertsettings_autoreducecolors">Afbeeldingen met minder dan 256 kleuren tot 8 bit reduceren</resource>
|
||||
<resource name="expertsettings_autoreducecolors">Afbeeldingen met minder dan 256 kleuren reduceren tot 8 bit</resource>
|
||||
<resource name="expertsettings_checkunstableupdates">Ook op test-versies controleren</resource>
|
||||
<resource name="expertsettings_clipboardformats">Klembordformaten</resource>
|
||||
<resource name="expertsettings_counter">Het ${NUM} nummer in de bestandsnaam</resource>
|
||||
<resource name="expertsettings_enableexpert">Ik weet wat ik doe!</resource>
|
||||
<resource name="expertsettings_footerpattern">Voetnoot bij het afdrukken</resource>
|
||||
<resource name="expertsettings_minimizememoryfootprint">Geheugengebruik verminderen ten koste van snelheid (niet aangeraden).</resource>
|
||||
<resource name="expertsettings_optimizeforrdp">Optimaliseren voor Remote Desktop gebruik</resource>
|
||||
<resource name="expertsettings_reuseeditorifpossible">Beeldbewerker weer gebruiken</resource>
|
||||
<resource name="expertsettings_footerpattern">Voettekst bij het afdrukken</resource>
|
||||
<resource name="expertsettings_minimizememoryfootprint">Geheugengebruik verminderen ten koste van snelheid (niet aangeraden)</resource>
|
||||
<resource name="expertsettings_optimizeforrdp">Optimaliseren voor Remote Desktop-gebruik</resource>
|
||||
<resource name="expertsettings_reuseeditorifpossible">Beeldbewerker hergebruiken indien mogelijk</resource>
|
||||
<resource name="expertsettings_suppresssavedialogatclose">Bij het sluiten van de beeldbewerker niet vragen om op te slaan</resource>
|
||||
<resource name="expertsettings_thumbnailpreview">Schermvoorbeelden tonen in het context menu</resource>
|
||||
<resource name="exported_to">Geëxporteerd: {0}</resource>
|
||||
|
@ -187,40 +187,40 @@ Controleer de toegangsrechten voor de betreffende locatie.</resource>
|
|||
<resource name="print_error">Er is een fout opgetreden bij het afdrukken</resource>
|
||||
<resource name="printoptions_allowcenter">Afdruk op het papier centreren</resource>
|
||||
<resource name="printoptions_allowenlarge">Afdruk vergroten en aanpassen aan de papiergrootte</resource>
|
||||
<resource name="printoptions_allowrotate">Afdruk roteren en aanpassen aan het papier</resource>
|
||||
<resource name="printoptions_allowrotate">Afdruk draaien en aanpassen aan het papier</resource>
|
||||
<resource name="printoptions_allowshrink">Afdruk verkleinen en aanpassen aan de papiergrootte</resource>
|
||||
<resource name="printoptions_colors">Kleurinstellingen</resource>
|
||||
<resource name="printoptions_dontaskagain">Instellingen opslaan als standaard en niet meer vragen</resource>
|
||||
<resource name="printoptions_inverted">Afdrukken in negatief-kleuren</resource>
|
||||
<resource name="printoptions_layout">Papieroriëntatie</resource>
|
||||
<resource name="printoptions_layout">Afdrukinstellingen</resource>
|
||||
<resource name="printoptions_printcolor">Kleurenafdruk</resource>
|
||||
<resource name="printoptions_printgrayscale">Afdruk in grijstinten</resource>
|
||||
<resource name="printoptions_printmonochrome">Zwart-witafdruk forceren</resource>
|
||||
<resource name="printoptions_printmonochrome">Grijstinten forceren</resource>
|
||||
<resource name="printoptions_timestamp">Datum / tijd onderaan de pagina afdrukken</resource>
|
||||
<resource name="printoptions_title">Greenshot afdrukvoorkeuren</resource>
|
||||
<resource name="qualitydialog_dontaskagain">Opslaan met de standaardkwaliteit en niet meer vragen</resource>
|
||||
<resource name="qualitydialog_title">Greenshot kwaliteit</resource>
|
||||
<resource name="quicksettings_destination_file">Direct opslaan (met de standaardinstellingen)</resource>
|
||||
<resource name="settings_alwaysshowprintoptionsdialog">Afdrukvoorkeuren tonen wanneer een afbeelding wordt afgedrukt</resource>
|
||||
<resource name="settings_alwaysshowqualitydialog">Vraag iedere keer dat een beeld opgeslagen wordt om de beeldkwaliteit</resource>
|
||||
<resource name="quicksettings_destination_file">Direct opslaan (met standaardinstellingen)</resource>
|
||||
<resource name="settings_alwaysshowprintoptionsdialog">Afdrukinstellingen tonen wanneer een afbeelding wordt afgedrukt</resource>
|
||||
<resource name="settings_alwaysshowqualitydialog">Bij het opslaan altijd de beeldkwaliteit instellen</resource>
|
||||
<resource name="settings_applicationsettings">Programmainstellingen</resource>
|
||||
<resource name="settings_autostartshortcut">Greenshot met Windows opstarten</resource>
|
||||
<resource name="settings_capture">Schermopname</resource>
|
||||
<resource name="settings_capture_mousepointer">Muisaanwijzer opnemen</resource>
|
||||
<resource name="settings_capture_windows_interactive">Interactieve schemopname</resource>
|
||||
<resource name="settings_checkperiod">Controleren op nieuwe versies [dagen] (0=geen controle)</resource>
|
||||
<resource name="settings_checkperiod">Interval versiecontrole in dagen (0=geen controle)</resource>
|
||||
<resource name="settings_configureplugin">Instellingen</resource>
|
||||
<resource name="settings_copypathtoclipboard">Bestandslocatie naar het klembord kopiëren wanneer een afbeelding wordt opgeslagen</resource>
|
||||
<resource name="settings_copypathtoclipboard">Bestandslocatie tevens naar het klembord kopiëren</resource>
|
||||
<resource name="settings_destination">Bestemming</resource>
|
||||
<resource name="settings_destination_clipboard">Naar klembord</resource>
|
||||
<resource name="settings_destination_editor">In beeldbewerker</resource>
|
||||
<resource name="settings_destination_email">E-mail</resource>
|
||||
<resource name="settings_destination_file">Direct opslaan (Onderstaande instellingen gebruiken)</resource>
|
||||
<resource name="settings_destination_fileas">Opslaan als… (via dialoog)</resource>
|
||||
<resource name="settings_destination_picker">Bestemming dynamisch kiezen</resource>
|
||||
<resource name="settings_destination_picker">Bestemming interactief selecteren</resource>
|
||||
<resource name="settings_destination_printer">Naar printer</resource>
|
||||
<resource name="settings_editor">Beeldbewerker</resource>
|
||||
<resource name="settings_filenamepattern">Bestandsnaam patroon</resource>
|
||||
<resource name="settings_filenamepattern">Bestandsnaam</resource>
|
||||
<resource name="settings_general">Algemeen</resource>
|
||||
<resource name="settings_iecapture">Internet Explorer vensteropname</resource>
|
||||
<resource name="settings_jpegquality">JPEG-kwaliteit</resource>
|
||||
|
@ -243,16 +243,16 @@ Voorbeeld: Het patroon ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
|
|||
genereert een map voor de huidige dag in uw standaard opslaglocatie, b.v. 2008-06-29, de naam van het bestand bevat dan de tijd
|
||||
, b.v. 11-58-32 (plus de extensie zoals in de voorkeursinstellingen staat)</resource>
|
||||
<resource name="settings_network">Netwerk en bijwerken</resource>
|
||||
<resource name="settings_output">Uitvoer</resource>
|
||||
<resource name="settings_output">Opslaan</resource>
|
||||
<resource name="settings_playsound">Camerageluid afspelen</resource>
|
||||
<resource name="settings_plugins">Plugins</resource>
|
||||
<resource name="settings_plugins_createdby">Door</resource>
|
||||
<resource name="settings_plugins_createdby">Maker</resource>
|
||||
<resource name="settings_plugins_dllpath">DLL-pad</resource>
|
||||
<resource name="settings_plugins_name">Naam</resource>
|
||||
<resource name="settings_plugins_version">Versie</resource>
|
||||
<resource name="settings_preferredfilesettings">Voorkeursinstellingen voor opslaan van bestanden</resource>
|
||||
<resource name="settings_preferredfilesettings">Instellingen voor opslaan van bestanden</resource>
|
||||
<resource name="settings_primaryimageformat">Afbeeldingsformaat</resource>
|
||||
<resource name="settings_printer">Printer</resource>
|
||||
<resource name="settings_printer">Afdrukken</resource>
|
||||
<resource name="settings_printoptions">Afdrukinstellingen</resource>
|
||||
<resource name="settings_qualitysettings">Kwaliteitsinstellingen</resource>
|
||||
<resource name="settings_reducecolors">Kleuren verminderen tot maximaal 256</resource>
|
||||
|
@ -267,16 +267,16 @@ genereert een map voor de huidige dag in uw standaard opslaglocatie, b.v. 2008-0
|
|||
<resource name="settings_tooltip_primaryimageformat">Standaard afbeeldingsformaat</resource>
|
||||
<resource name="settings_tooltip_registerhotkeys">Definieert of de sneltoetsen Prnt, Ctrl + Print, Alt + Prnt door Greenshot worden gereserveerd.</resource>
|
||||
<resource name="settings_tooltip_storagelocation">Standaardlocatie waar schermopnamen worden opgeslagen (leeg laten voor het bureaublad)</resource>
|
||||
<resource name="settings_usedefaultproxy">De standaard systeem proxy gebruiken</resource>
|
||||
<resource name="settings_usedefaultproxy">Standaard systeem-proxy gebruiken</resource>
|
||||
<resource name="settings_visualization">Effecten</resource>
|
||||
<resource name="settings_waittime">Milliseconden vertraging voor schermopname</resource>
|
||||
<resource name="settings_window_capture_mode">Vensteropname-modus</resource>
|
||||
<resource name="settings_windowscapture">Vensteropname</resource>
|
||||
<resource name="settings_windowscapture">Actief vensteropname</resource>
|
||||
<resource name="tooltip_firststart">Klik hier met de rechtermuisknop of druk op de {0} knop.</resource>
|
||||
<resource name="update_found">Een nieuwe versie van Greenshot is beschikbaar! Wilt u Greenshot {0} downloaden?</resource>
|
||||
<resource name="wait_ie_capture">Wacht terwijl de Internet Explorer pagina wordt vastgelegd…</resource>
|
||||
<resource name="warning">Waarschuwing</resource>
|
||||
<resource name="warning_hotkeys">De sneltoetsen "{0}" kunnen worden aangemeld. Dit probleem komt waarschijnlijk doordat een ander programma deze al gebruikt. U kunt de sneltoetsinstellingen van Greenshot aanpassen of het andere programma stoppen/aanpassen.
|
||||
<resource name="warning_hotkeys">De sneltoets "{0}" kan niet worden aangemeld. Dit probleem komt waarschijnlijk omdat een ander programma {1} deze al gebruikt! U kunt de sneltoetsinstellingen van Greenshot aanpassen of het andere programma stoppen/aanpassen.
|
||||
|
||||
Alle Greenshot functies werken ook zonder sneltoetsen via het context menu.</resource>
|
||||
<resource name="WindowCaptureMode.Aero">Aangepaste kleur</resource>
|
||||
|
|
|
@ -9,6 +9,23 @@ All details to our tickets can be found here: https://greenshot.atlassian.net
|
|||
|
||||
@DETAILVERSION@
|
||||
|
||||
Bugs fixed:
|
||||
* [BUG-2235] - Imgur authentication issues due to imgur api change
|
||||
* [BUG-2227] - NullReferenceException when accessing the Imgur History
|
||||
* [BUG-2225] - NullReferenceException when changing the color of text
|
||||
* [BUG-2219] - Korean is spelled incorrectly in the installer
|
||||
* [BUG-2213] - NullReferenceException in the Freehand tool
|
||||
* [BUG-2203] - ArgumentNullException in the Freehand tool
|
||||
* [BUG-2141] - Imgur authentication issues due to old embedded IE
|
||||
* [BUG-2172] - NullReferenceException when using the speech bubble
|
||||
* [BUG-2246] - Login issues with the Atlassian Jira Cloud
|
||||
|
||||
Features:
|
||||
* [FEATURE-1064] - Added CTRL+Backspace & CTRL+A to the text tool
|
||||
|
||||
|
||||
Greenshot 1.2.9.129-569de71 RELEASE
|
||||
|
||||
Bugs fixed:
|
||||
* [BUG-2051] - Scroll-lock button not usable as hotkey
|
||||
* [BUG-2056] - Cannot export to external command Paint.NET if .greenshot format is used
|
||||
|
|
|
@ -391,7 +391,7 @@ Name: "languages\huHU"; Description: "Magyar"; Types: full custom; Flags: disabl
|
|||
Name: "languages\idID"; Description: "Bahasa Indonesia"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\itIT"; Description: "Italiano"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\jaJP"; Description: "日本語"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('7')
|
||||
Name: "languages\koKR"; Description: "한국의"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('8')
|
||||
Name: "languages\koKR"; Description: "한국어"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('8')
|
||||
Name: "languages\kabDZ"; Description: "Taqbaylit"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('8')
|
||||
Name: "languages\ltLT"; Description: "Lietuvių"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('3')
|
||||
Name: "languages\lvLV"; Description: "Latviski"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('3')
|
||||
|
|
|
@ -123,9 +123,14 @@ namespace GreenshotImgurPlugin {
|
|||
}
|
||||
|
||||
private void UpdateHistoryMenuItem() {
|
||||
try {
|
||||
if (_historyMenuItem == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
_host.GreenshotForm.BeginInvoke((MethodInvoker)delegate {
|
||||
if (_config.ImgurUploadHistory.Count > 0) {
|
||||
if (_config.ImgurUploadHistory != null && _config.ImgurUploadHistory.Count > 0) {
|
||||
_historyMenuItem.Enabled = true;
|
||||
} else {
|
||||
_historyMenuItem.Enabled = false;
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace GreenshotImgurPlugin {
|
|||
private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof(ImgurUtils));
|
||||
private const string SmallUrlPattern = "http://i.imgur.com/{0}s.jpg";
|
||||
private static readonly ImgurConfiguration Config = IniConfig.GetIniSection<ImgurConfiguration>();
|
||||
private const string AuthUrlPattern = "https://api.imgur.com/oauth2/authorize?response_type=code&client_id={ClientId}&redirect_uri={RedirectUrl}&state={State}";
|
||||
private const string AuthUrlPattern = "https://api.imgur.com/oauth2/authorize?response_type=token&client_id={ClientId}&state={State}";
|
||||
private const string TokenUrl = "https://api.imgur.com/oauth2/token";
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -107,10 +107,9 @@ namespace GreenshotJiraPlugin {
|
|||
_jiraClient.Behaviour.SetConfig(new SvgConfiguration { Width = CoreConfig.IconSize.Width, Height = CoreConfig.IconSize.Height });
|
||||
|
||||
_issueTypeBitmapCache = new IssueTypeBitmapCache(_jiraClient);
|
||||
LoginInfo loginInfo;
|
||||
try
|
||||
{
|
||||
loginInfo = await _jiraClient.Session.StartAsync(user, password, cancellationToken);
|
||||
await _jiraClient.Session.StartAsync(user, password, cancellationToken);
|
||||
Monitor = new JiraMonitor();
|
||||
await Monitor.AddJiraInstanceAsync(_jiraClient, cancellationToken);
|
||||
|
||||
|
@ -129,7 +128,7 @@ namespace GreenshotJiraPlugin {
|
|||
{
|
||||
return false;
|
||||
}
|
||||
return loginInfo != null;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -39,6 +39,9 @@ namespace GreenshotPlugin.Controls {
|
|||
public bool IsOk => DialogResult == DialogResult.OK;
|
||||
|
||||
public OAuthLoginForm(string browserTitle, Size size, string authorizationLink, string callbackUrl) {
|
||||
// Make sure Greenshot uses the correct browser version
|
||||
IEHelper.FixBrowserVersion(false);
|
||||
|
||||
_callbackUrl = callbackUrl;
|
||||
// Fix for BUG-2071
|
||||
if (callbackUrl.EndsWith("/"))
|
||||
|
@ -85,7 +88,9 @@ namespace GreenshotPlugin.Controls {
|
|||
|
||||
private void CheckUrl() {
|
||||
if (_browser.Url.ToString().StartsWith(_callbackUrl)) {
|
||||
string queryParams = _browser.Url.Query;
|
||||
var correctedUri = new Uri(_browser.Url.AbsoluteUri.Replace("#", "&"));
|
||||
|
||||
string queryParams = correctedUri.Query;
|
||||
if (queryParams.Length > 0) {
|
||||
queryParams = NetworkHelper.UrlDecode(queryParams);
|
||||
//Store the Token and Token Secret
|
||||
|
|
|
@ -18,7 +18,12 @@
|
|||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using log4net;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace GreenshotPlugin.Core {
|
||||
|
@ -26,24 +31,124 @@ namespace GreenshotPlugin.Core {
|
|||
/// Description of IEHelper.
|
||||
/// </summary>
|
||||
public static class IEHelper {
|
||||
private static readonly ILog Log = LogManager.GetLogger(typeof(IEHelper));
|
||||
// Internet explorer Registry key
|
||||
private const string IE_KEY = @"Software\Microsoft\Internet Explorer";
|
||||
private const string IeKey = @"Software\Microsoft\Internet Explorer";
|
||||
|
||||
/// <summary>
|
||||
/// Helper method to get the IE version
|
||||
/// Get the current browser version
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static int IEVersion() {
|
||||
int version = 7;
|
||||
// Seeing if IE 9 is used, here we need another offset!
|
||||
using (RegistryKey ieKey = Registry.LocalMachine.OpenSubKey(IE_KEY, false)) {
|
||||
object versionKey = ieKey?.GetValue("Version");
|
||||
if (versionKey != null) {
|
||||
int.TryParse(versionKey.ToString().Substring(0,1), out version);
|
||||
/// <returns>int with browser version</returns>
|
||||
public static int IEVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
var maxVer = 7;
|
||||
using (var ieKey = Registry.LocalMachine.OpenSubKey(IeKey, false))
|
||||
{
|
||||
foreach (var value in new[] { "svcVersion", "svcUpdateVersion", "Version", "W2kVersion" })
|
||||
{
|
||||
var objVal = ieKey.GetValue(value, "0");
|
||||
var strVal = Convert.ToString(objVal);
|
||||
|
||||
var iPos = strVal.IndexOf('.');
|
||||
if (iPos > 0)
|
||||
{
|
||||
strVal = strVal.Substring(0, iPos);
|
||||
}
|
||||
|
||||
int res;
|
||||
if (int.TryParse(strVal, out res))
|
||||
{
|
||||
maxVer = Math.Max(maxVer, res);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return maxVer;
|
||||
}
|
||||
return version;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get the highest possible version for the embedded browser
|
||||
/// </summary>
|
||||
/// <param name="ignoreDoctype">true to ignore the doctype when loading a page</param>
|
||||
/// <returns>IE Feature</returns>
|
||||
public static int GetEmbVersion(bool ignoreDoctype = true)
|
||||
{
|
||||
var ieVersion = IEVersion;
|
||||
|
||||
if (ieVersion > 9)
|
||||
{
|
||||
return ieVersion * 1000 + (ignoreDoctype ? 1 : 0);
|
||||
}
|
||||
|
||||
if (ieVersion > 7)
|
||||
{
|
||||
return ieVersion * 1111;
|
||||
}
|
||||
|
||||
return 7000;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fix browser version to the highest possible
|
||||
/// </summary>
|
||||
/// <param name="ignoreDoctype">true to ignore the doctype when loading a page</param>
|
||||
public static void FixBrowserVersion(bool ignoreDoctype = true)
|
||||
{
|
||||
var applicationName = Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location);
|
||||
FixBrowserVersion(applicationName, ignoreDoctype);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fix the browser version for the specified application
|
||||
/// </summary>
|
||||
/// <param name="applicationName">Name of the process</param>
|
||||
/// <param name="ignoreDoctype">true to ignore the doctype when loading a page</param>
|
||||
public static void FixBrowserVersion(string applicationName, bool ignoreDoctype = true)
|
||||
{
|
||||
FixBrowserVersion(applicationName, GetEmbVersion(ignoreDoctype));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fix the browser version for the specified application
|
||||
/// </summary>
|
||||
/// <param name="applicationName">Name of the process</param>
|
||||
/// <param name="ieVersion">
|
||||
/// Version, see
|
||||
/// <a href="https://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx#browser_emulation">Browser Emulation</a>
|
||||
/// </param>
|
||||
public static void FixBrowserVersion(string applicationName, int ieVersion)
|
||||
{
|
||||
ModifyRegistry("HKEY_CURRENT_USER", applicationName + ".exe", ieVersion);
|
||||
#if DEBUG
|
||||
ModifyRegistry("HKEY_CURRENT_USER", applicationName + ".vshost.exe", ieVersion);
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Make the change to the registry
|
||||
/// </summary>
|
||||
/// <param name="root">HKEY_CURRENT_USER or something</param>
|
||||
/// <param name="applicationName">Name of the executable</param>
|
||||
/// <param name="ieFeatureVersion">Version to use</param>
|
||||
private static void ModifyRegistry(string root, string applicationName, int ieFeatureVersion)
|
||||
{
|
||||
var regKey = root + @"\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
|
||||
try
|
||||
{
|
||||
Registry.SetValue(regKey, applicationName, ieFeatureVersion);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// some config will hit access rights exceptions
|
||||
// this is why we try with both LOCAL_MACHINE and CURRENT_USER
|
||||
Log.Error(ex);
|
||||
Log.ErrorFormat("couldn't modify the registry key {0}", regKey);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Find the DirectUI window for MSAA (Accessible)
|
||||
/// </summary>
|
||||
|
@ -55,7 +160,7 @@ namespace GreenshotPlugin.Core {
|
|||
}
|
||||
WindowDetails tmpWd = browserWindowDetails;
|
||||
// Since IE 9 the TabBandClass is less deep!
|
||||
if (IEVersion() < 9) {
|
||||
if (IEVersion < 9) {
|
||||
tmpWd = tmpWd.GetChild("CommandBarClass");
|
||||
tmpWd = tmpWd?.GetChild("ReBarWindow32");
|
||||
}
|
||||
|
|
|
@ -127,26 +127,20 @@ namespace GreenshotPlugin.Core {
|
|||
imageFormat = ImageFormat.Icon;
|
||||
break;
|
||||
default:
|
||||
// Problem with non-seekable streams most likely doesn't happen with Windows 7 (OS Version 6.1 and later)
|
||||
// http://stackoverflow.com/questions/8349260/generic-gdi-error-on-one-machine-but-not-the-other
|
||||
if (!stream.CanSeek) {
|
||||
if (!Environment.OSVersion.IsWindows7OrLater())
|
||||
{
|
||||
useMemoryStream = true;
|
||||
Log.Warn("Using memorystream prevent an issue with saving to a non seekable stream.");
|
||||
}
|
||||
}
|
||||
imageFormat = ImageFormat.Png;
|
||||
break;
|
||||
}
|
||||
Log.DebugFormat("Saving image to stream with Format {0} and PixelFormat {1}", imageFormat, imageToSave.PixelFormat);
|
||||
|
||||
// Check if we want to use a memory stream, to prevent a issue which happens with Windows before "7".
|
||||
// Check if we want to use a memory stream, to prevent issues with non seakable streams
|
||||
// The save is made to the targetStream, this is directed to either the MemoryStream or the original
|
||||
Stream targetStream = stream;
|
||||
if (useMemoryStream) {
|
||||
memoryStream = new MemoryStream();
|
||||
targetStream = memoryStream;
|
||||
if (!stream.CanSeek)
|
||||
{
|
||||
useMemoryStream = true;
|
||||
Log.Warn("Using memorystream prevent an issue with saving to a non seekable stream.");
|
||||
memoryStream = new MemoryStream();
|
||||
targetStream = memoryStream;
|
||||
}
|
||||
|
||||
if (Equals(imageFormat, ImageFormat.Jpeg))
|
||||
|
@ -213,18 +207,20 @@ namespace GreenshotPlugin.Core {
|
|||
}
|
||||
|
||||
// Output the surface elements, size and marker to the stream
|
||||
if (outputSettings.Format == OutputFormat.greenshot) {
|
||||
using (MemoryStream tmpStream = new MemoryStream()) {
|
||||
long bytesWritten = surface.SaveElementsToStream(tmpStream);
|
||||
using (BinaryWriter writer = new BinaryWriter(tmpStream)) {
|
||||
writer.Write(bytesWritten);
|
||||
Version v = Assembly.GetExecutingAssembly().GetName().Version;
|
||||
byte[] marker = Encoding.ASCII.GetBytes($"Greenshot{v.Major:00}.{v.Minor:00}");
|
||||
writer.Write(marker);
|
||||
tmpStream.WriteTo(stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (outputSettings.Format != OutputFormat.greenshot)
|
||||
{
|
||||
return;
|
||||
}
|
||||
using (MemoryStream tmpStream = new MemoryStream()) {
|
||||
long bytesWritten = surface.SaveElementsToStream(tmpStream);
|
||||
using (BinaryWriter writer = new BinaryWriter(tmpStream)) {
|
||||
writer.Write(bytesWritten);
|
||||
Version v = Assembly.GetExecutingAssembly().GetName().Version;
|
||||
byte[] marker = Encoding.ASCII.GetBytes($"Greenshot{v.Major:00}.{v.Minor:00}");
|
||||
writer.Write(marker);
|
||||
tmpStream.WriteTo(stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
|
@ -44,7 +44,7 @@ namespace GreenshotPlugin.Core {
|
|||
private const string LanguageFilenamePattern = @"language*.xml";
|
||||
private static readonly Regex PrefixRegexp = new Regex(@"language_([a-zA-Z0-9]+).*");
|
||||
private static readonly Regex IetfCleanRegexp = new Regex(@"[^a-zA-Z]+");
|
||||
private static readonly Regex IetfRegexp = new Regex(@"^.*([a-zA-Z]{2,3}-[a-zA-Z]{2})\.xml$");
|
||||
private static readonly Regex IetfRegexp = new Regex(@"^.*([a-zA-Z]{2,3}-[a-zA-Z]{1,2})\.xml$");
|
||||
private const string LanguageGroupsKey = @"SYSTEM\CurrentControlSet\Control\Nls\Language Groups";
|
||||
private static readonly IList<string> UnsupportedLanguageGroups = new List<string>();
|
||||
private static readonly IDictionary<string, string> Resources = new Dictionary<string, string>();
|
||||
|
|
|
@ -1002,16 +1002,59 @@ Greenshot received information from CloudServiceName. You can close this browser
|
|||
// "expires_in":3920,
|
||||
// "token_type":"Bearer",
|
||||
// "refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
|
||||
settings.AccessToken = (string)refreshTokenResult[AccessToken];
|
||||
settings.RefreshToken = (string)refreshTokenResult[RefreshToken];
|
||||
|
||||
object seconds = refreshTokenResult[ExpiresIn];
|
||||
if (seconds != null) {
|
||||
settings.AccessTokenExpires = DateTimeOffset.Now.AddSeconds((double)seconds);
|
||||
if (refreshTokenResult.ContainsKey(AccessToken))
|
||||
{
|
||||
settings.AccessToken = (string)refreshTokenResult[AccessToken];
|
||||
}
|
||||
if (refreshTokenResult.ContainsKey(RefreshToken))
|
||||
{
|
||||
settings.RefreshToken = (string)refreshTokenResult[RefreshToken];
|
||||
}
|
||||
if (refreshTokenResult.ContainsKey(ExpiresIn))
|
||||
{
|
||||
object seconds = refreshTokenResult[ExpiresIn];
|
||||
if (seconds != null)
|
||||
{
|
||||
settings.AccessTokenExpires = DateTimeOffset.Now.AddSeconds((double)seconds);
|
||||
}
|
||||
}
|
||||
settings.Code = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used to update the settings with the callback information
|
||||
/// </summary>
|
||||
/// <param name="settings">OAuth2Settings</param>
|
||||
/// <param name="callbackParameters">IDictionary</param>
|
||||
/// <returns>true if the access token is already in the callback</returns>
|
||||
private static bool UpdateFromCallback(OAuth2Settings settings, IDictionary<string, string> callbackParameters)
|
||||
{
|
||||
if (!callbackParameters.ContainsKey(AccessToken))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (callbackParameters.ContainsKey(RefreshToken))
|
||||
{
|
||||
// Refresh the refresh token :)
|
||||
settings.RefreshToken = callbackParameters[RefreshToken];
|
||||
}
|
||||
if (callbackParameters.ContainsKey(ExpiresIn))
|
||||
{
|
||||
var expiresIn = callbackParameters[ExpiresIn];
|
||||
settings.AccessTokenExpires = DateTimeOffset.MaxValue;
|
||||
if (expiresIn != null)
|
||||
{
|
||||
double seconds;
|
||||
if (double.TryParse(expiresIn, out seconds))
|
||||
{
|
||||
settings.AccessTokenExpires = DateTimeOffset.Now.AddSeconds(seconds);
|
||||
}
|
||||
}
|
||||
}
|
||||
settings.AccessToken = callbackParameters[AccessToken];
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Go out and retrieve a new access token via refresh-token with the TokenUrl in the settings
|
||||
/// Will upate the access token, refresh token, expire date
|
||||
|
@ -1054,16 +1097,22 @@ Greenshot received information from CloudServiceName. You can close this browser
|
|||
}
|
||||
}
|
||||
|
||||
settings.AccessToken = (string)accessTokenResult[AccessToken];
|
||||
if (accessTokenResult.ContainsKey(AccessToken))
|
||||
{
|
||||
settings.AccessToken = (string) accessTokenResult[AccessToken];
|
||||
settings.AccessTokenExpires = DateTimeOffset.MaxValue;
|
||||
}
|
||||
if (accessTokenResult.ContainsKey(RefreshToken)) {
|
||||
// Refresh the refresh token :)
|
||||
settings.RefreshToken = (string)accessTokenResult[RefreshToken];
|
||||
}
|
||||
object seconds = accessTokenResult[ExpiresIn];
|
||||
if (seconds != null) {
|
||||
settings.AccessTokenExpires = DateTimeOffset.Now.AddSeconds((double)seconds);
|
||||
} else {
|
||||
settings.AccessTokenExpires = DateTimeOffset.MaxValue;
|
||||
if (accessTokenResult.ContainsKey(ExpiresIn))
|
||||
{
|
||||
object seconds = accessTokenResult[ExpiresIn];
|
||||
if (seconds != null)
|
||||
{
|
||||
settings.AccessTokenExpires = DateTimeOffset.Now.AddSeconds((double) seconds);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1109,6 +1158,7 @@ Greenshot received information from CloudServiceName. You can close this browser
|
|||
GenerateRefreshToken(settings);
|
||||
return true;
|
||||
}
|
||||
return UpdateFromCallback(settings, loginForm.CallbackParameters);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -21,4 +21,4 @@ Being easy to understand and configurable, Greenshot is an efficient tool for pr
|
|||
|
||||
About this repository
|
||||
---------------------
|
||||
This repository is for Greenshot 1.2.9, which is a bugfix of 1.2.8
|
||||
This repository is for Greenshot 1.2.10, which is a bugfix of 1.2.9.129
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: 1.2.9.{build}
|
||||
version: 1.2.10.{build}
|
||||
branches:
|
||||
only:
|
||||
- release/1.2.9BF2
|
||||
- release/1.2.10
|
||||
skip_tags: true
|
||||
configuration: Release
|
||||
platform: Any CPU
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue