diff options
Diffstat (limited to 'abs/core/mythinstall/settemplate.cpp')
-rwxr-xr-x | abs/core/mythinstall/settemplate.cpp | 419 |
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); - -} - - - |