Commit e2b66891 authored by twanvl's avatar twanvl

Finally got precompiled headers to work.

 Now all C++ files need to #include <util/prec.hpp>
 That is why all .cpp files are touched by this commit

Many changes to installers and update checking:
     - the window is now called PackagesWindow, in a new source file
     - update checking is now independent from the PackagesWindow. For update checking only a list of package versions are needed (vector<PackageDependency>). This is much less information to download at each startup.
     - the list of available packages is now a list of available Installers, since an installer can contain multiple packages.
     - moved the logic of dependency checking etc. to data/installer
     - moved the actual installation to util/io/package_manager
     - moved directory iteration/creation logic to util/file_utils
     - added PackageDirectory: the local and global package directory now have their own object (was part of PackageManager)
     - added PackageVersion: for detecting if a package has been modified after it was installed.
     - added PackageDescription: description/header of a package. Basicly the same as what Packaged provides.
     - added DownloadableInstaller: where to find an insaller, what does it contain?
     - added InstallablePackage: brining it all together: installer, package, status, action.

Current status: the insaller is currently broken in a few places, more on that soon.
parent e042585b
mse version: 0.3.5 mse version: 0.3.6
installer group: locales
full name: English full name: English
version: 2007-09-23 version: 2007-09-23
icon: usgb.png
############################################################## Menu items ############################################################## Menu items
menu: menu:
...@@ -93,13 +95,6 @@ menu: ...@@ -93,13 +95,6 @@ menu:
symmetry: S&ymmetry F9 symmetry: S&ymmetry F9
paint: P&aint F10 paint: P&aint F10
# Updates window
apply changes: Apply changes
cancel changes: Cancel changes
install package: Install package
upgrade package: Upgrade package
remove package: Remove package
############################################################## Menu help texts ############################################################## Menu help texts
help: help:
welcome: Welcome to Magic Set Editor welcome: Welcome to Magic Set Editor
...@@ -459,6 +454,23 @@ label: ...@@ -459,6 +454,23 @@ label:
# Symbol editor # Symbol editor
sides: sides sides: sides
# Packages window
package name: Package
package installed version: Installed version
package remote version: Latest version
package status: Status
package action: Action
package conflicts: conflicting modifications
package modified: local modifications
package updates: updates available
package installed: installed
package installable: not installed
install package: install
upgrade package: upgrade
remove package: remove
############################################################## Buttons/checkboxes/choices in the GUI ############################################################## Buttons/checkboxes/choices in the GUI
button: button:
# Editor # Editor
...@@ -516,6 +528,15 @@ button: ...@@ -516,6 +528,15 @@ button:
enabled: Enabled enabled: Enabled
whole word: Match whole word only whole word: Match whole word only
# Packages window
install package: &Install
upgrade package: &Upgrade
remove package: &Remove
install group: &Install All
upgrade group: &Upgrade All
remove group: &Remove All
############################################################## Titles in the GUI ############################################################## Titles in the GUI
title: title:
magic set editor: Magic Set Editor magic set editor: Magic Set Editor
...@@ -639,9 +660,7 @@ error: ...@@ -639,9 +660,7 @@ error:
dependency not given: dependency not given:
The package '%s' uses files from the package '%s', but it does not list a dependency. The package '%s' uses files from the package '%s', but it does not list a dependency.
To resolve this, add: To resolve this, add:
depends on: depends on: %s %s
package: %s
version: %s
# Script stuff # Script stuff
has no member: %s has no member '%s' has no member: %s has no member '%s'
...@@ -687,6 +706,22 @@ error: ...@@ -687,6 +706,22 @@ error:
# Package update window # Package update window
no packages: Found no package updates. no packages: Found no package updates.
checking updates: Checking for updates. checking updates: Checking for updates.
can't download installer:
Unable to download installer for package %s from %s.
Nothing has been installed.
downloading updates: Downloading updates (%d of %d)
installing updates: Updating packages (%d of %d)
remove packages:
This will remove %s packages, do you want to continue?
remove packages modified:
This will remove %s packages, %s of those have been modified after installing.
Removing them can not be undone.
Do you want to continue?
cannot create file: Can not create file '%s', continue installation?
############################################################## Types used in scripts / shape names ############################################################## Types used in scripts / shape names
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/action/keyword.hpp> #include <data/action/keyword.hpp>
#include <data/keyword.hpp> #include <data/keyword.hpp>
#include <data/set.hpp> #include <data/set.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/action/set.hpp> #include <data/action/set.hpp>
#include <data/set.hpp> #include <data/set.hpp>
#include <data/card.hpp> #include <data/card.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/action/symbol.hpp> #include <data/action/symbol.hpp>
#include <data/action/symbol_part.hpp> #include <data/action/symbol_part.hpp>
#include <util/error.hpp> #include <util/error.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/action/symbol_part.hpp> #include <data/action/symbol_part.hpp>
#include <gfx/bezier.hpp> #include <gfx/bezier.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/action/value.hpp> #include <data/action/value.hpp>
#include <data/field.hpp> #include <data/field.hpp>
#include <data/field/text.hpp> #include <data/field/text.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/card.hpp> #include <data/card.hpp>
#include <data/game.hpp> #include <data/game.hpp>
#include <data/stylesheet.hpp> #include <data/stylesheet.hpp>
......
...@@ -49,7 +49,7 @@ class Card : public IntrusivePtrVirtualBase { ...@@ -49,7 +49,7 @@ class Card : public IntrusivePtrVirtualBase {
/// Extra values for specitic stylesheets, indexed by stylesheet name /// Extra values for specitic stylesheets, indexed by stylesheet name
DelayedIndexMaps<FieldP,ValueP> extra_data; DelayedIndexMaps<FieldP,ValueP> extra_data;
/// Styling information for a particular stylesheet /// Styling information for a particular stylesheet
IndexMap<FieldP, ValueP>& extraDataFor(const StyleSheet& stylesheet) ; IndexMap<FieldP, ValueP>& extraDataFor(const StyleSheet& stylesheet);
/// Keyword usage statistics /// Keyword usage statistics
vector<pair<Value*,const Keyword*> > keyword_usage; vector<pair<Value*,const Keyword*> > keyword_usage;
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/export_template.hpp> #include <data/export_template.hpp>
#include <data/game.hpp> #include <data/game.hpp>
#include <data/field.hpp> #include <data/field.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field.hpp> #include <data/field.hpp>
#include <data/field/text.hpp> #include <data/field/text.hpp>
#include <data/field/choice.hpp> #include <data/field/choice.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/boolean.hpp> #include <data/field/boolean.hpp>
// ----------------------------------------------------------------------------- : BooleanField // ----------------------------------------------------------------------------- : BooleanField
...@@ -31,8 +32,8 @@ BooleanStyle::BooleanStyle(const ChoiceFieldP& field) ...@@ -31,8 +32,8 @@ BooleanStyle::BooleanStyle(const ChoiceFieldP& field)
: ChoiceStyle(field) : ChoiceStyle(field)
{ {
render_style = RENDER_BOTH; render_style = RENDER_BOTH;
//%%choice_images[_("yes")] = ScriptableImage(_("buildin_image(\"bool_yes\")")); //choice_images[_("yes")] = ScriptableImage(_("buildin_image(\"bool_yes\")"));
//%%choice_images[_("no")] = ScriptableImage(_("buildin_image(\"bool_no\")")); //choice_images[_("no")] = ScriptableImage(_("buildin_image(\"bool_no\")"));
choice_images[_("yes")] = ScriptableImage(new_intrusive1<BuiltInImage>(_("bool_yes"))); choice_images[_("yes")] = ScriptableImage(new_intrusive1<BuiltInImage>(_("bool_yes")));
choice_images[_("no")] = ScriptableImage(new_intrusive1<BuiltInImage>(_("bool_no"))); choice_images[_("no")] = ScriptableImage(new_intrusive1<BuiltInImage>(_("bool_no")));
} }
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/choice.hpp> #include <data/field/choice.hpp>
#include <util/io/package.hpp> #include <util/io/package.hpp>
#include <wx/imaglist.h> #include <wx/imaglist.h>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/color.hpp> #include <data/field/color.hpp>
#include <script/script.hpp> #include <script/script.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/image.hpp> #include <data/field/image.hpp>
// ----------------------------------------------------------------------------- : ImageField // ----------------------------------------------------------------------------- : ImageField
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/information.hpp> #include <data/field/information.hpp>
#include <script/script.hpp> #include <script/script.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/multiple_choice.hpp> #include <data/field/multiple_choice.hpp>
// ----------------------------------------------------------------------------- : MultipleChoiceField // ----------------------------------------------------------------------------- : MultipleChoiceField
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/package_choice.hpp> #include <data/field/package_choice.hpp>
#include <util/io/package_manager.hpp> #include <util/io/package_manager.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/symbol.hpp> #include <data/field/symbol.hpp>
#include <render/symbol/filter.hpp> #include <render/symbol/filter.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/field/text.hpp> #include <data/field/text.hpp>
#include <util/tagged_string.hpp> #include <util/tagged_string.hpp>
#include <script/script.hpp> #include <script/script.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/font.hpp> #include <data/font.hpp>
// ----------------------------------------------------------------------------- : Font // ----------------------------------------------------------------------------- : Font
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
#include <data/settings.hpp> #include <data/settings.hpp>
#include <data/set.hpp> #include <data/set.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/clipboard.hpp> #include <data/format/clipboard.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
#include <data/card.hpp> #include <data/card.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
#include <data/set.hpp> #include <data/set.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
// ----------------------------------------------------------------------------- : // ----------------------------------------------------------------------------- :
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
#include <data/set.hpp> #include <data/set.hpp>
#include <data/stylesheet.hpp> #include <data/stylesheet.hpp>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#pragma warning(disable:4996) #pragma warning(disable:4996)
#endif #endif
#include <util/prec.hpp>
#include <data/format/image_to_symbol.hpp> #include <data/format/image_to_symbol.hpp>
#include <gfx/bezier.hpp> #include <gfx/bezier.hpp>
#include <util/error.hpp> #include <util/error.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
#include <data/set.hpp> #include <data/set.hpp>
#include <data/game.hpp> #include <data/game.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
#include <data/set.hpp> #include <data/set.hpp>
#include <data/settings.hpp> #include <data/settings.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
#include <data/set.hpp> #include <data/set.hpp>
#include <data/game.hpp> #include <data/game.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/format/formats.hpp> #include <data/format/formats.hpp>
#include <data/game.hpp> #include <data/game.hpp>
#include <data/set.hpp> #include <data/set.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/game.hpp> #include <data/game.hpp>
#include <data/field.hpp> #include <data/field.hpp>
#include <data/field/choice.hpp> #include <data/field/choice.hpp>
......
This diff is collapsed.
...@@ -9,22 +9,14 @@ ...@@ -9,22 +9,14 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <data/settings.hpp>
#include <util/prec.hpp> #include <util/prec.hpp>
#include <util/io/package.hpp> #include <util/io/package.hpp>
// ----------------------------------------------------------------------------- : InstallType DECLARE_POINTER_TYPE(Installer);
// Platform default install directory. DECLARE_POINTER_TYPE(PackageVersion);
#ifdef __WXMSW__ DECLARE_POINTER_TYPE(PackageDescription);
#define DEFAULT_INSTALL_LOCAL false DECLARE_POINTER_TYPE(DownloadableInstaller);
#else DECLARE_POINTER_TYPE(InstallablePackage);
#define DEFAULT_INSTALL_LOCAL true
#endif
inline bool isInstallLocal(const InstallType& type)
{
return type == INSTALL_DEFAULT ? DEFAULT_INSTALL_LOCAL : type == INSTALL_LOCAL;
}
// ----------------------------------------------------------------------------- : Installer // ----------------------------------------------------------------------------- : Installer
...@@ -32,7 +24,7 @@ inline bool isInstallLocal(const InstallType& type) ...@@ -32,7 +24,7 @@ inline bool isInstallLocal(const InstallType& type)
class Installer : public Packaged { class Installer : public Packaged {
public: public:
String prefered_filename; ///< What filename should be used (by default) String prefered_filename; ///< What filename should be used (by default)
vector<String> packages; ///< Packages to install vector<PackageDescriptionP> packages; ///< Packages to install
/// Load an installer from a file, and run it /// Load an installer from a file, and run it
static void installFrom(const String& filename, bool message_on_success, bool local); static void installFrom(const String& filename, bool message_on_success, bool local);
...@@ -54,5 +46,133 @@ class Installer : public Packaged { ...@@ -54,5 +46,133 @@ class Installer : public Packaged {
DECLARE_REFLECTION(); DECLARE_REFLECTION();
}; };
// ----------------------------------------------------------------------------- : Installer descriptions
/// A description of a package in an installer
class PackageDescription : public IntrusivePtrBase<PackageDescription> {
public:
PackageDescription();
PackageDescription(const Packaged& package);
String name; ///< Filename of the package
Version version; ///< Version number of this package
String short_name; ///< Short name of this package
String full_name; ///< Name of this package, for menus etc.
String icon_url; ///< Filename or URL of icon to use in package lists
Image icon; ///< Icon for the package
String installer_group; ///< Where to put this package in the installer
int position_hint; ///< A hint for the package list
String description; ///< Changelog/description
vector<PackageDependencyP> dependencies; ///< Dependencies of this package
DECLARE_REFLECTION();
};
/// A description of the contents of an installer
class InstallerDescription : public IntrusivePtrBase<InstallerDescription> {
public:
vector<PackageDescriptionP> packages;
DECLARE_REFLECTION();
};
/// Information on an installer that can be downloaded
class DownloadableInstaller : public IntrusivePtrBase<DownloadableInstaller> {
public:
DownloadableInstaller() : downloadable(true) {}
DownloadableInstaller(const InstallerP& installer);
~DownloadableInstaller();
InstallerP installer; ///< The installer, if it is loaded
String installer_url; ///< The URL where the installer can be found
String installer_file; ///< The temp file where the installer can be found (after downloading)
bool downloadable; ///< Is the installer downloadable (in)directly from that url?
vector<PackageDescriptionP> packages; ///< Packages provided by this installer
DECLARE_REFLECTION();
};
// ----------------------------------------------------------------------------- : Installable package
/// Installation status of a package
enum PackageStatus
{ PACKAGE_NOT_INSTALLED = 0x0000
, PACKAGE_INSTALLED = 0x0001
, PACKAGE_REMOVABLE = 0x0002
, PACKAGE_INSTALLABLE = 0x0010
, PACKAGE_UPDATES = 0x0111 ///< Remote updates available
, PACKAGE_MODIFIED = 0x1001 ///< Local changes made
, PACKAGE_CONFLICTS = PACKAGE_UPDATES | PACKAGE_MODIFIED
};
/// (un)install a package?
enum PackageAction
{ PACKAGE_NOTHING = 0x001 ///< Don't change anything
, PACKAGE_INSTALL = 0x002 ///< Install the package
, PACKAGE_UPGRADE = 0x004 ///< Upgrade the package
, PACKAGE_REMOVE = 0x008 ///< Remove the package
, PACKAGE_LOCAL = 0x010 ///< In the local package directory
, PACKAGE_GLOBAL = 0x020 ///< In the global package directory
, PACKAGE_WHERE = PACKAGE_LOCAL | PACKAGE_GLOBAL
};
/// A package that can be installed, or is already installed
class InstallablePackage : public IntrusivePtrVirtualBase {
public:
InstallablePackage();
InstallablePackage(const PackageVersionP&, const PackageDescriptionP&);
PackageVersionP installed; ///< The information of the installed package (if installed)
PackageDescriptionP description; ///< The details of the package. Either from the installed package or from an installer
DownloadableInstallerP installer; ///< The installer to install from (if updates are available)
PackageStatus status; ///< Status of installation
PackageAction action; ///< What to do with this package?
int automatic; ///< Install/upgrade/remove automaticly to satisfy this many packages
PackageAction old_action;
int old_automatic;
void determineStatus();
/// Is the action possible?
bool can(PackageAction act) const;
/// Is the action currently selected?
bool has(PackageAction act) const;
/// Merge two descriptions of installable packages
void merge(const InstallablePackage& p2);
};
typedef vector<InstallablePackageP> InstallablePackages;
/// Sort a list of InstallablePackages by package name
void sort(InstallablePackages& packages);
/// Merge two lists of InstallablePackages.
/** The first list contains installed packages, the second list contains packages in an installer
* @pre both lists are sorted by package name
* @post the output will be sorted
*/
void merge(InstallablePackages& installed, const InstallablePackages& from_installer);
/// Merge the packages from a DownloadableInstaller into a list of InstallablePackages.
void merge(InstallablePackages& installed, const DownloadableInstallerP& installer);
/// Set the action to perform on a given package, makes sure the dependencies are also set correctly
/** Returns true on success
* action may be PACKAGE_NOTHING to clear the action
*/
bool set_package_action(InstallablePackages& packages, const InstallablePackageP& package, PackageAction action);
// ----------------------------------------------------------------------------- : Program package
/// The "magicseteditor.exe" package is special, it refers to the program
extern String mse_package;
InstallablePackageP mse_installable_package();
// ----------------------------------------------------------------------------- : EOF // ----------------------------------------------------------------------------- : EOF
#endif #endif
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/keyword.hpp> #include <data/keyword.hpp>
#include <util/tagged_string.hpp> #include <util/tagged_string.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/locale.hpp> #include <data/locale.hpp>
#include <data/game.hpp> #include <data/game.hpp>
#include <data/stylesheet.hpp> #include <data/stylesheet.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/pack.hpp> #include <data/pack.hpp>
// ----------------------------------------------------------------------------- : PackType // ----------------------------------------------------------------------------- : PackType
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/set.hpp> #include <data/set.hpp>
#include <data/game.hpp> #include <data/game.hpp>
#include <data/stylesheet.hpp> #include <data/stylesheet.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/settings.hpp> #include <data/settings.hpp>
#include <data/installer.hpp> #include <data/installer.hpp>
#include <data/game.hpp> #include <data/game.hpp>
...@@ -38,6 +39,15 @@ IMPLEMENT_REFLECTION_ENUM(InstallType) { ...@@ -38,6 +39,15 @@ IMPLEMENT_REFLECTION_ENUM(InstallType) {
VALUE_N("global", INSTALL_GLOBAL); VALUE_N("global", INSTALL_GLOBAL);
} }
bool is_install_local(InstallType type) {
#ifdef __WXMSW__
#define DEFAULT_INSTALL_LOCAL false
#else
#define DEFAULT_INSTALL_LOCAL true
#endif
return type == INSTALL_DEFAULT ? DEFAULT_INSTALL_LOCAL : type == INSTALL_LOCAL;
}
IMPLEMENT_REFLECTION_ENUM(FilenameConflicts) { IMPLEMENT_REFLECTION_ENUM(FilenameConflicts) {
VALUE_N("keep old", CONFLICT_KEEP_OLD); VALUE_N("keep old", CONFLICT_KEEP_OLD);
VALUE_N("overwrite", CONFLICT_OVERWRITE); VALUE_N("overwrite", CONFLICT_OVERWRITE);
...@@ -143,8 +153,10 @@ Settings::Settings() ...@@ -143,8 +153,10 @@ Settings::Settings()
, symbol_grid_size (30) , symbol_grid_size (30)
, symbol_grid (true) , symbol_grid (true)
, symbol_grid_snap (false) , symbol_grid_snap (false)
, updates_url (_("http://magicseteditor.sourceforge.net/updates")) , package_versions_url (_("http://magicseteditor.sourceforge.net/packages"))
, installer_list_url (_("http://magicseteditor.sourceforge.net/installers"))
, check_updates (CHECK_IF_CONNECTED) , check_updates (CHECK_IF_CONNECTED)
, check_updates_all (true)
, install_type (INSTALL_DEFAULT) , install_type (INSTALL_DEFAULT)
, website_url (_("http://magicseteditor.sourceforge.net/")) , website_url (_("http://magicseteditor.sourceforge.net/"))
{} {}
...@@ -221,8 +233,11 @@ IMPLEMENT_REFLECTION_NO_SCRIPT(Settings) { ...@@ -221,8 +233,11 @@ IMPLEMENT_REFLECTION_NO_SCRIPT(Settings) {
REFLECT(symbol_grid_snap); REFLECT(symbol_grid_snap);
REFLECT(default_game); REFLECT(default_game);
REFLECT(apprentice_location); REFLECT(apprentice_location);
REFLECT(updates_url); REFLECT_IGNORE(306,"updates url");
REFLECT(package_versions_url);
REFLECT(installer_list_url);
REFLECT(check_updates); REFLECT(check_updates);
REFLECT(check_updates_all);
REFLECT(install_type); REFLECT(install_type);
REFLECT(website_url); REFLECT(website_url);
REFLECT(game_settings); REFLECT(game_settings);
......
...@@ -41,6 +41,7 @@ enum InstallType ...@@ -41,6 +41,7 @@ enum InstallType
}; };
bool parse_enum(const String&, InstallType&); bool parse_enum(const String&, InstallType&);
bool is_install_local(InstallType type);
/// How to handle filename conflicts /// How to handle filename conflicts
enum FilenameConflicts enum FilenameConflicts
...@@ -164,11 +165,12 @@ class Settings { ...@@ -164,11 +165,12 @@ class Settings {
// --------------------------------------------------- : Special game stuff // --------------------------------------------------- : Special game stuff
String apprentice_location; String apprentice_location;
String mws_location;
// --------------------------------------------------- : Update checking // --------------------------------------------------- : Update checking
String updates_url; String package_versions_url; ///< latest package versions
String installer_list_url; ///< available installers
CheckUpdates check_updates; CheckUpdates check_updates;
bool check_updates_all; ///< Check updates of all packages, not just the program
String website_url; String website_url;
// --------------------------------------------------- : Installation settings // --------------------------------------------------- : Installation settings
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/statistics.hpp> #include <data/statistics.hpp>
#include <data/field.hpp> #include <data/field.hpp>
#include <data/field/choice.hpp> #include <data/field/choice.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/stylesheet.hpp> #include <data/stylesheet.hpp>
#include <data/game.hpp> #include <data/game.hpp>
#include <data/field.hpp> #include <data/field.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/symbol.hpp> #include <data/symbol.hpp>
#include <script/to_value.hpp> #include <script/to_value.hpp>
#include <gfx/bezier.hpp> #include <gfx/bezier.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/symbol_font.hpp> #include <data/symbol_font.hpp>
#include <data/stylesheet.hpp> #include <data/stylesheet.hpp>
#include <util/dynamic_arg.hpp> #include <util/dynamic_arg.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/word_list.hpp> #include <data/word_list.hpp>
// ----------------------------------------------------------------------------- : WordList // ----------------------------------------------------------------------------- : WordList
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/bezier.hpp> #include <gfx/bezier.hpp>
#include <gfx/polynomial.hpp> #include <gfx/polynomial.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
#include <util/error.hpp> #include <util/error.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
// ----------------------------------------------------------------------------- : Color utility functions // ----------------------------------------------------------------------------- : Color utility functions
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
#include <util/reflect.hpp> #include <util/reflect.hpp>
#include <algorithm> #include <algorithm>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/generated_image.hpp> #include <gfx/generated_image.hpp>
#include <util/io/package.hpp> #include <util/io/package.hpp>
#include <util/error.hpp> #include <util/error.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
#include <util/error.hpp> #include <util/error.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
#include <util/error.hpp> #include <util/error.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/polynomial.hpp> #include <gfx/polynomial.hpp>
#include <complex> #include <complex>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
#include <util/error.hpp> #include <util/error.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
#include <util/error.hpp> #include <util/error.hpp>
#include <gui/util.hpp> // clearDC_black #include <gui/util.hpp> // clearDC_black
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
// ----------------------------------------------------------------------------- : Implementation // ----------------------------------------------------------------------------- : Implementation
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/about_window.hpp> #include <gui/about_window.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
#include <util/version.hpp> #include <util/version.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/auto_replace_window.hpp> #include <gui/auto_replace_window.hpp>
#include <gui/control/item_list.hpp> #include <gui/control/item_list.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/card_select_window.hpp> #include <gui/card_select_window.hpp>
#include <gui/control/select_card_list.hpp> #include <gui/control/select_card_list.hpp>
#include <util/window_id.hpp> #include <util/window_id.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/card_editor.hpp> #include <gui/control/card_editor.hpp>
#include <gui/value/editor.hpp> #include <gui/value/editor.hpp>
#include <gui/icon_menu.hpp> #include <gui/icon_menu.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/card_list.hpp> #include <gui/control/card_list.hpp>
#include <gui/control/card_list_column_select.hpp> #include <gui/control/card_list_column_select.hpp>
#include <gui/icon_menu.hpp> #include <gui/icon_menu.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/card_list_column_select.hpp> #include <gui/control/card_list_column_select.hpp>
#include <data/game.hpp> #include <data/game.hpp>
#include <data/field.hpp> #include <data/field.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/card_viewer.hpp> #include <gui/control/card_viewer.hpp>
#include <data/stylesheet.hpp> #include <data/stylesheet.hpp>
#include <data/settings.hpp> #include <data/settings.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/filtered_card_list.hpp> #include <gui/control/filtered_card_list.hpp>
DECLARE_TYPEOF_COLLECTION(CardP); DECLARE_TYPEOF_COLLECTION(CardP);
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/gallery_list.hpp> #include <gui/control/gallery_list.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
#include <wx/dcbuffer.h> #include <wx/dcbuffer.h>
...@@ -91,7 +92,6 @@ void GalleryList::scrollTo(int top, bool update_scrollbar) { ...@@ -91,7 +92,6 @@ void GalleryList::scrollTo(int top, bool update_scrollbar) {
top = max(0, top); top = max(0, top);
// scroll // scroll
if (top == visible_start) return; if (top == visible_start) return;
//%int old_top = visible_start;
visible_start = top; visible_start = top;
if (update_scrollbar) { if (update_scrollbar) {
// scroll bar // scroll bar
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/graph.hpp> #include <gui/control/graph.hpp>
#include <util/alignment.hpp> #include <util/alignment.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/image_card_list.hpp> #include <gui/control/image_card_list.hpp>
#include <gui/thumbnail_thread.hpp> #include <gui/thumbnail_thread.hpp>
#include <data/field/image.hpp> #include <data/field/image.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/item_list.hpp> #include <gui/control/item_list.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
#include <wx/imaglist.h> #include <wx/imaglist.h>
......
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
#include <util/prec.hpp> #include <util/prec.hpp>
#include <wx/listctrl.h> #include <wx/listctrl.h>
typedef intrusive_ptr<IntrusivePtrVirtualBase> VoidP;
// ----------------------------------------------------------------------------- : ItemList // ----------------------------------------------------------------------------- : ItemList
/// A generic list of items /// A generic list of items
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/keyword_list.hpp> #include <gui/control/keyword_list.hpp>
#include <gui/icon_menu.hpp> #include <gui/icon_menu.hpp>
#include <data/set.hpp> #include <data/set.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/native_look_editor.hpp> #include <gui/control/native_look_editor.hpp>
#include <gui/value/editor.hpp> #include <gui/value/editor.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/package_list.hpp> #include <gui/control/package_list.hpp>
#include <util/io/package_manager.hpp> #include <util/io/package_manager.hpp>
#include <util/alignment.hpp> #include <util/alignment.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/select_card_list.hpp> #include <gui/control/select_card_list.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
#include <data/card.hpp> #include <data/card.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/text_ctrl.hpp> #include <gui/control/text_ctrl.hpp>
#include <gui/value/editor.hpp> #include <gui/value/editor.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
......
...@@ -6,12 +6,13 @@ ...@@ -6,12 +6,13 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/control/tree_list.hpp> #include <gui/control/tree_list.hpp>
#include <gfx/gfx.hpp> #include <gfx/gfx.hpp>
#include <wx/renderer.h> #include <wx/renderer.h>
#include <wx/dcbuffer.h> #include <wx/dcbuffer.h>
DECLARE_TYPEOF_COLLECTION(TreeList::Item); DECLARE_TYPEOF_COLLECTION(TreeList::ItemP);
// ----------------------------------------------------------------------------- : TreeList : item managment // ----------------------------------------------------------------------------- : TreeList : item managment
...@@ -23,21 +24,28 @@ void TreeList::rebuild(bool full) { ...@@ -23,21 +24,28 @@ void TreeList::rebuild(bool full) {
} }
bool TreeList::hasChildren(size_t item) const { bool TreeList::hasChildren(size_t item) const {
return item < items.size() && items[item].level < items[item+1].level; return item + 1 < items.size() && items[item]->level < items[item+1]->level;
} }
void TreeList::expand(size_t item, bool expand) { void TreeList::expand(size_t item, bool expand) {
if (hasChildren(item) && items[item].expanded != expand) { if (hasChildren(item) && items[item]->expanded != expand) {
items[item].expanded = expand; items[item]->expanded = expand;
rebuild(false); rebuild(false);
} }
} }
void TreeList::select(size_t item) { void TreeList::select(size_t item, bool event) {
if (item >= items.size() || selection == item) return; if (item >= items.size() || selection == item) return;
size_t oldpos = selection < items.size() ? items[selection].position : 0; // select
size_t oldpos = selection < items.size() ? items[selection]->position : 0;
selection = item; selection = item;
size_t pos = items[selection].position; size_t pos = items[selection]->position;
// event
if (event) {
wxCommandEvent ev(wxEVT_COMMAND_LISTBOX_SELECTED, GetId());
ProcessEvent(ev);
}
// redraw
if (pos < first_line) { if (pos < first_line) {
ScrollToLine(pos); ScrollToLine(pos);
} else if (pos >= first_line + visible_lines_t) { } else if (pos >= first_line + visible_lines_t) {
...@@ -53,28 +61,28 @@ void TreeList::calcItemCount() { ...@@ -53,28 +61,28 @@ void TreeList::calcItemCount() {
total_lines = 0; total_lines = 0;
int visible_level = 0; int visible_level = 0;
FOR_EACH(i,items) { FOR_EACH(i,items) {
if (i.level <= visible_level) { if (i->level <= visible_level) {
i.position = total_lines; i->position = total_lines;
++total_lines; ++total_lines;
if (i.expanded) visible_level = i.level + 1; if (i->expanded) visible_level = i->level + 1;
else visible_level = i.level; else visible_level = i->level;
} else { } else {
i.position = NOTHING; i->position = NOTHING;
} }
} }
// update lines // update lines
UInt lines = 0; UInt lines = 0;
FOR_EACH_REVERSE(i,items) { FOR_EACH_REVERSE(i,items) {
if (i.visible()) { if (i->visible()) {
i.lines = lines; i->lines = lines;
lines &= (1 << i.level) - 1; lines &= (1 << i->level) - 1;
lines |= 1 << i.level; lines |= 1 << i->level;
} }
} }
// selection hidden? move to first visible item before it // selection hidden? move to first visible item before it
if (selection < items.size()) { if (selection < items.size()) {
for ( ; selection + 1 > 0 ; --selection) { for ( ; selection + 1 > 0 ; --selection) {
if (items[selection].visible()) break; // visible if (items[selection]->visible()) break; // visible
} }
if (selection >= items.size()) selection = 0; if (selection >= items.size()) selection = 0;
} }
...@@ -86,20 +94,20 @@ size_t TreeList::findItemByPos(int y) const { ...@@ -86,20 +94,20 @@ size_t TreeList::findItemByPos(int y) const {
} }
size_t TreeList::findItem(size_t line, size_t start) const { size_t TreeList::findItem(size_t line, size_t start) const {
for (size_t i = start ; i < items.size() ; ++i) { for (size_t i = start ; i < items.size() ; ++i) {
if (items[i].visible() && items[i].position >= line) return i; if (items[i]->visible() && items[i]->position >= line) return i;
} }
return items.size(); return items.size();
} }
size_t TreeList::findLastItem(size_t start) const { size_t TreeList::findLastItem(size_t start) const {
for (size_t i = min(items.size(), start) - 1 ; i + 1 > 0 ; --i) { for (size_t i = min(items.size(), start) - 1 ; i + 1 > 0 ; --i) {
if (items[i].visible()) return i; if (items[i]->visible()) return i;
} }
return items.size(); return items.size();
} }
size_t TreeList::findParent(size_t start) const { size_t TreeList::findParent(size_t start) const {
int level = items[start].level; int level = items[start]->level;
for (size_t i = start - 1 ; i + 1 > 0 ; --i) { for (size_t i = start - 1 ; i + 1 > 0 ; --i) {
if (items[i].visible() && items[i].level < level) return i; if (items[i]->visible() && items[i]->level < level) return i;
} }
return items.size(); return items.size();
} }
...@@ -147,9 +155,13 @@ void TreeList::onPaint(wxPaintEvent& ev) { ...@@ -147,9 +155,13 @@ void TreeList::onPaint(wxPaintEvent& ev) {
size_t start = findItem(first_line); size_t start = findItem(first_line);
size_t end = findItem(first_line + visible_lines); size_t end = findItem(first_line + visible_lines);
for (size_t i = start ; i < end ; ++i) { for (size_t i = start ; i < end ; ++i) {
const Item& item = items[i]; const Item& item = *items[i];
if (!item.visible()) continue; // invisible if (!item.visible()) continue; // invisible
x = level_width * (item.level + 1); x = level_width * (item.level + 1);
// line below
dc.SetPen(lerp(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW),
wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT),0.2));
dc.DrawLine(x,y+item_height-1,cs.x,y+item_height-1);
// draw lines // draw lines
dc.SetPen(lerp(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW), dc.SetPen(lerp(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW),
wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT),0.4)); wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT),0.4));
...@@ -171,15 +183,12 @@ void TreeList::onPaint(wxPaintEvent& ev) { ...@@ -171,15 +183,12 @@ void TreeList::onPaint(wxPaintEvent& ev) {
if (selection == i) { if (selection == i) {
dc.SetPen(*wxTRANSPARENT_PEN); dc.SetPen(*wxTRANSPARENT_PEN);
dc.SetBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT)); dc.SetBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT));
dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT)); dc.DrawRectangle(x, y, cs.x-x, item_height-1);
dc.DrawRectangle(x, y, cs.x-x, item_height);
} }
// draw text(s) // draw text(s)
for (size_t j = 0 ; j < cols ; ++j) { for (size_t j = 0 ; j < cols ; ++j) {
int w = columnWidth(j); int w = columnWidth(j);
if (selection != i) drawItem(dc, i, j, x+1, y, selection == i);
dc.SetTextForeground(itemColor(i,j));
dc.DrawText(itemText(i,j),x+1,y+1);
if (j == 0) x = 0; if (j == 0) x = 0;
x += w; x += w;
} }
...@@ -197,7 +206,7 @@ void TreeList::onChar(wxKeyEvent& ev) { ...@@ -197,7 +206,7 @@ void TreeList::onChar(wxKeyEvent& ev) {
break; break;
} case WXK_LEFT: { } case WXK_LEFT: {
if (selection < items.size()) { if (selection < items.size()) {
if (hasChildren(selection) && items[selection].expanded) { if (hasChildren(selection) && items[selection]->expanded) {
expand(selection, false); expand(selection, false);
} else { } else {
// select parent // select parent
...@@ -207,7 +216,7 @@ void TreeList::onChar(wxKeyEvent& ev) { ...@@ -207,7 +216,7 @@ void TreeList::onChar(wxKeyEvent& ev) {
break; break;
} case WXK_RIGHT: { } case WXK_RIGHT: {
if (selection < items.size() && hasChildren(selection)) { if (selection < items.size() && hasChildren(selection)) {
if (items[selection].expanded) { if (items[selection]->expanded) {
// select first child // select first child
select(selection+1); select(selection+1);
Refresh(false); Refresh(false);
...@@ -216,10 +225,10 @@ void TreeList::onChar(wxKeyEvent& ev) { ...@@ -216,10 +225,10 @@ void TreeList::onChar(wxKeyEvent& ev) {
} }
} }
break; break;
} case WXK_PAGEUP: { } case WXK_PAGEUP: case WXK_PRIOR: {
ScrollToLine(first_line > visible_lines_t ? first_line - visible_lines_t : 0); ScrollToLine(first_line > visible_lines_t ? first_line - visible_lines_t : 0);
break; break;
} case WXK_PAGEDOWN: { } case WXK_PAGEDOWN: case WXK_NEXT: {
ScrollToLine(first_line + visible_lines_t); ScrollToLine(first_line + visible_lines_t);
break; break;
} case WXK_HOME: { } case WXK_HOME: {
...@@ -242,9 +251,9 @@ void TreeList::onChar(wxKeyEvent& ev) { ...@@ -242,9 +251,9 @@ void TreeList::onChar(wxKeyEvent& ev) {
void TreeList::onLeftDown(wxMouseEvent& ev) { void TreeList::onLeftDown(wxMouseEvent& ev) {
size_t i = findItemByPos(ev.GetY()); size_t i = findItemByPos(ev.GetY());
if (i >= items.size()) return; if (i >= items.size()) return;
int left = items[i].level * level_width; int left = items[i]->level * level_width;
if (hasChildren(i) && ev.GetX() >= left && ev.GetX() < left + level_width) { if (hasChildren(i) && ev.GetX() >= left && ev.GetX() < left + level_width) {
expand(i, !items[i].expanded); expand(i, !items[i]->expanded);
} else { } else {
select(i); select(i);
} }
...@@ -255,7 +264,7 @@ void TreeList::onLeftDClick(wxMouseEvent& ev) { ...@@ -255,7 +264,7 @@ void TreeList::onLeftDClick(wxMouseEvent& ev) {
size_t i = findItemByPos(ev.GetY()); size_t i = findItemByPos(ev.GetY());
if (i >= items.size()) return; if (i >= items.size()) return;
if (hasChildren(i)) { if (hasChildren(i)) {
expand(i, !items[i].expanded); expand(i, !items[i]->expanded);
} }
ev.Skip(); ev.Skip();
} }
...@@ -264,7 +273,8 @@ void TreeList::onLeftDClick(wxMouseEvent& ev) { ...@@ -264,7 +273,8 @@ void TreeList::onLeftDClick(wxMouseEvent& ev) {
void TreeList::ScrollToLine(size_t line) { void TreeList::ScrollToLine(size_t line) {
// determine the real first line to scroll to: we shouldn't scroll beyond the end // determine the real first line to scroll to: we shouldn't scroll beyond the end
line = (size_t)min((int)line, (int)(total_lines - visible_lines_t)); line = (size_t)max((int)line, 0);
line = (size_t)min((int)line, max(0, (int)(total_lines - visible_lines_t)));
// nothing to do? // nothing to do?
if (line == first_line) return; if (line == first_line) return;
first_line = line; first_line = line;
...@@ -314,12 +324,13 @@ void TreeList::onScroll(wxScrollWinEvent& ev) { ...@@ -314,12 +324,13 @@ void TreeList::onScroll(wxScrollWinEvent& ev) {
void TreeList::onSize(wxSizeEvent& ev) { void TreeList::onSize(wxSizeEvent& ev) {
UpdateScrollbar(); UpdateScrollbar();
Refresh(false);
ev.Skip(); ev.Skip();
} }
void TreeList::onMouseWheel(wxMouseEvent& ev) { void TreeList::onMouseWheel(wxMouseEvent& ev) {
ScrollLines(-ev.GetWheelRotation() * ev.GetLinesPerAction() / ev.GetWheelDelta()); int delta = -ev.GetWheelRotation() * ev.GetLinesPerAction() / ev.GetWheelDelta();
Refresh(false); ScrollToLine(first_line + delta);
} }
......
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
#include <util/prec.hpp> #include <util/prec.hpp>
#include <wx/vscroll.h> #include <wx/vscroll.h>
typedef intrusive_ptr<IntrusivePtrVirtualBase> VoidP;
// ----------------------------------------------------------------------------- : TreeList // ----------------------------------------------------------------------------- : TreeList
/// A combination of a TreeCtrl and a ListCtrl. A tree with multiple columns. /// A combination of a TreeCtrl and a ListCtrl. A tree with multiple columns.
...@@ -24,7 +22,7 @@ class TreeList : public wxPanel { ...@@ -24,7 +22,7 @@ class TreeList : public wxPanel {
/// Expand/collapse an item /// Expand/collapse an item
void expand(size_t item, bool expand = true); void expand(size_t item, bool expand = true);
/// Select an item /// Select an item
void select(size_t item); void select(size_t item, bool event = true);
/// (re)build the list /// (re)build the list
void rebuild(bool full = true); void rebuild(bool full = true);
...@@ -32,24 +30,26 @@ class TreeList : public wxPanel { ...@@ -32,24 +30,26 @@ class TreeList : public wxPanel {
public: public:
/// An item in the tree list /// An item in the tree list
struct Item { class Item : public IntrusivePtrBase<Item> {
Item() {} public:
Item(int level, bool expanded = false, VoidP data = VoidP()) Item() : level(0), expanded(false) {}
: level(level), expanded(expanded), data(data) virtual ~Item() {}
{}
int level; int level;
bool expanded; bool expanded;
VoidP data; inline bool visible() const { return position != NOTHING; }
private:
friend class TreeList;
size_t position; // NOTHING if invisible, otherwise the line the item is on size_t position; // NOTHING if invisible, otherwise the line the item is on
UInt lines; // lines in front of this item (bit set) UInt lines; // lines in front of this item (bit set)
inline bool visible() const { return position != NOTHING; }
}; };
typedef intrusive_ptr<Item> ItemP;
protected: protected:
/// The items in the tree list /// The items in the tree list
vector<Item> items; vector<ItemP> items;
static const size_t NOTHING = (size_t)-1; static const size_t NOTHING = (size_t)-1;
size_t selection; size_t selection;
...@@ -57,10 +57,8 @@ class TreeList : public wxPanel { ...@@ -57,10 +57,8 @@ class TreeList : public wxPanel {
/// Initialize the items /// Initialize the items
virtual void initItems() = 0; virtual void initItems() = 0;
/// Get the text of an item /// Draw the text of an item
virtual String itemText(size_t item, size_t column) const = 0; virtual void drawItem(DC& dc, size_t index, size_t column, int x, int y, bool selected) const = 0;
/// Get the color of an item
virtual Color itemColor(size_t item, size_t column) const = 0;
/// The number of columns /// The number of columns
virtual size_t columnCount() const = 0; virtual size_t columnCount() const = 0;
...@@ -69,11 +67,11 @@ class TreeList : public wxPanel { ...@@ -69,11 +67,11 @@ class TreeList : public wxPanel {
/// The width of a column in pixels /// The width of a column in pixels
virtual int columnWidth(size_t column) const = 0; virtual int columnWidth(size_t column) const = 0;
private:
int item_height; int item_height;
static const int header_height = 17; static const int header_height = 17;
static const int level_width = 17; static const int level_width = 17;
private:
size_t total_lines; // number of shown items size_t total_lines; // number of shown items
size_t first_line; // first visible line size_t first_line; // first visible line
size_t visible_lines; // number of (partially) visible lines size_t visible_lines; // number of (partially) visible lines
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/drop_down_list.hpp> #include <gui/drop_down_list.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
#include <render/value/viewer.hpp> #include <render/value/viewer.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/html_export_window.hpp> #include <gui/html_export_window.hpp>
#include <gui/control/package_list.hpp> #include <gui/control/package_list.hpp>
#include <gui/control/native_look_editor.hpp> #include <gui/control/native_look_editor.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/icon_menu.hpp> #include <gui/icon_menu.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/image_slice_window.hpp> #include <gui/image_slice_window.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
#include <util/window_id.hpp> #include <util/window_id.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/images_export_window.hpp> #include <gui/images_export_window.hpp>
#include <gui/control/select_card_list.hpp> #include <gui/control/select_card_list.hpp>
#include <data/settings.hpp> #include <data/settings.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/new_window.hpp> #include <gui/new_window.hpp>
#include <gui/control/gallery_list.hpp> #include <gui/control/gallery_list.hpp>
#include <gui/control/package_list.hpp> #include <gui/control/package_list.hpp>
......
This diff is collapsed.
//+----------------------------------------------------------------------------+
//| Description: Magic Set Editor - Program to make Magic (tm) cards |
//| Copyright: (C) 2001 - 2007 Twan van Laarhoven |
//| License: GNU General Public License 2 or later (see file COPYING) |
//+----------------------------------------------------------------------------+
#ifndef HEADER_GUI_PACKAGES_WINDOW
#define HEADER_GUI_PACKAGES_WINDOW
// ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <data/installer.hpp>
// #include <gui/welcome_window.hpp> //???
class PackageUpdateList;
class PackageInfoPanel;
//class wxHtmlWindow;
//DECLARE_POINTER_TYPE(PackageVersionData);
//DECLARE_POINTER_TYPE(PackageVersion);
//DECLARE_POINTER_TYPE(PackageDescription);
//DECLARE_POINTER_TYPE(InstallableInstaller);
DECLARE_POINTER_TYPE(InstallablePackage);
// ----------------------------------------------------------------------------- : Available Packages
// ----------------------------------------------------------------------------- : Packages window
/// A window that displays the installed packages and updates to them
class PackagesWindow : public wxDialog {
public:
PackagesWindow(Window* parent, bool download_package_list = true);
~PackagesWindow();
InstallablePackages installable_packages;
private:
PackageUpdateList* package_list; ///< List of available packages
PackageInfoPanel* package_info; ///< Description of the selected package
InstallablePackageP package; ///< Selected package
PackageAction where; ///< Where to install? (PACKAGE_LOCAL or PACKAGE_GLOBAL)
DECLARE_EVENT_TABLE();
void onOk(wxCommandEvent&);
void onActionChange(wxCommandEvent&);
void onPackageSelect(wxCommandEvent&);
void onUpdateUI(wxUpdateUIEvent&);
/*
wxHtmlWindow* description_window;
wxButton *install_button, *upgrade_button, *remove_button, *cancel_button, *apply_button;
void onUpdateCheckFinished(wxCommandEvent&);
void onPackageSelect(wxCommandEvent&);
void onActionChange(wxCommandEvent&);
void onApplyChanges(wxCommandEvent&);
void SelectPackageDependencies (PackageVersionDataP);
void RemovePackageDependencies (PackageVersionDataP);
void DowngradePackageDependencies(PackageVersionDataP);
/// Update the buttons to indicate that this is selected.
void updateButtons(const PackageVersionDataP& pack);
void setDefaultPackageStatus();
*/
};
// ----------------------------------------------------------------------------- : EOF
#endif
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/preferences_window.hpp> #include <gui/preferences_window.hpp>
#include <gui/update_checker.hpp> #include <gui/update_checker.hpp>
#include <data/settings.hpp> #include <data/settings.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/print_window.hpp> #include <gui/print_window.hpp>
#include <gui/card_select_window.hpp> #include <gui/card_select_window.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/set/cards_panel.hpp> #include <gui/set/cards_panel.hpp>
#include <gui/control/image_card_list.hpp> #include <gui/control/image_card_list.hpp>
#include <gui/control/card_editor.hpp> #include <gui/control/card_editor.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/set/keywords_panel.hpp> #include <gui/set/keywords_panel.hpp>
#include <gui/control/keyword_list.hpp> #include <gui/control/keyword_list.hpp>
#include <gui/control/text_ctrl.hpp> #include <gui/control/text_ctrl.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/set/panel.hpp> #include <gui/set/panel.hpp>
#include <data/card.hpp> #include <data/card.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/set/set_info_panel.hpp> #include <gui/set/set_info_panel.hpp>
#include <gui/control/native_look_editor.hpp> #include <gui/control/native_look_editor.hpp>
#include <gui/icon_menu.hpp> #include <gui/icon_menu.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/set/stats_panel.hpp> #include <gui/set/stats_panel.hpp>
#include <gui/control/graph.hpp> #include <gui/control/graph.hpp>
#include <gui/control/gallery_list.hpp> #include <gui/control/gallery_list.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/set/style_panel.hpp> #include <gui/set/style_panel.hpp>
#include <gui/control/package_list.hpp> #include <gui/control/package_list.hpp>
#include <gui/control/card_viewer.hpp> #include <gui/control/card_viewer.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/set/window.hpp> #include <gui/set/window.hpp>
#include <gui/set/panel.hpp> #include <gui/set/panel.hpp>
#include <gui/set/cards_panel.hpp> #include <gui/set/cards_panel.hpp>
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
#include <gui/control/gallery_list.hpp> #include <gui/control/gallery_list.hpp>
#include <gui/about_window.hpp> #include <gui/about_window.hpp>
#include <gui/update_checker.hpp> #include <gui/update_checker.hpp>
#include <gui/packages_window.hpp>
#include <gui/new_window.hpp> #include <gui/new_window.hpp>
#include <gui/preferences_window.hpp> #include <gui/preferences_window.hpp>
#include <gui/print_window.hpp> #include <gui/print_window.hpp>
...@@ -538,8 +540,8 @@ void SetWindow::onFileExportMWS(wxCommandEvent&) { ...@@ -538,8 +540,8 @@ void SetWindow::onFileExportMWS(wxCommandEvent&) {
void SetWindow::onFileCheckUpdates(wxCommandEvent&) { void SetWindow::onFileCheckUpdates(wxCommandEvent&) {
if (!askSaveAndContinue()) return; if (!askSaveAndContinue()) return;
(new UpdatesWindow)->Show(); (new PackagesWindow(this))->Show();
Destroy(); //Destroy();
} }
void SetWindow::onFilePrint(wxCommandEvent&) { void SetWindow::onFilePrint(wxCommandEvent&) {
...@@ -562,7 +564,7 @@ void SetWindow::onFileReload(wxCommandEvent&) { ...@@ -562,7 +564,7 @@ void SetWindow::onFileReload(wxCommandEvent&) {
vector<CardP>::const_iterator card_it = find(set->cards.begin(), set->cards.end(), current_panel->selectedCard()); vector<CardP>::const_iterator card_it = find(set->cards.begin(), set->cards.end(), current_panel->selectedCard());
if (card_it != set->cards.end()) card_pos = card_it - set->cards.begin(); if (card_it != set->cards.end()) card_pos = card_it - set->cards.begin();
} }
packages.destroy(); // unload all packages packages.reset(); // unload all packages
settings.read(); // reload settings settings.read(); // reload settings
setSet(import_set(filename)); setSet(import_set(filename));
// reselect card // reselect card
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/symbol/basic_shape_editor.hpp> #include <gui/symbol/basic_shape_editor.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
#include <util/window_id.hpp> #include <util/window_id.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/symbol/control.hpp> #include <gui/symbol/control.hpp>
#include <gui/symbol/window.hpp> #include <gui/symbol/window.hpp>
#include <gui/symbol/editor.hpp> #include <gui/symbol/editor.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/symbol/editor.hpp> #include <gui/symbol/editor.hpp>
#include <gui/symbol/window.hpp> #include <gui/symbol/window.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/symbol/part_list.hpp> #include <gui/symbol/part_list.hpp>
#include <gui/symbol/selection.hpp> #include <gui/symbol/selection.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/symbol/point_editor.hpp> #include <gui/symbol/point_editor.hpp>
#include <gui/symbol/window.hpp> #include <gui/symbol/window.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/symbol/select_editor.hpp> #include <gui/symbol/select_editor.hpp>
#include <gui/symbol/window.hpp> #include <gui/symbol/window.hpp>
#include <gui/util.hpp> #include <gui/util.hpp>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// ----------------------------------------------------------------------------- : Includes // ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <gui/symbol/selection.hpp> #include <gui/symbol/selection.hpp>
#include <data/symbol.hpp> #include <data/symbol.hpp>
#include <gfx/bezier.hpp> #include <gfx/bezier.hpp>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment