@@ -46,6 +46,18 @@ _Window::_Window(QPrinter *printer, QWidget *parent) :
4646 preview,
4747 SLOT (showPrevPage ()));
4848
49+ QObject* generalObject = root->rootObject ->findChild <QObject*>(" generalObject" );
50+
51+ QObject::connect (generalObject,
52+ SIGNAL (newPrinterSelected (QString)),
53+ this ,
54+ SLOT (newPrinterSelected (QString)));
55+
56+ QObject::connect (generalObject,
57+ SIGNAL (remotePrintersToggled (QString)),
58+ this ,
59+ SLOT (remotePrintersToggled (QString)));
60+
4961 tabs->setMinimumSize (700 , 32 );
5062
5163 root->setMinimumSize (320 , 408 );
@@ -97,11 +109,12 @@ void _Window::cancelButtonClicked() {
97109}
98110
99111static int add_printer_callback (PrinterObj *p) {
100- printf (" print_frontend.c : Printer %s added!\n " , p->name );
112+ // qDebug() << "Printer" << p->name << "added!";
113+ _window->addPrinter (p->name );
101114}
102115
103116static int remove_printer_callback (char *printer_name) {
104- printf ( " print_frontend.c : Printer %s removed!\n " , printer_name) ;
117+ qDebug () << " Printer" << printer_name << " removed!" ;
105118}
106119
107120gpointer _Window::ui_add_printer (gpointer user_data) {
@@ -112,21 +125,17 @@ gpointer _Window::ui_add_printer(gpointer user_data) {
112125 bool * enabled = (bool *)user_data;
113126 for (int i = 0 ; i < 100000000 ; i++);
114127 Command cmd;
115- if (*enabled) {
128+ if (*enabled)
116129 cmd.command = " unhide-remote-cups" ;
117- parse_commands (&cmd);
118- }
119- else {
130+ else
120131 cmd.command = " hide-remote-cups" ;
121- parse_commands (&cmd);
122- }
132+ parse_commands (&cmd);
123133 clearPrinters ();
124134 g_hash_table_foreach (f->printer , ui_add_printer_aux, NULL );
125135}
126136
127137void ui_add_printer_aux (gpointer key, gpointer value, gpointer user_data) {
128138 _window->addPrinter ((const char *)key);
129- qDebug () << " Added" << (const char *)key;
130139}
131140
132141void _Window::addPrinter (const char *printer) {
@@ -149,30 +158,50 @@ gpointer _Window::parse_commands(gpointer user_data) {
149158 else if (cmd->command .compare (" get-all-options" ) == 0 ) {
150159 char printerName[300 ];
151160 strcpy (printerName, cmd->arg1 .c_str ());
152- get_all_printer_options (_window->f , printerName);
161+ Options *options = get_all_printer_options (_window->f , printerName, " CUPS" );
162+ for (int i = 0 ; i < options->count ; i++) {
163+ GHashTableIter iterator;
164+ g_hash_table_iter_init (&iterator, options->table );
165+ GList *keys = g_hash_table_get_keys (options->table );
166+ qDebug () << (char *)keys->data ;
167+ // for (int j = 0; j < options[0][i].num_supported; j++)
168+ // qDebug() << options[0][i].supported_values[j];
169+ // qDebug() << "-----------";
170+ }
171+
153172 }
154173}
155174
156175void _Window::init_backend () {
157176 event_callback add_cb = (event_callback)add_printer_callback;
158177 event_callback rem_cb = (event_callback)remove_printer_callback;
159178 f = get_new_FrontendObj (NULL , add_cb, rem_cb);
160- bool enabled = true ;
179+ // bool enabled = true;
161180 // g_thread_new("add_printer_thread", (GThreadFunc)ui_add_printer, &enabled);
162- ui_add_printer (&enabled);
163181 connect_to_dbus (f);
164- loop = g_main_loop_new (NULL , FALSE );
165- // g_main_loop_run(loop);
182+ // ui_add_printer(&enabled);
166183}
167184
168185void _Window::clearPrinters () {
169- // QObject* obj = root->rootObject->findChild<QObject*>("generalObject");
170- // if (obj) {
171- // QMetaObject::invokeMethod(obj,
172- // "clearDestinationModel");
173- // }
174- // else
175- // qDebug() << "generalObject Not Found";
186+ QObject* obj = root->rootObject ->findChild <QObject*>(" generalObject" );
187+ if (obj) {
188+ QMetaObject::invokeMethod (obj,
189+ " clearDestinationModel" );
190+ }
191+ else
192+ qDebug () << " generalObject Not Found" ;
193+ }
194+
195+ void _Window::newPrinterSelected (const QString &printer) {
196+ Command cmd;
197+ cmd.command = " get-all-options" ;
198+ cmd.arg1 = printer.toStdString ();
199+ if (cmd.arg1 .compare (" " ) != 0 )
200+ parse_commands (&cmd);
201+ }
202+
203+ void _Window::remotePrintersToggled (const QString &enabled) {
204+ qDebug () << enabled;
176205}
177206
178207void ui_add_job_hold_until (char *startJobOption) {}
0 commit comments