DonationCoder.com Forum

Other Software => Announce Your Software/Service/Product => Topic started by: KynloStephen66515 on March 27, 2013, 12:20 AM

Title: RegaLink
Post by: KynloStephen66515 on March 27, 2013, 12:20 AM
RegaLink

STILL AVAILABLE TO DOWNLOAD BUT NO LONGER BEING DEVELOPED.
SOURCE IS AVAILABLE TO DOWNLOAD AND USE HOW YOU WISH!

Application Name RegaLink
Version v1.1.2
Short Description Manage a list of websites to visit
Supported OSes
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8 (Untested)

 
Web Page This is it
Download Link [v1.1.2] [ You are not allowed to view attachments ]
Source Download (https://www.donationcoder.com/forum/index.php?action=dlattach;topic=34461.0;attach=75262) (See More Info) (https://www.donationcoder.com/forum/index.php?topic=34461.msg324910#msg324910)
Donate (https://www.donationcoder.com/forum/Themes/Dc2/images/dcgoldcoin.gif)  Donate Towards Further Development of RegaLink (https://www.donationcoder.com/forum/index.php?action=dlist;sa=search;search=254145;fields=uid)
System Requirements
  • Windows OS
  • .NET 4



Description
Create and manage a list of URLs that you want to visit.  Once you have visited them, they will automatically be moved to a "Visited" list.

Features (Bold items have been added in the latest release)


Planned Features
Ask me, and I will try add some :)

Screenshots
(Old GUI)

(https://www.donationcoder.com/forum/index.php?action=dlattach;topic=34461.0;attach=74505;image)
[ You are not allowed to view attachments ]
[ You are not allowed to view attachments ]
[ You are not allowed to view attachments ]
[ You are not allowed to view attachments ]
[ You are not allowed to view attachments ]
[ You are not allowed to view attachments ]
[ You are not allowed to view attachments ]
(https://www.donationcoder.com/forum/index.php?action=dlattach;topic=34461.0;attach=74591;image)
[ You are not allowed to view attachments ]

(New GUI)

[ You are not allowed to view attachments ]
(https://www.donationcoder.com/forum/index.php?action=dlattach;topic=34461.0;attach=74648;image)
(https://www.donationcoder.com/forum/index.php?action=dlattach;topic=34461.0;attach=74654;image)


Usage
No install needed.  Just unzip and run!

Using the Application
Simply load up the software, then start adding URLs into the list.  Double click a URL to visit the site.

Uninstallation
Delete the folder that contains the executable and text list.

Tips


Known Issues
None

If you do decide to download, please let me know any bugs you encounter or features you want adding.
Title: Re: RegaLink
Post by: Ath on March 27, 2013, 03:31 AM
 :) :up:
Title: Re: RegaLink
Post by: KynloStephen66515 on March 27, 2013, 03:35 AM
Y'all can blame mouser for this re-write/change in direction :P
Title: Re: RegaLink
Post by: KynloStephen66515 on March 29, 2013, 04:50 PM
Update!!

This update fixes a crash bug + also allows the window size and location to be saved.

[ You are not allowed to view attachments ]

Title: Re: RegaLink
Post by: KynloStephen66515 on March 29, 2013, 05:10 PM
I should note, this application can be run completely portable right out of the box.  I save NOTHING to the registry or anywhere other than 2 text files contained within the executable folder!

So long as you have URL.txt and Visited.txt in the same folder as RegaLink.exe, you are good to go :)
Title: Re: RegaLink
Post by: mouser on March 29, 2013, 06:17 PM
Sounds like it's coming along nicely!
I do think this is a useful little tool.
Title: Re: RegaLink
Post by: KynloStephen66515 on March 29, 2013, 09:33 PM
Update (New Feature) - Manually add URL to the list.

[ You are not allowed to view attachments ]

Title: Re: RegaLink
Post by: KynloStephen66515 on March 29, 2013, 09:39 PM
If anybody has any feature requests...feel free to let me know...I think I just hit a bit of a brick wall with stuff to add.
Title: Re: RegaLink
Post by: KynloStephen66515 on March 30, 2013, 12:51 AM
OMG New Update has new features!!!

You can now save your URL list to a separate file, so as to never lose it!  
OMG, you can also LOAD a file!  The file will load, then automatically overwrite the URL.txt and be saved there! - This means, the file you load, will stay exactly how it was!

[ You are not allowed to view attachments ]

(Download from original post at the top!)
Title: Re: RegaLink
Post by: KynloStephen66515 on March 30, 2013, 01:11 AM
Quick Update (v0.45):

You can now send none URL's to the browser.  These will automatically be sent to Google. (IE: If you enter "Cheese" instead of a URL, that will then become something RegaLink will send to Google)
Title: Re: RegaLink
Post by: mouser on March 30, 2013, 12:58 PM
Looking good -- I've sent a donation  :up:
Title: Re: RegaLink
Post by: KynloStephen66515 on March 30, 2013, 10:05 PM
v0.46 Update:

[New Features]


Also cleaned some code up in this version to make things run slightly smoother..
Title: Re: RegaLink
Post by: KynloStephen66515 on March 30, 2013, 10:21 PM
/me yawns
Feel free to go play with the new update...I won't release another tonight...I know I have been going crazier than Mozilla with the updates :P

Seriously though...there will probably be a few more tomorrow (or one main one if I feel like it)

If anybody has any feature requests...please lemme know :)

Also, I would love to hear from those who have tried it, about how you use it :) - Also, constructive criticism is welcome/appreciated!  (Well...except for the GUI...I don't care about th GUI at the moment...it is functional, and it looks 'OK?', so, function trumps looks for now xD)
Title: Re: RegaLink
Post by: PhilB66 on March 30, 2013, 11:38 PM
Please change search engine to https://encrypted.google.com/ and if possible add support for ddg (https://duckduckgo.com/).

Thanks
Title: Re: RegaLink
Post by: KynloStephen66515 on March 31, 2013, 02:35 PM
Please change search engine to https://encrypted.google.com/ and if possible add support for ddg (https://duckduckgo.com/).

Thanks

I will add an option so people can choose their own search engine :)
Title: Re: RegaLink
Post by: KynloStephen66515 on March 31, 2013, 03:05 PM
Please change search engine to https://encrypted.google.com/ and if possible add support for ddg (https://duckduckgo.com/).

Thanks

I will add an option so people can choose their own search engine :)
-Stephen66515 (March 31, 2013, 02:35 PM)

OK...Added that :P

Title: Re: RegaLink
Post by: KynloStephen66515 on March 31, 2013, 04:08 PM
0.48 Update:

[Feature]


[Bug Fixes]

Title: Re: RegaLink
Post by: KynloStephen66515 on March 31, 2013, 07:48 PM
0.48b (Minor Update)

• Added Shortcut Keys For Actions

(https://www.donationcoder.com/forum/index.php?action=dlattach;topic=34461.0;attach=74561;image)
Title: Re: RegaLink
Post by: KynloStephen66515 on April 01, 2013, 03:08 PM
Beta Available:

Visited Links now show up in a column view, meaning thins are much easier to search through :)

