Code Monkey home page Code Monkey logo

chameleoncoder's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

sprime01

chameleoncoder's Issues

RichContent

implement parsing and displaying of RichContent.

display: "convert" it into HTML and show it, optionally save it to a file

interaction between resources and CC

find a way, for example a class containing events + delegates (or better solutions) to make it possible to react toevents and to register tools etc. from resources or ComponentProviders

COM support

support COM to allow easy automation

(installation and deinstallation on demand)

language changing causes breadcrumb problems

Steps to reproduce:

  1. Run CC, go to the settings page and switch the language.
    Then open another tab or navigate within the current tab.
  2. Navigate to settings again. Switch back the language to the original setting.
    Once again navigate within the current tab or switch to another tab.

What happens:

  1. The breadcrumb path updates once, e.g. from "settings" to "Einstellungen".
    But after that any navigation will no longer update the breadcrumb.
  2. After resetting the language, any navigation will update the breadcrumb again.

where to save settings

Currently, settings are saved to the user's AppData folder. As CC should be portable, this is not ok.

solution 1:

Save settings to app folder

problems:

  • possibly problems with UAC etc.
  • no different settings for several users

solution 2:

Let user decide where to save settings

problems:

  • where to save this setting :D
  • possibly problems with UAC etc.

solution 3:

Add a cmd param "--config "

problems:

  • what to do if no file was passed?
  • possibly problems with UAC etc.

more types of plugins

Extend plugin possiblities, ...

... including:

  • (unmanaged) COM plugins registered by CLSID (and optionally DLL, so no system registration is needed)
  • Services written in scripting languages like IronRuby and IronPython (.NET based)

Settings are not saved properly

Steps to reproduce:

  • go to the plugin page
  • install or uninstall a plugin or several
  • restart CC

What happens:

  • the plugin changes do not take effect

Special:

  • saving of other settings works, it's just the collection changing

XML validation

We need some (clever) way to validate the XMLDocuments. I read on XSD, but it seems it has some problems on circular type references, and I didn't manage to get it working. (May be that it's just me ;-)

plugin manager dialog

add a dialog to handle plugins,
including possibility to disable & uninstall them.

schema does not allow RichContent

Currently, the schema does not yet allow RichContent keys. To allow them, we need a good syntax, similar to the resource syntax:

  • cc:id to identify the instance
  • cc:type to identify the type
  • cc:name to have a display name

Another question is whether metadata, references etc. should also be allowed for them.

Reference management

Features:

  • creating and deleting a reference

Details

  • commands that can be used for files, too

undesirable opening of resource list

Steps to reproduce:

  • open the settings page
  • change any setting
  • double-click a resource in the treeview

What happens:

  • the settings page will be replaced by the resource list page
  • the resource will be opened in a separate window

Special:

  • doing this one time seems to make it happen every time, even when settings arent changed

language changing switches page to WelcomePage

Steps to reproduce:

  • change the language in settings tab

What happens:

  • the current tab navigates to Home page
  • the breadcrumb updates properly to reflect this, other tabs aren't affected

Difference between cancel and invalid input

What:

We should make a difference between an action where the user _canceled_ an action and where the input is _invalid.
If the user _canceled
, just stop silently (or show an information instead of an error).
This affects any user input actions, such as input, confirmation (?), file and directory selection.

Details:

The easiest way would be a internal bool Canceled { get; set; } property in the according EventArgs classes, which would have to be checked in all models.
Event wrapper methods would have to return the entire EventArgs instance to handle this properly.

improve IResolvable

  • need a better way to decide whether to resolve or not than "shouldResolve".
  • maybe a ShouldResolve(object) method?

After improving it, update the CustomGroupConverter etc.

File management

Features

  • a page displaying the currently opened file
    • managing of file-metadata
    • managing of file-references
    • importing a resource from another file
  • creation of new empty files

github integration

a service plugin distributed with the main app, used for git (-hub) integration

The uploader

  • selection / creation of "special files": .gitignore, .gitattributes, README, ...
  • option: include data files?
  • option: include package
    • option: as separate download (github only)
  • moving to temporary folder:
    • dir name == name of parent resource
    • user setting: name template (enables including ofn other information)

The console:

a console window integrated in the app to make commiting changes easier

breadcrumb navigation

update the breadcrumb control to show the active resource and react on changes on it

rework settings management

Rework the settings so that

  • a custom service can at best be avoided
  • settings are instance-based entirely
  • the settings class or a wrapper is available directly to COM, exposing an instance from ChameleonCoderApp

problems with multi-threading and ObservableCollection<T>

Description

The InstanceCollection class is used for resource management & RichContent management.
It is based on the ObservableCollection class, which causes errors when used with several threads.
They occur especially when the resource-loading process is slowed down, e.g. by debugging MessageBoxes.

Solution

own implementation of

page is switching when changing language

Steps to reproduce:

  • Open 2 tabs: 1x settings, 1x home (order doesn't matter)
  • go to settings, change language

What happens:

  • you'll see the Home page without having switched, and with the 'Settings' title
  • switching to other tab and back gives you settings again

Special:

  • This seems only to appear with Home page as 2nd page, and only when changing the language setting

file extension support

install file extensions on demand, possible through UI or cmd

*.ccm - maps (contain references to other files or directories)
*.ccr - resource files

How to control plugin actions

Maybe it should be possible to control what plugin does what at which time...

This could maybe accomplished through a temporary token (a Guid).

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.