Code Monkey home page Code Monkey logo

pyqso's People

Contributors

ctjacobs avatar dnet avatar merkato avatar njohnsn avatar wb5vqx 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

Watchers

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

pyqso's Issues

User-defined Date/Time format

Without changing the format of the Date/Time data stored in the database, let the user choose how they want the Date/Time to be displayed. For example, if the user provides a formatting string like "%d %M %Y", PyQSO could display the date as "24 March 2014" (instead of "20140324", which is an example of how the Date is currently stored in the database).

Suggested by Paride Legovini.

Default field values

Allow the user to define default values for fields, or perhaps re-use some details from the previous QSO.

Pin-point QTH on grey line map

Allow the user to specify their QTH in the Preferences and pin-point this location on the grey line map.

Based on feedback from Timo OH7JHA.

Android version ?

Hi,
thanks for other fix.
I like to use pyqso SOTA, so I'm looking for android version.
With https://github.com/kivy/python-for-android It should not be too difficult.
The hard work seems to be a new simplified gui, may be done with kivy.

You already have something planned, or I can try it, if I find the time?

Window implementation via glade

Maybe it's a good idea to seperate gui and program logic via glade files.

try:
from gi.repository import Gtk
except:
print("GTK Not Available")
sys.exit(1)

APPDIR = os.path.dirname(os.path.abspath(file))

class MyWindow(Gtk.Window):

def __init__(self):                                                                                                                                                                       
    self.builder = Gtk.Builder()                                                                                                                                                          
    self.builder.add_from_file("assets/ui/main.glade")                                                                                                                                 
    self.window = self.builder.get_object("windowMain")

...

Option to keep the Add Record window open

Once a new QSO is added, clear the fields and keep the Add Record dialog open so another (new) QSO can be entered afterwards. This should be an option in the Preferences. Useful if lots of QSOs are expected to be made in quick succession.

Based on feedback from Timo OH7JHA.

Bookmarks for DX clusters

It would be nice to be able to bookmark DX clusters, or perhaps have a 'recently used' list. This will have to wait until after v0.2 is released.

Import ADIF records into database in one go

Currently the slowest part of importing ADIF files seems to be the insertion of each record one-by-one into the sqlite database, with individual database commits. It would probably be faster to queue them up somehow and insert them all in one go.

Importing records containing latin-1 characters fails

PyQSO fails to import ADIF records containing latin-1 characters (e.g. ä). The addition of new records may fail as well.

The patch below causes PyQSO to try and replace the latin-1 characters with UTF-8 ones. The ADIF records will then be added instead of being skipped. However, I think some characters may be lost that way. Supporting all the different character encoding schemes seems rather difficult - Anyone have any experience with this sort of thing?

Thanks to Timo OH7JHA for reporting this problem.

diff --git a/pyqso/adif.py b/pyqso/adif.py
index 96da451..d0a459d 100644
--- a/pyqso/adif.py
+++ b/pyqso/adif.py
@@ -251,7 +251,7 @@ class ADIF:
                   continue
                else:
                   if( (r[field_name] != "NULL") and (r[field_name] != "") ):
-                     f.write("<%s:%d>%s\n" % (field_name.lower(), len(r[field_name]), r[field_name]))
+                     f.write("<%s:%d>%s\n" % (field_name.lower(), len(r[field_name]), r[field_name].encode("utf-8")))
             f.write("<eor>\n")

          logging.debug("Finished writing records to the ADIF file.")
@@ -259,8 +259,9 @@ class ADIF:

       except IOError as e:
          logging.error("I/O error %d: %s" % (e.errno, e.strerror))
-      except:
-         logging.error("Unknown error occurred when writing the ADIF file.")
+      except Exception as e: # All other exceptions.
+         logging.error("An exception occurred when writing the ADIF file.")
+         logging.error(e)

       return

diff --git a/pyqso/logbook.py b/pyqso/logbook.py
index 4f265ab..9d478ed 100644
--- a/pyqso/logbook.py
+++ b/pyqso/logbook.py
@@ -181,6 +181,7 @@ class Logbook(Gtk.Notebook):
          self.db_disconnect() # Destroy any existing connections first.
          self.connection = sqlite.connect(path)
          self.connection.row_factory = sqlite.Row
+         self.connection.text_factory = lambda x: unicode(x, "utf-8", errors="replace")
       except sqlite.Error as e:
          # PyQSO can't connect to the database.
          logging.exception(e)

Fix row ID when adding records