(https://www.donationcoder.com/forum/index.php?action=dlattach;topic=34461.0;attach=74581;image)

This is the final feature that I personally think RegaLink needs (for now)

Once I find there are no bugs, the version will move from 0.48b, to 1.0.  This marks the end of Beta for RegaLink.
Title: Re: RegaLink
Post by: KynloStephen66515 on April 01, 2013, 04:27 PM
Question:

Do you guys prefer the "Pending List" to be shown how it currently does (Double Lined), or how it is in the above image (side scroll, no double spacing).

I could also add an option for you to select between the two (Which I might just go ahead and do)
Title: Re: RegaLink
Post by: KynloStephen66515 on April 01, 2013, 05:42 PM
Update: v1.0

[Feature]

Added Settings Menu
Change Your Pending List View Layout (Settings Menu)

[Bug Fix]

Stopped Application failing to load "Visited" list randomly.

[ You are not allowed to view attachments ]
Title: Re: RegaLink
Post by: KynloStephen66515 on April 01, 2013, 07:41 PM
You may notice V1.0 (The Beta download) is significantly smaller in size (Less than half) that v0.48b.  Don't worry about this.  I have streamlined the code, and reduced the size of the images.

Other than that, everything remains the same!

Yes...tiny app is tiny!
Title: Re: RegaLink
Post by: KynloStephen66515 on April 01, 2013, 07:50 PM
RegaLink 1.0 Beta - The New Look:

[ You are not allowed to view attachments ]
Title: Re: RegaLink
Post by: KynloStephen66515 on April 01, 2013, 10:40 PM
Update v1.0.5 (Beta):

[UI Change]

(https://www.donationcoder.com/forum/index.php?action=dlattach;topic=34461.0;attach=74605;image)

I think this is a lot nicer to use, now it shows when you added the URL to 'Pending'

Please note:  Beta version may not load any list from before Time/Date feature was added.  You can work-around this (If you have long lists already) by appending (adding) the following to the end of each URL line:

|00/00/0000 00:00:00

This will make your line look like:

Http://www.google.com|00/00/0000 00:00:00
Title: Re: RegaLink
Post by: KynloStephen66515 on April 02, 2013, 12:07 AM
Side note:

Anybody think I should keep the current name?  Or should I change it to something better?

If you have a better name, lemme know!
Title: Re: RegaLink
Post by: KynloStephen66515 on April 02, 2013, 03:32 PM
Stupid attachments got messed up.  Fixed the download link.
Title: Re: RegaLink
Post by: KynloStephen66515 on April 03, 2013, 03:41 PM
Update (Beta) v1.1.2

[Feature]

• Preview Links Within RegaLink without losing them from the list.
• Choose to save your visited list, as a separate file.

[ You are not allowed to view attachments ]
Title: Re: RegaLink
Post by: KynloStephen66515 on April 03, 2013, 03:43 PM
You will also notice I got rid of the "Pending" and "Completed" graphics in this version.  I decided I hated them.
Title: Re: RegaLink
Post by: KynloStephen66515 on April 03, 2013, 04:26 PM
UI Improvement (Not in current version, or new Beta - Will be in next Beta)

[ You are not allowed to view attachments ]
Title: Re: RegaLink
Post by: PhilB66 on April 03, 2013, 07:59 PM
You will also notice I got rid of the "Pending" and "Completed" graphics in this version.  I decided I hated them.
-Stephen66515 (April 03, 2013, 03:43 PM)
Thank you. That was an eyesore.
Title: Re: RegaLink
Post by: KynloStephen66515 on April 03, 2013, 08:10 PM
You will also notice I got rid of the "Pending" and "Completed" graphics in this version.  I decided I hated them.
-Stephen66515 (April 03, 2013, 03:43 PM)
Thank you. That was an eyesore.

Ya know, up until last night, I didn't even notice they stretched when you maximized the window.  I noticed that and went straight into the code to remove them haha.

Is there anything (feature wise) you want adding Phil?
Title: Re: RegaLink
Post by: KynloStephen66515 on April 03, 2013, 08:32 PM
Hide button is now hidden, and replaced with a context menu item & shortcut key.

[ You are not allowed to view attachments ]
Title: Re: RegaLink
Post by: PhilB66 on April 06, 2013, 01:43 AM
Is there anything (feature wise) you want adding Phil?
-Stephen66515 (April 03, 2013, 08:10 PM)
Wasn't able to test the latest creation yet, but I plan to use RegaLink to save custom queries and send to a search engine.
Title: Re: RegaLink
Post by: KynloStephen66515 on April 06, 2013, 10:59 AM
v1.1.2 is now released as full version.

No beta is currently available as I can't find any bugs or think of any new features! - C,mon people, Surely there must be a bug somewhere lol...
Title: Re: RegaLink
Post by: mouser on April 06, 2013, 11:01 AM
There should not be a context menu for minmize to system tray.  it should be an option and trigger via the normal minimize button.
Title: Re: RegaLink
Post by: PhilB66 on April 08, 2013, 09:37 PM
Uninstallation[/b][/color]
Delete the folder that contains the executable and text list.
-Stephen66515 (March 27, 2013, 12:20 AM)
and user.config in %AppData%  ;)
Title: Re: RegaLink
Post by: KynloStephen66515 on April 08, 2013, 09:42 PM
Ah, didn't realise that Phil...Will get it to save that info within the app. (In the next update) :)

Thanks!
Title: Re: RegaLink
Post by: Ath on April 09, 2013, 02:01 AM
Ah, didn't realise that Phil...Will get it to save that info within the app. (In the next update) :)
-Stephen66515 (April 08, 2013, 09:42 PM)
No you shouldn't, unless you need/want/install RegaLink to be portable, only then it should save settings in the current directory.
Title: Re: RegaLink
Post by: KynloStephen66515 on April 09, 2013, 07:35 AM
Ah, didn't realise that Phil...Will get it to save that info within the app. (In the next update) :)
-Stephen66515 (April 08, 2013, 09:42 PM)
No you shouldn't, unless you need/want/install RegaLink to be portable, only then it should save settings in the current directory.

I intended it to be fully portable :)

However...I don't seem to have a user.config file in %AppData% - kinda makes it difficult to know what is stored there :(
Title: Re: RegaLink
Post by: PhilB66 on April 09, 2013, 09:17 AM
You should have it. That's where the settings are stored.
 On win7-64 it is at user\current\AppData\Local\RegaLink\RegaLink.exe_Url_wtefddecuu3bvefai21jfppcics1clnb\1.0.0.0\user.config
Title: Re: RegaLink
Post by: KynloStephen66515 on April 09, 2013, 12:38 PM
Oh Oh Oh!

I see it now!

Cheers!

Will sort this out :)
Title: Re: RegaLink
Post by: KynloStephen66515 on April 26, 2013, 09:26 PM
If anybody wants the source for this...I am now releasing it :)

[ You are not allowed to view attachments ]

This is a Visual Studio C# 2010 Project File.
Title: Re: RegaLink
Post by: mouser on April 27, 2013, 04:11 AM
Cool. :up:
Title: Re: RegaLink
Post by: KynloStephen66515 on April 27, 2013, 12:00 PM
If you wanna see what you are in for...here is some of the code:

