Rename KCmdLineArgs to TDECmdLineArgs to avoid conflicts with KDE4

pull/1/head
Timothy Pearson 12 years ago
parent 9598af1608
commit 50d6569cde

@ -133,7 +133,7 @@ int main( int argc, char **argv )
{ {
KGlobal::locale()->setMainCatalogue( "dcoprss" ); KGlobal::locale()->setMainCatalogue( "dcoprss" );
KAboutData aboutData( "feedbrowser", I18N_NOOP( "Feed Browser" ), "0.1" ); KAboutData aboutData( "feedbrowser", I18N_NOOP( "Feed Browser" ), "0.1" );
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KApplication app; KApplication app;
FeedBrowserDlg *dlg = new FeedBrowserDlg( 0 ); FeedBrowserDlg *dlg = new FeedBrowserDlg( 0 );
app.setMainWidget( dlg ); app.setMainWidget( dlg );

@ -18,8 +18,8 @@ int main (int argc, char *argv[])
KAboutData::License_GPL, "(C) 2003, Ian Reinhart Geiser"); KAboutData::License_GPL, "(C) 2003, Ian Reinhart Geiser");
aboutdata.addAuthor("Ian Reinhart Geiser",I18N_NOOP("Developer"),"geiseri@kde.org"); aboutdata.addAuthor("Ian Reinhart Geiser",I18N_NOOP("Developer"),"geiseri@kde.org");
KCmdLineArgs::init( argc, argv, &aboutdata ); TDECmdLineArgs::init( argc, argv, &aboutdata );
// KCmdLineArgs::addCmdLineOptions( options ); // TDECmdLineArgs::addCmdLineOptions( options );
KUniqueApplication::addCmdLineOptions(); KUniqueApplication::addCmdLineOptions();
if (!KUniqueApplication::start()) if (!KUniqueApplication::start())

@ -36,7 +36,7 @@ int Application::newInstance()
KUniqueApplication::newInstance(); KUniqueApplication::newInstance();
// process parameters... // process parameters...
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
m_mainWindow->show(); m_mainWindow->show();

@ -43,8 +43,8 @@ extern "C" KDE_EXPORT int kdemain(int argc, char* argv[])
aboutData.addAuthor("Christian Gebauer",I18N_NOOP("Maintainer"),"gebauer@kde.org"); aboutData.addAuthor("Christian Gebauer",I18N_NOOP("Maintainer"),"gebauer@kde.org");
aboutData.addAuthor("Matthias Hoelzer",I18N_NOOP("Original Author"),"hoelzer@kde.org"); aboutData.addAuthor("Matthias Hoelzer",I18N_NOOP("Original Author"),"hoelzer@kde.org");
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KCmdLineArgs::addCmdLineOptions( knoptions ); TDECmdLineArgs::addCmdLineOptions( knoptions );
KUniqueApplication::addCmdLineOptions(); KUniqueApplication::addCmdLineOptions();
if (!Application::start()) if (!Application::start())

@ -353,11 +353,11 @@ extern "C"
{ {
// KApplication is necessary to use other ioslaves // KApplication is necessary to use other ioslaves
putenv(strdup("SESSION_MANAGER=")); putenv(strdup("SESSION_MANAGER="));
KCmdLineArgs::init(argc, argv, "kio_zeroconf", 0, 0, 0, 0); TDECmdLineArgs::init(argc, argv, "kio_zeroconf", 0, 0, 0, 0);
KCmdLineArgs::addCmdLineOptions( options ); TDECmdLineArgs::addCmdLineOptions( options );
KApplication::disableAutoDcopRegistration(); KApplication::disableAutoDcopRegistration();
KApplication app; KApplication app;
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
ZeroConfProtocol slave( args->arg(0), args->arg(1), args->arg(2) ); ZeroConfProtocol slave( args->arg(0), args->arg(1), args->arg(2) );
slave.dispatchLoop(); slave.dispatchLoop();
return 0; return 0;

@ -135,7 +135,7 @@ public:
sDebugIn <<"kmainwidget="<<kmainwidget << endl; sDebugIn <<"kmainwidget="<<kmainwidget << endl;
#endif #endif
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
if (kmainwidget==0) if (kmainwidget==0)
@ -204,8 +204,8 @@ int main(int argc, char *argv[])
aboutData.addAuthor("Matej Koss", 0); aboutData.addAuthor("Matej Koss", 0);
KCmdLineArgs::init(argc, argv, &aboutData); TDECmdLineArgs::init(argc, argv, &aboutData);
KCmdLineArgs::addCmdLineOptions(option); TDECmdLineArgs::addCmdLineOptions(option);
KGetApp::addCmdLineOptions(); KGetApp::addCmdLineOptions();

@ -40,9 +40,9 @@ int main(int argc, char **argv)
KAboutData::License_BSD, copyright); KAboutData::License_BSD, copyright);
aboutData.addAuthor("Frerich Raabe", I18N_NOOP("Author"), "raabe@kde.org"); aboutData.addAuthor("Frerich Raabe", I18N_NOOP("Author"), "raabe@kde.org");
KCmdLineArgs::init(argc, argv, &aboutData); TDECmdLineArgs::init(argc, argv, &aboutData);
KCmdLineArgs::addCmdLineOptions(options); TDECmdLineArgs::addCmdLineOptions(options);
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
KApplication app(false, false); KApplication app(false, false);

