Miscellaneous improvements
This commit is contained in:
parent
be82e2db00
commit
87fd4dfb98
@ -93,7 +93,7 @@ function exception_error_handler($errno, $errstr, $errfile, $errline)
|
||||
|
||||
// Do this after the two compatibility checks for cleaner output
|
||||
// Note that this will throw exceptions on notices
|
||||
// set_error_handler("OpenSQLManager\exception_error_handler", E_ERROR | E_WARNING | E_NOTICE);
|
||||
set_error_handler("OpenSQLManager\exception_error_handler", -1);
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
@ -139,7 +139,7 @@ function osm_autoload($class)
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
// Load everything so that we don't have to do requires later
|
||||
require_once(BASE_DIR . '/common/functions.php');
|
||||
array_map('OpenSQLManager\do_include', glob(BASE_DIR.'/common/*.php'));
|
||||
spl_autoload_register('OpenSQLManager\osm_autoload');
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
@ -179,6 +179,7 @@ class OpenSQLManager extends \wxApp {
|
||||
*/
|
||||
public function OnExit()
|
||||
{
|
||||
\wxExit();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ class Settings {
|
||||
{
|
||||
//Create the file!
|
||||
touch($path);
|
||||
$this->current = new stdClass();
|
||||
$this->current = new \stdClass();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -79,7 +79,7 @@ class Settings {
|
||||
// Add the DB object under the settings if it doesn't already exist
|
||||
if( ! isset($this->current->dbs))
|
||||
{
|
||||
$this->current->dbs = new stdClass();
|
||||
$this->current->dbs = new \stdClass();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class Connection_Sidebar extends \wxPanel {
|
||||
const MENU_DISCONNECT = 2;
|
||||
const MENU_EDIT_CONNECT = 3;
|
||||
const MENU_DELETE_CONNECT = 4;
|
||||
const BUTTON_ADD = 5;
|
||||
const BTN_ADD = 5;
|
||||
|
||||
/**
|
||||
* Reference to Settings instance
|
||||
@ -97,18 +97,17 @@ class Connection_Sidebar extends \wxPanel {
|
||||
$this->settings =& Settings::get_instance();
|
||||
|
||||
// Create a button for adding new connections
|
||||
$new_conn = new \wxButton($this, self::BUTTON_ADD, 'New Connection');
|
||||
$new_conn = new \wxButton($this, self::BTN_ADD, 'New Connection');
|
||||
$new_conn->Connect(wxEVT_COMMAND_BUTTON_CLICKED, array($this, 'add_conn'));
|
||||
|
||||
// Add a sizer
|
||||
$sizer = new \wxBoxSizer(wxVERTICAL);
|
||||
$sizer->add($this->list, 1, wxALL|wxEXPAND);
|
||||
$sizer->add($new_conn, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_BOTTOM|wxEXPAND);
|
||||
$sizer->add($new_conn, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_BOTTOM|wxEXPAND, 5);
|
||||
|
||||
$this->SetSizer($sizer);
|
||||
$this->Layout();
|
||||
|
||||
$this->Centre(wxBOTH);
|
||||
$this->Fit();
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
@ -31,6 +31,7 @@ class Connection_Manager extends \wxFrame {
|
||||
const TXT_DB_PORT = 6;
|
||||
const TXT_DB_USER = 7;
|
||||
const TXT_DB_PASS = 8;
|
||||
const BTN_TEST = 9;
|
||||
|
||||
/**
|
||||
* Array of fields for Connection Information manipulation
|
||||
@ -47,7 +48,7 @@ class Connection_Manager extends \wxFrame {
|
||||
*/
|
||||
public function __construct($parent, $params = array())
|
||||
{
|
||||
parent::__construct($parent, 32, "Connection Manager", wxDefaultPosition, new \wxSize(640, 480));//, wxCAPTION|wxCLOSE_BOX);
|
||||
parent::__construct($parent, 32, "Connection Manager", wxDefaultPosition);
|
||||
|
||||
// Layout the window
|
||||
$this->_layout($params);
|
||||
@ -62,8 +63,12 @@ class Connection_Manager extends \wxFrame {
|
||||
*/
|
||||
protected function _layout($params)
|
||||
{
|
||||
$container_sizer = new \wxBoxSizer(wxVERTICAL);
|
||||
|
||||
// Use a table-like sizer
|
||||
$sizer = new \wxFlexGridSizer(2, 5, 5);
|
||||
$sizer->SetHGap(5);
|
||||
$sizer->SetVGap(5);
|
||||
$sizer->SetFlexibleDirection(wxBOTH);
|
||||
$sizer->AddGrowableCol(0, 1);
|
||||
$sizer->AddGrowableCol(1, 1);
|
||||
@ -79,9 +84,9 @@ class Connection_Manager extends \wxFrame {
|
||||
// Create the controls
|
||||
// label => control
|
||||
$this->fields = array(
|
||||
'Connection name' => new \wxTextCtrl($this, self::TXT_CONN_NAME),
|
||||
'Connection Name' => new \wxTextCtrl($this, self::TXT_CONN_NAME),
|
||||
'Database Type' => $choice = new \wxChoice(),
|
||||
'Database File' => new \wxFilePickerCtrl($this, self::FILE_DB_FILE, wxEmptyString, "Select the database file", wxFileSelectorDefaultWildcardStr),
|
||||
'Database File' => new \wxFilePickerCtrl($this, self::FILE_DB_FILE, wxEmptyString, "Select the database file", '*.*'),
|
||||
'Database Name' => new \wxTextCtrl($this, self::TXT_DB_NAME),
|
||||
'Host' => new \wxTextCtrl($this, self::TXT_DB_HOST),
|
||||
'Port' => new \wxTextCtrl($this, self::TXT_DB_PORT),
|
||||
@ -103,10 +108,25 @@ class Connection_Manager extends \wxFrame {
|
||||
$i++;
|
||||
}
|
||||
|
||||
$this->SetSizer($sizer);
|
||||
// Test Connection Button
|
||||
$test_button = new \wxButton($this, self::BTN_TEST, 'Test Connection');
|
||||
$test_button->Connect(wxEVT_COMMAND_BUTTON_CLICKED, array($this, 'test_conn'));
|
||||
|
||||
// Add Connection Button
|
||||
// TODO: Add connection button
|
||||
|
||||
// Add the buttons to the sizer
|
||||
$sizer->Add($test_button, 1, wxEXPAND);
|
||||
|
||||
// Add the sizer to the window
|
||||
// Add it inside of another sizer for padding.
|
||||
$container_sizer->Add($sizer, 1, wxALL|wxEXPAND, 10);
|
||||
$this->SetSizer($container_sizer);
|
||||
$this->Layout();
|
||||
|
||||
$this->Center(wxBOTH);
|
||||
// Autosize the window to fit the controls
|
||||
$this->Fit();
|
||||
$this->CenterOnScreen(wxBOTH);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
@ -118,7 +138,7 @@ class Connection_Manager extends \wxFrame {
|
||||
*/
|
||||
protected function get_available_dbs()
|
||||
{
|
||||
$drivers = array();
|
||||
$drivers = array("");
|
||||
|
||||
$pdo_drivers = \pdo_drivers();
|
||||
|
||||
@ -126,13 +146,13 @@ class Connection_Manager extends \wxFrame {
|
||||
foreach ($pdo_drivers as &$d)
|
||||
{
|
||||
// Skip sqlite2 as opposed to sqlite3
|
||||
if($d === 'sqlite2' && (in_array('sqlite', $pdo_drivers) || in_array('sqlite3', $pdo_drivers)))
|
||||
if ($d === 'sqlite2' && (in_array('sqlite', $pdo_drivers) || in_array('sqlite3', $pdo_drivers)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Use the ibase_functions over PDO::Firebird, at least for now
|
||||
if($d === 'firebird')
|
||||
if ($d === 'firebird')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -147,7 +167,7 @@ class Connection_Manager extends \wxFrame {
|
||||
}
|
||||
|
||||
// Add firebird support, if exists
|
||||
if(function_exists('fbird_connect') && ! in_array('firebird', $pdo_drivers))
|
||||
if (function_exists('fbird_connect'))
|
||||
{
|
||||
$drivers[] = "Firebird";
|
||||
}
|
||||
@ -156,6 +176,84 @@ class Connection_Manager extends \wxFrame {
|
||||
|
||||
return $drivers;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Set defaults for new database type
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function change_db()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Test a db connection, and display a popup with the result
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_conn()
|
||||
{
|
||||
// Get the connection parameters
|
||||
$params = $this->_get_vals();
|
||||
|
||||
// Smart alek error for smart alek behavior
|
||||
if (empty($params->type))
|
||||
{
|
||||
error("You need to select the correct database type");
|
||||
return;
|
||||
}
|
||||
|
||||
// Catch connection exceptions, and
|
||||
// display the error message to the
|
||||
// user so they can edit the db
|
||||
// parameters
|
||||
try
|
||||
{
|
||||
new \Query_Builder($params);
|
||||
}
|
||||
catch (\PDOException $e)
|
||||
{
|
||||
error("Error connecting to database: \n\n" . $e->getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
// Successful Connection?
|
||||
// Tell the user!
|
||||
alert("Successfully Connected.");
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Get the values of the widgets in the window
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
private function _get_vals()
|
||||
{
|
||||
$params = new \stdClass();
|
||||
$fields =& $this->fields;
|
||||
|
||||
$types = $this->get_available_dbs();
|
||||
$type_id = $fields['Database Type']->GetSelection();
|
||||
$type = $types[$type_id];
|
||||
|
||||
$params->name = $fields['Connection Name']->GetValue();
|
||||
$params->type = $type;
|
||||
$params->file = $fields['Database File']->GetPath();
|
||||
$params->conn_db = $fields['Database Name']->GetValue();
|
||||
$params->host = $fields['Host']->GetValue();
|
||||
$params->port = $fields['Port']->GetValue();
|
||||
$params->user = $fields['User']->GetValue();
|
||||
$params->pass = $fields['Password']->GetValue();
|
||||
|
||||
return $params;
|
||||
}
|
||||
}
|
||||
|
||||
// End of connection_manager.php
|
@ -62,6 +62,8 @@ class Main extends \wxFrame {
|
||||
|
||||
// Layout the interface
|
||||
$this->_main_layout();
|
||||
$this->SetThemeEnabled(TRUE);
|
||||
$this->CenterOnScreen(wxBOTH);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
@ -129,10 +131,9 @@ class Main extends \wxFrame {
|
||||
$this->_create_menu();
|
||||
|
||||
// Create a split window
|
||||
$win = new \wxSplitterWindow($this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
$win = new \wxSplitterWindow($this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_THIN_SASH);
|
||||
$win->setSplitMode(wxSPLIT_HORIZONTAL);
|
||||
|
||||
|
||||
// Add the connection sidebar
|
||||
$this->connection_sidebar =& Connection_Sidebar::get_instance($win);
|
||||
$win2 = new Data_Grid($win);
|
||||
@ -140,10 +141,9 @@ class Main extends \wxFrame {
|
||||
// Add the widgets to the split window
|
||||
$win->SplitVertically($this->connection_sidebar, $win2);
|
||||
$win->SetSashPosition(200, TRUE);
|
||||
|
||||
|
||||
// Save a reference for later use
|
||||
$this->split =& $win;
|
||||
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user