code
Code: C# [Select]
  1. #region usings
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.Diagnostics;
  11. using System.Threading;
  12. using System.IO;
  13. using RegaLink.Properties;
  14. using Microsoft.VisualBasic;
  15. using RegaLink;
  16. using RegaLinnk;
  17.  
  18. #endregion
  19. #region namespace
  20. namespace RegaLink
  21. {
  22.     public partial class Form1 : Form
  23.     {
  24.  
  25.         public Form1()
  26.         {
  27.             InitializeComponent();
  28.         }
  29.  
  30. #endregion
  31.         #region formload
  32.         private void Form1_Load(object sender, EventArgs e)
  33.         {
  34.            
  35.  
  36.             BrowserForm browserForm = new BrowserForm();
  37.             Settings.Default.DefaultSearch = Settings.Default.DefaultSearch;
  38.             if (Settings.Default.WindowLocation != null)
  39.             {
  40.                 this.Location = Settings.Default.WindowLocation;
  41.             }
  42.  
  43.  
  44.             if (Settings.Default.WindowSize != null)
  45.             {
  46.                 this.Size = Settings.Default.WindowSize;
  47.             }
  48.  
  49.  
  50.             this.splitContainer1.SplitterDistance = Settings.Default.SplitterDis;
  51.  
  52.             FileStream yaNew = File.Open("URL.txt", FileMode.Open, FileAccess.Read);
  53.             StreamReader yaRead = new StreamReader(yaNew);
  54.             string yaView = yaRead.ReadToEnd();
  55.  
  56.             FileStream yaNew3 = File.Open("Visited.txt", FileMode.Open, FileAccess.Read);
  57.             StreamReader yaRead3 = new StreamReader(yaNew3);
  58.             string yaView3 = yaRead3.ReadToEnd();
  59.  
  60.  
  61.             yaRead.Close();
  62.             yaNew.Close();
  63.  
  64.             yaRead3.Close();
  65.             yaNew3.Close();
  66.  
  67.             string[] sep1 = yaView3.Split(new[] { '|' });
  68.             string[] sep = new string[1] { "\r\n" };
  69.             String[] yaArray = yaView.Split(sep, StringSplitOptions.RemoveEmptyEntries);
  70.             String[] yaArray3 = yaView3.Split(sep, StringSplitOptions.RemoveEmptyEntries);
  71.            
  72.             try
  73.             {
  74.                 string[] lines = File.ReadAllLines("Visited.txt");
  75.  
  76.                 foreach (string line in lines)
  77.                 {
  78.                     string[] URLandDATE = line.Split('|');
  79.  
  80.                     ListViewItem ListFeeder = new ListViewItem(URLandDATE[0]);
  81.                     for (int i = 1; i < URLandDATE.Length; i++)
  82.                         ListFeeder.SubItems.Add(URLandDATE[i]);
  83.  
  84.                     listView3.Items.Add(ListFeeder);
  85.                 }
  86.  
  87.             }
  88.             catch
  89.             {
  90.  
  91.             }
  92.  
  93.             try
  94.             {
  95.                 string[] lines1 = File.ReadAllLines("URL.txt");
  96.  
  97.                 foreach (string line1 in lines1)
  98.                 {
  99.                     string[] URLandDATE1 = line1.Split('|');
  100.  
  101.                     ListViewItem ListFeeder1 = new ListViewItem(URLandDATE1[0]);
  102.                     for (int i = 1; i < URLandDATE1.Length; i++)
  103.                         ListFeeder1.SubItems.Add(URLandDATE1[i]);
  104.  
  105.                     listView1.Items.Add(ListFeeder1);
  106.                 }
  107.  
  108.             }
  109.             catch
  110.             {
  111.  
  112.             }
  113.  
  114.         }
  115.         #endregion
  116.         #region Left Doubleclick
  117.         private void list1_DoubleClick(object sender, EventArgs e)
  118.         {
  119.             string[] prefixes = { "http", "https", "www", "ftp" };
  120.  
  121.             if (prefixes.Any(prefix => listView1.SelectedItems[0].SubItems[0].Text.StartsWith(prefix)))
  122.             {
  123.                 System.Diagnostics.Process.Start(listView1.SelectedItems[0].SubItems[0].Text);
  124.             }
  125.             else
  126.             {
  127.                 System.Diagnostics.Process.Start(Settings.Default.DefaultSearch.ToString() + listView1.SelectedItems[0].SubItems[0].Text);
  128.  
  129.             }
  130.  
  131.  
  132.             while (listView1.SelectedItems.Count > 0)
  133.             {
  134.                 ListViewItem temp = listView1.SelectedItems[0];
  135.                 listView1.Items.Remove(temp);
  136.                 ListViewItem lvItem = listView3.Items.Insert(0, temp);
  137.                 lvItem.SubItems.Add(new ListViewItem.ListViewSubItem(lvItem, DateTime.Now.ToString()));
  138.             }
  139.  
  140.             #region SaveFile2
  141.  
  142.             using (StreamWriter writer1 = new StreamWriter("URL.txt"))
  143.             {
  144.                 StringBuilder line = new StringBuilder();
  145.                 foreach (ListViewItem item in listView1.Items)
  146.                 {
  147.                     line.Clear();
  148.                     for (int i = 0; i < item.SubItems.Count; i++)
  149.                     {
  150.                         if (i > 0)
  151.                             line.Append("|");
  152.                         line.Append(item.SubItems[i].Text);
  153.                     }
  154.                     writer1.WriteLine(line);
  155.                 }
  156.             }
  157.  
  158.             using (StreamWriter writer = new StreamWriter("Visited.txt"))
  159.             {
  160.                 StringBuilder line = new StringBuilder();
  161.                 foreach (ListViewItem item in listView3.Items)
  162.                 {
  163.                     line.Clear();
  164.                     for (int i = 0; i < item.SubItems.Count; i++)
  165.                     {
  166.                         if (i > 0)
  167.                             line.Append("|");
  168.                         line.Append(item.SubItems[i].Text);
  169.                     }
  170.                     writer.WriteLine(line);
  171.                 }
  172.             }
  173.  
  174.             #endregion
  175.         }
  176.         #endregion
  177.  
  178.  
  179.  
  180.  
  181.         #region Right Doubleclick
  182.         private void list2_DoubleClick(object sender, EventArgs e)
  183.         {
  184.             while (listView3.SelectedItems.Count > 0)
  185.             {
  186.                 ListViewItem temp = listView3.SelectedItems[0];
  187.                 listView3.Items.Remove(temp);
  188.                 ListViewItem lvItem = listView1.Items.Insert(0, temp);
  189.                 lvItem.SubItems.Add(new ListViewItem.ListViewSubItem(lvItem, DateTime.Now.ToString()));
  190.             }
  191.  
  192.            
  193.             #region SaveFile2
  194.             using (StreamWriter writer1 = new StreamWriter("URL.txt"))
  195.             {
  196.                 StringBuilder line = new StringBuilder();
  197.                 foreach (ListViewItem item in listView1.Items)
  198.                 {
  199.                     line.Clear();
  200.                     for (int i = 0; i < item.SubItems.Count; i++)
  201.                     {
  202.                         if (i > 0)
  203.                             line.Append("|");
  204.                         line.Append(item.SubItems[i].Text);
  205.                     }
  206.                     writer1.WriteLine(line);
  207.                 }
  208.             }
  209.  
  210.             using (StreamWriter writer = new StreamWriter("Visited.txt"))
  211.             {
  212.                 StringBuilder line = new StringBuilder();
  213.                 foreach (ListViewItem item in listView3.Items)
  214.                 {
  215.                     line.Clear();
  216.                     for (int i = 0; i < item.SubItems.Count; i++)
  217.                     {
  218.                         if (i > 0)
  219.                             line.Append("|");
  220.                         line.Append(item.SubItems[i].Text);
  221.                     }
  222.                     writer.WriteLine(line);
  223.                 }
  224.             }
  225.  
  226.             #endregion
  227.  
  228.  
  229.         }
  230.             #endregion
  231.        
  232.         #region Context Menus Items
  233.         private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
  234.         {
  235.             listView1.DoDragDrop(listView1.SelectedItems, DragDropEffects.Move);
  236.         }
  237.  
  238.         private void listView1_DragEnter(object sender, DragEventArgs e)
  239.         {
  240.             e.Effect = DragDropEffects.Copy;
  241.  
  242.             int len = e.Data.GetFormats().Length - 1;
  243.             int i;
  244.             for (i = 0; i <= len; i++)
  245.             {
  246.                 if (e.Data.GetFormats()[i].Equals("System.Windows.Forms.ListView+SelectedListViewItemCollection"))
  247.                 {
  248.                     e.Effect = DragDropEffects.Move;
  249.                 }
  250.             }
  251.         }
  252.  
  253.         private void listView1_DragDrop(object sender, DragEventArgs e)
  254.         {
  255.             string gelen = (string)e.Data.GetData(typeof(string));
  256.  
  257.             if (!string.IsNullOrEmpty(gelen))
  258.                 listView1.Items.Add(gelen);
  259.  
  260.             #region savefile
  261.             using (StreamWriter sw = new StreamWriter("Visited.txt"))
  262.             {
  263.                 foreach (ListViewItem item in listView2.Items)
  264.                 {
  265.                     sw.WriteLine(item.Text);
  266.                 }
  267.             }
  268.             using (StreamWriter sw = new StreamWriter("Visited.txt"))
  269.             {
  270.                 foreach (ListViewItem item in listView2.Items)
  271.                 {
  272.                     sw.Write(item.Text);
  273.                     for (int i = 1; i < item.SubItems.Count; i++)
  274.                         sw.Write("," + item.SubItems[i].Text + "\r\n");
  275.                     sw.Write("\r\n");
  276.                 }
  277.             }
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.             using (StreamWriter sw = new StreamWriter("URL.txt"))
  285.             {
  286.                 foreach (ListViewItem item in listView1.Items)
  287.                 {
  288.                     sw.WriteLine(item.Text);
  289.                 }
  290.             }
  291.             using (StreamWriter sw = new StreamWriter("URL.txt"))
  292.             {
  293.                 foreach (ListViewItem item in listView1.Items)
  294.                 {
  295.                     sw.Write(item.Text);
  296.                     for (int i = 1; i < item.SubItems.Count; i++)
  297.                         sw.Write("," + item.SubItems[i].Text + "\r\n");
  298.                     sw.Write("\r\n");
  299.                 }
  300.             }
  301.             #endregion
  302.             if (listView1.SelectedItems.Count == 0)
  303.             {
  304.                 return;
  305.             }
  306.             Point cp = listView1.PointToClient(new Point(e.X, e.Y));
  307.             ListViewItem dragToItem = listView1.GetItemAt(cp.X, cp.Y);
  308.             if (dragToItem == null)
  309.             {
  310.                 return;
  311.             }
  312.             int dragIndex = dragToItem.Index;
  313.             ListViewItem[] sel = new ListViewItem[listView1.SelectedItems.Count];
  314.             //for (int i = 0; i <= listView1.SelectedItems.Count - 1; i++)
  315.             for (int i = 0; i < listView1.SelectedItems.Count; i++)
  316.             {
  317.                 sel[i] = listView1.SelectedItems[i];
  318.             }
  319.             for (int i = 0; i < sel.GetLength(0); i++)
  320.             {
  321.                 ListViewItem dragItem = sel[i];
  322.                 int itemIndex = dragIndex;
  323.                 if (itemIndex == dragItem.Index)
  324.                 {
  325.                     return;
  326.                 }
  327.                 if (dragItem.Index < itemIndex)
  328.                     itemIndex++;
  329.                 else
  330.                     itemIndex = dragIndex + i;
  331.                 ListViewItem insertItem = (ListViewItem)dragItem.Clone();
  332.                 listView1.Items.Insert(itemIndex, insertItem);
  333.                 listView1.Items.Remove(dragItem);
  334.             }
  335.         }
  336.  
  337.  
  338.         private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
  339.         {
  340.             while (listView1.SelectedItems.Count > 0)
  341.             {
  342.                 ListViewItem temp = listView1.SelectedItems[0];
  343.                 listView1.Items.Remove(temp);
  344.                 notifyIcon1.BalloonTipText = "You successfully deleted an item!!";
  345.                 notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  346.                 notifyIcon1.BalloonTipTitle = "Item Deleted!";
  347.                 notifyIcon1.ShowBalloonTip(500);
  348.             }
  349.         }
  350.  
  351.         private void clearEntireListToolStripMenuItem_Click(object sender, EventArgs e)
  352.         {
  353.             listView1.Items.Clear();
  354.             notifyIcon1.BalloonTipText = "You successfully cleared the list of pending websites!";
  355.             notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  356.             notifyIcon1.BalloonTipTitle = "Pending List Cleared!";
  357.             notifyIcon1.ShowBalloonTip(500);
  358.         }
  359.  
  360.         private void deleteThisItemToolStripMenuItem_Click(object sender, EventArgs e)
  361.         {
  362.             while (listView2.SelectedItems.Count > 0)
  363.             {
  364.                 ListViewItem temp = listView2.SelectedItems[0];
  365.                 listView2.Items.Remove(temp);
  366.                 notifyIcon1.BalloonTipText = "You successfully deleted an item!!";
  367.                 notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  368.                 notifyIcon1.BalloonTipTitle = "Item Deleted!";
  369.                 notifyIcon1.ShowBalloonTip(500);
  370.             }
  371.  
  372.  
  373.         }
  374.         #endregion
  375.         #region Clear Items
  376.         private void clearListToolStripMenuItem_Click(object sender, EventArgs e)
  377.         {
  378.             listView2.Items.Clear();
  379.             notifyIcon1.BalloonTipText = "You successfully cleared the list of visited websites!";
  380.             notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  381.             notifyIcon1.BalloonTipTitle = "Visited List Cleared!";
  382.             notifyIcon1.ShowBalloonTip(500);
  383.         }
  384.  
  385.         #endregion
  386.         #region Form Closed
  387.         private void Form1_FormClosed(object sender, FormClosedEventArgs e)
  388.         {
  389.  
  390.             Properties.Settings.Default.Save();
  391.         }
  392.         #endregion
  393.         #region Form Closing
  394.         private void Form1_FormClosing(object sender, FormClosingEventArgs e)
  395.         {
  396.             Settings.Default.DefaultSearch = Settings.Default.DefaultSearch;
  397.  
  398.             Settings.Default.WindowLocation = this.Location;
  399.  
  400.             if (this.WindowState == FormWindowState.Normal)
  401.             {
  402.                 Settings.Default.WindowSize = this.Size;
  403.             }
  404.             else
  405.             {
  406.                 Settings.Default.WindowSize = this.RestoreBounds.Size;
  407.             }
  408.  
  409.             Settings.Default.SplitterDis = this.splitContainer1.SplitterDistance;
  410.  
  411.             Settings.Default.Save();
  412.  
  413.  
  414.             #region SaveFile2
  415.             using (StreamWriter writer1 = new StreamWriter("URL.txt"))
  416.             {
  417.                 StringBuilder line = new StringBuilder();
  418.                 foreach (ListViewItem item in listView1.Items)
  419.                 {
  420.                     line.Clear();
  421.                     for (int i = 0; i < item.SubItems.Count; i++)
  422.                     {
  423.                         if (i > 0)
  424.                             line.Append("|");
  425.                         line.Append(item.SubItems[i].Text);
  426.                     }
  427.                     writer1.WriteLine(line);
  428.                 }
  429.             }
  430.  
  431.             using (StreamWriter writer = new StreamWriter("Visited.txt"))
  432.             {
  433.                 StringBuilder line = new StringBuilder();
  434.                 foreach (ListViewItem item in listView3.Items)
  435.                 {
  436.                     line.Clear();
  437.                     for (int i = 0; i < item.SubItems.Count; i++)
  438.                     {
  439.                         if (i > 0)
  440.                             line.Append("|");
  441.                         line.Append(item.SubItems[i].Text);
  442.                     }
  443.                     writer.WriteLine(line);
  444.                 }
  445.             }
  446.  
  447.  
  448.             #endregion
  449.  
  450.         }
  451.         #endregion
  452.         #region Show Window
  453.  
  454.         private void restoreThisWindowToolStripMenuItem_Click(object sender, EventArgs e)
  455.         {
  456.             Show();
  457.         }
  458.         #endregion
  459.         #region Hide Window
  460.         private void button2_Click(object sender, EventArgs e)
  461.         {
  462.  
  463.             Hide();
  464.             notifyIcon1.BalloonTipText = "I ran away, but don't worry! If you right click me, I am sure I will come back out to play!";
  465.             notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  466.             notifyIcon1.BalloonTipTitle = "Hi There!!";
  467.             notifyIcon1.ShowBalloonTip(500);
  468.         }
  469.         #endregion
  470.  
  471.         private void aDDURLToolStripMenuItem_Click(object sender, EventArgs e)
  472.         {
  473.             string[] prefixes = { "http", "https", "www", "ftp" };
  474.             string input = Interaction.InputBox("Enter URL to add to the pending list.", "Add URL To Pending List", "");
  475.             if (input.Length == 0)
  476.             {
  477.                 MessageBox.Show("You forgot to add anything!");
  478.             }
  479.             else
  480.             {
  481.  
  482.                 ListViewItem lvItem = listView1.Items.Insert(0, input);
  483.                 lvItem.SubItems.Add(new ListViewItem.ListViewSubItem(lvItem, DateTime.Now.ToString()));
  484.             }
  485.         }
  486.  
  487.  
  488.  
  489.         private void button3_Click(object sender, EventArgs e)
  490.         {
  491.             Process.Start("URL.txt");
  492.         }
  493.  
  494.         private void restoreToolStripMenuItem_Click(object sender, EventArgs e)
  495.         {
  496.             this.splitContainer1.SplitterDistance = 285;
  497.         }
  498.  
  499.         private void saveCurrentListAsToolStripMenuItem_Click(object sender, EventArgs e)
  500.         {
  501.             string[] prefixes = { "http", "https", "www", "ftp" };
  502.             string input = Interaction.InputBox("Save your list to a text file contained within the application folder.", "Save pending list!", "");
  503.             if (input.Length == 0)
  504.             {
  505.                 MessageBox.Show("Oops...You forgot to specify a file name!");
  506.             }
  507.             else
  508.             {
  509.                 using (StreamWriter writer1 = new StreamWriter(input + ".txt"))
  510.                 {
  511.                     StringBuilder line = new StringBuilder();
  512.                     foreach (ListViewItem item in listView1.Items)
  513.                     {
  514.                         line.Clear();
  515.                         for (int i = 0; i < item.SubItems.Count; i++)
  516.                         {
  517.                             if (i > 0)
  518.                                 line.Append("|");
  519.                             line.Append(item.SubItems[i].Text);
  520.                         }
  521.                         writer1.WriteLine(line);
  522.                         notifyIcon1.BalloonTipText = input + ".txt" + " has been saved to the same folder as I am located!";
  523.                         notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  524.                         notifyIcon1.BalloonTipTitle = "RegaLink Polite Notice";
  525.                         notifyIcon1.ShowBalloonTip(500);
  526.                     }
  527.                 }
  528.             }
  529.         }
  530.  
  531.         private void loadListToolStripMenuItem_Click(object sender, EventArgs e)
  532.         {
  533.  
  534.             openFileDialog1.InitialDirectory = "";
  535.             openFileDialog1.Filter = "URL List (.txt)|*.txt";
  536.             openFileDialog1.Title = "Select a URL List file";
  537.             if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  538.             {
  539.                 System.IO.StreamReader sr = new
  540.                 System.IO.StreamReader(openFileDialog1.FileName);
  541.  
  542.  
  543.  
  544.                 listView1.Items.Add(sr.ReadToEnd());
  545.  
  546.                 sr.Close();
  547.                 Application.Restart();
  548.             }
  549.  
  550.  
  551.         }
  552.  
  553.         private void button1_Click_1(object sender, EventArgs e)
  554.         {
  555.             if (listView1.Enabled == true)
  556.             {
  557.                 listView1.Enabled = false;
  558.                 listView3.Enabled = false;
  559.                 button1.Text = "UnLock";
  560.             }
  561.             else
  562.             {
  563.                 listView1.Enabled = true;
  564.                 listView3.Enabled = true;
  565.                 button1.Text = "Lock";
  566.             }
  567.         }
  568.  
  569.         private void editItemToolStripMenuItem_Click(object sender, EventArgs e)
  570.         {
  571.             if (listView1.SelectedItems.Count > 0)
  572.             {
  573.                 string input = Interaction.InputBox("You are currently editing the item named:  " + this.listView1.SelectedItems[0].Text.ToString() + " | Please enter a new URL or Search Term below and click OK", "Edit Selected Item", "");
  574.                 string[] prefixes = { "http", "https", "www", "ftp" };
  575.                 if (input.Length == 0)
  576.                 {
  577.                     MessageBox.Show("You forgot to add anything!");
  578.                 }
  579.                 else
  580.                 {
  581.                     this.listView1.SelectedItems[0].Text = input;
  582.                 }
  583.             }
  584.             else
  585.             {
  586.  
  587.             }
  588.  
  589.             using (StreamWriter writer1 = new StreamWriter("URL.txt"))
  590.             {
  591.                 StringBuilder line = new StringBuilder();
  592.                 foreach (ListViewItem item in listView1.Items)
  593.                 {
  594.                     line.Clear();
  595.                     for (int i = 0; i < item.SubItems.Count; i++)
  596.                     {
  597.                         if (i > 0)
  598.                             line.Append("|");
  599.                         line.Append(item.SubItems[i].Text);
  600.                     }
  601.                     writer1.WriteLine(line);
  602.                 }
  603.             }
  604.  
  605.         }
  606.  
  607.         private void button4_Click(object sender, EventArgs e)
  608.         {
  609.             SettingsDialog sd = new SettingsDialog();
  610.             sd.ShowDialog();
  611.         }
  612.  
  613.         private void quitToolStripMenuItem_Click(object sender, EventArgs e)
  614.         {
  615.             Properties.Settings.Default.Save();
  616.             Application.Exit();
  617.         }
  618.  
  619.         private void toolStripMenuItem5_Click(object sender, EventArgs e)
  620.         {
  621.             for (int i = 0; i < listView3.Items.Count; i++)
  622.             {
  623.                 if (listView3.Items[i].Selected)
  624.                 {
  625.                     listView3.Items[i].Remove();
  626.                     i--;
  627.                     notifyIcon1.BalloonTipText = "You successfully deleted an item!!";
  628.                     notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  629.                     notifyIcon1.BalloonTipTitle = "Item Deleted!";
  630.                     notifyIcon1.ShowBalloonTip(500);
  631.                 }
  632.             }
  633.  
  634.         }
  635.  
  636.         private void toolStripMenuItem6_Click(object sender, EventArgs e)
  637.         {
  638.             listView3.Items.Clear();
  639.             notifyIcon1.BalloonTipText = "You successfully cleared the list of visited websites!";
  640.             notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  641.             notifyIcon1.BalloonTipTitle = "List Cleared!";
  642.             notifyIcon1.ShowBalloonTip(500);
  643.         }
  644.  
  645.  
  646.         private void settingsToolStripMenuItem1_Click(object sender, EventArgs e)
  647.         {
  648.             SettingsDialog sd = new SettingsDialog();
  649.             sd.ShowDialog();
  650.         }
  651.  
  652.         private void lockWindowsToolStripMenuItem1_Click(object sender, EventArgs e)
  653.         {
  654.             if (listView1.Enabled == true)
  655.             {
  656.                 listView1.Enabled = false;
  657.                 listView3.Enabled = false;
  658.                 lockWindowsToolStripMenuItem1.Text = "Unlock Windows";
  659.             }
  660.             else
  661.             {
  662.                 listView1.Enabled = true;
  663.                 listView3.Enabled = true;
  664.                 lockWindowsToolStripMenuItem1.Text = "Lock Windows";
  665.             }
  666.         }
  667.  
  668.         private void donateToAuthorToolStripMenuItem1_Click(object sender, EventArgs e)
  669.         {
  670.             System.Diagnostics.Process.Start("https://www.donationcoder.com/forum/index.php?action=dlist;sa=search;search=254145;fields=uid");
  671.         }
  672.  
  673.  
  674.  
  675.         private void previewItemToolStripMenuItem_Click(object sender, EventArgs e)
  676.         {
  677.             if (listView1.SelectedItems.Count > 0)
  678.             {
  679.                 Preview pv = new Preview();
  680.                 pv.Navigate(listView1.SelectedItems[0].Text);
  681.                 pv.Show();
  682.  
  683.                 string[] prefixes = { "http", "https", "www", "ftp"  };
  684.  
  685.                 if (prefixes.Any(prefix => listView1.SelectedItems[0].SubItems[0].Text.StartsWith(prefix)))
  686.                 {
  687.                     pv.Text = "Previewing: " + listView1.SelectedItems[0].SubItems[0].Text;
  688.                     pv.Navigate(listView1.SelectedItems[0].SubItems[0].Text);
  689.                 }
  690.                 else
  691.                 {
  692.                     pv.Text = "Previewing: " + Settings.Default.DefaultSearch.ToString() + listView1.SelectedItems[0].SubItems[0].Text;
  693.                     pv.Navigate(Settings.Default.DefaultSearch.ToString() + listView1.SelectedItems[0].SubItems[0].Text);
  694.  
  695.                 }
  696.             }
  697.             else
  698.             {
  699.  
  700.             }
  701.         }
  702.  
  703.         private void saveCurrentListToolStripMenuItem_Click(object sender, EventArgs e)
  704.         {
  705.             string[] prefixes = { "http", "https", "www", "ftp" };
  706.             string input = Interaction.InputBox("Save your list to a text file contained within the application folder.", "Save Visited List!", "");
  707.             if (input.Length == 0)
  708.             {
  709.                 MessageBox.Show("Oops...You forgot to specify a file name!");
  710.             }
  711.             else
  712.             {
  713.                 using (StreamWriter writer1 = new StreamWriter(input + ".txt"))
  714.                 {
  715.                     StringBuilder line = new StringBuilder();
  716.                     foreach (ListViewItem item in listView3.Items)
  717.                     {
  718.                         line.Clear();
  719.                         for (int i = 0; i < item.SubItems.Count; i++)
  720.                         {
  721.                             if (i > 0)
  722.                                 line.Append("|");
  723.                             line.Append(item.SubItems[i].Text);
  724.                         }
  725.                         writer1.WriteLine(line);
  726.                         notifyIcon1.BalloonTipText = input + ".txt" + " has been saved to the same folder as I am located!";
  727.                         notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  728.                         notifyIcon1.BalloonTipTitle = "RegaLink Polite Notice";
  729.                         notifyIcon1.ShowBalloonTip(500);
  730.                     }
  731.                 }
  732.             }
  733.  
  734.         }
  735.  
  736.         private void minimizeToSystemTrayToolStripMenuItem_Click(object sender, EventArgs e)
  737.         {
  738.             Hide();
  739.             notifyIcon1.BalloonTipText = "I ran away, but don't worry! If you right click me, I am sure I will come back out to play!";
  740.             notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
  741.             notifyIcon1.BalloonTipTitle = "Hi There!!";
  742.             notifyIcon1.ShowBalloonTip(500);
  743.         }
  744.  
  745.         private void testToolStripMenuItem_Click(object sender, EventArgs e)
  746.         {
  747.             RegaLinnk.Main.OpenMainForm();
  748.         }
  749.  
  750.         private void renameWindowToolStripMenuItem_Click(object sender, EventArgs e)
  751.         {
  752.             string input = Interaction.InputBox("Change The Window Title", "Edit Mode", "");
  753.             if (input.Length == 0)
  754.             {
  755.                 MessageBox.Show("Oops...You forgot to specify a window name!");
  756.             }
  757.             else
  758.             {
  759.                 this.Text = input;
  760.             }
  761.         }
  762.  
  763.  
  764.  
  765.  
  766.  
  767.         #region End
  768.     }
  769. }
  770.         #endregion

