private void bSearch_Click(object sender, EventArgs e) { bool search = true; this.listViewBroadcasts.Dispose(); this.listViewBroadcasts = new CustomTVBrowserList(new System.Drawing.SizeF(this.Width, this.Height)); this.listViewBroadcasts.ImageList = null; this.listViewBroadcasts.Name = "listViewBroadcasts"; this.listViewBroadcasts.ShowScrollbar = true; this.initVideoMode(); this.listViewBroadcasts.TabIndex = 0; this.listViewBroadcasts.TopIndex = 0; this.listViewBroadcasts.WrapText = false; this.listViewBroadcasts.Click += new System.EventHandler(this.listViewBroadcasts_Click); String stmt = "SELECT b.id as id, b.tvbrowserID as tvbrowserid, c.name as channel, b.channel_id as channel_id, b.title as title, strftime('%Y-%m-%d-%H-%M', b.start) as start, strftime('%Y-%m-%d-%H-%M', b.end) as end, b.favorite as favorite, b.reminder as reminder FROM channel c, broadcast b, info i where c.id = b.channel_id AND i.broadcast_id=b.id"; if (this.radioButtonFavorites.Checked) { stmt += " AND b.favorite='1'"; } else if (this.radioButtonReminder.Checked) { stmt += " AND b.reminder='1'"; } else { if (this.tbSearch.Text.Length > 0) { if (this.checkBoxExact.Checked) { if (this.comboBoxElement.SelectedIndex == 0) { stmt += " AND b.title ='" + this.tbSearch.Text.Replace("'", "''") + "'"; } else { SearchElement se = (SearchElement)this.comboBoxElement.SelectedItem; stmt += " AND i." + se.getDatabasename() + " ='" + this.encode(this.tbSearch.Text) + "'"; } } else { if (this.comboBoxElement.SelectedIndex == 0) { stmt += " AND b.title LIKE '%" + this.tbSearch.Text.Replace("'", "''") + "%'"; } else { SearchElement se = (SearchElement)this.comboBoxElement.SelectedItem; stmt += " AND i." + se.getDatabasename() + " LIKE '%" + this.encode(this.tbSearch.Text) + "%'"; } } } else { MessageBox.Show(this.con.getLanguageElement("Search.SearchString", "search item is too short (at least one character)")); search = false; } } String date = ""; if (this.comboBoxDates.SelectedIndex > 1) { date = ((TVBrowserDate)this.comboBoxDates.SelectedItem).getDateTime().Year.ToString(); date += "-"; if (((TVBrowserDate)this.comboBoxDates.SelectedItem).getDateTime().Month < 10) { date += "0"; } date += ((TVBrowserDate)this.comboBoxDates.SelectedItem).getDateTime().Month.ToString(); date += "-"; if (((TVBrowserDate)this.comboBoxDates.SelectedItem).getDateTime().Day < 10) { date += "0"; } date += ((TVBrowserDate)this.comboBoxDates.SelectedItem).getDateTime().Day.ToString(); this.broadcasts = new ArrayList(); stmt += " AND date(b.start)=date('" + date + "')"; } else if (this.comboBoxDates.SelectedIndex == 1) { date = DateTime.Now.ToString("yyyy-MM-dd"); this.broadcasts = new ArrayList(); stmt += " AND date(b.start) >= date('" + date + "')"; } if (this.comboBoxChannel.SelectedIndex > 0) { stmt += " AND c.name ='" + this.comboBoxChannel.SelectedItem.ToString() + "'"; } if (search) { Cursor.Current = Cursors.WaitCursor; broadcasts = this.con.getBroadcastsBySearch(stmt); Cursor.Current = Cursors.Default; for (int i = 0; i < broadcasts.Count; i++) { Broadcast temp = (Broadcast)broadcasts[i]; this.listViewBroadcasts.Items.Add(this.con.createColoredListItem(temp, this.getReducedString(temp.getStart().ToShortDateString() + "|" + temp.getChannel() + "|" + temp.ToString(), this.Width))); } this.Controls.Add(this.listViewBroadcasts); if (this.broadcasts.Count < 1) { MessageBox.Show(this.con.getLanguageElement("Search.WarningNothingFound", "Sorry - nothing found")); } } if (this.listViewBroadcasts.Items.Count > 0) { this.listViewBroadcasts.SelectedIndex = 0; this.listViewBroadcasts.Focus(); } }