@ -184,7 +184,7 @@ void ChatWindowStyleRendering_Test::allTests()
setenv( "TDEHOME", TQFile::encodeName( TQDir::homeDirPath() + "/.kopete-unittest" ), true ); setenv( "TDEHOME", TQFile::encodeName( TQDir::homeDirPath() + "/.kopete-unittest" ), true );
KApplication::disableAutoDcopRegistration(); KApplication::disableAutoDcopRegistration();
//KCmdLineArgs::init(argc,argv,"testkopetemessage", 0, 0, 0, 0); //TDECmdLineArgs::init(argc,argv,"testkopetemessage", 0, 0, 0, 0);
KApplication app; KApplication app;
chatPart = new ChatMessagePart(d->fakeChatSession, 0, 0); chatPart = new ChatMessagePart(d->fakeChatSession, 0, 0);

@ -121,7 +121,7 @@ void KopeteApplication::slotLoadPlugins()
KConfig *config = KGlobal::config(); KConfig *config = KGlobal::config();
// Parse command-line arguments // Parse command-line arguments
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
bool showConfigDialog = false; bool showConfigDialog = false;
@ -208,7 +208,7 @@ void KopeteApplication::slotLoadPlugins()
void KopeteApplication::slotAllPluginsLoaded() void KopeteApplication::slotAllPluginsLoaded()
{ {
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
// --noconnect not specified? // --noconnect not specified?
if ( args->isSet( "connect" ) && KopetePrefs::prefs()->autoConnect() ) if ( args->isSet( "connect" ) && KopetePrefs::prefs()->autoConnect() )
@ -293,7 +293,7 @@ int KopeteApplication::newInstance()
void KopeteApplication::handleURLArgs() void KopeteApplication::handleURLArgs()
{ {
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
// kdDebug(14000) << k_funcinfo << "called with " << args->count() << " arguments to handle." << endl; // kdDebug(14000) << k_funcinfo << "called with " << args->count() << " arguments to handle." << endl;
if ( args->count() > 0 ) if ( args->count() > 0 )

@ -96,8 +96,8 @@ int main( int argc, char *argv[] )
aboutData.setTranslator( I18N_NOOP("_: NAME OF TRANSLATORS\nYour names"), aboutData.setTranslator( I18N_NOOP("_: NAME OF TRANSLATORS\nYour names"),
I18N_NOOP("_: EMAIL OF TRANSLATORS\nYour emails") ); I18N_NOOP("_: EMAIL OF TRANSLATORS\nYour emails") );
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KCmdLineArgs::addCmdLineOptions( options ); // Add our own options. TDECmdLineArgs::addCmdLineOptions( options ); // Add our own options.
KUniqueApplication::addCmdLineOptions(); KUniqueApplication::addCmdLineOptions();
KopeteApplication kopete; KopeteApplication kopete;

@ -65,7 +65,7 @@ KopeteMessage_Test::KopeteMessage_Test()
void KopeteMessage_Test::allTests() void KopeteMessage_Test::allTests()
{ {
KApplication::disableAutoDcopRegistration(); KApplication::disableAutoDcopRegistration();
//KCmdLineArgs::init(argc,argv,"testkopetemessage", 0, 0, 0, 0); //TDECmdLineArgs::init(argc,argv,"testkopetemessage", 0, 0, 0, 0);
// At least Kopete::Message::asXML() seems to require that a TQApplication // At least Kopete::Message::asXML() seems to require that a TQApplication
// is created. Running the console version doesn't create it, but the GUI // is created. Running the console version doesn't create it, but the GUI

@ -67,9 +67,9 @@ void PasswordRetriever::timer()
int main( int argc, char *argv[] ) int main( int argc, char *argv[] )
{ {
KAboutData aboutData( "kopetepasswordtest", "kopetepasswordtest", "version" ); KAboutData aboutData( "kopetepasswordtest", "kopetepasswordtest", "version" );
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KCmdLineArgs::addCmdLineOptions( opts ); TDECmdLineArgs::addCmdLineOptions( opts );
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
KApplication app( "kopetepasswordtest" ); KApplication app( "kopetepasswordtest" );

@ -62,12 +62,12 @@ void WalletReciever::timer()
int main( int argc, char *argv[] ) int main( int argc, char *argv[] )
{ {
KAboutData aboutData( "kopetewallettest", "kopetewallettest", "version" ); KAboutData aboutData( "kopetewallettest", "kopetewallettest", "version" );
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KCmdLineOptions opts[] = { {"+action",0,0}, KCmdLineLastOption }; KCmdLineOptions opts[] = { {"+action",0,0}, KCmdLineLastOption };
KCmdLineArgs::addCmdLineOptions( opts ); TDECmdLineArgs::addCmdLineOptions( opts );
KApplication app( "kopetewallettest" ); KApplication app( "kopetewallettest" );
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
// must register with DCOP or async callbacks will fail // must register with DCOP or async callbacks will fail
_out << "DCOP registration returned " << app.dcopClient()->registerAs(app.name()) << endl; _out << "DCOP registration returned " << app.dcopClient()->registerAs(app.name()) << endl;

@ -31,8 +31,8 @@ int main( int argc, char** argv ) {
KAboutData about("SMPPPDClientTests", I18N_NOOP("SMPPPDClientTests"), version, description, KAboutData about("SMPPPDClientTests", I18N_NOOP("SMPPPDClientTests"), version, description,
KAboutData::License_BSD, "(C) 2006 Heiko Schäfer", 0, 0, "heiko@rangun.de"); KAboutData::License_BSD, "(C) 2006 Heiko Schäfer", 0, 0, "heiko@rangun.de");
KCmdLineArgs::init(argc, argv, &about); TDECmdLineArgs::init(argc, argv, &about);
KCmdLineArgs::addCmdLineOptions(options); TDECmdLineArgs::addCmdLineOptions(options);
KApplication app; KApplication app;
KUnitTest::Runner::registerTester("ClientTest", new ClientTest); KUnitTest::Runner::registerTester("ClientTest", new ClientTest);

@ -285,7 +285,7 @@ KPPPWidget::KPPPWidget( TQWidget *parent, const char *name )
move(desk.center().x()-width()/2, desk.center().y()-height()/2); move(desk.center().x()-width()/2, desk.center().y()-height()/2);
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
m_strCmdlAccount = args->getOption("c"); m_strCmdlAccount = args->getOption("c");
m_strCmdlModem = args->getOption("m"); m_strCmdlModem = args->getOption("m");
@ -722,7 +722,7 @@ void KPPPWidget::beginConnect() {
} }
#endif #endif
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
TQString device = ""; TQString device = "";
if (args->isSet("dev")) if (args->isSet("dev"))
device = args->getOption("dev"); device = args->getOption("dev");

@ -49,7 +49,7 @@ static KCmdLineOptions option[] =
TopWidget::TopWidget() : KMainWindow(0, "") { TopWidget::TopWidget() : KMainWindow(0, "") {
// Check command line args for "-kppp" // Check command line args for "-kppp"
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
bool kpppmode = args->isSet("kppp"); bool kpppmode = args->isSet("kppp");
args->clear(); args->clear();
@ -109,9 +109,9 @@ int main(int argc, char **argv) {
aboutData.addAuthor("Bernd Wuebben",0, "wuebben@kde.org"); aboutData.addAuthor("Bernd Wuebben",0, "wuebben@kde.org");
aboutData.addAuthor("Mario Weilguni",0, ""); aboutData.addAuthor("Mario Weilguni",0, "");
aboutData.addAuthor("Harri Porten",0, "porten@kde.org"); aboutData.addAuthor("Harri Porten",0, "porten@kde.org");
KCmdLineArgs::init(argc, argv, &aboutData); TDECmdLineArgs::init(argc, argv, &aboutData);
KCmdLineArgs::addCmdLineOptions( option ); TDECmdLineArgs::addCmdLineOptions( option );
KApplication a; KApplication a;

@ -207,8 +207,8 @@ int main( int argc, char **argv ) {
aboutData.addAuthor("Bernd Wuebben", I18N_NOOP("Original author"), "wuebben@kde.org"); aboutData.addAuthor("Bernd Wuebben", I18N_NOOP("Original author"), "wuebben@kde.org");
aboutData.addAuthor("Mario Weilguni",0, ""); aboutData.addAuthor("Mario Weilguni",0, "");
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KCmdLineArgs::addCmdLineOptions( options ); TDECmdLineArgs::addCmdLineOptions( options );
@ -222,7 +222,7 @@ int main( int argc, char **argv ) {
kdDebug(5002) << "helperPid: " << (int) helperPid << endl; kdDebug(5002) << "helperPid: " << (int) helperPid << endl;
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
bool terminate_connection = args->isSet("k"); bool terminate_connection = args->isSet("k");
if (args->isSet("r")) if (args->isSet("r"))

@ -53,7 +53,7 @@ Modem::Modem() :
{ {
assert(modem==0); assert(modem==0);
modem = this; modem = this;
args = KCmdLineArgs::parsedArgs(); args = TDECmdLineArgs::parsedArgs();
} }

@ -37,7 +37,7 @@
#include <config.h> #include <config.h>
class KCmdLineArgs; class TDECmdLineArgs;
void alarm_handler(int); void alarm_handler(int);
@ -78,7 +78,7 @@ private slots:
private: private:
void escape_to_command_mode(); void escape_to_command_mode();
KCmdLineArgs *args; TDECmdLineArgs *args;
private: private:
int modemfd; int modemfd;

@ -92,8 +92,8 @@ int main(int argc, char *argv[])
I18N_NOOP("TightVNC encoding")); I18N_NOOP("TightVNC encoding"));
aboutData.addCredit("Tridia Corporation", aboutData.addCredit("Tridia Corporation",
I18N_NOOP("ZLib encoding")); I18N_NOOP("ZLib encoding"));
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KCmdLineArgs::addCmdLineOptions( options ); TDECmdLineArgs::addCmdLineOptions( options );
KApplication a; KApplication a;
@ -108,7 +108,7 @@ int main(int argc, char *argv[])
bool localCursor = kapp->config()->readBoolEntry("alwaysShowLocalCursor", false); bool localCursor = kapp->config()->readBoolEntry("alwaysShowLocalCursor", false);
TQSize initialWindowSize; TQSize initialWindowSize;
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
if (args->isSet("low-quality")) if (args->isSet("low-quality"))
quality = QUALITY_LOW; quality = QUALITY_LOW;

@ -98,13 +98,13 @@ int main(int argc, char *argv[])
"kovalid@yahoo.com"); "kovalid@yahoo.com");
aboutData.addCredit("Karl Vogel", aboutData.addCredit("Karl Vogel",
I18N_NOOP("KDesktop background deactivation")); I18N_NOOP("KDesktop background deactivation"));
KCmdLineArgs::init(argc, argv, &aboutData); TDECmdLineArgs::init(argc, argv, &aboutData);
KCmdLineArgs::addCmdLineOptions(options); TDECmdLineArgs::addCmdLineOptions(options);
KApplication app; KApplication app;
Configuration *config; Configuration *config;
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
TQString fdString; TQString fdString;
if (!args->isSet(ARG_KINETD)) { if (!args->isSet(ARG_KINETD)) {
bool kinetdA, krfbA; bool kinetdA, krfbA;

@ -68,7 +68,7 @@ int main(int argc, char **argv){
"2.0.0", "", KAboutData::License_Artistic, "2.0.0", "", KAboutData::License_Artistic,
I18N_NOOP("(c) 1997-2002, Andrew Stanley-Jones")); I18N_NOOP("(c) 1997-2002, Andrew Stanley-Jones"));
aboutData.addAuthor("Andrew Stanley-Jones",I18N_NOOP("Original Author"), "asj-ksirc@cban.com"); aboutData.addAuthor("Andrew Stanley-Jones",I18N_NOOP("Original Author"), "asj-ksirc@cban.com");
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KApplication a(argc, argv); KApplication a(argc, argv);

@ -78,8 +78,8 @@ extern "C" KDE_EXPORT int kdemain( int argc, char ** argv )
aboutData.addAuthor("Daniel Molkentin",0, "molkentin@kde.org"); aboutData.addAuthor("Daniel Molkentin",0, "molkentin@kde.org");
aboutData.addAuthor("Simon Hausmann",0, "hausmann@kde.org"); aboutData.addAuthor("Simon Hausmann",0, "hausmann@kde.org");
aboutData.addAuthor("Alyssa Mejawohld", I18N_NOOP("Icons Author"), "amejawohld@bellsouth.net"); aboutData.addAuthor("Alyssa Mejawohld", I18N_NOOP("Icons Author"), "amejawohld@bellsouth.net");
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KCmdLineArgs::addCmdLineOptions( options ); TDECmdLineArgs::addCmdLineOptions( options );
KUniqueApplication::addCmdLineOptions(); KUniqueApplication::addCmdLineOptions();
if (!KUniqueApplication::start()) { if (!KUniqueApplication::start()) {
@ -108,7 +108,7 @@ extern "C" KDE_EXPORT int kdemain( int argc, char ** argv )
if( !opts.geometry.isEmpty() ) if( !opts.geometry.isEmpty() )
sc->setGeometry( opts.geometry ); sc->setGeometry( opts.geometry );
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
TQCString nickName = args->getOption( "nick" ); TQCString nickName = args->getOption( "nick" );
TQCString server = args->getOption( "server" ); TQCString server = args->getOption( "server" );

@ -74,8 +74,8 @@ static const char version[] = "v1.5.2";
int main (int argc, char **argv) int main (int argc, char **argv)
{ {
KCmdLineArgs::init(argc, argv, "ktalkdlg", description, version ); TDECmdLineArgs::init(argc, argv, "ktalkdlg", description, version );
KCmdLineArgs::addCmdLineOptions( option ); TDECmdLineArgs::addCmdLineOptions( option );
KLocale::setMainCatalogue( "kcmktalkd" ); KLocale::setMainCatalogue( "kcmktalkd" );
KApplication a; KApplication a;
@ -84,10 +84,10 @@ int main (int argc, char **argv)
gettimeofday (&clock, &zone); gettimeofday (&clock, &zone);
struct tm *localclock = localtime ((const time_t *) &clock.tv_sec); struct tm *localclock = localtime ((const time_t *) &clock.tv_sec);
KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
if (args->count() == 0) if (args->count() == 0)
KCmdLineArgs::usage(i18n("'user@host' expected.")); TDECmdLineArgs::usage(i18n("'user@host' expected."));
TQString s; TQString s;
s.sprintf ("%d:%02d", localclock->tm_hour, localclock->tm_min); s.sprintf ("%d:%02d", localclock->tm_hour, localclock->tm_min);

@ -29,7 +29,7 @@ void Tester::slotLoadingComplete( Loader *loader, Document doc, Status status )
int main( int argc, char **argv ) int main( int argc, char **argv )
{ {
KAboutData aboutData( "testlibrss", "testlibrss", "0.1" ); KAboutData aboutData( "testlibrss", "testlibrss", "0.1" );
KCmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::init( argc, argv, &aboutData );
KApplication app; KApplication app;
Tester tester; Tester tester;

@ -42,9 +42,9 @@ main (int argc, char *argv[])
aboutData.addAuthor ("Stefan Winter", I18N_NOOP("Original Author and Maintainer"), "swinter@kde.org"); aboutData.addAuthor ("Stefan Winter", I18N_NOOP("Original Author and Maintainer"), "swinter@kde.org");
aboutData.addCredit ("Helge Deller", I18N_NOOP("Lots of Fixes and Optimizations, added Session Management"), aboutData.addCredit ("Helge Deller", I18N_NOOP("Lots of Fixes and Optimizations, added Session Management"),
"deller@kde.org"); "deller@kde.org");
KCmdLineArgs::init (argc, argv, &aboutData); TDECmdLineArgs::init (argc, argv, &aboutData);
KCmdLineArgs::addCmdLineOptions (options); // Add our own options. TDECmdLineArgs::addCmdLineOptions (options); // Add our own options.
KCmdLineArgs *args = KCmdLineArgs::parsedArgs (); TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs ();
args->clear (); args->clear ();
KApplication app; KApplication app;

Loading…
Cancel
Save