Title: Re: RegaLink
Post by: KynloStephen66515 on April 27, 2013, 12:06 PM
I should also mention, this is released as-is...there is no real commenting in the code...so...unless you understand it...it might be a little screwed to look at...I am not the tidiest coder on the planet...so stuff is in no logical order lol
Title: Re: RegaLink
Post by: cci8j on May 07, 2013, 10:47 AM
I'm interested in RegaLink and I have some additional features to request. Perhaps you can accommodate them, but regardless, thanks for your efforts so far.

Before I dive into the requests, I'd like to share with you a similar product I use quite a bit, and one that I intend to use in conjunction with RegaLink: GTTech's freeware AcqURL. AcqURL is a small, now-free product that I've used successfully for a number of years, and actually like quite a bit, although on reflection there's a bunch of parts to the application that I don't particularly make use of.

More about AcqURL, and downloadable here: CNet URL (http://download.cnet.com/AcqURL/3000-2370_4-10397957.html)

Originally, I thought that I was searching for an AcqURL replacement, but I think the two tools can co-exist quite well, so I'll try to live that way-- in fact, RegaLink may prolong the mileage I get from AcqURL, a bonus for me.

Things I like about AcqURL:

* Different tabs by topic

* Ability to add separating "headings" for organization

* Supports Windows shortcuts as a launchable item: this is quite useful and I'd encourage you to consider it for RegaLink. It is certainly the case that there are activities that are worth doing and "tracking as done," which is what RegaLink helps with.

* Color control

* Favicon detection for URLs

Problems I have with AcqURL, and ones that I think RegaLink can assist with:

* Fixed number of entries per tab (move many URLs to RegaLink lists)

So, in RegaLink, these are the features I'd like:

1. Specify URL.txt filename on the command-line. Critical-- since the program allows multiple instances to be active (yay!), it would be really great to be able to launch each one with a different URL.txt file.

2. Capitalize (not ALL CAPS) for the word "Add" on the right-mouseclick menu.

3. I believe that URL.txt files may be programmatically generated by processes; as such, these would be nice additions:

3a. Allow for a "heading" of some sort in URL.txt. When read, the list on screen has some heading displayed.

3b. Allow for a "separator" of some sort in URL.txt. When read, the list on screen has some separator displayed.

3c. Allow for a "comment" indicator in URL.txt Simply skip the line when reading in.

4. Header graphic control: if specified on the command-line, RegaLink will use a JPG file above the current multi-panel display. If the specified graphic is not found, isn't the right size, or otherwise strange, it'll use an internal graphic. This would go a long way toward customization and personalization, and even allows for integration with other programs.

5. Color control for font, background, borders, whatever. Either ad hoc via command-line, or from a family of color choices, or even a config file? A config file might be a convenient place to park options.

6. Font size flexibility: you'll be old someday too.

7. Change the time format to (something like) 14 May 10:25 AM: My thinking here is that year values won't really ever be needed, and quite probably seconds. A human-optimized date format

Again, a cool little app, please continue to add fertilizer, I think this can grow quite nicely with some attention. Additionally, we do want to see you in the pilot's seat again, right?  8)

Title: Re: RegaLink
Post by: mouser on May 10, 2013, 06:13 AM
Welcome to the site cci8j!

I like some of your suggestions.. It's a pity that stephen (the author) has been away from the forum lately.  I hope he'll get to the requests.
Title: Re: RegaLink
Post by: KynloStephen66515 on June 12, 2013, 05:57 AM
OK!

Let's get this done :P

Firstly...the favicon thing...I will leave till last...had some issues with that before (couldn't figure out for the life of me how to get it to load without becoming immensely unstable lol

CMD Line stuff can be added pretty easily, so will do that later today.

ADD URL is now Add URL :)

Date and Time format = Done

Font Size = Done

Colour Control = Done



Will release when I have added the features I mentioned here :)
Title: Re: RegaLink
Post by: cci8j on July 10, 2013, 08:04 PM
While Stephen recuperates, I was curious if anyone else has ideas for RegaLink?