Before inserting one or more QSO records with executemany, PyQSO currently assumes that the next row ID to be used will be max(rowid)+1. This is not always the case. Until the logbook is reloaded/refreshed, the incorrect row IDs are used which can cause problems when e.g. removing duplicate records.

[dxcluster] It's not possible to see every return value

If I connect e.g. to dxfun.com:8000 via telnet and type 'help' I get this

HELP El comando HELP (AYUDA)
HELP existe para un cierto n�mero de comandos. La sintaxis es:

HELP

Donde es el nombre del comando de cual quieres ayuda.

Todos los comandos pueden ser abreviados, SHOW/DX puede ser
abreviado con SH/DX, ANNOUNCE puede acortarse en AN, etc.

Busca con el comando APROPOS que chequea el fichero
completo de ayuda por la que especifiques y te dar
una lista de comandos que luego podr�s mirar con HELP.

In PyQSO I get no response. It seems to be a problem with multi line responses, because I can see 'normal' notifications like 'pls set your qth' etc.

Join the Date and Time fields

Join the Date and Time fields to allow QSOs to be sorted in the correct chronological order. Currently, QSOs can be ordered by date, but not both date and time. This suggestion was made by Paride Legovini.

I think this should be done only at the PyQSO user interface level, not at database level.

Update documentation

In preparation for the v0.3 release of PyQSO, the documentation will need updating. This includes descriptions of new features, and new screenshots following improvements to the user interface.

Basemap troubles on Ubuntu 14.10

I didn't have all the prereq's installed when I first ran this program. It loaded ok but I couldn't create a new DB (see #20). Anyway once I installed basemap, I get the following exception on load:

$ pyqso
Traceback (most recent call last):
  File "/usr/local/bin/pyqso", line 40, in <module>
    from pyqso.toolbox import *
  File "/usr/local/lib/python2.7/dist-packages/pyqso/toolbox.py", line 25, in <module>
    from pyqso.grey_line import *
  File "/usr/local/lib/python2.7/dist-packages/pyqso/grey_line.py", line 28, in <module>
    from mpl_toolkits.basemap import Basemap
  File "/usr/lib/pymodules/python2.7/mpl_toolkits/basemap/__init__.py", line 31, in <module>
    from mpl_toolkits.axes_grid1 import make_axes_locatable
  File "/usr/lib/pymodules/python2.7/mpl_toolkits/axes_grid1/__init__.py", line 4, in <module>
    from axes_grid import Grid, ImageGrid, AxesGrid
  File "/usr/lib/pymodules/python2.7/mpl_toolkits/axes_grid1/axes_grid.py", line 3, in <module>
    import matplotlib.pyplot as plt
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 93, in <module>
    _backend_selection()
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 87, in _backend_selection
    if gobject.MainLoop().is_running():
  File "/usr/lib/python2.7/dist-packages/gi/__init__.py", line 62, in __getattr__
    raise AttributeError(_static_binding_error)
AttributeError: When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183

Frankly, this looks like a Basemap bug if anything but I wasn't able to track it down.

Sphinx-based documentation

Use Sphinx to generate the documentation, instead of pdfLaTeX. This offers a much nicer way of documenting the code, and allows the documentation to be generated and hosted on e.g. readthedocs.org.

Satellite QSO support

Add support for the SAT_NAME, SAT_MODE and PROP_MODE ADIF fields for the purposes of satellite QSO logging.

Trouble creating new logbook

I just cloned this repo and am running it for the first time. When I choose Open or Create I was given an open dialog but had no option to create a new SQL database from scratch so I was unable to make my first logbook. Am I missing something?

The BEL character should be handled properly

When connected to a DX cluster, a BEL character (ASCII value of 7) may be present at the end of each line received from the Telnet server. This should either be filtered out or handled gracefully.

DX cluster tests

Mock the responses from the Telnet server for testing purposes, using unittest.mock.

Callsign map

Add the option of showing where a given station is in the world. Need to handle the special case where a callsign is being used in a different country, e.g. PA/MYCALL.

Total number of QSOs on Summary page

The Summary page currently just shows the total number of logs in the logbook. In addition to this, it would be useful to have the total number of QSOs made.

add default logbook

Hi, new ham here.
Any reason to not open last logbook by default ?
If not, I like :

  • one option to open default logbook on start [ yes or not],
  • one option to set the default logbook, or last opened.

73, IU2HDS

Default unit for the Frequency field

Let the user decide which unit of frequency (e.g. kHz, MHz) is used to display data in the Frequency field.

In the database, all Frequency values will still be stored in MHz.

Suggested by Paride Legovini.

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.