Coder Social home page Coder Social logo

serg-norseman / gedkeeper Goto Github PK

View Code? Open in Web Editor NEW
142.0 14.0 40.0 62.78 MB

GEDKeeper - program for work with personal genealogical database

Home Page: https://gedkeeper.net/

License: GNU General Public License v3.0

Batchfile 0.11% Lua 0.26% C# 87.60% HTML 11.07% CSS 0.11% NSIS 0.74% Shell 0.07% Makefile 0.02% Rich Text Format 0.01% Inno Setup 0.01%
genealogy gedcom family-tree ancestry ancestry-research pedigree genealogical-data heritage family-history gedcom-files

gedkeeper's People

Contributors

alexandercurtis avatar blackcross86 avatar dreamer451 avatar fire-eggs avatar flexmaen avatar g10101k avatar gitter-badger avatar guard43ru avatar hazzik avatar jerryverner avatar m-kosina avatar ruslangaripov avatar se-sss avatar serg-norseman avatar slava8686 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gedkeeper's Issues

I can't run 'GKPedigreeImporterPlugin' plug-in built with make [bug]

After I have built 'GKPedigreeImporterPlugin' plug-in binaries, I couldn't use it.

GEDKeeper shows no GUI for the plug-in and the next text appears in the program's log:

[11.05.2016 9:29:24] -> GK.ExExceptionHandler(): Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "GKPedigreeImporterPlugin.PedigreeImporterDlg.resources" was correctly embedded or linked into assembly "GKPedigreeImporterPlugin" at compile time, or that all the satellite assemblies required are loadable and fully signed.
[11.05.2016 9:29:24] -> GK.ExExceptionHandler(): at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
at GKPedigreeImporterPlugin.PedigreeImporterDlg.InitializeComponent()
at GKPedigreeImporterPlugin.PedigreeImporterDlg..ctor(IPlugin fPlugin)
at GKPedigreeImporterPlugin.PlugIn.Execute()
at GKUI.MainWin.Plugin_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

After I had debugged the issue I've found out its source:
File: projects\GKPedigreeImporterPlugin\PedigreeImporterDlg.Designer.cs
Code:

private void InitializeComponent()
{
    . . .
(1)    this.OpenDialog2.Filter = resources.GetString("OpenDialog2.Filter");
    . . .

Line (1) causes this exception:

Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "GKPedigreeImporterPlugin.PedigreeImporterDlg.resources" was correctly embedded or linked into assembly "GKPedigreeImporterPlugin" at compile time, or that all the satellite assemblies required are loadable and fully signed.

The problem is similar to one we had with GEDKeeper itself 😈

Russian help content says: "GEDKeeper ain't a cross-platform one"

There is a disadvantage item on "Advantages and features" page ('gkhFeatures.html' file) claiming that "The program supports only Windows, it ain't a cross-platform project and it can't be built with 'Mono' under Linux". It lies! 😆 And I believe this paragraph must be removed from Russian help content, while I won't add this item in English help content at all. Am I right? 😈

Broken link on the "Options" page in Russian help content

'gkhOptions.html' file in Russian help content has a broken link in "Persons representation in the tree" section:

...Эти категории задаются при помощи раздела "Сноски" в редакторе персон.

The link targets to "gkhPersonUserRefs.html#tree". And 'gkhPersonUserRefs.html' file doesn't exist. I believe it should target 'gkhRec_UserRefs.html' file, doesn't it?

"Disconnect" buttons are always enabled {unwanted behavior}

Person editor window has "disconnect" buttons that are always enabled. Even when the "Parent" field is empty. While the neighboring button "Go to" to the right of "Disconnect" button is enabled only if a parent exists.

And about “Detach link to father/mother?” confirmation text -- see ticket #58

gk-bug-3

"Tips of the day" may block GK GUI

Assume MOTD window is enabled:

default

"Tips of the day" is a modal window, isn't it? One can't use GK GUI while the window is visible.

Okay. Now click GK's button on the taskbar... "Tips of the day" window disappears and... you still can't access GK GUI.

One can achieve the same effect using Alt+Tab to switch to GK window while its "Tips of the day" window is visible.

Help content says that user can create PDF

There's a question I have: is currently an user always able to create PDF file (by exporting something from GEDKeeper) under Linux?

For example, 'gkhPedigrees.html' file from help content says:

Родословная роспись формируется в виде PDF-файла ... (Pedigree is exported as a PDF file ...)

But as far as I know GEDKeeper has some problems with PDF under Linux (kick me if I'm wrong! :feelsgood:)

So, if I'm right, should we change GEDKeeper's help content (by adding a note about availability on Windows only, for example)?

Should we add new information about ability to export instances to HTML or RTF files?

PDF export of pedigrees on Linux

PDF export of pedigrees on Linux is not working.
At the moment tested three libraries for the formation of the PDF available on Linux. All three have problems. Two of them export works in Windows but not working in Linux. With the third is not running even "Hello world".

I can't open "Options" dialog

If I have built the application with the make 🐛
Every time I use "Service/Options..." menu item, I get no window and these messages in the log:

[18.05.2016 15:16:29] -> GK.ExExceptionHandler(): Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "GKUI.Dialogs.OptionsDlg.resources" was correctly embedded or linked into assembly "GEDKeeper2" at compile time, or that all the satellite assemblies required are loadable and fully signed.
[18.05.2016 15:16:29] -> GK.ExExceptionHandler(): at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.GetObject(String name, CultureInfo culture, Boolean wrapUnmanagedMemStream)
at GKUI.Dialogs.OptionsDlg.InitializeComponent()
at GKUI.Dialogs.OptionsDlg..ctor(IHost aHost)
at GKUI.MainWin.miOptionsClick(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

The following is source of the issue:

File: projects\GEDKeeper2\GKUI\Dialogs\OptionsDlg.Designer.cs

private void InitializeComponent()
{
    . . .
    // 
    // btnColumnUp
    // 
    this.btnColumnUp.Image = ((System.Drawing.Image)(resources.GetObject("btnColumnUp.Image")));

There is similar code below that code snippet 😢

If I have built the app with Visual Studio and debug it with Visual Studio -- everything works seamlessly.

Fix license

Must be GPLv3, but is attached by mistake a file from the LGPLv3.

Many issues with person’s pictures {bug}

The first issue: I can’t view new pictures instantly †. What I did:

  1. Opened a person in editor window, for example, 'BLYTHE William Jefferson',
  2. I clicked "Attach the portrait" button,
  3. I added a new multimedia record (with PNG image and type "-" (however, type "Photo" doesn’t change anything)),
  4. I clicked "Apply" in multimedia editor,
  5. Person editor window appeared but without my picture †.
  6. Okay. I closed the editor (with "Apply" or with "Cancel" (!) button) and opened it again.
  7. Now I could see the picture in person editor window.

gk-bug-5

Please put your attention on the sixth step – even if I pressed "Cancel" button, the changes stored (see ticket #60 )! This is the second issue.

The third issue is also descended from the sixth step: if I added new photo in the person editor window and pressed "Cancel" button, such multimedia record does not appear on "Multimedia" record in the main window. If later I add new photo to any person and press "Apply" in person record window, both multimedia records appear on "Multimedia" record in the main window (applied one and canceled one).

The fourth issue: information about multimedia record remains visible after the last multimedia record has been removed ‡. See the screenshots below for details.

Before removing:

gk-bug-before-remove

After removing:

gk-bug-after-remove

It is worth noting that links on the information part of the window don’t do anything in such case.

The fifth issue: change confirmation text (see ticket #58 ) ‡.

gk-bug-7

The sixth issue: I can’t view an image. I see nothing after I clicked [View] link †.

gk-bug-no-image

The seventh issue: A GUI object (window) for image is a top window (it's an object '2' on the previous screenshot). I can select it via Alt+Tab, for example, and see it on the taskbar. Is it by design?

† This problem relates only to releases of executable made by the 'make' tool, thus outside Visual Studio environment.

‡ Fixed by PR #68

Cancelling input clear the field in "Relationship Calculator" {unwanted behavior}

There's an unwanted behavior (in my opinion) in "Relationship Calculator". After I've closed person picker, the related text field becomes clear. Let me explain.

I open the "Relationship Calculator" and set some values:

default

Now I decide to select another person on the second field...

default

...but I changed my mind and click "Cancel" or just close the person picker. This is what I get:

default

I've lost the name. I believe the "previous" value must remain. Correct me, if I'm wrong.

And please make "Kinship" field read-only 😈 One shouldn't be able to change that text.

MOTD: only plural noun required

motd

The following code is a part of GKUI::BaseWin::CollectTips member:

uint daysBefore = uint.Parse(days);
if (0 == daysBefore)
{
    tipsList.Add(string.Format(
        LangMan.LS(LSID.LSID_BirthdayToday),
        nm));
}
else if (1 == daysBefore)
{
    tipsList.Add(string.Format(
        LangMan.LS(
            LSID.LSID_BirthdayTomorrow),
        nm));
}
else if (3 > daysBefore)
{
    tipsList.Add(string.Format(
        LangMan.LS(LSID.LSID_DaysRemained),
        nm, days));
}

As you can see the language manager gets LSID_DaysRemained string only for several days, and not a single one. Therefore, the resource string must define text for plural days only.

A note about Russian localization of the LSID_DaysRemained resource.

The following text is Russian localization of the LSID_DaysRemained resource:

До дня рождения "{0}" осталось {1} дня(-ей)

The text from above takes into account ending of the word 'день'. But since day range is limited by three days (see the code above), the ending will be always 'я' ("2 дня" is the only possible option in the current implementation). Once the code owner will decide to change day range to other value (for example, ten days), we can use "culture-aware" code (just like in GEDKeeper2\GKCore\Cultures\RussianCulture.cs) to build the word ending (the current implementation already applies this technique to the argument {0} in the resource string 👍). Therefore, resource string will look like "До дня рождения "{0}" осталось {1} дн{2}". As my co-worker always says: "This is Russia, baby! So, speak Russian!" 😃

'GKTreeVizPlugin' crashes GEDKeeper to desktop

When I had tried to use 'GKTreeVizPlugin' plug-in, it killed the host application.

Steps to reproduce:

  1. Run GEDKeeper,
  2. Run 'GKTreeVizPlugin' plug-in from "Plug-ins" menu.
  3. Accept default settings and click "Apply" button.
  4. Nothing happens, but an error log entry appears in the application log (see below).
  5. Wait for 3-5 seconds.
  6. Click any menu or button on the tollbar.
  7. New log entry appears in the log (also see below) and GEDKeeper crushes.

Step # 4 causes the following messages in the log:

[13.05.2016 11:47:14] -> GK.ExExceptionHandler(): The type initializer for 'CsGL.OSLib' threw an exception.
[13.05.2016 11:47:14] -> GK.ExExceptionHandler(): at CsGL.OpenGL.OpenGL..ctor()
at CsGL.OpenGL.GLUT..ctor()
at CsGL.OpenGL.OpenGLContext..ctor()
at CsGL.OpenGL.ControlGLContext..ctor(Control c)
at GKTreeVizPlugin.TreeVizControl.CreateContext()
at CsGL.OpenGL.OpenGLControl.get_Context()
at GKTreeVizPlugin.TreeVizControl..ctor()
at GKTreeVizPlugin.TreeVizViewer.InitializeComponent()
at GKTreeVizPlugin.TreeVizViewer..ctor(IBaseWindow aBase, Int32 minGens)
at GKTreeVizPlugin.Plugin.Execute()
at GKUI.MainWin.Plugin_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Step # 7 causes the following messages in the log:

[13.05.2016 11:48:19] -> GK.UnhandledExceptionsHandler(): Could not load file or assembly 'ArborGVT, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
[13.05.2016 11:48:19] -> GK.ExExceptionHandler(): at GKTreeVizPlugin.TreeVizControl.Dispose(Boolean disposing)
at System.ComponentModel.Component.Finalize()

I got the error on my Windows 10 💩 😆

I can't run 'GKNamesBookPlugin' plug-in built with make [bug]

After I have built 'GKNamesBookPlugin' plug-in binaries, I couldn't use it.

GEDKeeper shows no GUI for the plug-in and the next text appears in the program's log:

[11.05.2016 9:28:09] -> GK.ExExceptionHandler(): Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "GKNamesBookPlugin.NBResources.resources" was correctly embedded or linked into assembly "GKNamesBookPlugin" at compile time, or that all the satellite assemblies required are loadable and fully signed.
[11.05.2016 9:28:09] -> GK.ExExceptionHandler(): at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.GetObject(String name, CultureInfo culture, Boolean wrapUnmanagedMemStream)
at GKNamesBookPlugin.NamesBookWidget.PrepareList()
at GKNamesBookPlugin.NamesBookWidget..ctor(Plugin plugin)
at GKNamesBookPlugin.Plugin.Execute()
at GKUI.MainWin.Plugin_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

After I had debugged the issue I've found out its source:
File: projects\GKNamesBookPlugin\NamesBookWidget.cs
Code:

private void PrepareList()
{
    . . .
(1)    using (MemoryStream memStream = new MemoryStream(NBResources.book_names))
    . . .

Line (1) causes this exception:

Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "GKNamesBookPlugin.NBResources.resources" was correctly embedded or linked into assembly "GKNamesBookPlugin" at compile time, or that all the satellite assemblies required are loadable and fully signed.

The problem is similar to one we had with GEDKeeper itself 😈

Localization issue in the event editing window [bug]

I run the app with English localization and bump into the following problem: name of the event editor window is unreadable for a human (take a look on the attached file).

Steps to reproduce:

  1. Run GEDKeeper with English localization,
  2. Open a database,
  3. Double click on any person to open object editing window,
  4. Add new or edit an existing event,
  5. ㊗️ You got the bug! 😈

Here 👇
dlgeventedit

I didn't try this window with other localizations.

Change removing confirmation text {proposal}

"Remove the user reference" confirmation should be "Do you want to remove the user reference?" or "Are you sure you want to remove the user reference?". Or, even better: "Do you want to remove reference 'REFERENCE NAME'?" / "Are you sure you want to remove reference 'REFERENCE NAME'?"

gk-bug-2

"Tips of the day" may block loading of a database

Let's assume user has two databases opened. For example:

p1

Here I have 'Sample_PresidentsUSA.ged' and '-rus-nobles.ged' databases. The order of their window matter. Moreover, the "bottom" database ('Sample_PresidentsUSA.ged') will cause "Tips of the day" window to appear on the next application run. Okay. Now close GK and run it again:

p2

As you can see, GK has loaded 'Sample_PresidentsUSA.ged' database, shows MOTD window, but there's no '-rus-nobles.ged' database opened. It will be loaded only after user has closed the "Tips of the day" window:

p3

I can't show this with screenshots, but right after closing MOTD window, '-rus-nobles.ged' database begins to load with progress bar, etc.

Therefore, I believe "Tips of the day" must be owned by a dedicated UI thread. Is this the only way to not to block main GUI thread in .NET just like in native win-32?

I don't think this is a bug. It's just an unwanted behavior.

`UDN` uses irreversible JDNs.

Currently UDN framework uses JDNs of integer type.

And because CalendarConverter.{calendar}_to_jd methods produce floating-point values, we lose precision and get irreversible JDNs.

For example, '2016/05/31' date gives '2457539' integer JDN. And integer '2457539' JDN gives... '2016/05/30'!

Algorithms from Wikipedia give reversible integer values. But it provides ready formulae only for Julian and Gregorian calendars. We have to re-implement analogous formulae for other calendars by ourself (well, actually I'm ready).

Or we have to use JDNs of floating-point type. This is difficult since UDN framework stores JDN and some bit flags together, in one 32bit value. I believe we can find some free bits in 64bit double, but this won't be as easy and straightforward as with integer value. We will have to "crack" IEEE Standard 754 for floating-point format.

:neckbeard:

Localization issue in the source editing window [bug]

I run the app with English localization and bump into the following problem: name of the source editor window is unreadable for a human (take a look on the attached file).

Steps to reproduce:

  1. Run GEDKeeper with English localization,
  2. Open a database,
  3. Switch to "Sources" tab,
  4. Add new or edit an existing source, having empty short title,
  5. ㊗️ You got the bug! 😈

Here 👇
x

I double rechecked and then recreated GEDKeeper2's makefile. Nothing helped.

I didn't try this window with other localizations.

See also: #30

Is there redundant text in help content ("Person" page)?

This is what we have in 'gkhRec_Individual.html' file:

  • Такие-же кнопки [images], и под именем каждого из родителей отвечают за другое: кнопка [image] - добавляет новую семью, если никакая не была подключена ранее, и добавляет в неё конкретного родителя (отца или мать), кнопка [image] соответственно отсоединяет из присоединенной к человеку семьи выбранного родителя (отца/мать).
  • Для добавления родителей, следует в секциях "Отец" или "Мать" нажать на кнопку "Выбрать или добавить отца(мать)" [image]. Соответственно, чтобы убрать данные - следует нажать на кнопку "Отсоединить отца(мать)" [image]. Также возможны быстрые переходы на записи родителей по кнопкам [image].

Translation for English readers:

  • The same buttons: [images], and located under the name of each parent perform other functions. [image] button adds new family if one was not added already, and then adds to this family the concrete parent (father or mother). [image] button removes from a parent (father or mother) from person's family.
  • To add a parent, you use [image] button -- "Select or add father (mother)" in "Father" or "Mother" section, respectively. To remove a parent, you use button -- "Detach father (mother)". To quickly jump to a parent's person record you use [image] button.

I think both paragraphs should be combined because they are almost the same.

A typo in 'help_rus/GEDKeeper2.html' file

There's a small typo in the following text in 'locales/help_rus/GEDKeeper2.html' file:

. . .

Форумы

Форум Cибирской генеалогии
. . .

The letter 'С' in the 'Сибирской' word is English letter 'C' [siː] not a Russian letter 'С' [es] 🔬

I can't run 'GKImageViewerPlugin' plug-in built with make [bug]

After I have built 'GKImageViewerPlugin' plug-in binaries, I couldn't use it.

GEDKeeper shows no GUI for the plug-in and the next text appears in the program's log:

[11.05.2016 9:27:32] -> GKImageViewerPlugin.Execute(): Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "GKImageViewerPlugin.IVPResource.resources" was correctly embedded or linked into assembly "GKImageViewerPlugin" at compile time, or that all the satellite assemblies required are loadable and fully signed.

After I had debugged the issue I've found out its source:
File: projects\GKImageViewerPlugin\ImageViewerWin.cs
Code:

public ImageViewerWin(IPlugin plugin)
{
    . . .
(1)    this.tbFileLoad.Image = IVPResource.iLoad;
    . . .

Line (1) causes this exception:

Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "GKImageViewerPlugin.IVPResource.resources" was correctly embedded or linked into assembly "GKImageViewerPlugin" at compile time, or that all the satellite assemblies required are loadable and fully signed.

The problem is similar to one we had with GEDKeeper itself 😈

Add link to GitHub repository

After this project has become open source, should we add link to this repository onto the "About" page in local HTML pages? 📖 For both Russian and English localizations.

Unable to restore previously minimized MDI window

I can’t restore an MDI window when the latter was minimized in the last GK session.

Steps to reproduce:

  1. Run GK, open a database and leave database window in the normal state.
    gk-bug-02-01
  2. Minimize the database window and close GK main window (shut GK down).
    gk-bug-02-02
  3. Run GK again.
  4. The MOTD window blocks GK’s main GUI thread and user can see window of the database he used in the last GK session. But this window has strange size and normal state. Despite the fact that user has minimized it in the last GK session. This is unwanted behavior I believe. But that’s not the bug itself.
    gk-bug-02-03
  5. Close the MOTD window. The window becomes minimized now.
    gk-bug-02-04
  6. Now try to restore the database window. Here what you’ll get:
    gk-bug-02-05
    Please, draw your attention on the vertical scrollbar that suddenly appeared. Moreover, already minimized window has minimizing icon on its title. Try to click this minimizing icon and you again will get this:
    gk-bug-02-06
  7. Maximize icon works as expected.
    gk-bug-02-07
  8. But if you restore maximized window, you get this:
    gk-bug-02-08
  9. If you scroll the window content:
    gk-bug-02-09

Therefore, user is unable to restore the window to the normal state. And that's the bug this ticket brings.

Untranslated entries in "User reference" dialog {bug}

When user adds new or edits an existing reference, he/she may see untranslated text in "User reference" dialog if one views the reference’s popup list.

The screenshot below shows what I mean (the screenshot was made from GK run with ENU localization):

gk-bug

The main window doesn't save its position

I have the following monitor configuration on my desktop: two monitors standing near each other. The primary one is on the right side.

If I had moved the main window to the left (not primary) monitor and then I closed the window there, next time I run the application, the main window appears on the primary screen 🐛

This is the source of the issue:

File: projects\GEDKeeper2\GKCore\GKUtils.cs

public static ExtRect GetFormRect(Form form)
{
    if (form == null) return ExtRect.CreateEmpty();

    int x = form.Left;
    int y = form.Top;
    int w = form.Width;
    int h = form.Height;
    Screen scr = Screen.PrimaryScreen;
    int mw = scr.WorkingArea.Width;
    int mh = scr.WorkingArea.Height;
    if (x < 0) x = 0;
    if (y < 0) y = 0;
    if (w > mw) w = mw;
    if (h > mh) h = mh;
    return ExtRect.Create(x, y, x + w - 1, y + h - 1);
}

where problem lines are:

public static ExtRect GetFormRect(Form form)
{
    . . .
    if (x < 0) x = 0;
    if (y < 0) y = 0;
    if (w > mw) w = mw;
    if (h > mh) h = mh;
    . . .
}

As you can see x can't be a negative number (that's true in my case). Moreover, had I two monitors, located one above another, I would get the same problem with y. Had I four monitors in staggered-order, I would get both the problems simultaneously.

A similar issue can arise with window size. For some unknown reason size of the window get restricted to the size of primary screen. But what if I have worked on another monitor?

The code that sets x and y to zero must be changed to code that check availability of some window coordinates on the application startup and not before shutting it down. And for my configuration: if I was working on the left monitor, in normal cases the main window must appear on that monitor. But if for some reason I have lost that monitor (disconnected it), the main window get automatically moved to the primary monitor.

Concerning size of the window. I don't know should we limit it. If we must, we must use entire desktop size. Not a monitor's one. After all, in my configuration I can stretch the window from the left monitor to the right one. It's a (very) rare case but I can. And a good application must save this information between its sessions.

I can't fix it right now. Because I don't have enough knowledge about USER objects in .NET. But I'm gonna study it! 😈

Plugin: P2P Chat and bulletin board

  • Stable peer discovery
  • Simple UDP chat
  • TCP channel
  • Bulletin board of investigations and search of kins
  • Exchange of fragments of genealogical data
  • Exchange of local websites (maybe)

Main window gets bigger on each application run

I've bumped with the following behavior on Windows 10: every time I launch GEDKeeper, its main window changes size from launch to launch. When I closed the application, the main window had had one size. When I run the application again, the main window gets another size, bigger than it was on a previous session.

I believe it's a Windows 10 specific bug 🐛

Unable to select an unsaved entry when editing another one

I can’t use an unsaved entry as a reference in another entry (existing or not).

Here are steps to reproduce:

  1. Open an existing database or create a new one.
    gk-bug-01-01
  2. Add a new person to the database. You may optionally save the database now. If you have opened an existing database, you may skip this step.
    gk-bug-01-02
  3. Add another person to the database, but do not save your changes now.
    gk-bug-01-02-1
  4. Edit the first person, you create at the step 2 (or just select a person without father or/and mother if you have skipped that step).
  5. Click "Add father" or "Add mother" button to open selector window.
    gk-bug-01-03
    gk-bug-01-04

As you can see one can’t select the new person one has created at the step 3 (i.e. there is no "4 5 6" person available to select).

Parent removing persists after user canceled editing {bug}

Steps to reproduce:

  1. Open a person in editor window, for example, 'BLYTHE William Jefferson',
  2. Click "Disconnect father" button,
  3. Answer "Yes" to confirmation,
  4. Click "Cancel" button,
  5. Edit the same person again ('BLYTHE William Jefferson'). Now the person has no father, despite the fact that user has pressed "Cancel" button previously.

gk-bug-4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.