I should mention that the FavIcon note refers to AcqURL's interface-- it's not actually a feature request, so please don't fuss on that account.

It's worth noting to anyone that's familiar with that tool, that I think RegaLink and AcqURL could actually work quite well together, so I plan to integrate them into my "daily use" regimen, and that also yoking RegaLink to processes that can create files of URLs programmatically will also be very cool-- even more powerful if a way emerges to put RegaLink in service of opening files in the local visible filesystems.

So, for example, if you wanted to check diagnostics on your system(s), you might have RegaLink look at the current collection of logfiles, and it would represent something of a checklist of places you wanted to be sure to visit, and a reference to places you'd already gotten.

Anyway, I'm happy to champion and cheerlead the cause, but was curious if anyone else has downloaded the current version and used it?

Cheers!

-cci8j
Title: Re: RegaLink
Post by: KynloStephen66515 on July 11, 2013, 06:45 PM
Hey cci8j,

Just to let you know, I am actually fully recovered now, however, I must ask for a little more patience due to me moving 350 miles from my current location.  Once I am settled in there, I can finally sit down and do some serious coding (I miss it like crazy) :)

Thanks for your continued support and loyalty!

-Stephen
Title: Re: RegaLink
Post by: KynloStephen66515 on July 20, 2013, 06:20 PM
1. Specify URL.txt filename on the command-line. Critical-- since the program allows multiple instances to be active (yay!), it would be really great to be able to launch each one with a different URL.txt file.

