| 61 | const int MAXMESSAGESIZE = RsSerialiser::MAX_SERIAL_SIZE - 70000; |
| 62 | |
| 63 | FeedReaderDialog::FeedReaderDialog(RsFeedReader *feedReader, FeedReaderNotify *notify, QWidget *parent) |
| 64 | : MainPage(parent), mFeedReader(feedReader), mNotify(notify), ui(new Ui::FeedReaderDialog) |
| 65 | { |
| 66 | /* Invoke the Qt Designer generated object setup routine */ |
| 67 | ui->setupUi(this); |
| 68 | |
| 69 | mProcessSettings = false; |
| 70 | mOpenFeedIds = NULL; |
| 71 | mMessageWidget = NULL; |
| 72 | |
| 73 | connect(mNotify, &FeedReaderNotify::feedChanged, this, &FeedReaderDialog::feedChanged, Qt::QueuedConnection); |
| 74 | connect(mNotify, &FeedReaderNotify::optimizeImage, this, &FeedReaderDialog::optimizeImage, Qt::QueuedConnection); |
| 75 | |
| 76 | connect(NotifyQt::getInstance(), SIGNAL(settingsChanged()), this, SLOT(settingsChanged())); |
| 77 | |
| 78 | /* connect signals */ |
| 79 | connect(ui->feedTreeWidget, SIGNAL(itemActivated(QTreeWidgetItem*,int)), this, SLOT(feedTreeItemActivated(QTreeWidgetItem*))); |
| 80 | if (!style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, NULL, this)) { |
| 81 | // need signal itemClicked too |
| 82 | connect(ui->feedTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(feedTreeItemActivated(QTreeWidgetItem*))); |
| 83 | } |
| 84 | connect(ui->feedTreeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(feedTreeCustomPopupMenu(QPoint))); |
| 85 | connect(ui->feedTreeWidget, SIGNAL(signalMouseMiddleButtonClicked(QTreeWidgetItem*)), this, SLOT(feedTreeMiddleButtonClicked(QTreeWidgetItem*))); |
| 86 | |
| 87 | connect(ui->messageTabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(messageTabCloseRequested(int))); |
| 88 | connect(ui->messageTabWidget, SIGNAL(currentChanged(int)), this, SLOT(messageTabChanged(int))); |
| 89 | |
| 90 | connect(ui->feedAddButton, SIGNAL(clicked()), this, SLOT(newFeed())); |
| 91 | connect(ui->feedProcessButton, SIGNAL(clicked()), this, SLOT(processFeed())); |
| 92 | |
| 93 | connect(ui->feedTreeWidget, SIGNAL(feedReparent(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(feedTreeReparent(QTreeWidgetItem*,QTreeWidgetItem*))); |
| 94 | |
| 95 | mFeedCompareRole = new RSTreeWidgetItemCompareRole; |
| 96 | mFeedCompareRole->setRole(COLUMN_FEED_NAME, ROLE_FEED_SORT); |
| 97 | |
| 98 | /* enable drag and drop */ |
| 99 | ui->feedTreeWidget->setAcceptDrops(true); |
| 100 | ui->feedTreeWidget->setDragEnabled(true); |
| 101 | ui->feedTreeWidget->setDragDropMode(QAbstractItemView::InternalMove); |
| 102 | |
| 103 | /* initialize root item */ |
| 104 | mRootItem = new QTreeWidgetItem(ui->feedTreeWidget); |
| 105 | QString name = tr("Message Folders"); |
| 106 | mRootItem->setText(COLUMN_FEED_NAME, name); |
| 107 | mRootItem->setIcon(COLUMN_FEED_NAME, QIcon(":/images/Root.png")); |
| 108 | mRootItem->setData(COLUMN_FEED_DATA, ROLE_FEED_NAME, name); |
| 109 | mRootItem->setData(COLUMN_FEED_DATA, ROLE_FEED_FOLDER, true); |
| 110 | mRootItem->setData(COLUMN_FEED_DATA, ROLE_FEED_ICON, QIcon(":/images/Root.png")); |
| 111 | mRootItem->setExpanded(true); |
| 112 | |
| 113 | /* set initial size the splitter */ |
| 114 | ui->splitter->setStretchFactor(0, 0); |
| 115 | ui->splitter->setStretchFactor(1, 1); |
| 116 | |
| 117 | QList<int> sizes; |
| 118 | sizes << 300 << width(); // Qt calculates the right sizes |
| 119 | ui->splitter->setSizes(sizes); |
| 120 | |