summaryrefslogtreecommitdiffstats
path: root/abs/core/mythinstall/settemplate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/mythinstall/settemplate.cpp')
-rwxr-xr-xabs/core/mythinstall/settemplate.cpp419
1 files changed, 0 insertions, 419 deletions
diff --git a/abs/core/mythinstall/settemplate.cpp b/abs/core/mythinstall/settemplate.cpp
deleted file mode 100755
index c12ef06..0000000
--- a/abs/core/mythinstall/settemplate.cpp
+++ /dev/null
@@ -1,419 +0,0 @@
-#include <mythcontext.h>
-#include <unistd.h>
-#include <iostream>
-#include <fstream>
-#include <stdio.h>
-#include "settings.h"
-#include "installsettings.h"
-#include "installdialog.h"
-#include "settemplate.h"
-#include <qsqldatabase.h>
-#include <qsqlquery.h>
-#include <stdlib.h>
-#include <cstdlib>
-
-#include <mythtv/mythdbcon.h>
-
-void create_temp_table (QString create_table_name,QString like_name)
-{
- MSqlQuery query(MSqlQuery::InitCon());
- query.prepare("create table " + create_table_name + " like " + like_name + ";" );
- query.exec();
- if ( like_name == "settings")
- {
- query.prepare("Alter table " + create_table_name + " add unique ( value ) ; " );
- query.exec();
- }
- query.prepare(" truncate " + create_table_name + ";" );
- query.exec();
-};
-
-void drop_temp_table (QString tname)
-{
- MSqlQuery query(MSqlQuery::InitCon());
- query.prepare("drop table " + tname + ";" );
- query.exec();
-}
-
-void restart_frontend ()
-{
-
- QString cmdtxt;
- cmdtxt=MV_ROOT ;
- cmdtxt.append("bin/systemconfig.sh reloadfe" );
- cout << "Calling systemconfig.sh reloadfe" << endl;
- system(cmdtxt);
- //system("/root/systemconfig.sh reloadfe" );
-}
-
-void choosetemplate (QString templateop, QString templatename , QString templatehostname = "")
-{
- if ( templateop == "" )
- {
- MythCtemplate setting;
- setting.load();
- setting.save();
- setting.exec();
- };
-
- QString thistemplate;
- QString thisoperation;
- QString thishost;
- //QString runcommand = "/root/restore_default_settings.sh";
- QString runcommand = "echo ";
- // cout << templateop << endl;
- // cout << templatename << endl;
- // cout << templatehostname << endl;
-
- if (templateop == "")
- thisoperation = gContext -> GetSetting("HOSTtemplatetype");
- else
- thisoperation = templateop;
-
- thistemplate = "none";
-
-
- if ( thisoperation == "save" )
- {
- if (templatename == "" )
- thistemplate = gContext -> GetSetting("HostTemplateSave");
- else
- thistemplate = templatename;
-
- savesettings(thistemplate);
- }
- else if ( thisoperation == "restore" )
- {
- if (templatename == "" )
- thistemplate = gContext -> GetSetting("HostTemplateRestore");
- else
- thistemplate = templatename;
-
- if ( thistemplate == "default_1")
- c_from("default_1" , thistemplate);
- else if ( thistemplate == "default_2")
- c_from("default_2" ,thistemplate);
- else
- restoresettings(thistemplate);
-
- }
- else if ( thisoperation == "copy_from" )
- {
- if (templatename == "" )
- {
- thishost = gContext ->GetSetting("HostSelectcopy_from");
- thistemplate = gContext ->GetSetting("HostTemplateRestore");
- }
- else
- {
- thishost=templatehostname;
- thistemplate=templatename;
- };
-
- c_from(thishost,thistemplate);
- }
-
-
-// if ( thistemplate != "none" )
-// {
-// std::cout << runcommand << endl;
- // system(runcommand);
- //}
-};
-
-
-void savesettings (QString templatenumber )
-{
- cout << "SAVING....." << templatenumber << endl;
- QString templatename = "settings_" + templatenumber ;
- // Remove old saved values
- MSqlQuery query(MSqlQuery::InitCon());
- query.prepare( "delete from " + templatename + " where hostname=:HOSTNAME ;" );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
- //insert all new settings
- query.prepare( "replace into " + templatename + " (select * from settings where hostname=:HOSTNAME ) ;" ) ;
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
-
- // repeat for keybindings
- templatename = "keybindings_" + templatenumber ;
- query.prepare( "delete from " + templatename + " where hostname=:HOSTNAME ;" );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
-
- query.prepare( "replace into " + templatename + " (select * from keybindings where hostname=:HOSTNAME ) ;" );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
-
-}
-
-void restoresettings (QString templatenumber )
-{
- cout << "RESTORING....." << templatenumber << endl;
-// DEFAULT settings are handled by the copy from routine
- MSqlQuery query(MSqlQuery::InitCon());
- QStringList tablelist ;
- QStringList::Iterator it;
- QString current_table;
- tablelist.append ("settings");
- tablelist.append ("keybindings");
- QString templatename;
-
- for ( it = tablelist.begin(); it != tablelist.end(); ++it )
- {
- current_table = *it ;
- //find template table to use
- QString templatename = current_table + "_" + templatenumber ;
- QString temptable="temp_table_" + current_table + "_" + gContext->GetHostName() ;
- // create temp table for merging settings, The merge is needed to accoutn for any new settings.
- create_temp_table(temptable, current_table );
-
- // copy in current settings
- query.prepare( "replace into " + temptable + " (select * from " + current_table + " where hostname=:HOSTNAME ) ; " );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
-
- // need to remove all non HOST settigns
-
- // copy in stored settings
- query.prepare( "replace into " + temptable + " (select * from " + templatename + " where hostname=:HOSTNAME ) ; " );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
-
- // remove current settings. Need to remove because the old table allows for duplicates and replace into doesn' seem to "replace"
- query.prepare( "delete from " + current_table + " where hostname=:HOSTNAME ;" );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
-
-
- // copy new settings from temp to current
- query.prepare( "replace into " + current_table + " (select * from " + temptable + " );" );
- query.exec();
-
- // drop temptable
- drop_temp_table(temptable);
-
- }
-restart_frontend();
-};
-
-void c_from(QString copyhost, QString templatenumber)
-{
- cout << "Copying....." + copyhost + " " + "templatenumber" << endl;
- MSqlQuery query(MSqlQuery::InitCon());
- //Create temp table, copy in settings from host_template, update hostname for new host,copy temp_table to settings.
- QStringList tablelist ;
- QStringList::Iterator it;
- QString current_table ;
- tablelist.append ("settings");
- tablelist.append ("keybindings");
- QString templatename;
- QString temptable;
- for ( it = tablelist.begin(); it != tablelist.end(); ++it )
- {
- current_table = *it ;
- cout << current_table << endl;
- //find template table to use
- if ( templatenumber == "Current" )
- templatename = current_table ;
- else
- templatename = current_table + "_" + templatenumber ;
-
- temptable="temp_table_" + current_table + "_" + gContext->GetHostName() ;
- // create temp table for merging settings
-
- create_temp_table(temptable, current_table );
- cout << temptable + " " + current_table << endl;
-
- // copy current settings from this host into temptable minus all Mythvantage settings
- if ( current_table == "settings")
- {
- query.prepare( "replace into " + temptable + " (select * from " + current_table + " where hostname=:HOSTNAME and value not like 'HOST%' ) ; " );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- }
- else
- query.prepare( "replace into " + temptable + " (select * from " + current_table + " where hostname=:HOSTNAME ) ; " );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
-
- // update hostname to match whatever the hostname of the template is
- query.prepare ("update " + temptable + " set hostname=:HOSTNAME ; " );
- query.bindValue( ":HOSTNAME" , copyhost );
- query.exec();
-
- // copy current settings from copy host into temptable minus all Mythvantage settings
- if ( current_table == "settings")
- query.prepare( "replace into " + temptable + " (select * from " + templatename + " where hostname=:HOSTNAME and value not like 'HOST%' ) ; " );
-
- else
- query.prepare( "replace into " + temptable + " (select * from " + templatename + " where hostname=:HOSTNAME ) ; " );
-
- query.bindValue( ":HOSTNAME" , copyhost );
- query.exec();
-
- //update hostname
- query.prepare ("update " + temptable + " set hostname=:HOSTNAME ; " );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- query.exec();
-
- // delete old settings from settings table
- if ( current_table == "settings")
- {
- query.prepare( "delete from " + current_table + " where hostname=:HOSTNAME and value not like 'HOST%' ;" );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- }
- else
- {
- query.prepare( "delete from " + current_table + " where hostname=:HOSTNAME ;" );
- query.bindValue( ":HOSTNAME" , gContext->GetHostName() );
- }
- query.exec();
-
- // copy settings from temptable to settings
- if ( current_table == "settings")
- query.prepare( "replace into " + current_table + " (select * from " + temptable + " where value not like 'HOST% ' ) ;" );
- else
- query.prepare( "replace into " + current_table + " (select * from " + temptable + " );" );
-
-
- query.exec();
-
- // drop temptable
- // drop_temp_table(temptable);
-
-
-restart_frontend();
-};
-
-
-};
-
-
-
-
- static HostComboBox *HOSTtemplatetype()
-{
- HostComboBox *gc = new HostComboBox("HOSTtemplatetype");
- gc->setLabel(QObject::tr("Template options"));
- gc->addSelection("Do Nothing") ;
- gc->addSelection("restore");
- gc->addSelection("save") ;
- gc->addSelection("copy_from");
-
- gc->setHelpText(QObject::tr("Select the name to save, this will make a copy of your keybindings and videoplayback. Choose none if you do not wish to change anything."));
-
- return gc;
-}
-
- static HostComboBox *HostTemplateSave()
-{
- HostComboBox *gc = new HostComboBox("HostTemplateSave");
- gc->setLabel(QObject::tr("Save Template"));
- // gc->addSelection("none");
- gc->addSelection("user1") ;
- gc->addSelection("user2") ;
- gc->addSelection("user3") ;
- gc->setHelpText(QObject::tr("Select the name to save, this will make a copy of your keybindings and videoplayback. Choose none if you do not wish to change anything."));
-
- return gc;
-}
- static HostComboBox *HostTemplateCopy_restore()
-{
- HostComboBox *gc = new HostComboBox("HostTemplateRestore");
- gc->setLabel(QObject::tr("Template"));
- // gc->addSelection("none");
- gc->addSelection("Current");
- gc->addSelection("user1") ;
- gc->addSelection("user2") ;
- gc->addSelection("user3") ;
- gc->setHelpText(QObject::tr("Select the template you wish to restore. This will change the way Myth repsonds to you remote buttons. Choose none if you do not wish to change anything."));
-
- return gc;
-}
-
- static HostComboBox *HostTemplateRestore()
-{
- HostComboBox *gc = new HostComboBox("HostTemplateRestore");
- gc->setLabel(QObject::tr("Template"));
- // gc->addSelection("none");
- gc->addSelection("default_1");
- gc->addSelection("default_2");
- gc->addSelection("user1") ;
- gc->addSelection("user2") ;
- gc->addSelection("user3") ;
- gc->setHelpText(QObject::tr("Select the template you wish to restore. This will change the way Myth repsonds to you remote buttons. Choose none if you do not wish to change anything."));
-
- return gc;
-}
-
- static HostComboBox *HostSelectcopy_from()
-{
- HostComboBox *gc = new HostComboBox("HostSelectcopy_from");
- gc->setLabel(QObject::tr("Host"));
- // gc->addSelection("none");
-
- QString tempItem;
-
- MSqlQuery query(MSqlQuery::InitCon());
-
- query.prepare( "SELECT DISTINCT hostname from settings where hostname is not null;");
-
- if (query.exec() && query.isActive() && query.size() > 0)
- {
- while (query.next())
- {
- tempItem = query.value(0).toString();
- gc->addSelection(tempItem);
-
- }
- }
- gc->setHelpText(QObject::tr("Select the Host you wish to copy settings from."));
-
- return gc;
-}
-
-class TemplateSettings:
- public TriggeredConfigurationGroup {
-public:
- TemplateSettings():
- //ConfigurationGroup(false, true, false, false),
- //VerticalConfigurationGroup(false, true, false, false),
- TriggeredConfigurationGroup(true) {
- setLabel(QObject::tr("Manage templates"));
-// setUseLabel(false);
-
- Setting* Mtemplate = HOSTtemplatetype();
- addChild(Mtemplate);
- setTrigger(Mtemplate);
-
-
- ConfigurationGroup* trestore = new VerticalConfigurationGroup(false);
- trestore->addChild(HostTemplateRestore());
-
- ConfigurationGroup* tsave = new VerticalConfigurationGroup(false);
- tsave->addChild(HostTemplateSave());
-
- ConfigurationGroup* tcopy = new VerticalConfigurationGroup(false);
- tcopy->addChild(HostSelectcopy_from());
- tcopy->addChild(HostTemplateCopy_restore());
-
-
- addTarget("Do Nothing", new VerticalConfigurationGroup(true));
- addTarget("restore", trestore);
- addTarget("save", tsave);
- addTarget("copy_from", tcopy);
-
- };
-};
-
-MythCtemplate::MythCtemplate()
-{
-
- TemplateSettings *templatesettings = new TemplateSettings();
- addChild(templatesettings);
-
-}
-
-
-