- Can be currently achieved (rather cumbersome but works) by having the executable in separate folders for each task - Not the final idea...but until I implement CLI then it will have to do

2. Capitalize (not ALL CAPS) for the word "Add" on the right-mouseclick menu.

- Done

3. I believe that URL.txt files may be programmatically generated by processes; as such, these would be nice additions:

- Huh?

3a. Allow for a "heading" of some sort in URL.txt. When read, the list on screen has some heading displayed.

- I assume you mean in the Form Title? - I will add something temporary here until you reply (Check the settings window in the new version I will be uploading) Seems I added the temp idea - Press CTRL-R in the main window :)

3b. Allow for a "separator" of some sort in URL.txt. When read, the list on screen has some separator displayed.

-More information please

3c. Allow for a "comment" indicator in URL.txt Simply skip the line when reading in.

-Not yet done

4. Header graphic control: if specified on the command-line, RegaLink will use a JPG file above the current multi-panel display. If the specified graphic is not found, isn't the right size, or otherwise strange, it'll use an internal graphic. This would go a long way toward customization and personalization, and even allows for integration with other programs.

-CLI not implemented yet - However, do you mean this to replace the "RegaLink" logo thing?  If so, I could quite easily just add this by loading up the graphic from the folder as a logo.png file, instead of containing the graphic inside the EXE, if this would help for now?

5. Color control for font, background, borders, whatever. Either ad hoc via command-line, or from a family of color choices, or even a config file? A config file might be a convenient place to park options.

- Added a stop-gap font option...currently doesn't save, but want to know if this is how you mean :)

6. Font size flexibility: you'll be old someday too.


-As above

7. Change the time format to (something like) 14 May 10:25 AM: My thinking here is that year values won't really ever be needed, and quite probably seconds. A human-optimized date format

- Going to figure out how to user-specify this option :)

~~~~~DOWNLOAD TO FOLLOW~~~~~
Title: Re: RegaLink
Post by: KynloStephen66515 on July 20, 2013, 06:28 PM
[ You are not allowed to view attachments ]

This is an EXPERIMENTAL download - THIS ONLY CONTAINS THE EXECUTABLE - NO OTHER FILES ARE INCLUDED

IF YOU HAVE ANY PROBLEMS WITH THIS BUILD, PLEASE REVERT BACK TO THE PREVIOUS EXECUTABLE AND REPORT PROBLEMS!
Title: Re: RegaLink
Post by: Tinman57 on July 20, 2013, 07:47 PM
  I would hate to see this become a bloated, bug filled app.  Add in too many request and that's what it may wind up as.....   :o
Title: Re: RegaLink
Post by: KynloStephen66515 on July 20, 2013, 07:50 PM
  I would hate to see this become a bloated, bug filled app.  Add in too many request and that's what it may wind up as.....   :o

Hence why this is an experimental download, not even classed as Beta :) - I want to see how the reaction is to it.

To be honest, I had not really planned to take this much further, hence why I released the code for it.  But, I don't mind adding a couple more features...Certainly don't see why it would be bug filled...Obviously not sure if this release has bugs...but seeing as I added very little and the code is simple as hell...it is unlikely :)
Title: Re: RegaLink
Post by: Tinman57 on July 25, 2013, 07:52 PM
  I would hate to see this become a bloated, bug filled app.  Add in too many request and that's what it may wind up as.....   :o

Hence why this is an experimental download, not even classed as Beta :) - I want to see how the reaction is to it.

To be honest, I had not really planned to take this much further, hence why I released the code for it.  But, I don't mind adding a couple more features...Certainly don't see why it would be bug filled...Obviously not sure if this release has bugs...but seeing as I added very little and the code is simple as hell...it is unlikely :)
-Stephen66515 (July 20, 2013, 07:50 PM)

  Well I'm rooting for ya'!   :)
Title: Re: RegaLink
Post by: cci8j on October 03, 2013, 09:31 PM
Wow, sorry to be away. I hadn't noticed the activity, and I wouldn't want that to be interpretted as losing interest.

I've prepared this reply to sort out some of the confusion my previous post may have caused, and to help further flesh out the ideas I have in mind-- they'll benefit from your thinking as well.

First, I should say that I've downloaded your beta version and kicked the tires, thanks for compiling and sharing!

I had requested a "programmatic re-labeling," as it were-- not to the window, rather to the "Stay Productive" legend. I certainly value being urged to stay productive, but I think we can put that area of screen real estate to clever use!

[ You are not allowed to view attachments ]

If you'll indulge me, let's step back for a moment, and I'll show you the power I already see in Regalink, and what I'm driving at. Hopefully, it's a place you want to go!

I mentioned that "other programs may create URL.txt files," and that's why they need to be named on the command line. I say that because there's LOTS of ways to end up with a collection of URLs you want to visit. You could, for example, save a file from your browser's bookmarks. Or, you could screen scrape a page on the web. Or the results of a query, or... you get the idea. In fact, I see the world like this:

[ You are not allowed to view attachments ]

That's OK, Regalink doesn't really care where its input file came from, as long as it's syntactically correct. That's a beautiful thing, and it becomes the underpinning of my other requests...

Consider the commandline execution I requested. Those lines might look something like this:

[ You are not allowed to view attachments ]

Those would hopefully execute 3 instances of Regalink, like these:
[ You are not allowed to view attachments ]

and


[ You are not allowed to view attachments ]

and


[ You are not allowed to view attachments ]

This would be VERY powerful in terms of general desktop integration. You might remember my earlier note regarding "not caring if the URL is on the web, or local to the machine (that is, a file execution)..." Given these capabilities (and I think they are very close to your grasp), you could envision a future where while you sleep, some process gathers up or makes decisions on what URLs you should visit, and then pops up a Regalink window, properly named, with links and commands in a nice ordered list.

Personally, I think the date and time stamping may ultimately not be worth too much fuss, but certainly succinct display is warranted. 99.99% of the time, I'm sure that the "year" or "tenths-of-seconds" are not going to be needed. I would suggest that the information might not really be needed in its entirety, but I admit I could be shortsighted on this count.

Lastly then, let's consider the file format for the "URL.txt" file. Consider this file:


; OK, let's pretend that this is the contents of URL.txt
;
; First, some nomenclature. Look at the first character in each of the following lines:
;
; This is a "comment" indicator in URL.txt Simply skip the line when reading in.
# This is a "heading" line. When read, the list on screen has some heading displayed.
% This is a "separator" of some sort in URL.txt. When read, the list on screen has some separator displayed.
;
; These can be quite useful. At a minimum, it allows us to embed comments in URL.txt that might be useful
; to us, especially if we're generating URL.txt programmatically. For example, we might note these facts:
;
; The following URLs were gathered by a perl script munging an RSS feed (myHappyPerlScript.pl)
; The intended use is opening in Regalink.
;
;
https://www.donationcoder.com
http://www.imgur.com
http://www.google.com
;
;
; Since we're still pretending, consider this:
# Political Blogs
http://www.politicalblog1.com
http://www.politicalblog2.com
http://www.politicalblog3.com
%
# Food Blogs
http://www.foodblog1.com
http://www.foodblog2.com
http://www.foodblog3.com
%
# Music Blogs
http://www.musicblog1.com
http://www.musicblog2.com
http://www.musicblog3.com
;
;


Maybe, just maybe, there's a way that such a file could look like this:
[ You are not allowed to view attachments ]

Now, I admit, this is all vapor at the moment, but you're really not that far away, and this is much more like the napkin I'd be drawing on if we were seated opposite each other at the pub, and turning over ideas on what this software could be.

Let me come up for air, then, and ask what you think, and which bits might be the next easiest to knock out? Great journeys are taken in small steps, after all. 8)

Cheers, and thanks for your efforts!

-cci8j
Title: Re: RegaLink
Post by: KynloStephen66515 on August 30, 2014, 11:26 PM
Wow...I think I am in with a chance to win the award for most delayed reply on DonationCoder.com ever...and not even sure you still check the forums here, but anyhow:

I am no longer developing RegaLink as I no longer have enough free time to code :(  I released the code to the world for people to modify and use however they want.

The code was released with no license attached...you are free to download/use/play with/modify/set on fire as much as you want :)
Title: Re: RegaLink
Post by: hamradio on August 31, 2014, 10:28 PM
Wow...I think I am in with a chance to win the award for most delayed reply on DonationCoder.com ever...and not even sure you still check the forums here, but anyhow:

I am no longer developing RegaLink as I no longer have enough free time to code :(  I released the code to the world for people to modify and use however they want.

The code was released with no license attached...you are free to download/use/play with/modify/set on fire as much as you want :)

I have been working on a complete rewrite of one similar it will be due out late this year (NANY 2015) if all goes as planned.

An actual current screenshot with some options disabled/enabled:
[ You are not allowed to view attachments ]

Rest of the info ATM is classified including the name of said program.

Edit: Mouser thought I should let everyone know and show a teaser so everyone would know a version that is similar is being worked on...


Title: Re: RegaLink
Post by: KynloStephen66515 on September 01, 2014, 10:51 AM
Wow...I think I am in with a chance to win the award for most delayed reply on DonationCoder.com ever...and not even sure you still check the forums here, but anyhow:

I am no longer developing RegaLink as I no longer have enough free time to code :(  I released the code to the world for people to modify and use however they want.

The code was released with no license attached...you are free to download/use/play with/modify/set on fire as much as you want :)

I have been working on a complete rewrite of one similar it will be due out late this year (NANY 2015) if all goes as planned.

An actual current screenshot with some options disabled/enabled: (see attachment in previous post (https://www.donationcoder.com/forum/index.php?topic=34461.msg363286#msg363286))
Rest of the info ATM is classified including the name of said program.

Edit: Mouser thought I should let everyone know and show a teaser so everyone would know a version that is similar is being worked on...




Ham, once you release the software, let me know and I will put the link up in the first post on this thread so people can see yours as well! xD
Title: Re: RegaLink
Post by: KynloStephen66515 on October 06, 2014, 04:16 PM
Further to the mention about HamRadio's offering above, he has now released "Link Warlock" in Beta form on the NANY 2015 thread.

See his work here: https://www.donationcoder.com/forum/index.php?topic=39172.0

NANY 2015 (https://www.donationcoder.com/forum/index.php?board=319.0) Entry Information

Application NameLink Warlock
Version0.10.6 build 2014
Short DescriptionAllows you to store entries in xml files to open and launch as needed with searching.
Supported OSesWindows 7+
Web PageNot Ready Yet
Download LinkDOWNLOAD AVAILABLE ON OFFICIAL THREAD (https://www.donationcoder.com/forum/index.php?topic=39172.0)
System Requirements
  • .NET Framework 4.5
  • Obviously a computer...
Version History
Authorhamradio (https://www.donationcoder.com/forum/index.php?action=profile;u=18911)

Description
Allows you to store entries in xml files to open and launch as needed with searching and other features.

Features (in no particular order)
  • Built-In toggle to show window always on top or not.
  • Customizable browser path, file launcher, and search url for searchwords.
  • Customizable default group names for new/imported entries.
  • Display/Hide parts of the interface you want/don't want to show.
  • Display/Hide selected columns as well as even hiding the column headers all together.
  • Each entry may have short notes added or none at all totally up to you.
  • Enter group names as appropriate for each entry if you don't want the default group names to be used.
  • Importation of plain text files with 1 entry per line and possible more import features will be implemented later down the road.
  • List header goes based on filename with smart capitalization and removal of underscores for spaces.
  • Nice tool tips shown when hovering over the group name as well as entry information for each column.
  • Search entries, notes, or just search both entries and notes at the same time.

Screenshots

The main screen... (see attachment in previous post (https://www.donationcoder.com/forum/index.php?topic=39172.msg365903#msg365903))
The launch/default group names setup dialog... (see attachment in previous post (https://www.donationcoder.com/forum/index.php?topic=39172.msg365903#msg365903))
Usage

Installation
Extract to any portable directory location and run.

Using the Application
Add urls, searchwords and/or file locations to the list, then click to launch.
Note: Can use <appdir> for macro for file location and a few others to be revealed later.

Uninstallation
Delete the Link Warlock files.

Known Issues
None at this time. Let me know of any please...

Inspired by...
RegaLink (https://www.donationcoder.com/forum/index.php?topic=34461.0)

Oct 6th, 2014 Notice
I will not be able to work on it much more till closer to the end of the month at least.

Download link at top of topic as well.
Title: Re: RegaLink
Post by: nkormanik on February 02, 2021, 07:51 AM
Thank you!  Great work, Stephen66515